modules/analytics.mdEngineering, modules~1 min read

Module: analytics

Part of the Travi AI Agent monolith (app/modules/analytics/). Read 00-overview.md ยง3 (hard rules) before changing anything here.

Purpose Honest numbers: fixed denominators, execution reports by task category, outcome ingestion with coverage flags.
Owns (data) outcome_event, report projections (read models)
Public surface /admin/reports/execution, /admin/reports/outcomes
Depends on episode/notification event stream (outbox), ingestion (ADT/HIE/claims)
Requirements owned ADM-004/007
Constraining ADRs ADR-016
Key references adr/ADR-016.md

Rules that must never break

  1. Denominators are frozen (ADR-016): offered / activated / engaged / completed. Offered is the only valid outcome-rate denominator; every report footer prints all four plus coverage %.
  2. Coverage honesty. ADT/HIE outcome coverage <80% flags readmission metrics; <50% suppresses them. completeness_note rides every outcome_event.
  3. Execution categories map 1:1 from task states: required, attempted, completed, blocked, escalated, unresolved, no invented buckets.
  4. Small-cell suppression: aggregates with n<11 are suppressed in any export.