Every event, re-playable.
Scanner events, door state changes, jockey moves, driver check-ins, pick confirms — all event-sourced into hourly snapshots with forward-fold projection. Ask for state at 14:32:07 three Tuesdays ago, get it in under a second.
- Hourly snapshots + event fold-forward from snapshot to target time
- Scrub bar with red-flag event pins (detention, short, reassignment)
- Play / pause / 0.5x / 1x / 2x / 5x speed control
- Live / replay handoff with pause-on-scrub
Seven heuristics. Weighted.
Given a root event, OMNIS walks backward through SIGNAL's event store and scores every candidate link. Same trailer counts heavy. Same dock in a 60-minute window counts medium. Same carrier counts light. Every link carries a weight, an explanation, and a kind — so the DAG is auditable, not a black box.
Click a red flag. See the "why".
The DAG is not "AI magic". Every edge has a rule key, a weight, and an explanation you can inspect. This is auditable causality: you can disagree with a weight, override a link, and the engine learns from your correction.
- Multi-level DAG, click any node to expand its ancestors
- Per-edge rule_kind, weight, explanation, timestamp delta
- Severity ranking on the root event (incident / major / minor)
- Trace saved to causal_traces for audit + learning
90 seconds. Shift report style.
Every red-flag event auto-generates a cinematic: a sequence of keyframes with narration, camera moves on the 3D twin, and a plain-English summary. Auto-emailed to supervisors at shift end. No more staring at logs trying to piece together what happened.
- ONE-narrated keyframes (optional LLM reasoning layer)
- Camera hooks into twin scene at each event location
- Severity → auto-delivery rules (incidents email immediately)
- Exported as MP4 for carrier dispute evidence
Built for every integration.
Every trace is accessible programmatically. Audit-ready, BI-ready, dispute-ready.
POST /api/causal/trace
{
"root_event_id": "evt_82bb4c...",
"window_minutes": 120
}
// → returns DAG with nodes, edges, weights, severity
GET /api/causal/traces?limit=20
// → recent traces with summaries,
// cinematic_ready flag, severity tier
// GET /api/causal/trace/:id
GET /api/causal/trace/trc_9ff1ea...
Never ask "what happened" again.
Fifteen minute demo. We'll replay a real day in a real warehouse and show you the DAG.