How we build and verify a tool

What is checked before a page goes live, how the checks are built, and what they do not cover.

Written and maintained by pengchun.

Why this page exists

Most tool sites ask you to trust the number that appears on screen. There is usually no way to tell whether a calculator was checked at all, or whether its guide was copied from somewhere else and never read. This page is the answer to that: the exact process behind every page here, including the parts that are limited.

The short version: a tool is not published until its answers have been recomputed by a second, independent implementation, its page has been measured in a real browser, and the files on the server have been compared byte for byte with the files that were checked. The longer version is below.

What every tool page contains

Every tool here is a single HTML file. There is no build step, no framework, no bundled dependency, and nothing that runs on a server, which is also why each one loads in well under a second and keeps working offline.

How a number gets checked

The rule that shapes everything else: never check a calculation against itself. If the same code that produces an answer is the code that decides whether the answer is right, the check only proves the code is consistent, not that it is correct. So where a page computes something, the check computes it again from a different direction.

Concrete examples from this site:

The suites that run on every change

More than 4,000 individual checks across 21 suites run before publishing and again on every later change. A suite is either a set of computations, or a real browser.

SuiteWhat it coversRuns in
validateThe site's own bookkeeping: every page listed, dated and linked consistently, no stray characters, nothing advertised that is not thereNode
calc-scoringThe fantasy scoring formula, lifted out of the published page and recomputedNode
subnet-claimsSubnet arithmetic, and the guide and the tool agreeing on itNode
faab-scoringBid suggestions: budget limits, minimum bids, tie-breakingNode
live-calcThe published fantasy calculator, driven end to endNode
fantasy-clusterThat the fantasy tools really do link to each other, with a negative controlNode
diff-engineThe text diff engine against a second implementation, including line endings and duplicate linesNode
ua-filterTelling human visits from bots, with regressions for both false kills and leaksNode
browser-diffThe diff tool in a real browser, desktop and phone widthsChromium
favicon-svgIcon generation: SVG output, size table, data URI round trip, error pathsNode
browser-faviconThat the generated icon actually decodes into an image, and the palette really highlightsChromium
playoff-oddsPlayoff probability simulation against an independent simulationNode
browser-playoff-oddsAsync timing after a click, number inputs, and the clipboard path used by the share buttonChromium
coat-of-armsShield geometry, charge placement, and blazon text round tripsNode
browser-coat-of-armsThe shield rasterised and sampled pixel by pixel, plus palette highlightingChromium
content-pagesGuide thickness, real tables, and the structured data matching the page word for wordChromium
content-claimsEvery specific number stated in a guide, recomputed from the published filesNode
mobile-controlsEntry fields large enough that a phone does not zoom, and no page that pans sidewaysChromium
daylight-savingClock-change instants against the IANA time zone database, region by regionNode
browser-daylight-savingEvery region re-rendered on a real change event, with the countdown ticking on its ownChromium
trust-pagesThe pages that describe the site itself: the author page, this page, and the About page, including whether the numbers on this page still match the test runner's own recordChromium

How we know the checks can fail

A check that can never go red is decoration. It looks like evidence and proves nothing. So each suite ships with a drill that deliberately breaks the thing it is supposed to protect, and the drill fails if the suite does not notice. Across the six drills, 89 deliberate mistakes are made and all 89 are caught.

DrillMistakes madeAn example of what it breaks
Content pages10Reverts a rewritten guide to the thin four-block skeleton it used to share with 20 other pages
Mobile controls3Shrinks an entry field back to 14 pixels, or deletes the phone-only stylesheet rules
Coat of arms24Draws the crescent with an even-odd subtraction, which leaves a solid cap in the corners
Playoff odds22Swaps the win-out and lose-out bounds, so a team's best case looks like its worst
Daylight saving21Returns the year's first clock change instead of the most recent one
Text diff9Drops the plus-one in the longest-common-subsequence recurrence, shifting alignment

Where the checks run

Three places, because each one sees something the others cannot.

What we do not do

The honest list, because a page about verification that only lists strengths is not a verification page.

How to check our work yourself

Frequently asked questions

Are the tools on this site tested automatically?

Yes. More than 4,000 individual checks run across 21 suites before anything is published, and the suites run again on every later change. Some of those checks read the page's own JavaScript and recompute its answers with a second, independent implementation; others drive a real browser and measure the rendered page.

Do the tools send my data anywhere?

No. Every tool on this site is a single HTML file whose work happens in your browser. There is no upload endpoint and no server-side processing, so you can open a tool, switch off your network, and it still works. The only third-party script on the site is Google Analytics, which counts page views.

How do you know a calculation is correct and not just consistent?

By never checking a calculation against itself. Where a page derives a value one way, the check derives it another way from a different source, and the two have to agree. The daylight saving page, for example, works out clock changes from the written rule, while the check reads the same instants out of the IANA time zone database.

Which browsers are tested automatically?

Chromium browsers: Chrome and Edge in headless mode, at a desktop size and at a real 390 pixel phone viewport. Firefox and Safari are not part of the automated matrix, so anything specific to those engines is checked by hand instead. We would rather say that plainly than claim a test matrix we do not run.

What happens if I find an error?

Tell us through the contact page. Every page on this site has one author who is accountable for it, and a correction is made at the source, republished, and then re-checked by the same suites. When a check fails to catch a real error, a new check for that error is added, which is how most of the checks described here came to exist.

← Back to all tools