Forecasts

Build a versioned product forecast from real sales history, review the model's math, lock the plan, and turn it into inventory, labor, and materials decisions.

Where: setlist → Forecasts


What Forecasts does

Forecasts has four connected jobs:

  1. Build monthly sales history from Shopify and imported workbooks.
  2. Preserve every forecast as a named draft or immutable locked version.
  3. Score locked forecasts against actual sales as those months land.
  4. Convert the remaining forecast into units needed, labor hours, and material shortfalls.

The version is the record. Editing a draft never rewrites an older locked plan, and actual sales never overwrite what the team originally forecast.

Build the sales-history foundation

The Sales history section shows synced months, imported months, mapped products, and the latest inventory snapshot.

  • Sync Shopify sales reads the most recent 60 days of orders and aggregates units by SKU and month. It needs Order access.
  • Import workbook brings in older actuals, an existing forecast, and product-to-SKU mappings from an .xlsx planning workbook.
  • Sync inventory snapshots current on-hand quantities so planning can calculate needed = remaining forecast − on-hand.

Line items without SKUs cannot join the SKU-based history. The sync reports those skipped units so the gap is visible.

Import an existing workbook

The importer matches columns by header, so sheet names can change. It looks for:

Data sheet

Required columns: Product · Month · Figure · Units.

  • Actual rows become imported sales history.
  • Forecast rows become a locked forecast version.

Detail sheet (optional)

Use Product plus Product Variant ID to map the workbook's product labels to Shopify SKUs. Rows without a mapping still import, but they cannot be combined with Shopify-synced sales or inventory.

Re-importing the same imported months replaces the earlier imported values instead of double-counting them.

Generate and review a forecast

Click Generate forecast, choose a name, start month, and a horizon from 1 to 24 months. The model uses the available monthly history and shows its explainable calculation per product: base rate × seasonality × trend × bias correction.

Generated forecasts start as Draft. In the editable grid you can:

  • search products;
  • override any product-month cell;
  • add a note explaining the change;
  • leave the model's original number on record for comparison.

Click Lock forecast when the plan is approved. Locking freezes the version and makes it the immutable record used for future accuracy scoring.

Read a forecast version

Every version shows its horizon, status, origin, products, entries, and total units, followed by:

  • Planning — remaining forecast, on-hand inventory, units needed by product, monthly skilled/assembly hours, and material shortfalls where source data is available.
  • Accuracy — WMAPE, bias, hit rate, scored units, month/category breakdowns, and the largest misses once actual months exist.
  • Units by category — the forecast mix across the horizon.
  • Largest products — the biggest contributors in a locked version.

Deleting a forecast is immediate. Delete only a version you no longer need as a planning or accuracy record.

Tips & gotchas

  • History comes first. Generate is disabled until setlist has imported or synced sales history.
  • Draft vs. locked matters. Drafts are working plans; locked versions are intentionally immutable.
  • SKU mapping connects the systems. Workbook-only labels can be forecast, but mappings are what join them to Shopify sales and inventory.
  • Recent Shopify history is limited. Use workbook imports for history older than the order-access window.
  • Inventory is a snapshot. Sync it again when on-hand quantities have materially changed.

See also