Hierarchical Forecasting: How We Reconcile SKU, Customer, and Aggregate Demand
Multi-level demand forecasting requires more than accurate models—it demands a reconciliation strategy that preserves coherence across SKU, customer, and aggregate levels while optimizing for business impact.
Introduction
Manufacturing and retail demand planning rarely operates at a single level. Supply chain teams need forecasts at SKU, customer, region, and aggregate levels—and those forecasts must add up. A forecast that predicts 10,000 units at the aggregate level but sums to 12,000 across SKUs creates planning chaos. Hierarchical forecasting solves this by producing coherent forecasts across all levels simultaneously.
In a recent manufacturing engagement, we forecasted demand across 2,000 time series with a 16-week horizon. The hierarchy spanned SKU-by-customer combinations, customer totals, SKU totals, and company-wide aggregates. Getting the reconciliation right was as critical as getting the accuracy right.
The Reconciliation Problem
The naive approach—forecasting each level independently—fails. Independent forecasts violate the aggregation constraint: child forecasts rarely sum to parent forecasts. A top-down approach (forecast at aggregate, then disaggregate) preserves coherence but loses granular signal. A bottom-up approach (forecast at leaf level, then sum) preserves detail but compounds error at higher levels.
The real challenge is that different levels have different signal-to-noise ratios. SKU-customer combinations can be sparse and noisy; aggregates are smoother. A reconciliation method must balance coherence with accuracy at each level.
Our Approach
We use a weighted least-squares reconciliation that minimizes a volume-weighted error across the hierarchy. The idea: forecasts at high-volume nodes matter more than forecasts at low-volume nodes. A 10% error on a SKU that moves 100 units per week is less costly than a 10% error on one that moves 10,000.
The reconciliation step takes base forecasts from our models—typically a mix of univariate and multivariate methods depending on level—and projects them onto the space of coherent forecasts. We solve:
min ||W(y - y_base)||² subject to S·y = 0where y is the reconciled forecast vector, y_base is the base forecast, W is a diagonal weight matrix (often volume-based), and S encodes the aggregation constraints. The solution is a closed-form projection that preserves relative structure while enforcing coherence.
We also experimented with middle-out approaches: forecast at an intermediate level (e.g., SKU-by-region) and reconcile both up and down. This often outperforms pure top-down or bottom-up when the intermediate level has the best signal.
Evaluation Framework
Accuracy alone is misleading. We evaluate using:
- Weighted MAPE by volume — Errors on high-volume SKUs count more. This aligns metrics with business impact.
- Coherence violation — The sum of squared differences between child sums and parent forecasts. Must be zero after reconciliation.
- Bias at each level — Systematic over- or under-forecasting at aggregate vs. leaf levels can indicate reconciliation distortion.
In our 2,000-series manufacturing project, the reconciled hierarchy achieved 18% weighted MAPE at the SKU level and 12% at the aggregate level—with zero coherence violation. The top-down baseline had 22% at SKU and 11% at aggregate; bottom-up had 17% at SKU but 15% at aggregate. Reconciliation gave us the best of both.
Conclusion
Hierarchical forecasting is not just multi-level modeling—it is the art of reconciling conflicting signals into a single, coherent plan. Volume-weighted reconciliation, combined with level-appropriate base models, delivers forecasts that planners can trust at every level. The 16-week horizon and 2,000-series scale we tackled is representative of real manufacturing complexity; the same patterns apply to retail, CPG, and any domain where demand is hierarchical.
Talk to ZAAI about a system like this.
We build AI products and bespoke systems for enterprises that need them in production, not in a deck.
Book a call
