Hand seventeen small detectors a table of numbers and tell them nothing about what the numbers mean. Then hand them a month of earthquakes, the balance sheets of every American public company, twenty thousand stars, and two catalogues of planets. Ask each detector one question: does anything here break the pattern the rest of the table sets? One of them, it turns out, can tell whether a human typed the numbers.
The instrument
The tool is called weird. It lives in the exoplanet lab and was built to look at our own survey results without being told what a transit is. Each of its seventeen families learns one kind of "normal" from the rows in front of it — how many distinct values a column takes, whether values pile up at a boundary, whether leading digits follow Benford's law, whether trailing digits are suspiciously round, whether a ratio between two columns holds across the table and fails in one row — and reports only the places where the pattern breaks.
The rule that makes it worth anything: before a family is allowed to report, it must first rediscover a planted anomaly and stay silent on a planted non-anomaly, in the same corpus. A family that fails either test withholds everything it found and prints BLIND. A detector whose silence has never been tested is a detector whose silence means nothing.
Five tables nobody here made
| Corpus | Source | Rows | Numeric columns | Families that could see | Findings kept |
|---|---|---|---|---|---|
| Every seismic event on Earth, 30 days | USGS | 11,073 | 15 | 16 of 16 | 1,759 |
| Total assets, every US public company, one quarter | SEC EDGAR | 6,142 | 2 | 15 of 15 | 5 |
| Stars sampled at random from 1.8 billion | ESA Gaia DR3 | 20,000 | 19 | 15 of 15 | 2,202 |
| TESS Objects of Interest | NASA | 8,148 | 66 | 16 of 16 | 12,219 |
| Confirmed planets, 1992–2026 | NASA | 6,366 | 24 | 15 of 15 | 6,943 |
Pulled live 2026-09-12: USGS all-month GeoJSON feed; SEC XBRL frames API (us-gaap:Assets, CY2025Q4I); Gaia DR3 via the Heidelberg TAP mirror (random_index < 150,000); NASA Exoplanet Archive TAP (toi; ps with default_flag=1). "Could see" = passed its own planted positive and planted negative on that corpus. Findings kept = after the tool's own explain-away pass, before any human read them.
The row that earns it
| Family | Quakes | SEC | Gaia | TOI | Planets | Reads as |
|---|---|---|---|---|---|---|
| rounding — trailing digits too round | 27% | 50% | 0% | 14% | 17% | whether a person typed it |
| benford — leading-digit law | 13% | 50% | 26% | 32% | 29% | scale-free quantities vs. bounded ones |
| pileup — values stacked at a boundary | 33% | 0% | 11% | 2% | 8% | caps, clamps, detection floors |
| discrete — a column secretly categorical | 7% | 0% | 0% | 38% | 0% | flags stored as numbers |
| order — row order carries signal | 73% | 100% | 63% | 55% | 96% | the API sorted it — uninformative |
Each cell: share of the corpus's numeric columns on which that family reported at least one kept finding. SEC has two numeric columns, so its 50% is one column — the asset value itself.
Rounding separates the reported from the measured. Balance-sheet totals are entered by accountants; earthquake magnitudes are published to a tenth; planet radii and periods pass through papers and get quoted to the precision the author chose. All of them show round trailing digits somewhere. Gaia's nineteen columns are instrument output — parallaxes, proper motions, magnitudes to the sixth decimal — and the rounding family fires on none of them. The detector knows nothing about dollars or arcseconds. It saw the difference between a number a person wrote down and a number a machine wrote down, on digit statistics alone.
Order indicts itself. The family that asks whether row order carries information fires on more than half the columns of every corpus here — because every one of these APIs returns rows sorted by something. On our own survey tables, where row order is the order stars were searched, that family is useful. On anything fetched over HTTP it reads the delivery order, and the table above records it as uninformative rather than quietly dropping it.
The one Gaia finding worth a second look
Among 2,202 kept findings on Gaia, the pileup family's top line: astrometric_excess_noise sits exactly at zero for 44.2% of the sample. That is a clamp — the pipeline reports zero excess noise when the fit needs none — and it is a documented convention, which is the correct reading of nearly anything a detector like this flags in a professionally curated catalogue. The warning written into the sweep before it ran still holds: the right question is "what convention produces this shape?", never "ESA has a bug." The tool's job is to find the shape. Naming the convention is a person's.
Limits
One pull of each corpus, one day. The rounding result rests on five tables and would need dozens to become a rule rather than an observation. Gaia's 0% is a strong zero (nineteen columns, all instrument-derived) but the human-reported side is a mix of provenance — earthquake magnitudes are machine-estimated and then published rounded, which is exactly the kind of case that would need untangling. Findings-kept counts are the tool's, not a reviewer's; the TOI table produced twelve thousand of them and I have read perhaps forty.
Method, and a colophon
Instrument: lab weird in the windowsill-lab repository — seventeen families, each gated on a planted positive and a planted negative per corpus. Sweep: scripts/weird_external.py against the five files above; Gaia re-pulled from the Heidelberg TAP mirror after ESA's endpoint returned HTML. Run 2026-09-12 on a home Linux box, 831 seconds for Gaia, 489 for the TOI table.
Written with Claude Code. The tool was built on 2026-09-10 and this is its first reader who is not its author.