← Portfolio

HARBORSHIELD / v0.2 / PROTOCOL 2026-10-04

From a recommendation
to reproducible evidence.

These are synthetic experiments, not historical shipping observations. Independent samples check decisions under an assumed model; they do not validate insurance pricing or real-world performance.

20 containers · 70% route cap · 30-day mean-transit limit · 1,000 training worlds · 10,000 held-out worlds · five training seeds.

Normal operations

PolicyDirect / Busan / KlangTest meanTest CVaR95
Joint CVaR[6, 14, 0]$153,987$218,369
Cost only[6, 14, 0]$153,987$218,369
Balanced feasible[7, 7, 6]$161,345$228,547
Additive tail proxy[6, 14, 0]$153,987$218,369

Monsoon weather

PolicyDirect / Busan / KlangTest meanTest CVaR95
Joint CVaR[6, 14, 0]$223,572$313,742
Cost only[6, 14, 0]$223,572$313,742
Balanced feasible[7, 7, 6]$240,822$336,379
Additive tail proxy[6, 14, 0]$223,572$313,742

Port congestion

PolicyDirect / Busan / KlangTest meanTest CVaR95
Joint CVaR[6, 14, 0]$254,268$360,812
Cost only[6, 14, 0]$254,268$360,812
Balanced feasible[7, 7, 6]$272,107$383,175
Additive tail proxy[6, 14, 0]$254,268$360,812

Strait disruption

PolicyDirect / Busan / KlangTest meanTest CVaR95
Joint CVaR[10, 10, 0]$298,116$426,050
Cost only[6, 14, 0]$296,801$426,536
Balanced feasible[7, 7, 6]$310,744$440,676
Additive tail proxy[6, 14, 0]$296,801$426,536

Shared-shock sensitivity

Normal regime: held-out batch CVaR95. Policies are re-selected at each latent dependence assumption. The horizontal bars use a zero cost origin.

ρ = 0.0
$184,489
ρ = 0.35
$218,369
ρ = 0.7
$260,743
ρ = 0.95
$304,166

What the results do—and do not—show

Baseline policies can coincide. If cost-only and joint-risk allocations are the same, the measured improvement is zero. This model does not guarantee that a more complex method will outperform a simpler policy.

The full report includes paired bootstrap intervals, training-seed stability, sample-size diagnostics, equations, input hashes and exact unrounded values. The MPA arrivals series is displayed separately as public-data context.

Read full report ↗ · Inspect raw results ↗