Skip to main content

Endpoint

GET /api/v1/dashboards/decision-health/summary?days=<1-90> (default 7d). Tenant-scoped, viewer+ role.

Response shape

Honest limits

  • All numbers are aggregates from existing tables. No time-series storage was added — the trend series is best-effort over DecisionTrace timestamps within the window.
  • modelAucTrend is best-effort. We read auc from each model’s top-level metrics.auc field (written by every trainer — not modelState, which holds priors/trees/weights); models that don’t track AUC (e.g., Bayesian, Thompson) are absent from this list.
  • engagementMultiplier averages the engagementMultiplier value across active contact policies that defined one. Tenants without engagement-aware caps see null here.
  • The window is capped at 90 days because the trace scan is unbounded otherwise.

UI

/dashboards/decision-health renders:
  • 5 KPI cards (decisions, acceptance %, fairness audits, contact- policy hits, engagement multiplier).
  • Acceptance-trend line chart (accepted vs total per day).
  • Top-10 offers bar chart.
  • Model-AUC table.
  • Scenario-forecast badge row.
Window selector lets operators flip 1d / 7d / 30d / 90d. Each selection re-fetches with the corresponding ?days= value.