For Agents

The verified, FREE, no-auth IMF PortWatch dataset that settles every Hormuz ship-count market (see hormuz-bet-resolution-mechanics). ArcGIS FeatureServer with daily transit counts by vessel type for the Strait of Hormuz (portid = chokepoint6) from 2019-01-01 to present. This is the primary data source for the whole project (Phase 1 models this series directly). Refreshed roughly weekly (Tuesdays); ~4-day processing lag. Verified live as of 2026-06-07.

The settlement data source. IMF PortWatch publishes the daily ship-transit count for the Strait of Hormuz that these markets resolve on, and the same series is queryable for free with full history back to 2019.

The Endpoint (verified live, free, no auth)

ArcGIS FeatureServer query endpoint:

https://services9.arcgis.com/weJ1QsnbMYJlCHdG/arcgis/rest/services/Daily_Chokepoints_Data/FeatureServer/0/query

  • Filter the Strait of Hormuz with portid = chokepoint6 (its portname is “Strait of Hormuz”).
  • Standard ArcGIS query params apply: where, outFields, orderByFields, resultOffset, resultRecordCount, f=json (or f=geojson).
  • No API key / no auth required. Verified returning live data on 2026-06-07.
  • Also exportable as CSV / GeoJSON from the dataset id 42132aa4e2fc4d41bdaf9a445f688931.

Fields

Daily counts by vessel type, plus capacity (tonnage) proxies and date parts.

FieldMeaning
portidchokepoint6 for the Strait of Hormuz
portname”Strait of Hormuz”
datedaily timestamp (plus year, month, day parts)
n_totaltotal ships transiting that day (the headline count)
n_tankertankers
n_cargocargo (aggregate)
n_containercontainer ships
n_dry_bulkdry bulk carriers
n_general_cargogeneral cargo
n_rororoll-on/roll-off
capacity_*tonnage-capacity proxies per the same vessel-type breakdown
ObjectIdArcGIS row id

Which field settles the market

The markets resolve on transit calls = the daily total ship count (n_total-equivalent). The per-type splits and capacity fields are useful covariates for modelling/nowcasting but are not themselves the settlement quantity.

History and Pagination

  • History: daily from 2019-01-01 to present. This is what makes the backtest possible (see hormuz-bet-backtesting).
  • Pagination: the layer caps 1000 records per call. Page through history with resultOffset (and resultRecordCount), ordering by date.
  • For a single chokepoint, ~6.5 years of daily data is a few thousand rows, so a handful of paged calls pulls the entire Hormuz series.

Publication Cadence and Lag

Cadence is high-confidence, NOT verbatim from the source

The refresh schedule below is secondary-sourced, not read verbatim from the JS-rendered PortWatch page. Treat as high-confidence-but-unverified and re-confirm empirically by polling the FeatureServer date/max(date) over a few weeks before trusting it for execution timing.

  • Refreshed roughly WEEKLY, around Tuesdays ~09:00 ET.
  • ~4-day processing lag between a calendar day and its value appearing.
  • A given date is treated as finalized once the NEXT day value publishes (the last available day can still revise).

Why cadence matters for the strategy

Phase 1 (model the published series) only needs the history. Phase 2 (predict the number before publication) lives or dies on this schedule: the edge is nowcasting Tuesday number on Monday. The weekly publication boundary is the event the Phase-2 play trades around. See hormuz-bet-ais-providers for the leading-indicator feed.

Provenance

  • Built by the IMF in partnership with the University of Oxford (Environmental Change Institute).
  • Derived from satellite + terrestrial AIS covering ~90,000 ships.
  • UN Global Platform lineage is likely but unconfirmed verbatim — flag before citing as fact.

PortWatch itself warns the counts can be distorted

PortWatch documentation cautions that counts may be affected by AIS jamming, spoofing, and dark vessels — which is exactly the Strait of Hormuz situation right now. This is a property of the settlement series itself, not just of third-party feeds. See hormuz-bet-basis-risk.

Current Regime (as of 2026-06)

The series is highly non-stationary right now. In the current wartime regime, n_total runs roughly 3-10 ships/day (May 2026) versus ~55-75/day in 2019. Any model or backtest must treat this as a structural regime break, not noise; do not blend pre-war and wartime data naively.

The March-2026 collapse may be partly a DATA-FEED degradation, not a real event (flag, 2026-06-09)

n_total dropped ~90% on 2026-03-01 (from ~90–130/day to 3–17/day) and stayed low through May. But independent Global Fishing Watch vessel-presence did NOT collapse the same way over that window. So PortWatch’s recent very-low counts may be partly artifactual — an AIS-ingestion / feed degradation, not a fully real transit collapse. This (a) muddies the “wartime low-count regime” framing above and in hormuz-bet-basis-risk, and (b) makes the settlement target even noisier to predict (you’d be partly modelling a feed artifact). Discovered while testing GFW as a proxy — re-check before trusting any historical low-count window. Detail in hormuz-bet-strategy-c-shelved.