In short: Forecasts produced at different levels of a hierarchy rarely add up, and coherence is a property most forecast sets do not have until something is done about it. Bottom-up keeps the granular information and inherits all of its noise, while top-down keeps a stable aggregate and throws away what the lower levels knew. Minimum trace reconciliation uses the base forecasts from every level rather than trusting one, which is why it usually beats choosing a level. Reconciliation makes forecasts coherent and does not make them agree with a target, and the argument in the room is often about the target.
Finance plans at the top. Supply plans at the bottom. Both are forecasting the same business, and the two numbers do not match.
The usual response is a reconciliation meeting where somebody applies a factor to the regional numbers so they sum to the national one, or the national number is quietly replaced by the sum of the regions. Whichever happens, one set of forecasts has been overwritten by arithmetic rather than by evidence, and the information that was in it is gone.
Both of those are special cases of something better understood. This is hierarchical forecasting, and there is a proper answer that keeps information from every level instead of discarding one of them.
Coherence is a property, and most forecasts do not have it
A hierarchy here means any structure where series aggregate: items into categories into totals, stores into regions into countries, or several of those at once in a grouped structure where the aggregations cross.
A set of forecasts is coherent when every aggregate exactly equals the sum of its children. Forecast each level independently with a decent model and the result will not be coherent, because each model saw different data and made different errors. The gaps are typically a few percent, which is small enough to be tolerated and large enough to cause an argument every month.
The mathematics is compact. Let S be the summing matrix that maps bottom level series to every series in the hierarchy, including the aggregates. Every reconciliation method is then a linear map of the form: reconciled forecast equals S times G times base forecast, where G projects the incoherent base forecasts down to a bottom level. Different choices of G give different methods, and the classic approaches are just particular Gs.
The three familiar answers, and what each throws away
Bottom-up sets G to keep the bottom level forecasts and ignore everything else, then sums upward. Coherent by construction. It uses the most granular information, which is genuinely valuable, and it inherits all the noise of the most granular series. On a catalogue where item level demand is close to unforecastable, bottom-up aggregates a large amount of noise into the total, and the total ends up worse than a direct forecast of the total would have been.
Top-down forecasts the aggregate and disaggregates it by proportions, usually historical averages in the manner of Gross and Sohl from 1990. The aggregate is easier to forecast, which is the appeal. What it discards is everything the individual series knew about themselves. A region that has been growing faster than the others for two years receives the same proportional split it always had, and the forecast is structurally blind to the divergence.
Middle-out picks an intermediate level, forecasts there, aggregates upward and disaggregates downward. It trades off the previous two and it inherits both problems in smaller quantities.
All three throw information away. That is the actual objection to them, and it is what motivated the alternative.
Minimum trace
The better approach starts from a simple observation. If the base forecasts at every level contain information, the reconciliation should use all of them rather than picking one level to trust.
Hyndman and colleagues showed in 2011 that reconciliation could be posed as a projection, with the ordinary least squares solution giving G as the standard projection onto the coherent subspace. That treats every series as equally reliable, which is clearly wrong: a national forecast and an item level forecast do not have comparable error variances.
Wickramasuriya, Athanasopoulos and Hyndman resolved this in 2019 with minimum trace, usually written MinT. The result is that among all unbiased linear reconciliations, the one minimising the total variance of the reconciled forecast errors uses a generalised least squares projection weighted by the covariance matrix of the base forecast errors.
The practical form of G is the weighted projection built from that covariance. The remaining question is how to estimate it, and there are three usable answers in increasing order of ambition.
Structural weighting, from Athanasopoulos and colleagues in 2017, sets the weight for each node proportional to the number of bottom level series aggregated into it. It requires no residual data at all and it encodes the sensible intuition that aggregates are more reliable than their parts.
Variance scaling uses the diagonal of the empirical residual covariance, so each series is weighted by its own error variance while ignoring correlations between series.
Full shrinkage estimation, the method usually meant by MinT-shrink, uses the whole empirical covariance shrunk toward a diagonal target using the Schafer and Strimmer estimator. This is the version that performs best in published comparisons and it is the one to use when you have enough residual history to estimate a covariance, which in practice means a decent number of holdout periods relative to the number of series.
A two-node example makes the differences concrete, and it is small enough to check by hand.
National forecast 830. Region A forecast 500. Region B forecast 300. The regions sum to 800, so the hierarchy is incoherent by 30 units.
Bottom-up takes the regions as given and sets the national to 800. Everything the national model knew about the total is discarded.
Top-down takes the national 830 and splits it by historical shares of five eighths and three eighths, giving A 518.75 and B 311.25. Everything the two regional models knew is discarded instead.
Ordinary least squares reconciliation projects all three forecasts onto the coherent subspace at equal weight. Worked through, A becomes 510, B becomes 310 and the national becomes 820. The 30 unit gap gets shared: each region moves up 10 and the national moves down 10.
Structural weighting changes the projection by giving the national node the variance of the two series beneath it. That reduces the weight on the national forecast and the answer shifts toward the bottom: A 507.5, B 307.5, national 815.
All four results are coherent. What separates them is which level absorbs the discrepancy, and bottom-up and top-down are the two corner solutions where one level absorbs all 30 units and the other absorbs none. Estimating the covariance is how you stop making that allocation by assertion.
What to expect from it
Two things, and the second matters more than the first.
Coherence goes to exactly zero. Not approximately. The reconciled numbers add up by construction, which removes the monthly argument entirely.
Accuracy usually improves at most levels, and the improvement is typically modest. Published comparisons report reconciliation gains in the low to mid single digits of percentage error, occasionally more. Reported figures around a twenty percent error reduction exist in case material and I would treat them as the top of the range rather than the expectation.
The more useful framing is that reconciliation is close to free. You already have the base forecasts. The reconciliation is one matrix computation, fast enough on a hierarchy of a few dozen nodes to run in a browser. Getting a small accuracy improvement and guaranteed coherence for that cost is a good trade even at the low end of the range.
One caveat on estimating the covariance. If you have three hundred series and twelve holdout periods, the empirical covariance is badly conditioned and the shrinkage is doing nearly all the work. Count it: three hundred series gives a covariance matrix with 45,150 distinct entries, and twelve holdout periods give 3,600 residuals to estimate them from, which is one observation for every twelve and a half parameters. In that situation, structural weighting is the more honest choice and will often perform as well.
Grouped structures and the thing that trips people
Many real hierarchies are not a single tree. Product hierarchy crosses geography crosses channel, and a given bottom level series belongs to several aggregation paths at once. These are grouped rather than strictly hierarchical, and the summing matrix handles them without any change to the theory, though it gets larger quickly.
The practical trap is that people build the summing matrix from the master data hierarchy without checking that the data actually sums. Items assigned to two categories, orphan nodes, categories whose children do not cover them, a region that exists in the geography table and not in the sales data. Every one of those breaks the coherence assumption, and the reconciliation will run and produce numbers that are coherent with respect to a structure that does not describe your business.
Validate before reconciling: sum the actuals at the bottom level and compare against the recorded actuals at every aggregate. Any node where those disagree is a master data problem and it must be fixed first. This check takes minutes and catches an embarrassing number of issues.
A second trap appears on sparse bottom levels and it produces numbers nobody expects. Minimum trace is an unconstrained linear projection, so it can push a reconciled bottom-level forecast below zero. On an item-location series averaging half a unit a week, a downward adjustment of two units to satisfy coherence lands the forecast at minus 1.5, and nothing in the method prevents it.
What happens next decides how much damage it does. Systems that clip the negatives to zero break coherence again, silently, so the sums stop tying and the argument you removed returns with a smaller number attached. Systems that pass the negatives through generate negative requirements downstream, and a negative requirement in a replenishment engine does unpredictable things.
The diagnostic is a count. After reconciling, how many bottom-level forecasts came out below zero, and what share of total volume do they sit on. A handful across a large hierarchy is noise. A meaningful count means the covariance estimate is pushing adjustments onto series that cannot absorb them, and the fix is a constrained solve enforcing non-negativity inside the optimisation rather than a maximum applied afterwards.
Where reconciliation is the wrong tool
Reconciliation makes forecasts coherent. It does not make them agree with a target, and the distinction matters because the argument in the room is often about the latter.
When finance has a number that comes from a commitment rather than from a model, no reconciliation method will resolve the difference, because the two numbers are answers to different questions. One is a prediction and the other is an intention. Forcing them into the same field creates the plan-versus-target confusion that makes S&OP cycles unpleasant. Keep them separate, reconcile the forecasts among themselves, and treat the gap to target as a gap requiring plays rather than as an inconsistency requiring arithmetic.
Reconciliation also assumes the base forecasts are unbiased, which is the condition under which minimum trace is optimal. If one level is systematically biased, perhaps because sales pads a regional number toward quota, reconciliation will spread that bias across the hierarchy rather than remove it. Fix the bias at its source and reconcile afterwards, in that order.
And it will not rescue a bottom level with no signal. If item-week demand is essentially noise, reconciling it against a good national forecast produces coherent numbers where the item level ones remain uninformative. Coherence is not accuracy, and a coherent set of bad forecasts is easier to argue about and no better to act on.
Start by checking whether your actuals sum. It is the least interesting step and the one that determines whether anything after it means anything.