SaltCellCheck: the hardest wrong fact to catch is the one that says none
For pool owners replacing a salt cell who want the right fit at a fair price.
I built a salt pool cell reference where every number comes from a manufacturer's own paperwork. The mistakes that nearly shipped weren't bad numbers. They were missing ones, and checks that said passed when they shouldn't have.
- 63manufacturer documents on file, each archived and dated, counted by the live site
- 100 of 212fields published, because two blind readings of the same document agreed
- 30Hayward documents read for a rated cell life. None states one: a negative, proven
The whole site, month by month
No month-by-month chart here yet: no search data (not a property in the Search Console or Bing pulls). The dashboard pulls that feed every other report don't include this site.
Someone at the equipment pad with a warning light on
A salt pool owner, standing at the equipment pad in direct sun, phone in hand, with a warning light on and a cell that's four to seven years old. They're deciding between a brand-name cell and a generic one at less than half the price. They want to know what fits, what the warranty really covers, and how long the cell should last.
Every one of those answers is in a manufacturer PDF nobody reads. I wanted the page that reads them, quotes them, and dates them, so a pool pro would trust it and an AI answer would cite it. Here, a wrong fact about acid can hurt someone. Being right is the floor, and the floor is where this site had to start.
Every fact read twice, and absence treated as a claim
A cross-brand database. Each fact lives in one file with its source document and the date it was read, and it renders only after a second, blind reading of the same document, by a model that sees nothing I recorded, returns the same value. A fact that hasn't passed shows as pending or doesn't show at all. Any unverified value in the built pages fails the build, and the build replants the one case that got through to prove the gate still fires.
The rule that changed everything: "the documents don't say" is a claim too. It has to name the set of documents it covers, and the second reading has to come back with "not in document" for every one of them. A re-reader that finds a value doesn't correct the page quietly; it fails the build hard. That is how the site can say the most replaced cell in the country has no published lifespan in 30 Hayward manuals, and mean it.
Live on the site, read Oct 13, 2026
63 documents captured, 100 of 212 fields agreed on two readings, 10 documented absences
What a reader sees instead of a guess
Two Hayward documents quoted side by side where they contradict each other on whether coverage transfers
The three stamps are computed by the site at build time and read off its methodology page.
The system caught me, then I caught the checkers
On July 25, 2026 I filed "does a generic cell void the warranty?" as not stated. My text search had stopped at three hits, all page footers. The blind second reading found the sentence that decides the purchase: a non-genuine cell voids it. The same day the re-reading caught a warranty offer I had written into the evidence chain that no document supported, and a steady "inspect cell" light I had logged as a reminder when it means the chlorine has stopped.
Then the checkers. On July 26, 2026 I found a layout gate that measured wrapper elements and passed the eleven pages it was written to catch; a push that had gone out on a failing check because the script tested a text match instead of the exit code; and an unverified fact rendering in the homepage hero under a "captured" date. Each one became a planted test that has to fail before the check is trusted. And on Jul 25, 2026 one line of build configuration made 58 archived manufacturer PDFs publicly reachable for part of a day. Nothing linked to them; they were still served. The site's changelog says so in public.
Doing the arithmetic also found a defect in a manufacturer's own safety document: the metric acid volumes in one cleaning sheet dilute at a different ratio from the imperial ones. I held that back for a second reading before saying it anywhere.
Reach is small and I'll say so. Google had 16 of 26 known pages in its index on Sep 20, 2026. Bing's export counts 111 Copilot citations through Oct 11, 2026, all of them for /cells/pentair/. This site isn't in my dashboard's search pulls, so there is no click number on this page.
How I measured it. The misses and their dates are from the site's own commit history, read Oct 13, 2026. Index count: Google Search Console's page indexing export. Citations: Bing Webmaster Tools' AI Performance export, a manual pull that stops at Oct 11, 2026.
A gate that runs on deploy can't guard a site nobody rebuilds
I'd make absence a claim on day one, and I'd never trust a check that hasn't failed on purpose. Both held. What didn't hold is the miss I never planned for.
The promise outlived the schedule
The site describes itself as "re-verified on a monthly cycle". The last commit landed on Aug 18, 2026, and the gates only run on deploy. On Oct 13, 2026 every page's "checked" stamp still read Jul 25, 2026. The price gate's own rule fails a capture older than 45 days, and it can't fire on a site that sits still. Every check was green because no check ran.
What changes
A freshness rule has to run on a clock, not on a deploy. "Re-verified monthly" is a promise only a schedule can keep, and my sports site already runs that way: a scheduled job rebuilds it and the gates go red on their own. The same job belongs here. The page still has to get someone to a decision, and being right is only the floor.
The promise is quoted from the site's own structured data; the stamp and the last commit were read Oct 13, 2026.
The evidence

