> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kaireonai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Decision Health Dashboard

> W9.1 — aggregated dashboard at /dashboards/decision-health summarizing decision acceptance, model AUC, fairness audits, contact-policy hits, engagement multiplier, and scenario forecast volume.

## Endpoint

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

## Response shape

```jsonc theme={null}
{
  "windowDays": 7,
  "windowFrom": "2026-04-22T00:00:00.000Z",
  "acceptanceTrend": [
    { "day": "2026-04-22", "accepted": 1234, "total": 1500 }
  ],
  "perOfferAcceptance": [
    { "offerId": "OFFER_A", "count": 412 }
  ],
  "modelAucTrend": [
    { "modelId": "...", "modelName": "gbm-prod-v3", "modelType": "gradient_boosted",
      "auc": 0.84, "updatedAt": "2026-04-25T..." }
  ],
  "fairnessAuditCount": 18,
  "contactPolicyHits": 4321,
  "engagementMultiplier": 1.07,
  "scenarioForecast": { "runCount": 6, "valueDeltaSum": 12450.123 },
  "meta": { "tracesScanned": 14820, "modelsScanned": 12 }
}
```

## 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.
