| SPI-01 |
Evidence chain integrity |
chain verifies end to end; 0 breaks |
all (hash re-verification) |
L2 |
O4 |
100% of flights with verifiable bundle |
any break |
| SPI-02 |
Permit denial rate by reason class |
MISSION_DENIED / D4, split by reason prefix (config_hash_not_approved, life_limit, insufficient_energy_for_route, bad_*, directive_constraint, non_operational_class, route_hash_mismatch) |
MISSION_DENIED, MISSION_REQUEST |
L2 |
O2, O3, O5 |
trend only (a healthy gate denies) |
any bad_request_signature or bad_airframe_credential in live ops |
| SPI-03 |
Configuration mismatch at request |
count MISSION_DENIED reason config_hash_not_approved / D4 |
as above |
L4 (hash measured on FC) |
O2 |
0 in live ops after first approval |
> 0 |
| SPI-04 |
Flights with unpinned config |
flights where airframe has no CONFIG_APPROVED newer than last CONFIG_PIN_REMOVED |
CONFIG_APPROVED, CONFIG_PIN_REMOVED, PERMIT_ISSUED |
L2 |
O2 |
0 |
> 0 |
| SPI-05 |
Refusals to arm (authority-initiated), by reason class and airborne flag |
count AIRFRAME_REFUSED, split airborne, reason |
AIRFRAME_REFUSED, AIRFRAME_REFUSAL_CLEARED, DIVERT_ORDERED |
L3 (signed) |
O5 |
trend; 100% reviewed within 7 days |
any airborne refusal |
| SPI-06 |
Divert rate |
(BATT_DIVERT + DIVERT_ORDERED) / D1 |
as named |
L2 |
O1 |
< 0.5% (v1 sim: 0.33%) |
> 1% rolling 100 flights |
| SPI-07 |
Critical forced descent rate |
BATT_CRITICAL / D1 |
BATT_CRITICAL |
L2 |
O1 |
0 in live ops (v1 sim: 0.011%) |
any |
| SPI-08 |
Emergency landing rate |
(BATT_EMERGENCY_LAND + REFUGE_LANDING + HOLD_TIMEOUT_LAND) / D1 |
as named |
L2 |
O1 |
< 0.3% (v1 sim: 0.26%) |
> 0.5% |
| SPI-09 |
Life-expired part flown |
flights where any module hours >= limit_h at PERMIT_ISSUED |
modules, PERMIT_ISSUED, OVERHAUL |
L2 |
O3 |
0 |
any |
| SPI-10 |
Part-life margin |
min over fleet of (limit_h - hours)/limit_h; count of SCHEDULED_MAINTENANCE |
modules, SCHEDULED_MAINTENANCE |
L2 |
O3 |
no module below 10% without scheduled maintenance |
< 5% |
| SPI-11 |
Energy margin at permit |
distribution of energy_margin_wh / usable_wh from PERMIT_ISSUED; landing SoC from LANDED-adjacent soc_pct |
PERMIT_ISSUED, BATT_* |
L2; SoC L1 |
O1 |
p5 landing SoC > 20% |
p5 < 15% |
| SPI-12 |
Occurrence classification latency |
time from triggering event to HE class assigned in the occurrence record |
occurrence records (05) |
n/a (process) |
O6 |
100% within 24 h |
any > 72 h |
| SPI-13 |
Hold time in air |
sum of time between REFUGE and REFUGE_RESUME/REFUGE_LANDING per flight |
REFUGE, REFUGE_RESUME, REFUGE_LANDING |
L2 |
HE02/HE03 |
p95 < hold budget |
HOLD_TIMEOUT_LAND > 0 |
| SPI-14 |
Pad conflicts |
WAVE_OFF + PAD_BLOCKED_FOD / landings |
as named |
L2 |
HE02 |
trend |
> 2% |
| SPI-15 |
Directive compliance |
DIRECTIVE_ENFORCED / DIRECTIVE_ISSUED affecting active flights; 0 flights continuing in a restricted corridor |
DIRECTIVE_*, PERMIT_ISSUED |
L3 (agency-signed) |
HE03/HE04 |
100% |
any non-compliance |
| SPI-16 |
Intrusions |
INTRUSION_DETECTED per 100 flights; response class |
INTRUSION_* |
L2; detection L1 |
HE03 |
trend |
any unresolved > 10 min |
| SPI-17 |
Human consent gate events |
per flight: consent given, by whom, against which config hash |
not yet ledgered (ADR-0005 companion) |
L1 today |
O2, X.3 |
100% of flights |
n/a until built |