Blog · Forecast and pipeline · Consumer goods
Compare food forecasts with sales, receipts and waste by product and week. Reconcile inventory movements, calculate the cost of waste and identify stock exposed before its customer selling cutoff.
Food demand forecasting compares planned product sales with actual orders and fulfilled sales, then checks what happened to inventory and waste. For a producer or distributor, an accurate weekly sales total can still leave the wrong stock approaching its customer selling cutoff. Review both the demand error and the inventory movement before changing the next purchase or production release.
Start with the approved sales forecast, order register, shipment or sales export, inventory movement report and waste log. Use one row per product, location and week for the demand review. Keep the lot register separately because different lots of the same product may have different remaining selling windows.
The forecast file needs its approval date and forecast horizon. The sales file needs requested and actual delivery dates where available. Inventory movements need reason codes, including receipts, sales, waste, returns and transfers. Keep unfulfilled orders visible rather than silently treating fulfilled sales as every unit customers wanted.
This is a producer and distributor workflow. It does not convert restaurant reservations into recipes or ingredients. For the broader distinction between shipments and consumer sales, use CPG demand forecasting.
Waste also needs a defined boundary. USDA's Economic Research Service describes food loss as edible postharvest food available for consumption but not consumed. Your operational waste log may cover a narrower group of reasons. State those reasons so changes in reporting do not masquerade as changes in planning performance.
A US refrigerated-food distributor reviews weeks ended October 10 and October 17, 2026. All quantities are individual sellable units. Assume no transfers, customer returns or other stock adjustments. Unit costs are the supplied inventory costs, held constant within each product for this example.
Place the table in A:J. Closing stock is a recorded balance; the formula below checks it against movements.
| Product | Week ended | Opening stock | Receipts | Forecast sales | Actual sales | Waste | Closing stock | Unit cost (USD) | Waste cost (USD) |
|---|---|---|---|---|---|---|---|---|---|
| Yogurt | October 10 | 120 | 900 | 900 | 840 | 60 | 120 | 1.50 | 90.00 |
| Yogurt | October 17 | 120 | 900 | 950 | 900 | 80 | 40 | 1.50 | 120.00 |
| Salad | October 10 | 80 | 600 | 620 | 560 | 40 | 80 | 2.00 | 80.00 |
| Salad | October 17 | 80 | 650 | 650 | 610 | 60 | 60 | 2.00 | 120.00 |
| Movement totals | 3,050 | 3,120 | 2,910 | 240 | 410.00 |
Waste cost in J2 is:
=G2*I2
In K2, check closing stock against the inventory identity:
=H2-(C2+D2-F2-G2)
Fill both formulas down to row 5. Every stock check returns zero. For example, the second yogurt week is 120 + 900 - 900 - 80 = 40 units closing stock.
Do not sum opening and closing balances across successive weeks. The October 10 closing yogurt balance is also the October 17 opening balance. Summing both counts the same stock again.
Across the full period, opening stock is 120 + 80 = 200 units and closing stock is 40 + 60 = 100. The period reconciliation is:
Closing inventory = Opening inventory + Receipts - Sales - Waste
100 = 200 + 3,050 - 2,910 - 240
That identity proves the movements explain the recorded stock change under the stated assumptions. It does not establish that every waste reason was coded correctly.
In L2, calculate forecast minus actual sales. In M2, take its absolute value:
=E2-F2
=ABS(L2)
The signed errors are 60, 50, 60 and 40 units. All are positive, so the forecast was high on every row. Total overforecast is 3,120 - 2,910 = 210 units. Weighted absolute percentage error is 210 / 2,910 = 7.2%, rounded to one decimal place:
=SUM(M2:M5)/SUM(F2:F5)
Waste was 240 units, costing $410.00. It is a separate movement; adding it to customer sales would obscure the excess supply. A period waste rate based on units available is 240 / (200 + 3,050) = 7.4%, also rounded to one decimal place. Label that denominator explicitly because a rate using sales would answer a different question.
The figures show overforecasting and recorded waste together. They do not prove that forecast error caused all waste. The USDA discussion of food-loss causes also identifies handling, storage and over-ordering as possible contributors. Read the waste reason codes before assigning corrective action.
For a recurring directional miss, use the SKU and site forecast-bias review rather than resetting every product by the same percentage.
The ending lot file identifies the following customer cutoffs. These are supplied commercial requirements, not food-safety judgments. Assume the expected demand is allocated only to the listed lot and no other lot competes for those sales.
| Product / ending lot | Remaining units | Customer cutoff | Expected sales before cutoff | Exposed units | Unit cost (USD) | Exposed cost (USD) |
|---|---|---|---|---|---|---|
| Yogurt / Y17 | 40 | October 20, 2026 | 25 | 15 | 1.50 | 22.50 |
| Salad / S17 | 60 | October 19, 2026 | 40 | 20 | 2.00 | 40.00 |
| Total | 100 | 65 | 35 | 62.50 |
With this table in A:G on a separate sheet, E2 and G2 are:
=MAX(0,B2-D2)
=E2*F2
The 35 exposed units and $62.50 represent a planning scenario. They are not yet waste or an accounting write-down. The operations team should review allocations and upcoming receipts; finance should decide how any eventual loss is recorded.
Freeze the before-cutoff demand estimate when reviewing the decision later. Forecasting: Principles and Practice explains why forecast accuracy must be evaluated using observations outside the fitting data. Revising the estimate after seeing which lots expired hides the original decision quality.
Assign demand assumptions to the commercial planner, movement exceptions to inventory operations and waste cost to finance. A shared demand forecasting process keeps those handoffs and approval snapshots visible.
Bring your weekly forecast, product sales, inventory movements and waste export to Covirage. Covirage maps the columns; its tools compute and check the comparisons, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for CPG brands for the wider producer and distributor context.
No. Waste removes inventory without fulfilling a customer sale. Track it separately in the stock reconciliation and calculate its cost using the relevant inventory cost. Combining waste with sales makes the demand history look stronger and can support another excessive replenishment decision.
Keep orders and fulfilled shipments separately. Orders show customer requests, including requests the company could not fulfill. Shipments show what left inventory. Check cancellations, requested delivery dates and shortages before treating either measure as the complete record of customer demand.
It limits the time in which inventory can satisfy demand. Compare each lot's remaining quantity with demand that can be fulfilled before its documented customer cutoff, allowing for other stock allocated to those orders. Use quality and customer requirements already approved by the business.