How We Built a Demand Plan From Scratch: The Exact Method
This is the most detailed piece we've published. It's a full walkthrough of how we built a demand plan for a personal care brand — from pulling the first data export to handing over a 12-month ordering schedule that the team could actually use.
We've anonymized the client. The method is exactly what we did.
If you want to understand how professional demand planning works at the SKU level — not the concept, but the actual process — this is it.
The Starting Point
The brand came to us with a common problem: they had inventory data and sales data in different places, no consistent forecasting method, and a planning process that lived mostly in someone's head. They knew what they'd ordered in the past. They didn't have a reliable way to know what to order next.
The product line was a personal care brand with a meaningful SKU count — multiple product forms, multiple sizes, selling across DTC, Amazon, and specialty retail. Some SKUs had been in market for several years. Others were newer with limited history.
The goal was a demand plan that could:
- Generate a 12-month unit forecast by SKU
- Feed into a purchase order schedule with specific order dates and quantities
- Account for lead time, safety stock, and minimum order quantities
- Be updated monthly without rebuilding from scratch
Here's how we built it.
Step 1: Pull Two Years of Clean Sales Data
Everything starts with data quality. A demand plan is only as accurate as the inputs that feed it.
We pulled two full years of sales history by SKU, by channel, by month. Not revenue — units. The distinction matters. Price changes, promotions, and mix shifts distort a revenue-based history in ways that make it unreliable for unit forecasting.
What we needed for each SKU:
- Monthly unit sales for 24 months, by channel
- Any known anomalies: stockouts (periods where demand was artificially suppressed because product wasn't available), promotional events (periods where demand was artificially elevated), and any data gaps or system migrations that created noise
This last piece is critical and often skipped. If a SKU stocked out for three weeks in November two years ago, your November history is understated. If you run a BOGO promotion every February, your February history is overstated for baseline purposes. A clean demand history removes or adjusts for these anomalies before any forecasting begins.
We flagged every period with a known stockout or significant promotional event and replaced those data points with interpolated values — typically the average of the surrounding months. The goal is a history that reflects what underlying demand actually was, not what it happened to be given the inventory and promotion conditions at the time.
With clean data in hand, we had a reliable 24-month unit history per SKU per channel. That's the foundation everything else is built on.
Step 2: Run Six Forecasting Techniques Per SKU
This is the part most brands skip — and it's where the accuracy improvement comes from.
Most small brands pick one forecasting method and apply it everywhere. A simple average, or last year's actuals, or whatever the sales team thinks will happen. The problem is that no single method works best for every SKU. A product with strong seasonality should be forecast differently than one with a flat, stable demand pattern. A SKU with a clear growth trend should be forecast differently than one that's been declining.
We ran six forecasting methods on every SKU and let the data tell us which one to use.
Average the last three months of actual sales and project that forward.
Formula: Forecast = (Month-1 + Month-2 + Month-3) ÷ 3
Best for: Stable SKUs with no trend and no seasonality. Low-velocity items where demand is fairly flat month to month.
Weakness: Slow to respond to changes. If demand has shifted upward recently, a 3-month average understates where you are.
Similar to a simple average, but recent months get more weight than older months.
Formula: Forecast = (0.4 × Month-1) + (0.3 × Month-2) + (0.2 × Month-3) + (0.1 × Month-4)
Best for: SKUs with mild trends or recent demand shifts. The heavier weighting on recent periods lets the forecast track changes more responsively than a simple average.
Weakness: The weights are a judgment call. We use 40/30/20/10 as a default but adjust for SKUs where demand signals are noisier.
Same principle as Method 2, extended over a longer window.
Formula: Forecast = (0.30 × M-1) + (0.25 × M-2) + (0.20 × M-3) + (0.15 × M-4) + (0.06 × M-5) + (0.04 × M-6)
Best for: SKUs where the last 6 months tell a more complete story than the last 4 — often appropriate for seasonal products where you need more history to capture the full seasonal shape.
Weakness: Slightly more lag than the 4-month version. Doesn't react as quickly to sharp recent changes.
This method captures repeating seasonal patterns by calculating a monthly index — how much higher or lower each month typically runs relative to the annual average — and applying it to a baseline forecast.
How we calculate it:
- Calculate each month's average demand across all available years
- Calculate the overall average monthly demand
- Divide each month's average by the overall average to get a seasonal index
Example:
A seasonality index of 1.50 for November means November historically runs 50% above the monthly average. Apply that index to your baseline projection and you get a seasonally adjusted forecast.
Best for: Products with clear, repeating annual patterns — sunscreen, holiday gift sets, anything with a defined peak season. Two years of clean history is the minimum; three or more gives you a more reliable index.
Weakness: Assumes this year's seasonal shape will match prior years. Doesn't account for trend — if the brand is growing 30% year-over-year, the raw seasonal index will understate absolute volume.
Fits a trend line to the historical data and extends it forward.
How it works: Plot monthly units on a chart with time on the x-axis. Fit a straight line through the data using the least squares method. The slope of that line is your trend rate. Project that slope forward to generate the forecast.
In a spreadsheet, this is the FORECAST or LINEST function.
Best for: SKUs with a consistent upward or downward trend — a product that has been growing or declining steadily for 12+ months. Regression captures that trajectory and extends it.
Weakness: Assumes the trend continues linearly. Doesn't handle inflection points, seasonality, or demand that's leveling off. A SKU that's been growing fast but is starting to mature will be over-forecast by a regression model that doesn't account for deceleration.
For SKUs with limited history — less than 12 months of clean data — statistical methods are unreliable. There's not enough data to fit a meaningful model.
For these SKUs, we used structured expert input: a facilitated conversation with the people closest to the product (the brand's sales lead, marketing team, and retail buyers where accessible) to build a range-based forecast.
The process:
- Each stakeholder provides an independent estimate (no anchoring on anyone else's number)
- Estimates are aggregated and gaps identified
- Assumptions driving the gaps are surfaced and resolved
- Output is a conservative / base / optimistic range
The Delphi output feeds into the plan as the base case, with the conservative case informing safety stock and the optimistic case informing buffer production decisions.
Best for: New SKUs, recent reformulations, and any product entering a new channel where historical velocity doesn't apply.
Step 3: Score Every Method Against History Using MAPE
Running six methods per SKU produces six candidate forecasts. The question is: which one do you use?
We don't pick based on intuition or preference. We let MAPE decide.
For each SKU, we applied each of the six methods to the historical data and measured how well it would have predicted actual demand over the last 12 months. This is called backtesting: you withhold the most recent 12 months of data, run each method on the prior 12 months, compare its predictions to what actually happened, and calculate the MAPE for each method.
The method with the lowest MAPE on that SKU's historical data becomes the forecast method for that SKU going forward.
This sounds like extra work. It is. It's also the step that makes the plan accurate rather than arbitrary.
What we found on this engagement was exactly what you'd expect: different SKUs had meaningfully different best methods. The hero SKU with five years of stable, seasonal history performed best with the seasonality index. A newer product with a clear growth trend fit best with linear regression. A slow-moving specialty SKU with noisy, erratic demand fit best with the simple 3-month average — because the more sophisticated methods were over-fitting to noise.
No single method won across the board. That's the point.
After selecting the best method per SKU, we calculated a weighted portfolio MAPE — the accuracy of the plan as a whole. This gives the brand a number to benchmark against each month as they update the plan.
Step 4: Layer In Lead Times, Safety Stock, and MOQs
A demand forecast tells you what you expect to sell. An ordering plan tells you when to buy and how much. The translation between those two things requires three inputs: lead time, safety stock, and minimum order quantity.
We mapped the full supply chain lead time for each SKU — not just production time, but the complete sequence: production lead time + transit + port and customs clearance + 3PL receiving + buffer for variability.
For this brand, domestic co-manufactured SKUs ran 5–6 weeks. Overseas-sourced items ran 12–16 weeks, depending on the origin. This gap mattered enormously for the ordering schedule — a 16-week lead time means placing purchase orders nearly four months in advance of when you need the inventory.
Most brands undercount lead time by 2–4 weeks by stopping at "production lead time" and ignoring the downstream chain. We use the full number.
Safety stock is the buffer inventory that protects you against demand variability and lead time variability. It's calculated per SKU, not as a blanket number applied across the portfolio.
The formula we used:
Safety Stock = Z × √(Lead Time) × σ(demand)
Where:
- Z = desired service level factor (1.65 for 95% service level; 2.05 for 98%)
- Lead time is expressed in the same time units as your demand data (weeks if using weekly demand)
- σ(demand) = standard deviation of demand over the measurement period
For SKUs with higher demand variability or longer lead times, the safety stock requirement is higher. This is the right answer — a volatile SKU that takes 14 weeks to produce requires more buffer than a stable SKU with a 4-week lead time.
We also applied a practical floor: no SKU carried less than 4 weeks of safety stock, regardless of what the formula produced. For small brands with limited supplier flexibility, formula-based safety stock minimums can be dangerously thin.
Every SKU had a co-manufacturer MOQ. For some SKUs, the MOQ was small enough to order what the demand plan called for. For others, the MOQ forced an overstock decision: either order the MOQ and hold the excess, or accept the higher unit cost of a custom run below MOQ.
We flagged every SKU where the MOQ exceeded the demand plan's recommendation and made the decision explicit. In some cases the brand negotiated lower MOQs. In others, they accepted the overstock with a clear view of the inventory carrying cost. What they no longer did was absorb MOQs without knowing the impact.
Step 5: Build the 12-Month Ordering Schedule
With forecasts, safety stock levels, and lead times established, the ordering schedule builds itself.
For each SKU, each month:
- Projected demand — from the winning forecast method
- Opening inventory — on-hand at the start of the month
- Inbound inventory — purchase orders placed in prior months, due to arrive this month
- Closing inventory — opening + inbound − demand
- Weeks of stock at closing — closing inventory ÷ average weekly demand
- Reorder trigger — if projected closing inventory in any future month falls below safety stock, work backward by lead time to identify the order date
- Recommended order quantity — enough to cover demand through the next cycle plus restore to target safety stock level, rounded up to MOQ
The output was a calendar: for each SKU, on what date does an order need to be placed, and for how many units.
This is the deliverable. Not a forecast spreadsheet. Not a demand model. A specific list of dates and quantities that tells the purchasing team exactly what to do and when — with the logic visible and auditable so the brand could understand why each order was recommended.
Step 6: Build the Monthly Update Process
A demand plan that gets built once and never updated is a historical document, not a planning tool.
We set up a monthly update process that takes less than two hours once the model is running:
- Drop in last month's actuals — replace the forecast for the prior month with what actually sold
- Recalculate MAPE — update the rolling accuracy score per SKU; flag any SKU where accuracy is deteriorating
- Update inbound POs — mark any orders received, add any new orders placed
- Roll the forecast forward — the model regenerates the next 12 months based on updated history
- Review the order recommendations — check the output against any known changes (new retail account, upcoming promotion, ingredient availability) and apply overrides where judgment warrants it
- Confirm or place the orders that the plan is recommending for this month
The entire process runs inside the same tool. For this client, we built the model in a combination of a structured spreadsheet and Parabola — a workflow automation tool that pulls sales data from their systems automatically and refreshes the model inputs without manual exports. The monthly update went from a full-day manual process to a two-hour review.
What the Plan Produced
After the first full cycle with the plan in place, the brand had:
- A single source of truth for inventory position and forward demand, updated monthly
- An ordering schedule they could hand to their purchasing team with confidence
- A MAPE baseline to track plan accuracy over time
- Documented logic for every forecast assumption, so when conditions changed, they knew where to make the adjustment
The qualitative shift was as significant as the quantitative one. The team stopped making inventory decisions reactively — responding to stockouts after they happened or overordering because they were nervous. They started making decisions from a plan, with a clear view of why each number was what it was.
That's what a working demand plan actually delivers. Not certainty — the forecast will always be imperfect. But a documented, updatable, defensible basis for the decisions that determine whether your inventory position is an asset or a liability.
Interested in building something similar for your brand?
Izba's demand planning engagements start with a free 20-minute audit. We'll look at your current planning process, your data, and your inventory position — and tell you what it would take to get to a plan like this one.
Related Insights

How to Forecast Demand for a New Product Launch
No sales history means no statistical model. Here's how experienced demand planners forecast new product launches — including the buffer method that saved a mass retail debut.

Pre-Acquisition Supply Chain Audit
Acquirers scrutinize supply chains during due diligence. A pre-acquisition supply chain audit finds the red flags before they do — and fixes what lowers your valuation.

What Is a Good MAPE for Demand Forecasting? A Benchmark Guide for Small Brands
Most MAPE benchmarks are written for enterprise. Here's what good forecast accuracy actually looks like at $5M, $10M, and $20M — and what to do when yours is off.