Methodology & Data Provenance

Version 1.0 · what this score is and is not

Opacity destroys trust with operators. Every figure in this platform is listed below with its actual source and its limitations. Where a number is modelled rather than measured, it says so. If a metric here disagrees with your own AIS screen or terminal data, trust your data, not ours — and tell us, because that is a bug.

Composite formula
GCI = (vessel × 0.40) + (geopolitical × 0.35) + (insurance × 0.15) + (port × 0.10)

Each component is normalised to 0–100 before weighting. Weights are fixed in v1.1 and were set by judgement, not fitted to outcome data — they have not yet been back-tested against realised disruption. Treat the number as a directional index, not a measured severity.

Severity escalation

A pure weighted average treats the four inputs as substitutable, which understates a chokepoint crisis — a full blockade could otherwise be diluted by moderate port or insurance readings. Because an armed action or blockade in the strait is a dominant, non-substitutable risk, the composite is floored into the band that geopolitical state implies: high → ≥70, critical → ≥82, blockade → ≥90. Calm and elevated states carry no floor, so the honest weighted average governs and the index is never permanently inflated — when the corridor de-escalates, the score falls with it.

Score bands (v1.1)
0–20Normal Operations
20–40Elevated Tension
40–60Moderate Disruption
60–80High Disruption
80–100Critical — Near Blockade

These bands were re-calibrated in v1.1 so that mid-range scores are not over-labelled: a reading in the 60s reads as High Disruption, not "Extreme." The scale is an index, not a measured quantity — publish a back-test before citing it in a risk decision.

Component sources
Vessel transits
40%Depends on configured keys
Source: Windward API → aisstream.io (free AIS) → MarineTraffic → statistical model
Falls back to a statistical model when no AIS provider is configured. When it does, the score is labelled "estimated" — treat it as a trend indicator, not a transit count.
Geopolitical severity
35%Live, refreshed every 3 hours
Source: NewsAPI + RSS (Reuters, BBC, Al Jazeera, BIMCO, US Navy and other maritime feeds)
Severity is scored by keyword and source weighting, not human analyst review. It captures reported intensity, which can lag or overshoot actual operating conditions.
War-risk insurance
15%Estimated
Source: Derived estimate
Not a quoted premium. Real war-risk cover is quoted per voyage, per hull, and moves with underwriter appetite and the 7-day cancellation clause. Use this as a directional signal and obtain a live quote before pricing a voyage.
Port congestion
10%Estimated
Source: Derived estimate
Not measured from terminal operating systems. Dwell times at diversion hubs are where demurrage is actually generated — verify against your own terminal data.
Known limitations
  • Historical GCI values before this deployment are model-generated for trend visualisation, not observed measurements.
  • Route costs are calibrated baselines adjusted by the live score — they are not carrier quotes and do not reflect your contract rates.
  • The score expresses corridor conditions. It does not know your cargo, your contract, your free time, or your letter of credit.
  • No backtest record is published yet. Until one exists, treat the score as decision support and not as an input to an automated process.
Methodology v1.0 · Changes to weights or sources will be versioned here.