Trimtabist

The US Trade Ledger — every US container gateway, every partner country, every month. Census-recorded, AIS-verified.

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

TT-007 · Vessel registry — method

Grade: REPORTED for gross tonnage and hull type. **The TEU column is MODELLED and

is never quotable as a measurement.**

Why it exists

Every other instrument counts boats. Without this, a 15,000 TEU hull and an 8,000 TEU

hull are both "one arrival". This converts a count of ships into a measure of capacity,

and — since 2026-07-30 — tells us what kind of ship each hull actually is.

Source

Wikidata, via SPARQL, keyed on IMO number (P458). The IMO number is a permanent

7-digit hull identifier with a check digit. It encodes nothing about the ship's type

— it is only ever a lookup key.

The two properties, and why the first one was wrong

propertywhat it ispopulated on
P289 vessel classthe named sister-ship class — "Colombo Express-class"~8%
P31 instance ofthe fundamental hull type — "container ship", "bulk carrier"~100%

Until 2026-07-30 this instrument queried only P289, so it could not tell a container

ship from a bulk carrier. Adding P31 identified real contamination inside the

container fleet: **18 bulk carriers, 6 car carriers, 4 vehicle cargo ships and 4 bare

ro-ro hulls.**

Residual gap: 81 hulls return the generic value "ship", which is unusable. They

still receive a TEU estimate, marked CLASS UNVERIFIED in the basis string.

Deadweight (P4131) is 0% populated, which kills the clean DWT/GT discriminator

(≈1.0–1.2 container, 1.7–1.9 bulk).

TEU is estimated, and the estimate is published with it

AIS carries no capacity field and no free source publishes TEU per hull. Wikidata

carries gross tonnage for most large hulls, and GT/TEU is stable across the modern

container fleet at roughly 11. So:

TEU ≈ gross tonnage / 11        (±10%)

The divisor is published alongside the result, so a reader can recompute it. Every row

carries a teu_basis string stating exactly how its figure was derived.

The divisor only applies to container hulls. A vehicle carrier or bulk carrier has

a completely different tonnage-to-capacity relationship. Before the guard existed, this

registry published three US Navy vehicle carriers as container ships — CAPE DUCATO at

2,671 TEU, USNS RED CLOUD at 6,612, USNS BENAVIDEZ at 6,306.

An explicit container mention always overrides an exclusion keyword: a

*roll-on/roll-off container ship carries boxes, a bare roll-on/roll-off ship*

does not. Wikidata spells the phrase out, which the shorter ro-ro keyword never

matched — three bare ro-ro hulls were receiving estimates until this was fixed.

What hull form cannot do

Tested and rejected 2026-07-30: GT / (LOA × beam) does not classify. Container

ships span 4.85–8.03 at p10–p90; vehicle carriers span 4.73–7.87. Complete overlap,

because car carriers are also tall boxy ships. Worse, the ratio tracks size, not

type — CMA CGM HOMERE at 170 m scores 3.83, EVER MEGA at 366 m scores 8.86.

There is no substitute for a registry.

Confidence, stated honestly

Of the 196 vessels in the current call set:

share
confirmed container by registry type24%
confirmed NOT container — excludable6%
liner name only, type inferred not confirmed20%
genuinely unknown — no type and no liner name49%

So container ships cannot yet be identified with confidence. Half the fleet is

unresolved, and about half of those have no Wikidata entry at all. What has improved is

the ability to exclude: hulls the registry positively names as something else are now

dropped, where previously they were counted as container traffic.

Unknown hulls are kept, deliberately. Dropping traffic we merely cannot classify

would thin an already small sample and could hide real congestion.

Better sources, and why they are not used

candidatehas hull typemachine-retrievablestatus
THETIS-MRV (EMSA)yes, plus reported cargo carriedno endpoint found — three REST paths and a POST search all 404best candidate; needs browser inspection of the portal's XHR
IMO GISISyes, authoritativefree account, no bulk APIpossible for targeted lookups
Lloyd's Registeryes, incl. deadweightregistration, no bulkLR-classed hulls only
Equasisyesaccount + scraping, ToS unclearfallback
commercial (VesselFinder, MarineTraffic, Datalastic)yespaidusable only if named and cited

Cadence and operations

Looked up in batches of 40 IMOs, backed off on failure. Idempotent: the same IMO set

produces the same rows. Hulls already carrying tonnage are skipped on re-run.

node registry.js            look up IMOs our own receivers have seen

Current: 246 rows, 200 carrying a TEU estimate, 1,107,713 TEU total.