MAD measures the average absolute forecast miss in the original business units. This page calculates it from saved forecasts and actuals, proves the result, and explains the row count, scale and missing-data choices that affect it.
MAD forecast accuracy measures the average size of a forecast miss in the same units as the forecast. MAD stands for mean absolute deviation: take each forecast's absolute difference from actual, add those differences, and divide by the number of matched observations. A lower result means smaller average misses when the unit, horizon and rows are comparable.
Absolute forecast error = |Forecast - Actual|
MAD = Sum of absolute forecast errors / Number of matched observations
This is the arithmetic mean of the absolute errors. The published forecast-error definition describes MAD as average absolute forecast error in units. It is also commonly called mean absolute error, or MAE.
Here, deviation means the difference between a saved forecast and its actual outcome. It does not mean deviation from average demand, and it does not mean median absolute deviation, a different statistical measure that shares the abbreviation. Write the full definition on the report so different teams calculate the same thing.
The broader forecast accuracy glossary explains the distinction between the size of misses and their direction. MAD measures size. It cannot tell the reader whether forecasts are systematically high or low.
Start with a forecast saved before the outcome was known and an actual demand export for closed periods. Use a consistent forecast horizon, such as the commitment made before each target week began. Do not overwrite that saved number with the latest revised forecast.
| Column | What belongs in it |
|---|---|
| Product or business unit | The entity being forecast |
| Target period | The week or month being scored |
| Forecast creation date | When the saved forecast was available |
| Actual | The observed result for that entity and period |
| Forecast | The saved expectation for the same row |
| Unit of measure | Cases, labor hours or USD, used consistently |
Resolve duplicate keys and unmatched rows before counting observations. A product-week forecast matched to several shipment lines must be compared with the summed shipments for that product-week. Otherwise the forecast repeats and the denominator no longer describes the business question.
A US parts distributor scores the saved weekly forecast for one product at one distribution center. Every row uses cases and the same forecast horizon. Signed error is forecast minus actual; positive values mean the forecast was too high.
| Target week | Actual (cases) | Saved forecast (cases) | Signed error (cases) | Absolute error (cases) |
|---|---|---|---|---|
| Week A | 100 | 120 | 20 | 20 |
| Week B | 140 | 110 | -30 | 30 |
| Week C | 80 | 90 | 10 | 10 |
| Week D | 120 | 100 | -20 | 20 |
| Total | 440 | 420 | -20 | 80 |
Work the calculation in this order:
| Step | Calculation | Result |
|---|---|---|
| Add absolute misses | 20 + 30 + 10 + 20 | 80 cases |
| Count matched weekly observations | Week A through Week D | 4 |
| Divide total absolute error by count | 80 / 4 | 20 cases MAD |
The forecast missed actual demand by an average of 20 cases per weekly observation. This is not 20%, and it is not a guarantee that the next miss will be 20 cases. It summarizes the observed errors in this evaluation window.
The signed total is -20 cases, so mean signed error is -20 / 4 = -5 cases. That directional average is smaller in magnitude because high and low forecasts offset. Taking the absolute value of the signed total would therefore lose much of the error the operations team experienced.
The basic proof is:
MAD × Number of matched observations = Total absolute error
Here, 20 × 4 = 80 cases, matching the absolute-error column. Also reconcile the 440 actual cases to the source demand export and the 420 forecast cases to the saved forecast file. A correct average does not prove that all source rows were included.
Keep the unrounded result for comparisons. This example gives an exact whole-case average; the variation below uses one decimal place. A report that rounds before comparing methods can hide a small difference between them.
Suppose only Week A's saved forecast changes from 120 to 130 cases. All actuals and the other saved forecasts stay the same.
| Observation | Actual (cases) | Revised comparison forecast (cases) | Absolute error (cases) |
|---|---|---|---|
| Week A | 100 | 130 | 30 |
| Week B | 140 | 110 | 30 |
| Week C | 80 | 90 | 10 |
| Week D | 120 | 100 | 20 |
| Total absolute error | 90 |
The revised comparison has MAD of 90 / 4 = 22.5 cases, against 20 cases before. The additional overforecast raises absolute error; it cannot disappear against Week B's underforecast. Treat this as a comparison between saved forecast versions, rather than rewriting history after actuals become available.
MAD divides by the observation count. A percentage-error measure instead divides a miss by a demand value before or after aggregation, depending on the metric. The accuracy and bias guide covers per-row percentage errors; the WAPE guide covers errors scaled by total actual demand.
The units matter just as much. MAD in cases cannot be compared directly with MAD in individual pieces, and dollar errors should not be averaged with unit errors. Forecasting: Principles and Practice classifies mean absolute error as scale dependent and explains why different units prevent direct comparisons.
For a financial forecast, use actual and forecast dollars consistently; the output is dollars per observation. For an operating forecast, keep the physical unit the planning team controls. A finance analyst and demand planner may both use MAD, but they must agree on the row definition before comparing results.
For the report-building workflow using these saved files, see the forecast comparison report guide.
Bring saved forecast and actual files with matching business entities, target periods, creation dates and units. Covirage maps the columns, and its tools compute and check the figures; the external AI model explains the result with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for forecast analysis for the supporting workflow.
For forecast evaluation, MAD usually means the mean absolute difference between forecasts and actuals, which is the same calculation as mean absolute error. Define it explicitly because MAD can also refer to other deviation measures in statistics.
It uses the number of matched observations being scored. For a single product with one row per week, that is the number of weeks. For a product-week file, each valid product-week pair is one observation.
Yes. MAD does not divide by actual demand, so a confirmed zero actual remains a valid observation. Calculate the absolute forecast miss for that row and include the row in the count. Missing demand is a separate data issue.
A good MAD depends on the unit, forecast horizon, demand level and cost of a miss. Compare competing forecasts on the same observations, then assess whether the average miss is acceptable for inventory, staffing or financial planning.