Trimtabist
The independent record of what US trade rules required and what importers were actually billed — and a free check of any customs entry you have filed against it.

What we got wrong

Dated, in order, with the size of each error. Withdrawals are in the same list as everything else — a correction filed somewhere quieter than the claim is not a correction.

Entries
36
Most recent
2026-09-09
Outright withdrawals
4 — figures and claims pulled entirely, not adjusted
The standard
Not “we updated a figure” but “the figure was 7.9× high, here is why, here is the corrected one”.
What retraction means here
A public, reasoned status. Never a deletion. Every corrected page stays at its address with the change printed on it.
Where most of these came from
An adversarial audit of our own published data on 2026-08-26. It found more than we expected, and every finding is either fixed below or listed as still open.

An empty log would not mean nothing was wrong
It would mean nothing wrong had been found yet.

A few entries below name our internal codes for the datasets involved — TT-001, TT-010 — and read as jargon because they are. They are kept exactly as they were published: editing a correction after the fact is not a correction.

2026-09-09 · we re-derived our own measures, and eleven things changed We did to our own numbers what we ask of everyone else’s: took them apart and checked how they were built. Eleven corrections follow this one, all dated today, all found in a single pass. One problem runs through most of them. A rate is a division, and three choices sit inside ours — what goes underneath, which period is the yardstick, and how finely the data is cut. Each is defensible, each moves the answer, and none of them was written anywhere on this site. They are now, on /method. The correction is not that a number was wrong; it is that it was underspecified, and a reader could not see the choices, let alone disagree with one. Every figure below was recomputed from source before it was changed, and every changed page was fetched and read after it shipped.
2026-09-09 · the front door claimed a pre-registration this site had already withdrawn The homepage and /studies described the studies as “each registered before it was run”. Our own audit of 2026-08-26 — published on /nulls under the heading the claim this page is most vulnerable on — found that not supported by the file record for at least 12 of 20 studies, with one cleanly pre-registered. So one page said one of twenty and three pages said all of them, and the retraction sat where almost nobody would reach it. By this site’s own rule — a correction filed somewhere quieter than the claim is not a correction — it was failing on its own terms. The blanket claim is gone from every place it was made. The one study that genuinely was pre-registered still says so.
2026-09-09 · two correlations measured which cells were occupied, not what moved through them We published that the pattern of imports correlates at 0.83 with itself month to month and 0.77 across the war window. Both were computed across the whole origin-by-commodity grid — a grid that is 96.1% empty. Replacing every value with a simple did-anything-ship-here flag and running the same calculation returns 0.71 against the published 0.77, so about 92% of that number was describing which cells are occupied rather than how much moved through them. Computed on the trade that exists in both periods and weighted by its value, the figures are 0.95 and 0.86. Both higher than we published. The finding — that the map of trade is remarkably stable — was true, and we understated it. The instrument was wrong; the conclusion was not. The old pair is kept in the data as corr_*_dense so the two can be compared.
2026-09-09 · a correlation was published “across the entire war window” and had no window The same figure took the full extent of whatever the table happened to hold, and the table grows. So the number silently redefined itself every time a month landed, while the page went on calling it the war window. The endpoints are now computed, published and printed: 2024-01 to 2026-05.
2026-09-09 · the required rate was published at each era’s own import mix, and only that We reported the required rate roughly doubling, 11.6 → 25.3 percentage points. That is an average taken at each era’s own mix of imports — the right answer to what was charged on what actually arrived, and the wrong answer to what did the rulebook cost. When a tariff rises, imports move away from the goods it hits, so the later average is measured on a basket that has already dodged part of the increase. Holding the basket fixed, the same rulebook reads 11.6 → 33.1. The published figure understated by 31%. Both are now on /studies, and /method explains which answers which question. The fixed-basket figure is a Fisher index computed at origin-and-product grain over 17,148 cells; it sits between its own two halves, which is the test such an index must pass.
2026-09-09 · a chart drew a straight line across two months that do not exist Study 04 rendered a 30-month window with April and May 2025 absent, joined by a continuous line — and that segment is the steepest rise in the series. In those two months every single line was undeterminable: the rate turned on a declaration made at entry that monthly receipts do not carry, so nothing could be settled. The ledger recorded that correctly on ~98,000 rows. The publication hid it. Those are the only two such months in the record, they sit at the peak of the tariff wave, and the rulebook becoming unsettleable is the most interesting fact on the page. It now says so, the era label is corrected, and the coverage is stated as 28 months of 30.
2026-09-09 · our own headline null compared four different populations as if they were one The test we ran on ourselves — does our rule gap find the codes where duty was struck down — was published as four rankings of “the same 86 codes”. They are not the same codes. Our signal only exists where it can be resolved, so the row we are judged on covers 29 of the 86, while the sort that beats it covers all 86; the other two rows cover 64 and 85. The real count is now printed against every row. The asymmetry is part of the finding, not a footnote to it — a signal silent on two-thirds of a book has already lost to one that is never silent. And at 86 codes our headline correlation would not have read as a null at all.
2026-09-09 · every commodity page counted eleven months and said twelve The window on each six-digit lookup was built as latest minus eleven months with a strict comparison, which includes eleven months, under a label reading “twelve months to”. Tonnage and the typical unit value were each short one month on every lookup. Origin shares were unaffected, since every row used the same window. The correct construction was already in this codebase and used by two other page families; this one had its own. It now matches them.
2026-09-09 · a published unit value quietly excluded small consignments The typical value per kilo on each lookup is a geometric mean, chosen so one enormous shipment cannot set it. It is also taken only over observations above one tonne, and that exclusion appeared nowhere. Small consignments carry systematically higher value per kilo, so the published figure is biased low by an amount we have not measured. The floor is now stated on the page. A second floor on the same page was already disclosed; this one was not, and it is the one inside the number rather than beside it.
2026-09-09 · a null was published without saying how small an effect it could see We reported that the Red Sea crisis did not move cargo between US coasts, with East Coast share holding 56–59%. The plotted series runs 56–61%, and a print of 60 sits inside the window the sentence names. More importantly, month-to-month scatter is about 2.8 points, so this design can only exclude shifts larger than roughly ±2 points of share — which at these volumes is still hundreds of thousands of tonnes a month. A null without a detection floor is a statement about the instrument, not about the world, and the two read identically. The band is corrected and the floor is printed. The finding stands: nothing larger than that happened.
2026-09-09 · we called it a collected rate; it is duty assessed at entry The series and the prose described the rate importers actually paid. It is what was charged when the entry was filed — it excludes anti-dumping and countervailing duties, excludes fees, and excludes anything refunded later. /method already said this correctly; the other places did not, and now match it. We renamed the underlying column for this reason some time ago and did not carry the rename through.
2026-09-09 · a first-digit test that could not have failed, withdrawn We ran a Benford test across 14.3 million customs values and reported conformity. The conformity threshold is a fixed number that does not change with how much data you have. At this sample size a perfect fit would score 0.000062; the threshold for close conformity is 0.006 — 97 times larger. Anything passes. Our own score of 0.00418 is 67 times the perfect-fit level, which is a real deviation being reported as conformity. Separately, the test does not apply to this data at all: Chapter 99 rates come from a short menu, so duty is a fixed multiple of value, and the method’s own preconditions exclude assigned and bounded numbers. The finding is withdrawn, and with it the list of flagged origins, which was ordered by sample size rather than by anomaly. We now have no evidence either way on the integrity of the digits and should not have claimed any.
2026-08-30 · the lookup counted eleven seaports and called them eight Every trade figure on /rate — what shipped, the origin table, both trend strips — was labelled as counting containers at eight seaports. The ledger collects eleven, and did on all 29 months: Los Angeles, Newark, Savannah, Houston, Long Beach, Norfolk-Newport News, Charleston, Oakland, Tacoma, Seattle and New York. No figure was wrong — every number counted all eleven all along; the sentence describing them undercounted the ports by three, which understated the coverage of our own measurement. The wording was written once when it was true and was not revisited when the collector grew. The count is no longer prose: it is computed at build time from the table it describes and read at render, and the page now names all eleven ports with their shares, so the scope claim can be checked rather than taken.
2026-08-29 · the duty column was named for the wrong thing /data/tariff-burden.csv called its duty column duty_collected_usd. The figure is Census CAL_DUT_MO — duty assessed at entry, not cash the Treasury received; the two differ by anti-dumping and countervailing duties, fees, and entry-month against cash-month — the same distinction the reconciliation correction below turns on. duty_assessed_usd is canonical from 2026-08-29 and takes the old column’s position. duty_collected_usd remains, byte-identical, until at least 2027-03-01, so nothing parsing the file breaks.
2026-08-29 · “Nothing published rests on it” — false TT-001’s retirement notice said nothing published rested on its archive. Seven Event Atlas studies do. The archive was always retained; the sentence dismissing it is withdrawn.
2026-08-29 · six studies cite vessel data they never used A recurrence of the 2026-08-10 correction below — the fix reached seven duty studies and not six Census-only ones. Citation error; no values affected.
2026-08-29 · the privacy page over-discloses a dependency we removed Automatic PDF reading was switched off because it sent the 7501 to Google’s Gemini, but /privacy and the upload door went on saying it does. Both were corrected later the same day: nothing goes to Google, and /privacy now states what it previously said — what actually happens.
2026-08-29 · we cannot tell a human from a scanner, and said we could We quoted roughly 130 human visitors a day. 130 of 131 “human” referrals geolocate to one city, one page each, and 84 hits to a WordPress install path counted as human on a site that has never run WordPress. Withdrawn, with everything drawn from it.
2026-08-28 · the rule gap does not predict recoverable money Pre-registered and failed: ρ +0.251, p = 0.178, beaten by sorting on duty paid. The homepage no longer leads with the gap. The full result.
2026-08-26 · gateway import weight was 7.9× overstated The series summed exports, overlapping country groupings and the grand total on top of the parts: 2026-06 served 113,974,843 t against a true 14,420,392 t. It fed the CSV, every port page and a cross-check. Fixed.
2026-08-26 · gateway calls counted rows its own builder had excluded 279 corrected to 176 — a 58% overcount. The query ignored the exclusion column.
2026-08-26 · a cargo series withdrawn outright tt001.us-gateways.cargo-worked, open-ended: no zone filter at all (Chennai rows inside a “US gateways” series), 27% of metres unit-flip artefacts, two-thirds of rows outside any terminal. Its promise — “undercounts and never invents” — was false.
2026-08-26 · refund-exposure figures withdrawn in full $317,751, $1,160,167 and $612,303 are withdrawn. Re-scoring the same book on the corrected engine gives $0 above schedule and −$98,515 below: the method read declared exemptions as shortfalls. The error patterns stand; only the dollars are withdrawn.
2026-08-26 · “reconciled to Treasury” was two claims fused into one 0.000% over 114/114 months is a completeness check against Census’s own total, not a reconciliation; and the claimed 0.89–1.03 Treasury ratio was not reproducible by any statistic. The honest band against gross is 0.85–0.95. The corrected page.
2026-08-26 · a self-issued 5/5 fact-check rating, on about a thousand pages The structured data rated a claim whose own author was Trimtab, at 5 of 5. Schema.org models that as an independent review. Deleted everywhere.
2026-08-26 · the tariff lookup served the oldest month as the latest An ascending array read at index zero. One code and origin returned 39.58% for 2026-04 from one tool and 41.07% for 2026-06 from another — same question, two answers.
2026-08-26 · “measures in force” renamed, because it was not 37.5% of serveable rows were provisions already legally dead by our own canon. The key is now candidate_measures and its caveat leads with false presence.
2026-08-25 · Entry Check called lawful filings contradictions “Same HTS filed two ways” fired on splits CBP itself prescribes. Three customers saw it. One headline asserted $36,639 turned on which was correct, assuming the highest rate applied to every line. Engine fixed; every live report rescored.
2026-08-11 · “three places that cannot collude” corrected Source independence overstated: the port record and the duty receipts share a body (US Census). Wording error; no values affected.
2026-08-10 · Treasury series carried Census provenance tt010.national.customs-kept/-refunds named Census as source; the source is US Treasury, MTS Table 4. Provenance is now bound per-series. No values affected.
2026-08-10 · seven duty studies cited vessel data they never used Atlas citation blocks carried AIS boilerplate on TT-010 receipt studies. Citations are now generated per-study. No values affected.
2026-08-10 · tariff-wall teaser inverted the mechanism The teaser said the gap narrowed “by raising the top”; the study shows the rich set rose 6.3× toward the wall. Cambodia’s figure also corrected 13.7% → 13.8%.
2026-08-10 · pre-registration deviations disclosed on TT-010 K2 ran 12 of 20 registered spot cells; K1b’s 0.89 ratio sits outside the registered ±10% band. Both stand, now flagged as deviations rather than silent passes.
2026-08-06 · F-001 scope amendment Narrowed to the vessel-call series specifically: PortWatch’s own tonnage estimates never showed the collapse. Original text preserved on the finding.
2026-07 · berthings per day, corrected 745 → 35 Tugboats and workboats dominated the raw event feed; the honest merchant figure was 35.
2026-07 · 21 of 99 carrier attributions retracted A name rule matched the Catalina Express passenger fleet as Hapag-Lloyd. Attribution is now gated on merchant characteristics; a name rule alone is never enough.

One deliberate exception, stated so it is not mistaken for a silent removal: on 2026-08-29 a large number of machine-generated pages were deleted outright rather than retracted. They carried no claim anybody had read. Withdrawn claims still stay resolvable at their own addresses, with their reasons, always.

Send one entry

This list is the argument for sending us something: the failure mode we are worst at is the one we publish.

Check one of your own entries

Free. No account. We do not file with CBP and take no fee on anything you recover. Your file is read on our own server and is never sold or shared.

tests we ran and failed · how a line is priced · who publishes this