EU261 & Passenger Fallout
Operations Control Centre · observer/advisor layer · non-binding
PHASE 2B-9
ESTIMATE — NOT A LEGAL LIABILITY
Total cases
—
Detected
—
Review required
—
DoC active
—
Human decision
—
Closed
—
Audit chain
—
Engine status
—

Cause distribution

Open cases grouped by classification primary cause · advisory only.
No cases yet. Distribution populates when Flight Watch / Disruption events arrive.

Recovery chain depth distribution

OPS-RECOVERY chain depth bound at 8 (Phase 2B-5). Cases beyond the bound carry the RECOVERY_CHAIN_LIMIT_REACHED substate.
No recovery activity yet.

Recent activity

Last 12 audit entries across all cases. Read-only. Append-only chain.
TimestampEventActorKindCaseState
No audit activity yet.
State Cause Search

Affected flights

Case IDFlightTriggerStateSubstateCause Exposure (estimate)FinanceACODisruptionRecoveryNoticeUpdated
No cases match the current filters. Cases populate when Flight Watch / Disruption events arrive.
Case

Passenger fallout timeline

Chronological audit trail for the selected case. Append-only; corrections are new entries that reference the original.
Select a case from the dropdown to view its timeline.

Duty of care advisory (read-only)

Delay path: 120 min → meal; 180 min → +communication; 240 min → +hotel +transport. Cancellation path: communication + rerouting + refund/reroute offer always required; meal when pax at airport or same-day; hotel + transport when overnight disruption indicated.
Case
Delay
Reason
Meal
Communication
Hotel
Transport
Rerouting
Refund / Reroute
No duty-of-care advisories yet. Computed only when computeDutyOfCare is called on a case.

Aggregate exposure (estimate)

ESTIMATE — NOT A LEGAL LIABILITY · NOT A FINANCE BOOKING
Total estimate
—
advisory only
SHORT band (≤1500 km)
—
0 cases
MEDIUM band (1500–3500 km)
—
0 cases
LONG band (>3500 km)
—
0 cases
Computed
—
Data incomplete
—

Per-case exposure breakdown

Deterministic computation: distance band × unit EUR × eligible passengers.
Case IDFlightDistanceBandUnit (€) Pax eligibleEstimate (€)ConfidenceReason
No exposure computed yet. Call engine.computeExposure(caseId) to populate.

Audit chain integrity

VERIFIED SHA-256 hash chain · 0 entries
Case Event type

Audit log

Append-only, hash-chained. Each row carries an entry hash linking to its predecessor.
EntryTimestampEventActorKindCaseState at eventHash
No audit entries match the current filters.

Evidence log

Sealed, append-only. Carries non_binding / advisory_only flags and a SHA-256 payload hash.
Evidence IDCapturedKindCaseByNon-bindingAdvisory onlyPayload hash
No evidence rows match the current filters.
Read-only review surface. Phase 2B-9 surfaces cases awaiting reviewer action. The Decide path (USER actor + decision + rationale ≥ 20 chars) is performed via the engine API call engine.advanceLifecycle with case id, target state CLOSED, reviewer USER id, decision and rationale arguments; a dedicated four-eyes Decide modal is reserved for a follow-up phase. No lifecycle change is initiated from this UI.

Cases awaiting human decision

No cases are currently in HUMAN_DECISION state.
EU261 Engine v— · PHASE_2B_9 UI · Owned files: eu261_cases.json · eu261_passenger_actions.json · eu261_evidence_log.json · eu261_audit_log.json · Engine source unchanged in Phase 2B-9 (UI only).