AXIOM|
Docs
🔍AnalysisApril 28, 2026·9 min read

6.4% of AIS Pings Don't Say Where They're Going. The Rest Spell Houston Seven Different Ways.

Across a recent 1,000-ping AIS sample, 6.4% of broadcasts carried no resolvable destination — and the rest spell Houston seven different ways. The opacity layer is itself a leading indicator of declared-vs-actual mismatch.

🔮
Axiom Intelligence
Axiom Platform · April 28, 2026
destination_field_opacity
signal
2026-04-28
data as of
4.2
blank share pct
6.4
opacity rate pct
1000
sample size pings
2
for orders share pct
49
alias dictionary size
19875
ground truth visits 30d
93.6
nominally specified pct
0.2
regional only share pct
TopicsDESTINATION-RELIABILITYDECLARED-VS-ACTUALAIS-OPACITYSANCTIONS-SCREENING

6.4% of AIS Pings Don't Say Where They're Going. The Rest Spell Houston Seven Different Ways.

A 1,000-ping window of recent AIS broadcasts shows the destination field is the noisiest, least standardized layer in vessel self-reporting — and the opacity itself is a leading indicator of declared-vs-actual port mismatch.

The Setup

Across a recent slice of the AIS stream, 6.4% of position broadcasts carried no resolvable destination — blank, the dry-bulk market term FOR ORDERS, generic codes like USG (US Gulf), or operational descriptors like DREDGING ELBE. That's the noise floor.

The other 93.6% are technically populated but tell their own story. Houston alone appears under at least seven distinct spellings in the same window — USHOU, US HOU, HOUSTON, HOU, USGLS<>USHOU, and a few longer variants. Across all ports, the platform's auto-learning destination-alias dictionary has resolved 49 unique strings to a canonical port. It has a long way to go.

This isn't yet a story about sanctions evasion. It's a story about what the AIS destination field actually is in raw form: a 20-character free-text field that downstream sanctions screening, ETA forecasting, and port-call analytics all treat as structured data. It isn't.

The Chain

The destination field is broadcast by the vessel itself. ITU-R M.1371 reserves 120 bits — 20 6-bit ASCII characters — of voluntary intent. The vessel's master types whatever they type. That's what the world sees.

What a recent 1,000-ping sample looks like, ranked by opacity:

| Bucket | Share | Example | Operational meaning | | --- | --- | --- | --- | | Nominally specified, single port | ~93.6% | USHOU, RIO DE JANEIRO, BRRIO | Resolvable to a port_id after alias normalization | | Blank | ~4.2% | "" | Field empty; common pre-charter or before departure | | FOR ORDERS / TBN | ~2.0% | FOR ORDERS, USG FOR ORDERS | Legitimate dry-bulk/tanker market term — vessel uncommitted to a load or discharge port | | Regional only | ~0.2% | USG, EUROPE | Indistinguishable from blank for screening purposes |

Even within the nominally-specified band, the alias problem is severe: a single port can appear as a UN/LOCODE (USHOU), an English name (HOUSTON), an abbreviated name (HOU), and several free-text mashups (USGLS<>USHOU for a Galveston/Houston dyad). The platform's destination_aliases table maintains 49 learned mappings today and grows with every visit ingest. Until coverage exceeds roughly 75% of resolvable raw strings, "the destination changed between two pings" is dominated by "the destination was spelled differently between two pings."

This is why a destination_reliability_score — declared port_id vs actually-arrived port_id — has to be built on top of the alias layer, not in front of it. The signal exists. The plumbing has to come first.

The Implication

The cleanest near-term application is flag-state-conditioned opacity rate: for each flag state, what share of recent AIS pings carry no resolvable destination?

Over a long enough window, well-regulated flags converge near a market-wide baseline driven by legitimate FOR ORDERS usage in tanker and dry-bulk trades. Flags whose opacity rate sits two or three sigma above that baseline are revealing something else.

The forward claim, narrowly: once the platform's destination_reliability_scores table is materialized — comparing each vessel's most recent declared destination against the port it actually arrived at — the flag states with elevated opacity rates today will be the same flag states that show elevated mismatch rates next month. Opacity is a leading indicator of mismatch because the population of vessels that decline to declare is largely the same population most likely to land somewhere they didn't say they were going. The vessel-identity risk taxonomy already names flag state, class rarity, phantom fleets, and identity changes as four contributors to the same sanctions exposure. Destination-field discipline is the fifth — and the only one a vessel can degrade in real time, without paperwork.

What to Watch

  1. Alias dictionary coverage. 49 entries today; growing on every visit ingest. The destination-mismatch signal becomes publishable once distinct_resolved_destinations / distinct_raw_strings clears ~0.75. Below that threshold, declared-vs-actual is contaminated by spelling variance.
  2. Per-flag opacity distribution. Once the long tail of aliases is mapped, the working unit becomes flag_state × vessel_class × opacity_rate. That cross-tab is what risk screening should consume — ahead of any individual mismatch event.
  3. Convergence with vessel_visits. Each completed visit gives a ground-truth port_id. ~19,875 arrivals over the last 30 days are already labeled. Walking each visit's AIS positions backwards 6–48 hours and reading off the last declared destination produces a clean validation set as soon as alias coverage clears the threshold.

Limitations

A 1,000-ping sample is enough to characterize the shape of the opacity floor; it is not enough to make per-flag-state claims — those need at least an order of magnitude more data and clean broker attribution (different feeds, e.g. AISStream vs aishub vs MarineCadastre, encode the DEST field with different normalization habits). The 6.4% opacity rate is therefore a sample-conditioned estimate, not a fleet-wide truth. FOR ORDERS is also genuinely concentrated in legitimate dry-bulk and tanker trading patterns that have nothing to do with sanctions exposure — confounding it with evasion would be wrong. The aliases dictionary itself is platform-specific and incomplete: a different operator might match USHOU and US HOU to the same port out of the box, while we learn that mapping incrementally and verifiably.

The AIS destination field is a public-good signal that has never been treated as one. The noise in it is not random — it is the residue of every decision a vessel master has made about how much to disclose, in what spelling, and to whom. Mapping the noise is the work; the silence in the gaps is what the next post will be about.


Data current as of 2026-04-28. Source: ais_positions raw broadcasts (1,000-ping recent window from the aishub source feed), destination_aliases learned dictionary (49 entries), vessel_visits (19,875 arrivals over the last 30 days). Public AIS broadcasts under SOLAS Chapter V; the destination string is voluntary self-reporting, not registry data.