Insurance & risk

Marine insurance — war risk, real-time underwriting, and claims forensics

How marine underwriters use NTHMAP to price war-risk premiums, validate voyages, and investigate claims.

Marine insurance is fundamentally a pricing problem: what's the probability that a voyage ends in a loss, and what's the expected severity? NTHMAP gives underwriters the physical-world context those probabilities depend on — in a live, queryable form.

The three underwriting problems NTHMAP solves

1. War-risk surcharge pricing

When a vessel transits a high-risk zone (Red Sea, Strait of Hormuz, Black Sea grain corridor, Gulf of Guinea), the hull and cargo underwriter charges an additional war-risk premium — often 0.05%–0.5% of the insured value for a single transit.

The pricing needs to reflect current threat levels, not last quarter's. NTHMAP tracks exactly this:

nthmap events list --types conflict,sanctions --bbox 30,10,60,25 --active

You get every active conflict event in the Red Sea / Gulf of Aden / Persian Gulf region with severity, radius, and source. Combined with the chokepoint status:

nthmap chokepoints list --fields name,status,notes

…the Gulf of Aden entry tells you explicitly: "Vessels transiting at high speed. Military escort recommended."

An underwriter looking at a voyage quote for a VLCC transit through these waters can price the surcharge in 15 seconds instead of 15 minutes of news-scraping.

2. Real-time voyage validation

When a policy is written for a specific voyage, the terms usually specify an expected route. If the vessel deviates into a sanctioned zone or a restricted area, the policy can be voided.

NTHMAP lets underwriters monitor insured voyages via the API:

import nthmap

client = nthmap.Client(api_key="ntm_live_...")

# Check position of one of our insured vessels
vessel = client.vessel("311000001")
if vessel["lat"] > 30 and 55 < vessel["lng"] < 58:
    # In the Strait of Hormuz — flag for review
    alert("VLCC GULF NAVIGATOR entering Hormuz — verify war risk coverage")

# Track the vessel's 24-hour path to check for deviations
track = client.vessel_track("311000001")

For production, you'd run this on a portfolio of 500+ insured hulls via the CLI:

for mmsi in $(cat insured-mmsis.txt); do
  nthmap vessels get $mmsi --format json
done | jq '[.[] | select(.lng > 41 and .lng < 50 and .lat > 11 and .lat < 15)]' > \
  redsea-exposures.json

You know exactly which of your policies are currently exposed in a high-risk zone, right now, at any moment.

3. Claims forensics

When a claim comes in ("our vessel had an incident"), you need to reconstruct what the ship was doing at that moment. NTHMAP's vessel track history (24 hours on Pro, longer on Enterprise) gives you positions, speeds, and headings for every AIS-broadcasting vessel.

nthmap vessels track 311000001 --format json > track-311000001.json

Cross-reference with:

  • nthmap events list — was there a hurricane, earthquake, or storm in the area?
  • nthmap vessels list --bbox ... — were there other vessels nearby that might have collided?
  • nthmap infra list --bbox ... — were they near a port, terminal, or offshore platform?

Claims that took 6 weeks of manual investigation can be factually reconstructed in an afternoon.

Portfolio-level risk dashboards

Most P&I clubs and hull underwriters want a portfolio view: "how much of our book is currently exposed to war-risk zones?"

import nthmap
from collections import Counter

client = nthmap.Client(api_key="ntm_live_...")

# Load your insured portfolio (MMSI → insured value)
portfolio = load_portfolio_csv("insured-vessels.csv")

# Define high-risk zones as bboxes
zones = {
    "Red Sea southern": [41, 10, 50, 16],
    "Persian Gulf": [48, 24, 57, 30],
    "Black Sea": [28, 41, 42, 47],
    "Gulf of Guinea": [-10, -5, 10, 10],
}

exposure = Counter()
for mmsi, insured_value in portfolio.items():
    v = client.vessel(mmsi)
    for zone_name, (w, s, e, n) in zones.items():
        if w < v["lng"] < e and s < v["lat"] < n:
            exposure[zone_name] += insured_value

print("Current war-risk exposure by zone:")
for zone, total in exposure.most_common():
    print(f"  {zone}: ${total:,.0f}")

Run it every 15 minutes; pipe to a dashboard. When exposure exceeds a threshold, alert the chief underwriter.

MCP integration for underwriting agents

The MCP server is particularly useful for underwriting because the workflow is conversational:

Underwriter to AI: Draft a war-risk surcharge for a VLCC transit from Ras Tanura to Rotterdam, routed via Suez. Consider current conditions.

AI (via NTHMAP MCP):

[calls list_events(types=["conflict"], bbox=[41,10,50,20])] [calls get_chokepoints] [calls analyze_region(bbox=[41,10,50,18])]

Based on current conditions:

  • Red Sea southern approach has an active conflict event (severity Extreme, 200km radius, Houthi maritime threat zone)
  • Gulf of Aden chokepoint is flagged Alert with vessels transiting at 15.2 knots (vs 13 normal baseline)
  • 47 vessels currently in the zone, 22 of which are crude tankers
  • No active hurricane or storm events on the suggested route

Recommended surcharge: 0.35% of hull value for single transit, tiered to 0.55% if routing via the Bab-el-Mandeb strait specifically. Alternative routing via the Cape of Good Hope adds ~14 days and ~$1.8M bunker cost but eliminates war-risk exposure — may be economically preferable at current $200M+ hull valuations.

That's a compliant, data-backed, auditable pricing recommendation in 30 seconds of agent work.

Working with reinsurance

Reinsurers face the aggregation problem at scale: "how exposed are we in total, across all our cedents, to any single catastrophic event?"

NTHMAP solves the data side:

# Every vessel in a specific chokepoint right now
nthmap vessels list --bbox 41,10,50,16 --format json > exposed-vessels.json

# Cross-reference with cedent portfolios internally to compute aggregation

Then the reinsurer can cap their exposure or retrocede the tail.

Disclaimers

NTHMAP provides data for underwriting decisions. We do not provide:

  • Regulatory guidance (OFAC, EU sanctions, UK sanctions screening — that's your compliance team)
  • Sanctions list matching (no OFAC SDN list cross-reference yet)
  • Automated underwriting decisions (the data informs, the underwriter decides)

For licensed redistribution of NTHMAP data into your underwriting platforms, see the enterprise tier.

Get started

Launch the map, turn on the Events and Chokepoints layers, and pan over the Red Sea. If you're evaluating NTHMAP for a marine book, email insurance@nthmap.com for a conversation about pilot programs.