/dashboard/analytics. Five tabs sit under one route, and the active tab syncs to the ?tab= query parameter so any view can be linked or bookmarked directly.
Overview is the default. An unknown or malformed
?tab= value falls back to it rather than erroring.
Older links still work.
/dashboard/accuracy permanently redirects to /dashboard/analytics?tab=accuracy, and the even older /dashboard/insights redirects through it. The active installation (?org=) is preserved across both hops, so a bookmark keeps pointing at the same organization.Cost & Impact
Deliberately placed second — one click from the landing tab rather than buried under a wall of charts, because for most teams this is the tab that justifies the tool. LLM cost is tracked per review and aggregated here. Self-hosted deployments need to tell MergeWatch what their model costs before this reads anything useful — seeLLM_MODEL_INPUT_PRICE_PER_1M, or the pricing block in .mergewatch.yml. Without one of those, a model MergeWatch does not ship prices for shows as unpriced rather than as zero.
Cycle time measures time-to-merge across the PR lifecycle, reported as percentiles rather than a mean — a mean is dominated by the one PR that sat open for three weeks, and tells you nothing about the typical case.
Read the two together. Cost alone is a number without a denominator; cost against a movement in merge time is an argument.
Accuracy
Where the feedback signals surface.- The false-positive funnel — how many findings were surfaced, how many were disputed, how many were silently dropped.
- Dispute rate by agent — which agents are trusted in your repositories and which are not.
- Themes — clusters of findings that keep recurring, which usually means a convention worth documenting rather than a bug worth fixing repeatedly.
- Per-repo heatmap — where accuracy differs across the installation.
Rates distinguish “no signal” from a real zero. A blank is no data in this window, not nothing was useful. Do not read a quiet week as a bad score.
Activity
Developer engagement with reviews: reviews delivered, re-reviews requested,/mergewatch reject commands, helpful votes, and NPS responses.
Engagement is the leading indicator. Accuracy tells you whether reviews are correct; activity tells you whether anyone is reading them. A high-accuracy review nobody engages with is still failing.
Rollup cadence
Analytics is computed by a rollup job, not live per request. It runs hourly by default. Self-hosted deployments can change that withINSIGHTS_ROLLUP_INTERVAL_MINUTES — raise it to reduce database load. A number that is unset, non-numeric, or non-positive falls back to hourly.
Because the data is rolled up, a review that completed a few minutes ago may not have landed in these views yet. That is expected, not a bug.
Next steps
Feedback signals
The signals the Accuracy and Activity tabs are built from.
Reviews
Per-review detail behind the aggregates.