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.

← all methods · TT-010 instrument page · raw markdown: ?raw=1

Tariff Instrument — Phase 1 pre-registration (rate-as-collected)

Registered 2026-08-08, BEFORE any chart or finding is drawn from tariffs.db.

What this instrument is

US Census national imports, HS6 × country × month, 2017-01 → present:

consumption value, dutiable value, calculated duty (regular tariffs as

estimated at entry). Effective rate := calc_duty / dutiable_value, always

derived at query time, never stored, never mixed across tables.

Known limitations (disclosed on every response)

1. CAL_DUT excludes anti-dumping/countervailing duties and MPF/HMF fees —

understates true burden on AD/CVD-heavy codes (steel, aluminum, solar).

2. Duties attach to imports-for-CONSUMPTION; the port ledger measures GENERAL

imports. The two are never divided into each other. FTZ/bonded-warehouse

timing differs by code.

3. De minimis (<$800) shipments filed no entries → invisible pre-2025 for

China e-commerce; the 2025 removal is a REGIME BREAK, not a trade surge.

4. HS revisions (notably 2022) split/merge codes; within-code series respect

code lifespans; long series use concordance or stop at the boundary.

5. Region rollup codes (0003, 0014, 1XXX…) are stored but excluded from

country analysis; used only for reconciliation.

Kill-switch (must pass before ANYTHING publishes)

K1. Reconciliation: summed CAL_DUT_MO across all real countries must match

(a) the all-countries rollup rows within 0.5%, and (b) published

CBP/Treasury monthly duty collections within a stated tolerance (target

±10%; CBP totals include AD/CVD and fees, so a stable, explainable gap

is expected — an UNSTABLE gap kills publication).

K2. Spot-rate sanity: 20 hand-checked cells (code × origin × month) vs

statutory expectations — e.g. pre-301 China rates near MFN; EU MFN-only

codes near schedule rates. >2 unexplainable misses kills publication.

K3. Continuity: no month with >5% missing pulls (pull_progress 'fail').

Registered questions (written before looking)

Q1. China's effective collected rate, all goods, monthly 2017→now: does the

curve match the known 301/IEEPA staircase in TIMING (±1 month of

effective dates)? Falsifier: jumps appear where no action exists, or

actions produce no jump on covered codes.

Q2. Duty-per-kg on the CW-1 furniture codes: did duty/kg fall alongside the

declared-value collapse within identical codes (undervaluation cross)?

Falsifier: duty/kg flat while declared $/kg fell (would point to rate

changes, not undervaluation).

Q3. Exclusions: on 301-excluded code lists (2019-2020), does the collected

rate visibly drop during exclusion windows and recover at expiry?

Falsifier: no rate response inside published exclusion windows.

Isolation guarantees (how this cannot disturb the live system)

tools unmodified; per-file node --check before every scp; rollback =

remove one require + restart.

KILL-SWITCH OUTCOMES — recorded 2026-08-08

K1b (external, Treasury MTS "Customs Duties" net receipts, 114 months): PASS.

Yearly mean ratio ours(assessed)/Treasury(net collected): 0.89–1.03, every year

2017–2026. Expected <1 in normal times (we exclude AD/CVD + fees); documented

divergences: 2025 spikes (IEEPA cash-timing) and 2026-05/06 where Treasury net

goes ~0/negative on court-ordered IEEPA REFUNDS — our assessed-at-entry figures

correctly do not follow refunds. Divergence understood = check passed.

K2 (spot cells vs statutory expectations): PASS 12/12 after correctly applying

dutiable-value semantics — duty-free lines carry dut_val=0 (e.g. China wooden

seats 2017-06: $348M consumption, $0 dutiable, $0 duty = MFN Free confirmed);

Mexico avocados 2024-06: 99.92% of value entered USMCA-free, the quoted 2.8%

is the rate on the 0.08% non-claiming sliver. DESIGN RULE: the tool serves BOTH

rate_on_dutiable (duty/dut_val) AND burden (duty/con_val). Never conflated.

Confirmed cells include: Germany & Japan cars 2.5% (MFN exact), Vietnam knit

sweaters 32.0%, China seats 25.0% (2019-12, 301), China toys 30.3% (2025-06,

IEEPA), Italy wine 1.1%.

K3 (completeness): PASS. 114/114 months, 0 failed pulls, 225–233 real countries

per month (variation = genuine trade sparsity, not pipeline gaps).

K1a (internal, Census world-total rows, all 114 months): RUNNING — result to be

appended verbatim when complete. Publication remains gated until it lands.

K1a (internal, Census official world-total rows I_COMMODITY=-&CTY_CODE=-,

all 114 months): PASS — 114/114 reconciled, worst deviation 0.000%, no month

beyond the 0.5% tolerance. GATE CLOSED 2026-08-08: all kill-switches green;

Phase 1 (tariff_burden tool + /tariffs page + /api/tariff) cleared to publish.

ATLAS STUDY REGISTRATIONS — written 2026-08-09 BEFORE final runs

R1 india-gsp-2019: US withdrawal of India's GSP benefits (effective 2019-06-05)

produces a discrete, sustained step UP in India's dutiable share of import value

in June 2019 (≥8pp vs May), sustained through December (≥+8pp vs Jan-May mean),

with no donor origin (China, Vietnam, Taiwan, Japan — non-GSP majors) stepping

≥3pp in the same month. FALSIFIED IF: the step is absent/<8pp, gradual, pre-dated,

or matched by any donor.

R2 tariff-wall: In the pre-war window (2017-01→2018-05), the mean effective burden

of the apparel-origin set {Cambodia, Bangladesh, Sri Lanka, Pakistan} is ≥3x the

mean burden of the rich-origin set {Germany, Japan, UK, France}. The 2025 wave

NARROWED this ratio (2026 H1 ratio < pre-war ratio) by raising the bottom of the

wall's beneficiaries (rich-set burden rises ≥4x its pre-war level). FALSIFIED IF:

pre-war ratio <3x, or the ratio widened.

R3 laptop-exodus: On HS 847130 (portable computers), (a) China's share of world

imports fell ≥45pp within 5 months of 2025-02; (b) world totals stayed within

±20% of the 2024-H2 monthly mean during the collapse (ruling out demand/reclass);

(c) after the tariff's removal (China burden <2% by 2026-03), China's share

recovered LESS THAN HALF of its loss by 2026-06. FALSIFIED IF any of a/b/c fails.

R4 232-vs-ieepa-retention: Chapters under Section 232 sectoral measures

{72,73,74,76,87} retained ≥65% of their tariff increase (2024 baseline → peak

2025-09..2026-01 → now 2026-04..06), while non-232 major chapters {84,85,61,62,94,95}

retained ≤55%. Chapters whose peak < baseline are excluded (metric undefined) and

disclosed. FALSIFIED IF the two groups overlap on retention.

R5 dodge-premium-methods (negative result, registered for publication AS a methods

lesson): the naive claim "trade migrates to the lower-tariff origin in proportion

to the rate spread" fails — Vietnam grew fastest where spreads were SMALLEST,

because rate-on-dutiable is computed on a rounding error when duty-free share is

high. Registered claim: bucketed China→Vietnam spread vs growth shows NO positive

monotone relation. FALSIFIED IF the relation is positive and monotone.

R6 china-coverage-collapse (registered 2026-08-09, before decomposition run): the

2025 rise in China's effective burden came MORE from ending duty-free entry

(coverage) than from raising rates on already-dutiable goods. Registered claim:

decomposing the 2017-06 → 2025-05 burden rise as Δburden = rate-effect

(2017 coverage held fixed) + coverage-effect (new coverage at end rates), the

coverage term accounts for the larger share. Known before registration: dutiable

share 2017-06 ≈ 42%, 2025-06 92.6% (published on /tariffs); the decomposition

split itself has NOT been computed. FALSIFIED IF the rate effect alone, holding

2017 coverage fixed, explains half or more of the burden rise.

R7 rulebook-versus-receipts (methods study, registered 2026-08-09 before run): an

effective tariff rate computed by summing the published schedule's applicable

measures cannot be reconciled with the collected receipts on the same codes by

any constant correction. Registered claim: across ≥4 China test codes spanning

301-only, 301+2025, and heavily-excluded goods, the ratio collected ÷

schedule-sum is non-constant (spread of ratios > 2x between codes). FALSIFIED IF

a single scalar maps schedule sums onto collected rates within ±5 points on all

test codes — arithmetic reconciliation would then be possible.

R6 VERDICT (run 2026-08-09, frozen data to 2026-06): CONFIRMED. Burden rise

2017-06→2025-05: 2.71% → 47.92% (+45.2pp). Decomposition: rate effect at 2017

coverage 19.24pp (42.5%), coverage effect at end rates 25.98pp (57.5%).

Dutiable share 41.8% (2017-06) → 91.3% (2025-05) → 80.9% (2026-06). Falsifier

(rate effect ≥ half) not met.

R7 VERDICT (run 2026-08-09, month 2026-06, China): CONFIRMED. Collected ÷

naive-schedule-sum ratios: cars-1.5-3L .636, sweaters .613, upholstered seats

.548, laptops .205, toys .133, li-ion batteries .054 (sum reads 642.5%,

collects 34.4%). Spread 11.8x between codes — no scalar reconciles; falsifier

not met. Naive sum = accepted China-scoped measures naming the code in

extracted scope, plus measures with no machine-readable scope (PDF annexes) —

exactly what a schedule reader cannot exclude.

DEVIATIONS FROM REGISTRATION — recorded 2026-08-10, after an external editorial audit

Two outcomes above deviate from the registered plan. They are flagged here rather

than silently absorbed, because a pre-registration that only reports clean passes

is not a pre-registration:

cells (code × origin × month)"; the outcome records PASS 12/12. Twelve of twelve

run cells passed, but the check as registered is 12-of-20 complete. The remaining

8 cells will be run and appended verbatim, pass or fail.

names a ±10% target; the recorded yearly ratio range 0.89–1.03 includes 0.89,

outside that band. The divergence has a documented cause (assessed-at-entry vs

Treasury-net books tearing apart on IEEPA refund timing, plus AD/CVD + fees we

deliberately exclude) and the explanation stands — but the original PASS should

have stated that the registered tolerance was exceeded and why the check was

accepted anyway. It now does.

The registration and outcome text above is unchanged. This note is the correction

mechanism working in public.

Registered 2026-08-12 — the objectives-side and against-interest studies (bias audit R1/R3)

Registered before any data is touched, in response to the 2026-08-12 bias audit finding that

every published study tests a cost and none tests a stated objective of the tariffs.

PR-232-TONNAGE — Did protected metal chapters import less?

Hypothesis: containerised import tonnage in the Section-232 chapters (72, 73, 76) declined

materially after the 2025 wave relative to non-protected chapters. Falsifier: if 232-chapter

tonnage tracked or exceeded the non-protected baseline (as the ledger's uncommented

"articles of base metal +76%" hints), the protection did not reduce import volume — publish that.

Data: TT-008 port ledger, chapters 72/73/76 vs all-other-chapter baseline, 2024-01 → latest.

PR-BASKET-UNIT-VALUE — What happened to the price of the import basket?

Hypothesis: basket-level unit value (customs value ÷ kg, fixed-weight across chapters) rose

after the 2025 wave — the consumer-cost channel. Falsifier: flat or falling fixed-weight unit

value means the cost claim cannot be made from this data — publish that.

Data: TT-008, chapter-level value and weight, Laspeyres-weighted on 2024 composition.

PR-INDIA-INVOICE — The shrinking-invoice method, turned on the publisher's corridor

Hypothesis test run exactly as the China study (matched HS6, year-before vs year-after windows

around India's 2025 tariff events), regardless of result. Against-interest by construction:

a large within-good decline for India would suggest under-declaration on the publisher's own lane.

PR-INDIA-ETA — India declared-ETA reliability

When TT-006 coverage of India-origin arrivals reaches n≥30 vessels, publish India's stale-ETA

share against the fleet baseline (80.2%), whatever it shows. Against-interest by construction.