Did the experts get it right?
Every autumn, Denmark’s three official forecasters publish next year’s GDP growth and inflation. We took ten years of them from the original reports and checked them against what happened. We also checked them against a lazy guess anyone could make: next year will be like this year.
- Method fixed before the first score
- Every number quoted from its report
- Data and code on GitHub
| Forecaster | GDP growth | Inflation | ||||
|---|---|---|---|---|---|---|
| Forecast | Lazy guess | Beat it | Forecast | Lazy guess | Beat it | |
Mean absolute error against Statistics Denmark’s current figures. “Lazy guess” is each report’s own estimate for the current year, repeated for next year. Ten years is a small sample: differences of a few tenths between the three are not meaningful.
Forecast against what happened
Pick a forecaster and a number. Gold is what they forecast in the autumn, grey is the lazy guess, and white is what actually happened.
–
| For year | Forecast | Lazy guess | Happened | Closer | Source |
|---|
What we found
Forecasts are hard, and a simple rule is a fair test. Here is how the professionals did against it.
All three beat the lazy guess on GDP
On average their growth forecast was about one percentage point closer than “next year like this year”. They beat it in 6 to 8 years of 10.
Inflation was a closer race
The Government and the Nationalbank beat the lazy guess in 6 years of 10. The Economic Councils’ forecast was only slightly better than the lazy guess on average, and closer in 4 years.
Nobody saw 2022 coming
In their last reports of 2021, all three expected inflation of 1.4 to 2.2 per cent in 2022. It came in at 7.7 to 8.6 per cent, depending on the price index.
“Too pessimistic” is mostly revisions
Against today’s GDP figures, all three look too pessimistic. Against the first figures published a few months after each year, the bias is close to zero. Statistics Denmark later revised growth up, and nobody could have known that in advance.
The rules, fixed before the first score
The outcomes are history, so this can’t prove we didn’t know them. What it does prove is that the rules weren’t tuned afterwards to make anyone look good or bad, including the lazy guess.
The last one before New Year
For each year, the latest report published on or before 31 December. A later report knows more, so it never stands in for a missing one. That is why 2022 uses the Government’s August report, since there was no December report that year because of the election.
Their index, not ours
Each forecaster is scored on the price index it forecasts: consumer prices for the Government, the EU-harmonised index for the Nationalbank, and the private consumption deflator for the Economic Councils. Every value is quoted with its page.
Only what they knew then
“Next year like this year” uses the same report’s own estimate for the current year. So the question is only whether the forecast added anything to “no change”.
Today’s figures and the first ones
GDP gets revised for years, sometimes by more than a percentage point. So forecasts are scored against today’s figures and also against the first figure Statistics Denmark published. 2020 is also shown left out, a rule set in advance because nobody forecast the pandemic in December 2019.
Not a ranking
Forecasts assume a given policy, and some are made to change the policy, which then changes the outcome. With ten years each, small differences between the three mean nothing. The only question is how the published numbers compare with what happened and with a simple rule.
Check it without trusting us
Every number on this page can be traced to a page in a public report or a Statistics Denmark table.
The rules came first
The method was committed before any score was computed. How it was applied where it didn’t say is in the changelog, committed before the first scoring run.
Read the method →Every number has a source
For each value: the report’s URL and SHA-256, the page, and the table row quoted word for word. A script checks that every number appears in its quote.
See the evidence →Run it yourself
Three short scripts, standard Python only. On every change, GitHub rebuilds the data and results and fails if anything differs from what is published.
Full results →