Demand Planning Lab exists to answer one question at a time: which demand-planning function actually fits this SKU's story, and how should upcoming signals move the plan away from what the statistics alone would say? Each step adds one more piece of evidence — history, model fit, forward-looking signals — adjust it on the left, watch the fit and the plan update on the right.
How the bench works
Every step below follows the same layout: inputs on the left, results on the right. Statistics never get silently blended with judgment — the baseline forecast (Steps 1–2) and the signal-driven adjustment (Steps 3–4) are always shown as two separate numbers with an explicit, human-approved delta between them.
The six-step process, left to right
Each step must be reviewed before its output is trustworthy enough to feed the next one.
Ready to see the plan?
Steps 1–5 tune the plan for one SKU. Step 6 is where you take it with you.
This is the one identity every step in the lab refers back to. Reuse it exactly as-is if you already set it up in Pricing Lab — Export a Pricing Lab session and Import it here.
Save & backup
Export saves everything — the SKU profile, its photo and competitors, history, and every input across all 6 steps — to a .json file. Import that same file later, on any account or any device, to pick up exactly where you left off (or import a Pricing Lab export — the SKU identity round-trips between the two tools).
What did this SKU actually sell, period by period? This is the single source of truth every forecasting method in Step 2 backtests against.
Drag a file here, or use the buttons above. Period + Units are required; every other column is optional and reverts to "not provided" if left blank.
Actual demand, period by period
Which statistical demand-planning function actually fits this SKU's history? Every candidate below is rolling-origin backtested — forecast the next period from everything before it, compare to what actually happened — never fit to data it's then scored against.
Candidate methods
Click a row to see its backtested error and forecast curve. Rows greyed out are honestly not eligible for this SKU's history — the reason is shown in the last column.
What's coming up that the history can't already know about? Each row is structured, not freeform — that's what makes Step 4's proposed adjustment auditable.
Given the signals on record, how should the baseline move — and by how much do we trust it? Nothing here auto-applies: only rows you accept move the plan in Step 5.
Proposed adjustments
Edit the override field to replace the AI's suggested impact; accept a row to have it count toward Step 5's adjusted plan.
Baseline vs. adjusted — where's the risk? Only accepted Step 4 rows move the plan away from the statistical baseline.
Baseline vs. adjusted, period by period
Exceptions
Flagged when an accepted adjustment exceeds the threshold below, or when two accepted signals disagree on the same period.
Step 6 of 6 — Take this run with you: export the full data behind it, or generate a print-ready PDF report of every step's results and the final plan.
Export data
Saves everything — the SKU profile, its photo and competitors, demand history, and every input across all 6 steps — to a .json file. Import that same file later, on any account or any device, to pick up exactly where you left off.
PDF report
Opens a print-ready summary of this run in a new tab — SKU identity, demand history, the suggested baseline method and its backtested fit, signals on record, the GenAI-simulated adjustments, and the comparison plan and exceptions. Use your browser's print dialog (destination: Save as PDF) to keep a copy.
This tool is in beta — under testing. Tell us what's wrong, confusing, or missing; every report is saved to your account so the team can follow up.
What's the issue?
Pick the category that best matches — this helps us route and prioritize your report.