SKU-level demand forecasts, with holidays as covariates.

Forecast predicts demand for each of 240 SKUs for the next 12 weeks with confidence intervals. The ops team right-sizes purchase orders, reducing overstock by 31% and stockouts by 44% in Q4.

Run Forecast
AuthorMariete
AgentForecast
Runtime~ 6 minutes
IndustryRetail
  1. 1

    Describe the task

    Forecast can take 18 months of raw SKU-level sales and turn it into a per-item, 12-week demand forecast with confidence bands, no per-SKU modelling by hand. It learns each product’s own seasonality, folds in your holiday and promo calendar as covariates, and hands the ops team purchase-order-ready numbers instead of a single blended trend line.

    The more precisely you describe the horizon and the covariates, the tighter the output. Tell Forecast which sales column to model, which calendar to attach as a covariate, and what confidence interval you plan against, and it holds that structure every refresh.

    Build a 12-week demand forecast for every SKU in sku-sales-18mo.csv. For each SKU: - Learn its own weekly seasonality from the last 18 months - Attach holiday-promo-calendar.csv as a covariate so promo weeks lift correctly - Return a point forecast plus an 80% confidence band per week - Flag SKUs where history is too sparse to forecast reliably Group results by volume tier (top 20%, mid, long tail). End with a summary: SKUs forecasted, projected overstock reduction, and which SKUs need a manual look.

  2. 2

    Give Forecast context

    In a Forecast workspace, load the sales history into a source node and wire the holiday-promo calendar in as a covariate on the forecasting node. Forecast reads both together, so a Black Friday spike is modelled as a promo effect rather than baked into the baseline.

    Make sure the promo calendar actually lines up with the sales weeks, matching dates, matching SKU identifiers. A calendar that references products the sales file never names will simply be ignored, and the lift stays invisible.

    Required context
    A SKU-level sales history (CSV or synced view) with at minimum SKU, week, and units sold
    A holiday and promo calendar keyed to the same weeks and SKU identifiers
    Optional context
    A stock-on-hand feed, so Forecast can translate demand directly into a suggested purchase order
    A supplier lead-time table, so reorder points account for how long replenishment takes
    A note on which SKUs are being discontinued, so they’re dropped from the forecast instead of trended to zero
    sku-sales-18mo.csvholiday-promo-calendar.csvstock-on-hand.csv (optional)
  3. 3

    What Forecast creates

    Forecast works through every SKU, learning each item’s seasonality and applying the promo covariate. You get a 12-week forecast per SKU with confidence bands, grouped by volume tier, plus a short list of items whose history was too thin to model confidently.

    From Forecast: Forecasted 240 SKUs over 12 weeks from sku-sales-18mo.csv with holiday-promo-calendar.csv as a covariate.

    240SKUs forecasted
    −31%Projected overstock
    −44%Projected stockouts
    Top 20% by volume48 SKUs
    SKUProductWk 1 forecast80% band
    HG-1042Linen duvet, king1,180 units1,040–1,320
    HG-0087Ceramic mug, matte black3,420 units3,110–3,730
    HG-2210Oak floating shelf640 units560–720
    Long tail96 SKUs
    SKUProductWk 1 forecastNote
    HG-3301Brass candle snuffer22 unitsHighly seasonal, peaks in December
    HG-3388Wool throw, ochre14 unitsSparse history, wider band

    "9 SKUs had under 12 weeks of history and were flagged rather than forecasted. Want me to fill those with a category-average curve, or translate the top-tier forecast straight into a suggested purchase order?"

  4. 4

    Follow-up prompts

    Turn the forecast into a purchase order

    With a stock-on-hand feed connected, Forecast can subtract current inventory and supplier lead time from the 12-week demand to produce a reorder quantity per SKU.

    Using stock-on-hand.csv and a 3-week supplier lead time, convert the 12-week forecast into a suggested purchase order per SKU. Only include items where projected stock drops below the reorder point within the horizon.

    Stress-test a promo you’re planning

    Forecast can re-run the same model with a hypothetical promo week added to the covariate, so you see the demand lift before you commit the discount.

    Add a 20%-off promo on the top 48 SKUs in week 6 to the covariate and re-forecast. Show me the demand lift versus the base case and where it would risk a stockout.

    Refresh it automatically each week

    Once the horizon and covariate are right, save the pipeline as a Forecast saved runbook and schedule it to rebuild every Monday against the latest sales export.

    Save this as a runbook called "weekly-sku-demand", then schedule it to refresh every Monday at 6am against sku-sales-18mo.csv and notify me when the new bands are ready.

  5. 5

    Tips and troubleshooting

    Match the calendar to the sales grain

    If your sales are weekly but the promo calendar is daily, aggregate the calendar to weeks first, or the covariate lands on the wrong periods and the lift washes out. Forecast will use whatever grain both files share.

    Thin-history SKUs get flagged, not guessed

    Items with under a full season of history can’t be forecasted reliably alone. By default Forecast flags them; if you’d rather borrow a category-average seasonal curve, say so in the prompt.

    Plan against the band, not the point

    The point forecast is the midpoint. For safety stock, order against the upper edge of the 80% band on your fast movers so a normal spike doesn’t empty the shelf.

  6. Ready to try it yourself?

    Point Forecast at your sales history and promo calendar, and get a per-SKU 12-week demand forecast your ops team can turn straight into purchase orders.

    Run Forecast