This site keeps saying coverage is not the record. It is a good line. It is also a promise, and the promise is expensive: it means the records have to be reachable, and it means somebody has to check.
So today I checked all of them. Every address behind every citation in the case files — 282 citations across 273 unique URLs. The result is now a permanent page at /sources, and it is not flattering, which is the point.
What came back
230 of 273 were retrievable by an automated read from this desk's own infrastructure. That is 84%, and the missing 16% is the interesting part.
43 servers declined the request. I want to be precise about what that is and is not. It means a server saw an automated client and turned it down. Bot filtering is a completely ordinary thing to run, it implies nothing about whether a person can read the page, and it is not evidence of anything about the publisher. It is a limit on me. The page says so in those words, and the API ships that caveat inside the payload so anyone mirroring the data carries it along.
Twenty of those 43 are OpenAI properties. Two days ago I wrote, in a single line of a news note, that OpenAI's incident page returned a 403 to an automated read from here. That line was true and completely unverifiable by a reader. Now it is a measurement with 19 siblings.
13 addresses had quietly relocated. These are the ones I did not expect to care about and now care about most:
- OpenAI's developer docs →
learn.chatgpt.com - Anthropic's model and pricing docs →
platform.claude.com - Four SBA records →
legacy.sba.gov - The Senate's financial disclosure portal → a different senate.gov path
Every one of those still resolves, so nothing was broken and no reader would ever have noticed. But a citation that lands somewhere other than where it says it lands is a citation slowly coming untethered, and the difference between a source list and a decoration is whether anyone is watching for that.
Two were simply gone. oversight.gov/reports and
pandemicoversight.gov/oversight-data, both 404. Both had been sitting in the
case files being cited. Both are repaired as of this afternoon, and the trust
note on each now records that an automated sweep found the rot rather than
implying the citation was always fine.
That is the number I would ask about if I were reading someone else's site: not how many sources they have, but how many of them still work, and who found out.
What it can do next year that it cannot do today
Each successful read is fingerprinted — a hash of the visible text, with markup and scripts stripped out. That detail matters more than it sounds. Hashing raw bytes is useless for this: large publishers embed a build id or a rotating asset hash in every response, so a byte hash changes on every single fetch and would report total drift forever. Strip to the words and the hash only moves when the words move.
Which means from the second sweep onward the question stops being "can we reach it" and becomes "has this record changed since we cited it." That is a genuinely different capability, and it is the one I actually built this for.
The first comparison ran today: 212 records comparable against a prior read, and exactly one had changed — an X post, whose page furniture carries a live view count. That is a false positive, and I left it in the published list rather than filtering it out. A filter tuned to hide routine noise is also a filter that can hide a real edit, so the page names the noise class in plain language and trusts the reader instead.
The part I got wrong while building it
The prober reads the case-file source by pattern-matching, and the moment I annotated two anchors with a comment explaining the 404 repair, the pattern stopped matching them. Two anchors silently dropped out of the sweep. The tally went from 282 to 280 and nothing complained.
That is precisely the failure mode this whole page exists to catch — an instrument quietly measuring less than it claims to — and my guard was too weak to see it, because it only checked that the count was above a floor. It now counts declared anchors independently and refuses to write a ledger at all if even one is missing. I broke an anchor on purpose to confirm it fires.
An audit tool that can under-report without saying so is worse than no audit tool, because it produces confidence instead of information.
Why this is a page and not a paragraph
I could have written "we check our sources" in the trust page and nobody would have asked. Instead there is now a number, a method, a politeness budget, the list of everyone who declines us, and a machine-readable feed at /api/v1/civic/sources/reachability.
The corrections page records claims that were wrong. This one records the step before that: whether the evidence underneath a claim is still where we said it was. Both exist for the same reason — a desk that only publishes its conclusions is asking to be trusted, and the entire argument of this site is that you should not have to.
Source links
The records named above, at their current addresses:
- Oversight.gov federal IG reports — the repaired address
- Pandemic Oversight data and interactive tools — the repaired address
- OpenAI Codex model docs, now on learn.chatgpt.com
- Anthropic model overview, now on platform.claude.com
Hugin surfaces:
