How we check our figures
Every number on Hearthsum is a record before it is a sentence. The page is built from those records, and the build refuses a number that is not one of them.
Where a figure is allowed to come from
We read the body that publishes the figure: the government department, the regulator, the certification scheme, or the supplier's own tariff page. A comparison site, an installer blog or another guide is not a source. When one of those disagrees with the primary document, the primary document wins, and the page says where the other one went.
If a figure cannot be checked at that source, it does not go on the page. A gap is allowed. A guess is not.
What the record holds
Each figure is one entry: the source address, who publishes it, the day we read it, and the day it is next due a read. The words under the figure are written for the reader. The working notes we keep for ourselves are a separate field, and the build stops if those notes ever appear on a page.
Where we have multiplied or subtracted something ourselves, the page says so beside the number, in a fixed sentence, instead of presenting the result as something the source published. A deadline on a page has to be the deadline on the record. A full date has to have been handed over by a record too.
The receipt under each figure is that record: the source, the link, and the day we read it. The same records, without our private notes, are public at /api/metrics.json.
What the build refuses
The site is generated. Typing a number into a paragraph does not publish it. The build stops if a money figure on a page is not one a record handed over, if a total we worked out is missing the sentence that says so, if the page contains a lead-gen phrase, if a link points at a page of ours that does not exist, or if the structured data does not parse. A page that fails does not replace the last good one.
The daily rebuild
Vercel builds the live site from the main branch of this site's repository on GitHub, and a rebuild runs every morning at 06:45 UTC. A change pushed to that branch is published by the same kind of build. The daily rebuild is why a countdown moves on its own and why a figure the source has already published for a future period takes over on the day that period starts. A figure itself changes only when its record changes. The date under the title of a figures page is the latest day we read a figure on that page, not the day the rebuild ran.
The morning watcher
A watcher runs every morning at 06:30 UTC. It never edits a page. It does five things:
- It opens every source link on every page and flags one that has gone dead.
- It notices when the text of a source page it watches has changed, so a figure that moved gets read again.
- For two figures it reads the number off the source page itself and compares it with ours: the 0% VAT rate on solar panels, from HMRC's guidance on gov.uk, and the Boiler Upgrade Scheme grant for an air source heat pump, from the scheme's own gov.uk page.
- It lists every figure whose recheck date has passed or falls within the next seven days.
- It confirms that the live site is the latest build of the repository, and that it rebuilt within the last two days.
Most figures are still re-read by a person on their recheck date: someone opens the source and writes down what it says. When a recheck date passes, the build prints a warning as well. It does not invent a new number and it does not take the old one down.
Corrections
If a figure looks wrong, the contact page says what to send. A figure moves when we have read the source again and the source says it has moved, not because a message said so. The checked date on the receipt moves to the day of that read. That date is the record of the correction.
What this page is not
Hearthsum publishes the sums. It does not recommend a scheme, a supplier or a price. The linked official source remains the document that counts.
Questions people ask
Where do Hearthsum's figures come from?
From the body that publishes them: a government department, a regulator, a certification scheme, or the supplier's own page. Not from another website's roundup. Each one carries the link and the day we read it.
Does the site update by itself?
Vercel rebuilds it every morning from the repository on GitHub, so countdowns move and a figure already published for a future period takes over when that period starts. A figure itself changes only when its record changes, which happens when someone reads the source again.
What happens when a figure is due a re-read?
The build warns and the morning watcher lists it. The old figure stays up, because taking it down without a new reading would be a guess. For two figures the watcher also reads the source itself and flags any difference.
How do I tell you a figure is wrong?
Use the contact page. We re-read the source. If the source has moved, the receipt date moves with it. A message on its own does not change a figure.