# Engagement Metrics Dashboard

Phase 72.5.2.5 adds `@v2/engagement-metrics-dashboard`, the operational surface
for session length distribution, sessions per week, and time between sessions.
The policy is `v2-engagement-metrics-dashboard-v1`.

`buildV2EngagementMetricsDashboardSurface` uses `@iris/analytics` engagement
metric names and converts `v2.player.session.started`,
`v2.player.session.ended`, and `v2.player.session.activity` telemetry into
deterministic session records. Complete sessions feed the session length
distribution, all sessions feed weekly cadence, and per-account start times feed
time-between-sessions intervals.

The service consumes `accountIdHash` and `sessionId` fields. It emits aggregate
bins and weekly rows for dashboards and does not expose raw account IDs.

## Operator Surface

Rendered UI should lead with the three operational questions: how long players
stay in sessions, how often they return each week, and how much time passes
between sessions. Use compact date-window controls and keep the three charts
visible without a marketing-style hero.

The session length histogram, weekly cadence line/table, and inter-session
interval histogram should share the same time filter. Empty and incomplete
session states should remain explicit so operators know whether telemetry is
missing or players are still in active sessions.

## Verification

Targeted verification:

```bash
pnpm --filter @v2/engagement-metrics-dashboard run typecheck
pnpm --filter @v2/engagement-metrics-dashboard run test
python V2/ue/Tools/check-v2-engagement-metrics-dashboard.py
python -m json.tool V2/ue/Build/Telemetry/v2-engagement-metrics-dashboard.json
```
