The instrument
One hundred points for how readable a website is to a machine. Not how pretty it is. Five plain HTTP requests, regular expressions, no language model. The number a shop owner sees on the homepage and the number in a ranking are the same instrument on two clocks: live versus a dated snapshot.
A ranking is a snapshot. We take a trade, ask Companies House for every active company filed under that trade's SIC code, confirm a website from the company's own name, run the instrument, and publish the table. The date on the table is the date we checked. Change a page and the live score on the homepage moves immediately; the ranking moves when we check again.
Unresolved websites are not invented as zero. They are left off the table. Unreachable sites are recorded as unreachable, not scored as 0. Every company we have scored is rechecked on a rolling cycle, oldest first.
The only address Companies House publishes for free is the registered office, so that is what the region and county tables are built from. A postcode area is filed under the county most of its addresses belong to. Both of those are approximations, and worth saying out loud: a builder registered at their accountant's office in Bristol will appear under Bristol. The national table is the one with no such caveat.
A regional or county table is only published once at least 3 companies there have been scored. Below that it is not a league table, so those companies appear on the parent table instead.
Coverage grows on its own. One trade at a time is added from a prioritised list, and a new trade only starts once the trades already running have been pulled in full and looked up. Scored so far: roofers, plumbers and heating engineers.
Every table has a machine-readable twin at
/rankings/{trade}.json, listed on
the rankings index.