Noxia

Field note · What we found

This site refuses to build when one of its own figures goes stale.

A published figure has no expiry date, which is why the internet is full of statistics about a world that no longer exists. We gave ours dates, made the dates enforceable, and found out what that actually costs.

4 min read Sources checked 23 September 2026

The short answer

Every source on this site carries a volatility class that sets how often it must be re-read: live 30 days, dataset 180, regulatory 180, dated 365, and fixed never. The build prints anything overdue from the first day, and stops entirely at 30 days past due. The site currently carries 310 sources across five classes.

On this page · 7 sections

The usual way a figure dies is quietly. It was true when it was published, nothing happened to the page, and five years later it is a statistic about a market that has changed shape.

A "last updated" date does not fix this, because it records when somebody touched the page rather than when anybody checked the number. A date nobody is obliged to renew is decoration.

What decides how often a figure is re-readFive volatility classes set the re-check interval. Live sources such as a leaderboard, an index or a price move without notice and are re-read every 30 days. Dataset sources, annual industry datasets, every 180 days. Regulatory sources, rules in force, every 180 days. Dated publications whose figure is fixed, every 365 days. Fixed sources — arithmetic, our own stated opinion, or a historical artefact quoted as one — never expire, and saying so is more honest than a date nobody will act on.The classesa property of the sourcelive — 30 days: a price, an index, a leaderboarddataset — 180: an annual industry datasetregulatory — 180: a rule in forcedated — 365: a fixed figure, re-read yearlyfixed — never: arithmetic, or our own opinionWhat the build doesthe part that makes it realPrints from the first day overdueStops entirely at 30 days pastFails on an unknown classRenders the next check date on the pageWhat decides how often a figure is re-readFive volatility classes set the re-check interval. Live sources such as a leaderboard, an index or a price move without notice and are re-read every 30 days. Dataset sources, annual industry datasets, every 180 days. Regulatory sources, rules in force, every 180 days. Dated publications whose figure is fixed, every 365 days. Fixed sources — arithmetic, our own stated opinion, or a historical artefact quoted as one — never expire, and saying so is more honest than a date nobody will act on.The classesa property of the sourcelive — 30 days: a price, an index, aleaderboarddataset — 180: an annual industrydatasetregulatory — 180: a rule in forcedated — 365: a fixed figure, re-readyearlyfixed — never: arithmetic, or our ownopinionWhat the build doesthe part that makes it realPrints from the first day overdueStops entirely at 30 days pastFails on an unknown classRenders the next check date on the page
Cadence is a property of the source, not of the article.Our own implementation, in notes/freshness.mjs.

Why the class rather than a global rule

Because "review your content every six months" is advice that treats a price and an Act of Parliament as the same object.

A leaderboard changes without notice and without a version number; thirty days is generous. A statutory instrument rarely changes and is catastrophic when it does and you did not notice; a hundred and eighty days with a hard stop is right. A randomised trial published in 2019 has a figure that will not move, but the paper could be retracted or restated, so it gets read once a year. Arithmetic never expires, and saying so out loud is better than a date nobody will honour.

The expiry case is separate and stronger

A prediction with a horizon — "40% of enterprise applications by the end of 2026" — does not decay. It stops being a forecast on a known date and becomes a claim about the past, at which point it is either wrong or it is history, and either way it cannot keep being quoted as a forecast.

That date is written down beside the source when the source is a prediction, and hitting it is treated as harder than going stale.

A forecast has a day on which it stops being one. Almost nobody writes that day down, which is why old predictions circulate forever.

What it actually costs

Less than expected, and not where expected.

The cost is not re-reading sources. It is choosing the class honestly when you know a stricter one will interrupt you. Labelling our own Vercel bill as "live" would force a re-read every thirty days; labelling it "dated" means once a year. We chose "dated" because the note reports three specific days rather than a running total, and that reasoning is written in the source entry so it can be disagreed with.

The second cost is real but rare: a build blocked on a stale figure in an unrelated note, on the day you wanted to fix a typo. The thirty-day grace exists for exactly that, and it is a grace rather than a licence — the report prints from day one.

What we would tell another firm

You almost certainly do not need this. It is heavy machinery for a site with 310 sources and a stated position that every figure names its origin.

What is worth stealing is smaller and free: beside each number you publish, record where it came from and when you last looked. Not in a spreadsheet — beside the number, where the next person editing the page will see it. That alone prevents the most common failure, which is not staleness but amnesia: nobody remembers where the figure came from, so nobody can check whether it still holds.

The related discipline is refusing to publish what fails checking, which cost us nine figures and is set out in the note on the ones we removed. The whole register is public at what we checked, with every source, its class and its next date.

What this does not tell you

A re-check date does not make a figure true. It makes it re-read, which is a lower bar and a different virtue — the 1,445% claim we struck was not old, it was wrong on the day it was published, and no cadence would have caught it.

Reading the source against the sentence catches that, and it is a separate exercise. So is looking for what has happened since: on 24 September 2026 that second exercise found notes whose sources were right when read and had since been overtaken, which a cadence would have caught only when it came round.

Nor does the system judge. It tells a human that something is due; a human decides whether the figure still holds. Automating the reminder is easy and automating the judgement would be the mistake — which is the same boundary we draw in every system we build, and it is the argument in the note on what an agent may decide and the audit layer.

Questions people actually ask

How often should published statistics be re-checked?

It depends on the source rather than the article. On this site a live source such as a price or index is re-read every 30 days, an annual dataset and a rule in force every 180, a dated publication once a year, and arithmetic or a stated opinion never. Treating all content on one review cycle treats a price and an Act of Parliament as the same object.

What is content decay?

A figure that was true when published becoming false without anything happening to the page. A "last updated" date does not prevent it, because it records when someone edited the page rather than when anyone verified the number.

What happens when a source goes out of date here?

The build prints it from the first day overdue and stops entirely at 30 days past due. An unknown volatility class also fails the build. The next check date for each note is rendered on the page, so a reader deciding whether to trust a number can see when we next intend to look at it.

What should a small firm copy from this?

Not the machinery. Record, beside each number you publish, where it came from and the date you last looked — in the page itself rather than a separate spreadsheet. That prevents the commonest failure, which is not staleness but amnesia: nobody remembers the source, so nobody can check whether it still holds.

Sources

  1. Our own implementation, notes/freshness.mjs in this repository, read 23 September 2026. Cadence by volatility class: live 30 days, dataset 180, regulatory 180, dated 365, fixed null. GRACE_DAYS = 30 — the report prints from the first day overdue and the build stops beyond the grace. An unknown volatility class throws. A source with no class is treated as dated, which is the conservative default. `nextCheck` renders the next due date on each page. The count of sources on this page is written by the build, not typed, so it moves when the site does. — first-party and reproducible: the file is in this repository and the build prints the totals on every run
  2. The expiry mechanism for predictions is separate from cadence: a forecast carries the date on which it stops being a forecast, and reaching it is treated more severely than going stale. — first-party; our own design decision, described rather than claimed as best practice
  3. The 1,445% multi-agent claim we struck was not stale — it was misdescribed on the day it was published: Gartner’s count of inquiries over five quarters, written as a year of demand. No re-check cadence would have caught it; reading the source did. (We first recorded it as misattributed; that was corrected on 24 September 2026, when re-reading found the Gartner page our first search missed.) noxia.co.uk ↗ — first-party, and the limit on everything above

Checked 23 September 2026. Numbers that move — leaderboards, live indices — are re-checked every 30 days; annual datasets and rules in force every six months; dated research once a year. If something here has gone stale before we got to it, tell us and we will correct it and say what changed.

Cite this note

Noxia, “This site refuses to build when one of its own figures goes stale”, Field notes, 23 September 2026; sources checked 23 September 2026. https://www.noxia.co.uk/field-notes/the-build-stops-when-a-figure-goes-stale

Beside every number: where it came from, and when you last looked.

You do not need our machinery. You need the two facts next to the figure instead of in somebody’s memory. We will go through the numbers currently published on your site, find the ones nobody can source any more, and set up the smallest thing that stops it happening again.

Talk to us about this
What we found: This site refuses to build when one of its own figures goes stale.