Ship Insurance¶
A one-time-purchase policy attached to a hull at commissioning. On destruction, the policy pays the registered owner a fraction of the ship's purchase value. Insurance is a deflationary credit sink at the population level — total premiums collected exceed total payouts, by design (see ../economy/lifecycle.md#28-insurance-premiums).
For the destruction flow that triggers a payout see ./ships.md#destruction-escape-pod. For the schema shape see ../../DATA_MODELS/ships.md (Ship.insurance JSONB; InsuranceType enum at models/ship.py).
Tiers¶
models/ship.py:InsuranceType — four values: NONE, BASIC, STANDARD, PREMIUM.
| Tier | Premium (% of purchase value) | Coverage | Deductible | Net payout on destruction |
|---|---|---|---|---|
| NONE | 0% | 0% | — | 0 |
| BASIC | 10% | 50% | 5% | 45% × purchase_value |
| STANDARD | 17% | 75% | 10% | 65% × purchase_value |
| PREMIUM | 22% | 90% | 15% | 75% × purchase_value |
The premium percentages (10% / 17% / 22%) are canon per ADR-0081. The shape is calibrated so a player who loses ~30% of their ship value across the hull's lifetime breaks even on STANDARD; players who lose ships rarely subsidize players who lose them often, and the population-level spread guarantees deflation per ../economy/lifecycle.md.
What insurance covers — and what it does not¶
Insurance covers ship purchase value only. It does not cover:
- Cargo aboard at destruction (becomes a Cargo Wreck in the destruction sector).
- Installed upgrades or equipment-slot modules.
- Genesis Devices, mines, or other tracked-separately munitions on the hull.
- Reputation, faction-standing, or rank progression effects.
The insurance value tracks Ship.purchase_value at the moment of purchase, not the live Ship.current_value (which depreciates with maintenance condition). A neglected hull that drops in current_value still pays out at the tier's coverage of its original purchase value.
Non-insurable ships¶
📐 Design-only. Some ships are flagged insurable = false on ShipSpecification and cannot be insured at any tier:
- Warp Jumper — purpose-built around a planned-destruction use case (Phase 3 of warp gate creation per ADR-0029). No insurance company in-universe writes policies on a hull whose canonical use sacrifices the ship; the 1,000,000 cr investment is the gate-builder's actual risk capital, not a hedged premium. Insurance UI hides the tier selector for Warp Jumpers; any attempt to attach a policy is rejected at the model layer.
- Escape Pod — issued, not purchased, and indestructible by design.
Combat-destruction of a Warp Jumper (i.e., killed in transit before Phase 3) is treated identically to anchor-destruction at Phase 3: no payout. The owner loses the full 1,000,000 cr ship value.
Buying insurance¶
Purchased at any friendly port at ship commissioning time. "Friendly" means a station where the player has at least NEUTRAL reputation with the controlling faction. Premium is paid upfront; coverage attaches to the hull and persists for its lifetime — there are no renewals, no claim-history adjustments, and no per-incident cancellations.
Insurance can be upgraded (BASIC → STANDARD → PREMIUM) at a friendly port; the player pays the difference between the tiers' premiums. Insurance cannot be downgraded or cancelled for a refund.
Payout flow¶
Canonical formula (per ADR-0061 S-D3):
payout = (coverage% − deductible%) × purchase_value
= net_payout%(tier) × purchase_value # equivalent — table form
The Net payout on destruction column in the Tiers table above is the precomputed (coverage − deductible) value: 45% (BASIC), 65% (STANDARD), 75% (PREMIUM). Both forms produce the same number; the table form is the cached/displayed value, the formula form is what the destruction handler computes.
When a ship is destroyed:
Ship.statusset toDESTROYED.- The destruction handler reads
Ship.insurance.tierandShip.purchase_value. - Payout computed via the canonical formula above.
- Credits added to
Player.creditsof the registered owner (per../../SYSTEMS/ship-registry.md#insurance-interaction) — never the current pilot. - Combat log entry includes the payout amount and tier.
Payout is immediate (same transaction as destruction) — no claims process, no waiting period.
Worked example¶
A 300,000 cr Defender insured at STANDARD:
- Premium paid upfront at purchase: 51,000 cr (17% × 300,000, per ADR-0081).
- Defender takes a missile from a pirate; hull → 0.
- Cargo (let's say 50,000 cr of equipment) becomes a Cargo Wreck in the sector. Lost unless the owner or a teammate retrieves it within the grace window.
- Ship destruction processes; insurance pays
(75% − 10%) × 300,000 = 195,000 crto the registered owner. - Pilot ejects to escape pod with credits intact. Net loss: 300,000 (ship) + 51,000 (premium) − 195,000 (payout) = 156,000 cr plus whatever cargo wasn't recovered.
Without insurance, the same destruction costs the full 300,000 cr ship value, but no premium was paid up front — for casual play the math is simple: insure if you expect to be destroyed more than 1× per (purchase_value / payout) hulls, otherwise self-insure. STANDARD's 65% payout means insurance is net-positive expected value when destruction probability exceeds ~26%.
Edge cases¶
- Stolen-status ship destroyed while a thief is piloting. Payout still goes to the registered owner. The thief's
Wanted Statusclears (ship gone) but they collect nothing. See../../SYSTEMS/ship-registry.md#insurance-interaction. - Ship abandoned at a port (manual abandonment, not destruction). No payout; insurance lapses with the hull. The next claimant of an abandoned hull inherits whatever insurance tier was on it (see
./ships.md#manual-eject-and-the-ship-registry). - Warp Jumper consumed at warp gate creation. Warp Jumpers are non-insurable (see Non-insurable ships above) — Phase 3 destruction does not fire any payout. The 1,000,000 cr investment is the gate-builder's risk capital. See
../galaxy/warp-gates.md. - Ship destroyed while being towed by a Tractor Beam hauler. The towed ship's destruction triggers its own insurance payout to its registered owner. The hauler's destruction does not destroy the towed ship — the towed ship enters Drifting state intact (see
./ships.md#tractor-beam-tow-operations). - Mid-tier upgrade in flight. Upgrading BASIC → PREMIUM mid-mission: coverage changes immediately on payment; no waiting period, no anti-fraud delay. The credit cost is the premium difference (
PREMIUM_premium − BASIC_premium), not the full PREMIUM premium.
Source¶
services/gameserver/src/models/ship.py—InsuranceTypeenum,Ship.insuranceJSONB column.services/gameserver/src/services/ship_service.py—_calculate_insurance_payout(✅ — net payout(coverage − deductible): BASIC 45% / STANDARD 65% / PREMIUM 75% ofpurchase_value, deductible applied per ADR-0061; reads per-hullship.insurance). Payout proven live 2026-06-14 (see FINDINGS.md).services/gameserver/src/api/routes/ship_upgrades.py—GET/POST /ships/{id}/insurance(✅ — buy/upgrade at a station offering insurance; premium per ADR-0081; non-insurable + downgrade rejected). v1 gates on station-offers-insurance; the NEUTRAL-rep "friendly port" check is a documented follow-up.