Skip to content

Upload data

All intake paths — CSV upload, ERP connector, or SFTP — normalize into one canonical schema. The forecasting engine only sees this schema.

Required table: orders

One row per order line. Do not pre-aggregate; the engine builds monthly (customer_id, product_id) series.

Column Required Notes
customer_id Yes Stable over time — series key
product_id Yes SKU — stable over time
order_date Yes Any parseable date; normalised to month
ordered_qty Yes Forecast target (units)
revenue Recommended Enables value-based analysis
unit_price Recommended Demand driver; derivable from revenue ÷ qty
currency Optional Defaults to workspace currency
location_id Optional Site or region dimension

Minimum to run: the four required columns.

Minimum to be useful: required columns plus revenue or unit_price.

Optional enrichment tables

product_master

Unlocks hierarchy, readable labels, and cold-start detection.

Column Unlocks
product_id Join key
product_name Dashboards and reports
brand, category, sub_category Hierarchical reconciliation
launch_date Cold-start handling
price_tier Attribute-based priors

customer_master

Column Unlocks
customer_id Join key
customer_name Readability
segment Segment-aware modelling (Growth+)
region, country Geographic seasonality

events

Promotion, stock-out, or shutdown calendars (FC-008). Masks or down-weights affected periods during training.

Column Notes
event_type promotion, stockout, price_change, shutdown, other
start_date, end_date Inclusive month range
scope all, product_group:…, or series:customer_product
mask_strategy exclude or downweight

Data readiness scorecard

After upload, AccuPredix surfaces a readiness score (also on the dashboard as data quality score):

Check Blocked Limited Good
History per series cold-start only < 12 months ≥ 24 months
Overall history < 3 months 3–11 months ≥ 24 months
Recency > 6 months old 2–6 months within 1 month
ID stability IDs in disjoint windows some churn stable keys
Required columns any missing no revenue/price complete

Rules of thumb

  • 24+ months of history gives the best seasonality learning.
  • 12 months is the practical minimum for trend.
  • Keep customer_id and product_id stable — re-coded IDs silently break history.
  • Sparse / intermittent demand is expected in B2B; specialist models handle it.

Upload workflow in the app

  1. Workspaces → select workspace → Upload.
  2. Drop CSV/XLSX or use a connector sync (Growth+).
  3. Review validation messages and readiness badges.
  4. Optional: upload product_master, customer_master, events in the same session.
  5. Proceed to Run forecast when readiness is not blocked.

ERP and connector mapping

For SAP, NetSuite, Dynamics, and similar systems, map ERP field names to the canonical columns in the connector setup wizard. The engine is identical whether data came from CSV or live sync.

See Integrations for connector-specific steps.

Template and synthetic data

Developers can generate reference datasets with the engine CLI:

cd model && uv run accupredix generate-data

This emits tables matching the canonical schema and serves as a downloadable template.