Hearthsum

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:

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.

Where to go next