guide

How to check an economic statistic before you publish it

A number in a draft is a liability until you know where it came from. This is the check itself: the four ways a figure goes wrong, how to run it by hand against the primary source, and how to run it in one call. Every example below is a real response from live official data, not an illustration.

1. Why the old habit stopped working

The old habit was to trust a number that sounded right, because a wrong one usually looked wrong. That stopped being true. A language model will produce a figure with the right magnitude, the right units and a plausible source attached, and be confidently wrong about it, because a number that fits the pattern of the training data is exactly what the model is built to produce.

We measured this rather than asserting it. In a pre-registered benchmark of six models across three vendors, answering 100 real economic-statistics questions from memory with no tools, the strongest model scored a Within-Tolerance Rate of 82.0%, a Confabulation Rate of 15.5% and an Answer Rate of 97.0%. Those three are quoted together here because the benchmark's own publication covenant requires it: an accuracy figure without the confabulation and answer rates beside it is misleading, since a model can raise one by declining to answer. The point is not the ranking. It is that the best result still means roughly one confidently-stated figure in six is outside tolerance, and nothing in the output marks which one.

Retrieval does not remove the problem either. A model that reads a page can still attach the number to the wrong year, or quote a revised figure against an old definition. The fix is not better recall. It is checking the specific claim against the specific series, and keeping the pointer that lets someone else repeat the check.

Full method, pre-registration and raw outputs: the benchmark page.

2. The four ways a number goes wrong

Almost every wrong economic statistic in a published draft is one of these four. They are worth knowing by name, because each has a different tell and a different fix.

Right number, wrong year

The commonest one, and the hardest to spot, because the figure is genuine. It is simply attached to the wrong period. US consumer price inflation was 8.0% — in 2022. Claim it for 2023 and the check catches it:

GET /v1/verify?indicator=inflation_cpi&country=USA&period=2023&value=8.0

"verdict": "mismatch",
"official_value": 4.11633838374488,
"diagnostics": [
  "The claimed value matches the 2022 figure (8.0028), the year may be misattributed."
]

The diagnostic is the useful part. "Wrong" tells you to delete the sentence; "this is last year's figure" tells you to change one character.

Stale recall: right once, revised since

US general government gross debt was about 98% of GDP a few years ago, so a model stating 98% for 2023 is not inventing anything, it is remembering an older world. The official figure is 120%:

GET /v1/verify?indicator=govt_debt_gdp&country=USA&period=2023&value=98

"verdict": "mismatch",
"official_value": 120,
"revision_check": {
  "previous_edition": "WEO 2025-10",
  "previous_value": 119.836,
  "matches_previous_vintage": false
}

The revision check matters more than it looks. Official statistics are revised, so "wrong" and "was right when it was written" are different findings that deserve different corrections. Here the claim does not match the previous vintage either, so this is not a revision story — it is simply out of date by several years.

Percent versus decimal

A unit slip, usually introduced by a spreadsheet or a chart library rather than by a person. Barbados inflation in 2024 was 1.4464%, not 0.014:

GET /v1/verify?indicator=inflation_cpi&country=BRB&period=2024&value=0.014

"verdict": "mismatch",
"explanation": "Claimed 0.014 vs official 1.4464 % (annual average) for 2024,
  materially different (difference of 1.43 percentage points (99.0% relative))."

The same family includes millions read as billions, and index points read as percentages. Always check that the unit in the response is the unit in your sentence.

Rounding, which is not an error

A check that flags everything is a check nobody uses. Writing Barbados 2024 inflation as 1.45% is not wrong, it is rounded:

GET /v1/verify?indicator=inflation_cpi&country=BRB&period=2024&value=1.45

"verdict": "match",
"explanation": "... consistent (difference of 0.004 pp is within normal rounding)."

Know which of the four you are looking at before you rewrite anything. Three of them mean the sentence is wrong. The fourth means it is fine.

3. Checking one by hand, in five steps

You do not need this service to do this. If you take nothing else from the page, take these five steps, which are what any careful analyst does and what the API automates.

  1. Name the series, not the topic. "Inflation" is not a series. "Consumer price inflation, annual average, %" is. Most disagreements about a number are actually two people quoting two different series correctly. Debt is the classic case: general government gross debt and central government debt are both real, both official, and different by a wide margin for the same country and year.
  2. Go to the publisher, not to an aggregator. The World Bank, the IMF, the relevant central bank or national statistics office. An aggregator inherits its provider's revisions on its own schedule, so it can be internally consistent and still behind.
  3. Match the period exactly. Calendar year or fiscal year, annual average or end of period, quarter or year. This is where the "right number, wrong year" error is born, and it is also where fiscal-year reporting quietly shifts a figure by a year.
  4. Check whether it is an outturn or a projection. IMF WEO tables carry projection years alongside actuals and they look identical in a table. Publishing a projection as a historical fact is a specific, avoidable error.
  5. Write down the series identifier and the retrieval date. Not the topic and not the URL of a chart. The series id and the date are what make the number reproducible after the next revision, and they are the difference between a citation and a gesture.

That is the whole method. It takes a few minutes per figure, which is fine for one number and impossible for a draft with forty.

4. The same check in one call

StatCite is those five steps as an API, free and without a key. Two ways to use it.

From a script or a spreadsheet

curl "https://statcite.com/v1/verify?indicator=inflation_cpi&country=BRB&period=2024&value=1.4"

The response carries the verdict, the official value, the difference, diagnostics for the classic errors above, and a full citation. To check a whole draft at once, POST /v1/verify_claims takes up to 15 claims in one call and returns a verdict per claim; one bad claim never sinks the batch.

From an AI assistant

StatCite is an MCP server, so an assistant can run the check itself while it drafts, instead of you checking afterwards. There is no key and no signup:

https://statcite.com/mcp

In Claude Code the plugin is the better install, because it adds the verify-then-cite skill as well as the tools, which is what makes the model reach for the check before it publishes a number rather than only having the ability to:

/plugin marketplace add asokore/statcite
/plugin install statcite@statcite

Connection instructions for Claude, ChatGPT, Cursor, VS Code, Gemini CLI and plain stdio are on the home page, and the full tool reference is in the docs.

5. When the honest answer is "nobody publishes this"

A verification tool that always produces a number is worse than useless, because the one time it invents something is the time you will not catch it. Sometimes the correct answer is that the series does not exist for that country.

Anguilla is a real example. Ask the World Bank and IMF chain for its government debt and there is nothing to return — Anguilla is not a World Bank reporting economy and is absent from the IMF WEO payload for that series. The response says so rather than substituting a neighbour or an aggregate.

But the number does exist. It is published by the regional central bank, which is a different source with a different definition and its own units:

GET /v1/series?id=caribstat/ECCB/total-public-sector-debt/AIA.a

"name": "Total Public Sector Debt: Central Government Debt",
"unit": "EC$M",
"citation": "Eastern Caribbean Central Bank, Total Public Sector Debt,
  Central Government Debt, Anguilla (annual), data as at 08 June 2026."

Note what changed with the source: this is central government debt in millions of Eastern Caribbean dollars, not general government debt as a share of GDP. It answers a related question, not the same one, and saying so is the point. For several Eastern Caribbean series, including Anguilla and Montserrat, the regional central banks are the only citable machine-readable publisher there is — which is why StatCite carries them alongside the World Bank and the IMF. The full list, with each publisher's licence and the basis for it, is on the sources page.

6. Citing it so a reader can reproduce it

A citation is not an acknowledgement, it is an instruction for repeating the measurement. It needs the publisher, the dataset, the series identifier and the date you retrieved it, because the value can legitimately change after you publish and the reader needs to know which vintage you saw.

Every StatCite response carries those fields, plus ready-made BibTeX and APA strings derived from the same fields, so the reference and the prose cannot drift apart:

"citation": {
  "source":       "International Monetary Fund",
  "dataset":      "World Economic Outlook (April 2026)",
  "series_id":    "imf/GGXWDG_NGDP",
  "series_name":  "General government gross debt (% of GDP)",
  "retrieved_at": "2026-08-31",
  "export_formats": { "bibtex": "@misc{...}", "apa": "..." }
}

The figures belong to their publishers and carry the publishers' own licences, which each response names. Attribute the number to the publisher, never to StatCite. The reuse terms set out the split.

7. The checklist

For the last read-through before anything goes out.

  • Every figure names its publisher and its series, not just its topic.
  • The period in the sentence matches the period of the observation, and you know whether it is annual average or end of period.
  • Projections are labelled as projections, never presented as outturns.
  • The unit in your sentence is the unit in the source: percent, percentage points, index, or currency, and the right order of magnitude.
  • Where two sources disagree you have said which definition you are using, rather than picking the number that suits the argument.
  • A figure with no published source is cut or attributed as an estimate, not rounded into confidence.
  • The retrieval date is recorded, so a later revision does not make you look wrong for something that was right when you wrote it.