askill
nixtla-schema-mapper

nixtla-schema-mapperSafety 95Repository

Analyzes data sources and generates Nixtla-compatible schema transformations. Infers column mappings, creates transformation modules for CSV/SQL/Parquet/dbt sources, generates schema contracts, and validates data quality. Activates when user needs data transformation, schema mapping, column inference, or Nixtla format conversion.

6 stars
1.2k downloads
Updated 3/6/2026

Package Files

Loading files...
SKILL.md

Nixtla Schema Mapper

Transform data sources to Nixtla-compatible schema (unique_id, ds, y).

Overview

This skill automates data transformation:

  • Column inference: Detects timestamp, target, and ID columns
  • Code generation: Python modules for CSV/SQL/Parquet/dbt
  • Schema contracts: Documentation with validation rules
  • Quality checks: Validates transformed data

Prerequisites

Required:

  • Python 3.8+
  • pandas

Optional:

  • pyarrow: For Parquet support
  • sqlalchemy: For SQL sources
  • dbt-core: For dbt models

Installation:

pip install pandas pyarrow sqlalchemy

Instructions

Step 1: Identify Data Source

Supported formats:

  • CSV/Parquet files
  • SQL tables or queries
  • dbt models

Step 2: Analyze Schema

python {baseDir}/scripts/analyze_schema.py --input data/sales.csv

Output:

Detected columns:
  Timestamp: 'date' (datetime64)
  Target: 'sales' (float64)
  Series ID: 'store_id' (object)
  Exogenous: price, promotion

Step 3: Generate Transformation

python {baseDir}/scripts/generate_transform.py \
    --input data/sales.csv \
    --id_col store_id \
    --date_col date \
    --target_col sales \
    --output data/transform/to_nixtla_schema.py

Step 4: Create Schema Contract

python {baseDir}/scripts/create_contract.py \
    --mapping mapping.json \
    --output NIXTLA_SCHEMA_CONTRACT.md

Step 5: Validate Transformation

python data/transform/to_nixtla_schema.py

Output

  • data/transform/to_nixtla_schema.py: Transformation module
  • NIXTLA_SCHEMA_CONTRACT.md: Schema documentation
  • nixtla_data.csv: Transformed data (optional)

Error Handling

  1. Error: No timestamp column detected Solution: Specify manually with --date_col

  2. Error: Multiple target candidates Solution: Specify manually with --target_col

  3. Error: Date parsing failed Solution: Specify format with --date_format "%Y-%m-%d"

  4. Error: Non-numeric target column Solution: Check for string values, use pd.to_numeric(errors='coerce')

Examples

Example 1: CSV Transformation

python {baseDir}/scripts/generate_transform.py \
    --input sales.csv \
    --id_col product_id \
    --date_col timestamp \
    --target_col revenue

Generated code:

def to_nixtla_schema(path="sales.csv"):
    df = pd.read_csv(path)
    df = df.rename(columns={
        'product_id': 'unique_id',
        'timestamp': 'ds',
        'revenue': 'y'
    })
    df['ds'] = pd.to_datetime(df['ds'])
    return df[['unique_id', 'ds', 'y']]

Example 2: SQL Source

python {baseDir}/scripts/generate_transform.py \
    --sql "SELECT * FROM daily_sales" \
    --connection postgresql://localhost/db \
    --id_col store_id \
    --date_col sale_date \
    --target_col amount

Resources

Related Skills:

  • nixtla-timegpt-lab: Use transformed data for forecasting
  • nixtla-experiment-architect: Reference in experiments

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

75/100Analyzed 3/9/2026

Well-structured technical skill with comprehensive documentation covering schema transformation for Nixtla format. Includes clear step-by-step instructions, prerequisites, examples, and error handling. Scores well on clarity and safety but penalized slightly for being in a backup/internal path and lacking an explicit 'when to use' trigger section. Actionability reduced because it depends on external scripts that may not exist in the skill bundle."

95
90
75
80
80

Metadata

Licenseunknown
Version1.1.0
Updated3/6/2026
Publisherintent-solutions-io

Tags

databasegithub