Forecast bias is a systematic tendency for forecasts to be consistently higher or lower than actual demand. A forecast with positive bias is chronically too high (over-forecasting). A forecast with negative bias is chronically too low (under-forecasting). Bias is the directional signal in forecast error. Accuracy tells you how big the errors are, bias tells you whether they lean one way.
The reason bias is dangerous: it compounds instead of netting out. Random error can overshoot in one period and undershoot in the next, and each miss still costs the business something in the moment. Excess stock in one period doesn't un-happen just because a shortfall shows up later, especially for perishable or short-shelf-life products, where that excess gets written off long before any offsetting period arrives.
What random error doesn't do is stack in one direction. Bias does exactly that: a forecast that's 10% too high every month doesn't swing back the other way. It produces a steady buildup of excess inventory. A forecast that's 10% too low every month produces persistent stockouts and lost sales. Bias is the kind of error a business feels in the P&L, because unlike random error, it never has a chance to work itself out.
This page covers the formula, how to interpret it, where bias usually comes from (the root cause is usually human, not algorithmic), and the four-step process to eliminate it.
Accuracy and bias answer two different questions. A forecast can be accurate and still biased, or biased and still look "accurate" on the wrong metric. The table below shows why both need to be tracked together.
| Metric | What It Measures | Formula | What It Tells You | Common Misreading |
|---|---|---|---|---|
| Accuracy (MAPE) | The size of forecast error, regardless of direction | MAPE = Average of (|Forecast − Actual| ÷ Actual) × 100, across periods | How far off the forecast runs, on average, in either direction | A low MAPE gets read as "the forecast is healthy," even when every error leans the same way |
| Bias | The direction of forecast error over time | Bias = Σ (Forecast − Actual) ÷ n | Whether the forecast consistently over-forecasts or under-forecasts | Low bias gets read as "the forecast is accurate," when offsetting errors can cancel out and hide large swings |
Horizon calculates bias automatically at every forecast hierarchy level (SKU, customer-SKU, location, category) alongside MAPE and tracking signal. Planners see bias for every SKU in the same view where they review accuracy, so the directional problem can't hide behind a clean accuracy number.
The FVA report compares bias at each step of the forecasting process: statistical baseline, ML adjustment, sales overlay, consensus. This is how teams identify whether bias is coming from the model or from human overlays. In most implementations, this single view changes how sales overlays are reviewed: the overlay that consistently adds bias without improving accuracy gets retired.
For SKUs flagged with persistent bias, Horizon surfaces the underlying time series so the planner can identify whether it's a data issue (one-time spike in history), a trend break, or a known structural change and apply the right correction.
Random error and biased error sound similar but behave very differently. A forecast with high random error but zero bias produces inventory that swings up and down around the right level. Safety stock can absorb it. A forecast with low random error but persistent bias produces inventory that drifts steadily in one direction. Safety stock cannot fix it because the problem is not variability, it's a wrong mean.
A concrete example. Two forecasts for the same SKU, 12 months of history. Forecast A averages 1,000 units, actuals average 1,000 units, but individual months vary by ±15%. Forecast B averages 1,100 units, actuals average 1,000 units, individual months vary by only ±5%. By MAPE alone, Forecast B looks better (lower variability). But Forecast B is silently producing 10% excess inventory every single month: roughly 1.2 months of cover sitting unused, year after year. Forecast A is noisier but unbiased.
That 10% excess translates directly into cash. As a general formula: excess working capital ≈ average inventory value × bias %. If that SKU carries an average inventory value of $500,000, a sustained 10% positive bias ties up roughly $50,000 in working capital for that one SKU, for as long as the bias goes uncorrected. Run the same arithmetic across a portfolio carrying $20 million in average inventory value and a 10% portfolio-wide bias points to roughly $2 million sitting in stock that would not be needed if the forecast were centred on actual demand. The planner can apply this formula to their own inventory value and bias percentage to size the opportunity before deciding how much correction effort it justifies.

The trap: most teams track only accuracy. They reward forecasters whose numbers look stable and don't notice that the stability comes from a consistent over-forecast. Tracking bias alongside accuracy catches this in a way no other metric does.
Bias is the average signed error, meaning you do not take the absolute value. The sign matters.
Formula: Bias = Σ (Forecast − Actual) / n
A positive number means over-forecasting. A negative number means under-forecasting. Zero means the forecast was unbiased on average.
A note on sign convention
Not every source defines the sign of bias the same way. This page calculates bias as Forecast minus Actual, so a positive number means over-forecasting. Some sources calculate it as Actual minus Forecast instead, where a positive number means under-forecasting. Before comparing a bias figure from a different source against your own, check which direction it's measuring, not just the size of the number.
Three months of data:
Bias = (100 + 100 + 100) / 3 = +100 units. The forecast is consistently 100 units high. This is textbook positive bias.
To make bias comparable across SKUs of different scale, express it as a percentage:
Formula: Bias % = Σ (Forecast − Actual) / Σ Actual × 100
For the example above: 300 / 2,700 = +11.1% bias. A general rule: bias outside ±5% is worth investigating; bias outside ±10% is a process problem.
A more sensitive measure is the tracking signal, which is cumulative bias divided by MAD. It flags persistent bias even when the absolute number looks small.
Formula: Tracking Signal = Σ (Forecast − Actual) / MAD
A tracking signal between -4 and +4 is considered normal. Outside that range, the forecast has drifted and needs intervention.
Statistical forecast models, by construction, produce nearly unbiased forecasts on stable history. So when bias appears, it's rarely the algorithm. The four common sources:
Sales teams, especially in incentive-driven environments, systematically over- or under-forecast depending on quota mechanics. Under-forecasting is common when the forecast becomes the quota. Over-forecasting is common when an inflated forecast triggers manufacturing capacity decisions that sales wants in place.
If the historical period being modelled included a one-time spike (a one-off large order, a pandemic-era surge), and the spike isn't excluded from training, the model will project it forward and produce positive bias.
Models that fit a positive trend keep projecting it even after demand stabilises. The bias appears 3-6 months after the trend actually breaks.
Lost customer not removed from baseline. New competitor not factored in. Channel shift not modelled. All produce one-directional drift.
Bias correction isn't a one-time fix. It's a cycle that repeats every forecasting period, because new overlays, new structural changes, and new one-off events keep introducing fresh bias even after old bias is corrected. The loop has four stages:
Stage 1 of the loop is already automatic in Horizon's demand planning: bias gets calculated at the SKU, customer-SKU, location, and category level alongside MAPE, in the same view a planner already checks accuracy.
What is the difference between forecast accuracy and forecast bias?
Accuracy measures the size of forecast error without regard to direction, typically using MAPE. Bias measures the direction of that error over time: whether a forecast consistently runs high or consistently runs low. A forecast can have low error on average while still being badly biased, because accuracy treats a 10-unit overshoot and a 10-unit undershoot as the same error, while bias treats them as opposites that reveal a pattern.
How do you calculate bias in forecasting?
Bias is calculated as the average signed error: Bias = Σ (Forecast − Actual) ÷ n, where the sign is kept rather than discarded. A positive result means the forecast is running high on average; a negative result means it is running low. Percentage bias expresses the same calculation as a share of actual demand, which makes it easier to compare bias across SKUs of different sizes.
What is MAPE vs. bias?
MAPE and bias are two different lenses on the same errors, not competing metrics. MAPE takes the absolute value of each error, so overshoots and undershoots add up instead of cancelling out, which is what makes it a pure measure of size. Bias keeps the sign, letting errors cancel, and that cancelling is exactly what exposes the drift a pure size metric would miss. Neither metric catches everything alone: a forecast needs a low MAPE and a bias close to zero together, since either one by itself can hide a problem the other would catch.
What is prediction bias?
Prediction bias is the general statistical term for the same concept forecast bias describes in a demand planning context: a systematic, directional gap between predicted values and actual outcomes. It shows up whenever a model's predictions are consistently skewed in one direction rather than scattered randomly around the true value. In demand planning specifically, prediction bias translates directly into inventory risk, since a model that consistently over-predicts builds excess stock and one that consistently under-predicts drives stockouts.
What is an acceptable level of forecast bias?
Three reference points are commonly used. Bias within ±5% is normal variation and not worth acting on. Beyond ±10%, it's a process problem worth investigating. And if the tracking signal moves outside −4 to +4, the forecast has drifted enough to need intervention regardless of what the raw percentage says. None of these are fixed rules, just starting points. A planner working with high-value or supply-constrained SKUs should tighten all three, since the cost of drift is higher there.