Final Strategy C chapter (2026-06-09): tested Global Fishing Watch (GFW) as a FREE satellite proxy for PortWatch’s Hormuz transit count after the terrestrial feeds came up empty (hormuz-bet-terrestrial-ais-zero-hormuz). Verdict: NOT a usable proxy — GFW measures vessel-presence while PortWatch counts transits, and the two anti-correlate in exactly the crisis regime we’d bet on. With every cheap/free path to a Hormuz transit count now exhausted and dead, Strategy C is SHELVED — the edge is real but the only data that captures it is enterprise satellite, uneconomic for a ~1k regime-dependent clip.
For Agents
TERMINAL decision note for Strategy C. Status = SHELVED (not killed — the edge survives; it is uncapturable cheaply). GFW free satellite (vessel-presence, vessel-hours/day) was tested as a proxy for PortWatch (transit-calls/day) over n=424 days and FAILS: daily Pearson r=0.33, and it goes negative (−0.07) in the Q4-25 crisis — i.e. the correlation collapses precisely when it would matter. Side flag: PortWatch’s March-2026 ~90% count collapse may be partly a data-feed degradation, not a real event (GFW presence did not collapse the same way), which muddies the earlier wartime-low-count framing. All Strategy C artifacts are preserved (collector built/clippy-clean/46-tests-green at
~/coding/hormuz_bet; spec + plan underdocs/superpowers/). Resume triggers listed below. Session arc: Strategy A built→ran→INCONCLUSIVE; Strategy C edge-confirmed-real but uncapturable-cheaply → both correctly killed for ~$0.
Strategy C — final status: SHELVED
Every cheap/free route to a Hormuz transit count has been exhaustively tested and is dead. The edge itself remains REAL (kill-tests stand: Polymarket prices lag the PortWatch publish ~4 days; outcomes lock before publish — see hormuz-bet-basis-risk). But the only data that captures it is enterprise satellite, wildly uneconomic for a ~1k/clip, regime-dependent edge. Decision: SHELVE C.
The Test — GFW as a free satellite proxy for PortWatch
After hormuz-bet-terrestrial-ais-zero-hormuz established that free/cheap terrestrial AIS has zero Hormuz coverage, the last cheap idea was a free SATELLITE signal: Global Fishing Watch (GFW) publishes a global vessel-presence raster. Could it stand in for PortWatch’s daily Hormuz transit count well enough to nowcast the weekly settlement number ahead of the Tuesday publish?
Working GFW access (what actually returned data)
- The GFW 4Wings TILE endpoint (heatmap MVT / map tiles) is public / anonymous and returned data.
- The GFW report endpoint is WAF-blocked for long Bearer JWTs (the long token trips the WAF), so the report path is not usable — the tile path is the way in.
- Dataset:
public-global-presence:v4.0, daily temporal interval. - Hormuz coverage = the 6 z10 tiles spanning the Hormuz bbox, summed per day → a daily vessel-HOURS/day series.
The signal GFW yields is vessel-HOURS per day
Summing the presence raster over the Hormuz tiles gives vessel-hours/day (an integral of how many vessels were present and for how long), not a count of crossings. That metric distinction is the whole story below.
Correlation Results (n=424 days, 2025-01 → 2026-02)
GFW vessel-hours/day vs PortWatch transit-calls/day:
| Window | Statistic | Value |
|---|---|---|
| Daily | Pearson r | 0.33 |
| Daily | Spearman ρ | 0.30 |
| Weekly | Pearson r | 0.24 |
By quarter (the damning part):
| Quarter | Pearson r | Note |
|---|---|---|
| Q1-2025 | 0.55 | |
| Q2-2025 | 0.25 | |
| Q3-2025 | 0.63 | |
| Q4-2025 | −0.07 | crisis regime — correlation collapses / goes negative |
| Q1-2026 | 0.61 |
The correlation collapses precisely when we'd trade it
Strategy C is a crisis / regime-dependent play (the edge lives in volatile periods around the strait). In the Q4-2025 crisis quarter the proxy correlation is −0.07 — it anti-correlates exactly when it would matter. A proxy that tracks in calm quarters but breaks in the crisis is worse than useless for this strategy.
The Fundamental Mismatch — presence vs transit
This is not a tuning problem; it is a metric mismatch that cannot be calibrated away.
- GFW measures vessel-PRESENCE — vessel-hours, including anchored / loitering vessels sitting near the strait.
- PortWatch counts TRANSIT-CALLS — actual crossings of the chokepoint.
They ANTI-correlate in a crisis — by construction
In a crisis, vessels anchor / wait near the strait rather than transit. So GFW presence goes UP (more vessel-hours loitering) while PortWatch transits go DOWN (fewer crossings). That is exactly the regime we would bet on, and it is precisely where the two series move in opposite directions. The proxy doesn’t just weaken in the crisis — it inverts.
Scale / bias (different metrics, not comparable levels): GFW ≈ 1350 vessel-hours/day vs PortWatch ≈ 92 transits/day — a 14.6× gap. This is not a calibratable bias; it reflects that the two series measure different things (an integral of presence vs a count of events).
Cadence — usable for front-running, but the signal is too weak to use it
The timing was the one thing that did check out — which makes it all the more frustrating that the signal is too weak:
- Latest GFW date 2026-06-05 observed on 2026-06-09 = 4-day lag.
- GFW updates DAILY.
- That cadence would lead PortWatch’s weekly Tuesday publish by up to 6 days — genuinely usable for front-running the settlement number.
Cadence good, signal bad
If the metric matched, GFW’s daily 4-day-lag cadence would be a viable nowcast that front-runs the Tuesday drop. But a leading indicator with daily r=0.33 (and negative in the crisis) is too weak to trade regardless of how timely it is. Timeliness cannot rescue a wrong-metric signal.
Side Finding (flag) — PortWatch’s March-2026 collapse may be partly a DATA-FEED degradation
A by-product of the GFW comparison, important enough to flag for any future resumption.
PortWatch's recent low counts may be partly artifactual
PortWatch
n_totaldropped ~90% on 2026-03-01 (from ~90–130/day down to 3–17/day) and stayed low through May. But independent GFW vessel-presence did NOT collapse the same way over that window. So PortWatch’s recent very-low counts may be partly a data-feed / AIS-ingestion degradation, not a fully real transit collapse.Consequences:
- It muddies the earlier “wartime low-count regime” framing used across hormuz-bet-basis-risk and hormuz-bet-portwatch-data — some of that drop may be measurement, not the world.
- It makes the settlement target even noisier to predict (you’re partly modelling a feed artifact).
Worth re-checking if Strategy C is ever resumed — and noted as a caveat on the settlement series itself in hormuz-bet-portwatch-data.
Why SHELVED — every cheap path is dead, the edge is real, the data is enterprise-only
The full map of cheap/free data paths to a Hormuz transit count, all now dead:
| Path | Result | Note |
|---|---|---|
| Free terrestrial (aisstream, MyShipTracking) | DEAD | Zero Gulf coverage — hormuz-bet-terrestrial-ais-zero-hormuz. |
| Free satellite presence (GFW) | DEAD | Wrong metric — presence vs transit; anti-correlates in crisis (this note). |
| Cheap paid satellite — Data Docked area endpoint | DEAD | The area endpoint is terrestrial-only → blind to Hormuz (same gap as the free terrestrial feeds). |
| Cheap paid — VesselFinder | uneconomic | ~€330 floor + ~€46/poll. |
| Enterprise — Spire / Kpler | out of scope | Enterprise quote-only (the satellite source PortWatch itself uses). |
Edge real, data uneconomic → SHELVE
The edge survives (prices lag PortWatch’s publish ~4 days; outcomes lock before publish — hormuz-bet-basis-risk). But the only data to capture it is enterprise satellite, wildly uneconomic for a ~1k/clip, regime-dependent edge. So: SHELVE C.
Artifacts Preserved
Nothing is deleted — Strategy C is parked, not torn down. All artifacts remain at /Users/levander/coding/hormuz_bet:
- Stage-0 collector code — built, clippy-clean, 46 tests green — see hormuz-bet-strategy-c-stage0.
- Spec:
docs/superpowers/specs/2026-06-08-hormuz-strategy-c-ais-calibration-design.md. - Plan:
docs/superpowers/plans/2026-06-08-hormuz-strategy-c-stage0.md.
Resume Triggers
When to un-shelve Strategy C
Resume only if one of these changes the economics:
- The strait normalizes — higher transit counts and deeper Polymarket liquidity change the per-clip economics in C’s favour; or
- A cheap TRANSIT-grade (not presence) satellite source appears — i.e. something that counts crossings, not vessel-hours, at a self-serve price.
Absent either, leave C shelved. (Also re-examine the March-2026 data-feed-degradation flag above before trusting any historical low-count window.)
Session Arc (for the record)
Both strategies correctly killed for ~$0
stateDiagram-v2 direction LR [*] --> StrategyA StrategyA --> A_run: built A_run --> A_inconclusive: ran live 2026-06-08 A_inconclusive --> [*]: INCONCLUSIVE (no robust edge) [*] --> StrategyC StrategyC --> C_edge: kill-tests PASSED (edge real) C_edge --> C_data: hunt cheap Hormuz transit data C_data --> C_shelved: every cheap path dead (terrestrial empty, GFW wrong metric, cheap-paid blind) C_shelved --> [*]: SHELVED (edge real, data enterprise-only)
- Strategy A (Spec #1 backtest nowcaster): built → ran → INCONCLUSIVE (hormuz-bet-build-spec1).
- Strategy C (Phase-2 AIS nowcast): edge confirmed real (hormuz-bet-basis-risk) but uncapturable cheaply → SHELVED (this note).
- Total spend to reach both verdicts: ~$0. Two strategies disciplined-killed without deploying capital or paying for data.
Related
- hormuz-bet-terrestrial-ais-zero-hormuz — the prior cheap-data death (terrestrial AIS = zero Hormuz); this note closes out the satellite path and resolves that note’s “decision pending: pay for satellite vs shelve C” as SHELVE.
- hormuz-bet-strategy-c-stage0 — the Stage-0 collector that is now parked (built, clippy-clean, 46 tests green; spec + plan preserved).
- hormuz-bet-basis-risk — where the Strategy C edge was established (prices lag PortWatch ~4 days; outcomes lock before publish); the edge survives this shelving.
- hormuz-bet-portwatch-data — the settlement series; the March-2026 data-feed-degradation flag is recorded there as a caveat on the series itself.
- hormuz-bet-ais-providers — the feed landscape; GFW (satellite presence) now joins terrestrial as a verified-unusable path, leaving only enterprise satellite.
- hormuz-bet-build-spec1 — Strategy A, the other arm of the session arc (built → ran → INCONCLUSIVE).
- hormuz-bet — project index; status updated to reflect both strategies shelved/inconclusive.