PAR-192
[Epic] Analytics & reporting — lead/cycle time, throughput, DORA, churn
Greenfield — zero dashboards/metrics today and no charting dependency.
Scope:
- Metrics: cycle/lead time, throughput, churn, DORA, status aging, burndown.
- Data foundation:
issue.created_at/completed_at/updated_at+issue_event(activity log) already exist, enough for cycle time/throughput. Missing: a state-transition history with timestamps for proper per-status lead time — add if not derivable fromissue_event. - An aggregation service + a charting layer (no viz dep in
package.jsonyet) + dashboard routes. - Per-team / per-workspace breakdowns — these breakdowns also feed the billing-reporting epic.
Reporting reads from the mirror; respects RBAC (who can see workspace analytics).
Comments
tesks · Jun 16, 2026, 9:19 AM
DORA dashboard shipped to develop (tesks-ui 73287eb) — members-only Analytics page (recharts):
- Deployment frequency (frozen releases) and lead time for changes (issue created → release frozen) — measured. Summary cards (90d) + weekly trend charts (12w).
- Change-failure-rate and time-to-restore — clearly-labelled proxies (bug/regression issues landing within 7 days of a deploy / median bug resolve time), since tesks has no incident signal. The hints say so.
lib/sql/analytics(parameterised aggregate SQL over release/issue/issue_event/labels),AnalyticsChartsclient component, sidebar nav link, recharts dep. typecheck + vitest + next build green; no Java backend change (reads the mirror).
Possible follow-ups (not in this vertical): throughput + created→completed cycle-time distribution + churn; per-team/per-workspace rollups (these also feed the billing-reporting in PAR-193); and a real incident/hotfix entity to make CFR + MTTR exact rather than proxied.
tesks · Jun 17, 2026, 4:12 AM
Verified — partially delivered, keeping open.
Shipped & live: a DORA dashboard — deployment frequency, lead time for changes, change-failure-rate (bug/regression-within-7d proxy), time-to-restore — at /analytics (sidebar-linked), backed by lib/sql/analytics.ts getDora and AnalyticsCharts (recharts).
Remaining (→ child issue): the core issue-delivery metrics — throughput, cycle/lead time per status, churn, status aging, burndown — plus the state-transition-history decision (issue_event kind='status' exists but there's no dedicated history table for accurate per-status timing). Set to In Progress.
tesks · Jun 17, 2026, 9:57 AM
Closing the epic — fully delivered. DORA dashboard shipped earlier, and the issue-delivery analytics (throughput, cycle time, status aging, churn, sprint burndown) landed under PAR-212 (Done). No remaining scope.
Activity
- tesks changed status to Status → Done
- tesks commented
- tesks changed status to Status → In Progress
- tesks commented
- tesks commented
- tesks changed status to Status → Pending Release
- tesks changed status to Status → In Progress
- tesks created the issue