Off-Nadir Delta
Ship-transit measurement

Transit Anomalies: Ship Traffic Against Its Usual Level

A busy strait is not news. One where the number of ships passing has moved 15% or more away from its last 12 weeks is worth a look. Off-Nadir Delta records the second kind at 28 straits and canals, and puts each record on the same map as the reporting.

Quick answer — what a transit anomaly is here

A transit anomaly is a record that the number of ships passing a strait or canal left its own usual level. At 28 places — among them the Strait of Hormuz, the Suez Canal, Bab el-Mandeb, the Strait of Malacca, the Bosporus, the Panama Canal and the Taiwan Strait — the 7-day average of ship transits is compared with the median of the 7-day averages over the 12 weeks before. It is outside its usual range when it is statistically unusual (a modified Z-score of 3.5 or more) and at least 15% away. Each record states where, when, in which direction and by how much, and never a cause. The underlying measurements are updated weekly, so a change becomes visible 4 to 11 days after it happens: days, not hours. Records are events on the Watchfloor map, and GET /api/v1/transit-anomalies returns every measured place as an index against its usual level.

What is a transit anomaly?

The number of ships that pass a strait or canal each day is published as a measurement derived from ship-tracking (AIS) signals. On its own that number says little: some places are always busy and some are always quiet.

A transit anomaly is the moment that number stops being ordinary for that place. The comparison is with the same strait or canal’s own recent past, so a place that is always busy is filtered out by its own history, and a sharp fall or rise is kept.

Off-Nadir Delta does not provide the daily measurements themselves. What it keeps is its own record of the anomalies, and an index of each place’s level against its usual level.

How “usual” is defined

The rule

  • The value read is the 7-day average of ship transits, which evens out the days of the week.
  • The usual level is the median of the 7-day averages over the 12 weeks before.
  • Outside the usual range means statistically unusual against those weeks (a modified Z-score of 3.5 or more) and at least 15% away.
  • Places where both levels are under 10 ships a day are not judged.
  • One record covers a continuing move in the same direction; 14 quiet days end it.

Which ships

  • Container, dry bulk, general cargo, ro-ro and tanker ships.
  • Counted from ship-tracking (AIS) signals, so ships that do not broadcast are not counted.
  • Other kinds of vessel are not counted.
  • Tankers alone and container ships alone are judged by the same rule, and recorded separately when the total is not outside its usual range in the same direction.
  • Port calls at busy ports (at least 10 calls a day) are judged by the same rule, with a minimum change of 25%.

Sources: UN Global Platform; IMF PortWatch (portwatch.imf.org)

How late it is: days, not hours

The underlying measurements are updated weekly. A change in ship traffic therefore becomes visible here 4 to 11 days after it happens. Each level carries the last day it covers, and that day is not today.

Read a transit anomaly as confirmation that a level has moved, alongside reporting that arrived sooner. It is not an alert at the moment something happens. Earlier figures can also change after they are first recorded; when that happens the level is marked as revised.

What a record states

  • Which strait or canal, and the 7 days the average covers.
  • Whether transits fell below or rose above the usual level.
  • How far from the usual level the average is, as a percentage.
  • Whether it is all counted ships, tankers alone or container ships alone.
  • How tankers compare with their own usual level, for a record on all ships.

What it does not state

  • A cause. Weather, holidays, a closure, an attack and re-routing all change the number.
  • That a strait is closed or open. It says the number of ships changed, not what is allowed to pass.
  • What happened today. The measurements are updated weekly.
  • Every vessel. Ships that do not broadcast, and kinds of vessel outside the five counted, are not in it.

The 28 straits and canals

All 28 are marked on the Watchfloor while the Transit anomalies layer is on, whether or not anything is unusual there, and each one can be added to a Watchlist from its card.

  • Bab el-Mandeb
  • Balabac Strait
  • Bering Strait
  • Bohai Strait
  • Bosporus
  • Cape of Good Hope
  • Kerch Strait
  • Korea Strait
  • Lombok Strait
  • Luzon Strait
  • Makassar Strait
  • Mindoro Strait
  • Mona Passage
  • Ombai Strait
  • Oresund Strait
  • Panama Canal
  • Strait of Dover
  • Strait of Gibraltar
  • Strait of Hormuz
  • Strait of Magellan
  • Strait of Malacca
  • Suez Canal
  • Sunda Strait
  • Taiwan Strait
  • Torres Strait
  • Tsugaru Strait
  • Windward Passage
  • Yucatan Channel

Where it appears

  • Watchfloor. The Layers panel has “Transit anomalies”. Measured places are faint ship marks when within their usual range, and amber and in front when outside it; the legend counts both.
  • A card per place. The current level, the 7-day trend against the usual level, and the definition of “usual”.
  • Watchlist. “Watch this place” on the card, to be told when its transits leave their usual range and when reporting names it.
  • Map. The Signals panel on the map page has the same switch.
  • Delta Agent. Answers can read transit anomalies, and state them as measurements without a cause.
  • API, SDK and MCP. Described below.

Heat sources measured by satellite are recorded the same way; see Thermal Anomalies.

Transit anomaly API

One request returns every measured strait and canal, places outside their usual range first. It takes no parameters and costs 3 tokens.

curl "https://offnadir-delta.com/api/v1/transit-anomalies" \
  -H "Authorization: Bearer ond_..."
  • status is usual, below, above or not_measured.
  • level.index is the 7-day average with the usual level set to 100; level.change is the difference from usual, and level.tanker_index is the same index for tankers alone.
  • level.revised is true when the underlying figure changed after it was first recorded.
  • anomaly gives direction, since, days and event_id while a place is outside its usual range.
  • meta.as_of is the latest day measured, and meta.definition states what “usual” means.

The index is this product’s own measure. Ship counts are not returned by the API, the Python SDK or the MCP server.

Also available as client.transit_anomalies.list() in the Python SDK, and through GET /api/v1/signals?origin=transit and the MCP tool query_signals, which return the anomalies as events. Full details are in the API reference.

What each plan sees

On every plan, the Watchfloor map shows each measured place and whether its transits are within their usual range. The ship marks are there without paying.

The numbers — how far from the usual level a place is, the index and the trend — are part of the full account of each event, in the app and over the API. Pricing shows which plan opens it.

How It Works

1

Open the Watchfloor

Transit anomalies are on the map next to reported events. The Layers panel has “Transit anomalies”.

2

Find the ship marks

The 28 measured straits and canals are always marked: faint when within the usual range, amber and in front when outside it.

3

Open one

The card for a place states its current level, the 7-day trend against the usual level, and what “usual” means.

4

Watch the place

“Watch this place” adds it to your Watchlist, so you are told when its transits leave their usual range and when reporting names it.

Frequently Asked Questions

What is a transit anomaly?▼
A record that the number of ships passing a strait or canal left its own usual level. The 7-day average of ship transits is compared with the median of the 7-day averages over the 12 weeks before. It is outside its usual range when it is statistically unusual against those weeks (a modified Z-score of 3.5 or more) and at least 15% away.
Which straits and canals are measured?▼
28 places worldwide: Bab el-Mandeb, Balabac Strait, Bering Strait, Bohai Strait, Bosporus, Cape of Good Hope, Kerch Strait, Korea Strait, Lombok Strait, Luzon Strait, Makassar Strait, Mindoro Strait, Mona Passage, Ombai Strait, Oresund Strait, Panama Canal, Strait of Dover, Strait of Gibraltar, Strait of Hormuz, Strait of Magellan, Strait of Malacca, Suez Canal, Sunda Strait, Taiwan Strait, Torres Strait, Tsugaru Strait, Windward Passage, Yucatan Channel. Places where both the current and the usual level are under 10 ships a day are not judged, because a 15% change there is one or two ships.
Does a transit anomaly mean a strait is closed or shipping was attacked?▼
No. A record states that the number of ships changed, by how much and when, and never why. Weather, holidays, a closure, an attack and re-routing all change it. Cause comes from reporting, which is why the records sit on the same map as reported events.
How quickly does a transit anomaly appear?▼
Days, not hours. The underlying measurements are updated weekly, so a change becomes visible 4 to 11 days after it happens. Each level is dated with the last day it covers, which is not today. Transit anomalies describe a level that has moved; they are not an alert at the moment something happens.
Which ships are counted?▼
Container, dry bulk, general cargo, ro-ro and tanker ships, from ship-tracking (AIS) signals. Ships that do not broadcast are not counted, and neither are other kinds of vessel.
Are tankers and container ships tracked separately?▼
Yes. The same rule is applied to tankers alone and to container ships alone. A tanker-only or container-ship-only anomaly is recorded when the total number of ships is not outside its usual range in the same direction, so one change is not recorded twice.
Are ports covered as well as straits?▼
Busy ports are. Where a port averages at least 10 ship calls a day, the same rule is applied to its port calls, with a larger minimum change of 25% because port activity moves more from week to week than a strait does. A port record appears as an event on the same layer, titled "Port calls at …". Ports are not among the places that are always shown on the map: a port appears only when its calls leave their usual level. Where a published trade model lists them, the record names the economies whose seaborne trade depends most on that port — a model estimate of exposure, not a measurement.
How many records does one disruption make?▼
One. While a move in the same direction continues, no new record is made. A new one starts when the direction changes or after 14 quiet days.
Is there a transit anomaly API?▼
Yes. GET /api/v1/transit-anomalies takes no parameters and returns every measured place in one response: its status (within, below or above its usual range), its level as an index with the usual level set to 100, the change against usual, and whether the figure was revised after it was first recorded. A place outside its usual range also carries since when, for how many days, and the id of the event recorded for it. A request costs 3 tokens. The same records are events, so they also come back from GET /api/v1/signals with origin=transit, and the Python SDK has client.transit_anomalies.
Does the API return ship counts?▼
No. The API, the Python SDK and the MCP server return an index, the change against the usual level, the status and whether the figure was revised. The index is this product’s own measure: the 7-day average with the usual level set to 100. Off-Nadir Delta does not provide the underlying daily measurements; it records the anomalies derived from them.
What does each plan see?▼
Every plan sees each measured place on the map and whether it is within its usual range; over the API, also since when it has been outside it and the event recorded for it. The numbers — how far from the usual level it is, the index and the trend — are part of the full account of each event, which not every plan includes. The Pricing page shows which plan opens it.

See Transit Anomalies on the Map

The ship marks are on the Watchfloor for every account. The numbers and the API detail are plan-dependent; see Pricing.

From headline to satellite evidence

One connected intelligence workflow across four surfaces — free to start, no GIS software or remote-sensing background required.