PR metrics
Delivery analytics for pull requests — velocity, review turnaround, contributor load, discussions, commits, open-PR triage, and AI/bot activity.
/pull-requests/metrics connects pipeline health to engineering throughput — how fast PRs move, where reviews stall, and who carries the load. It's a paid-tier feature; on the Free plan the page shows an upgrade banner.
Page controls
- Repository filter and time range — everything on the page respects both.
- Focus mode — hides the summary cards and PR radar so the charts take over; the choice is remembered per browser.
- Summary cards — Total PRs (with an open / merged / closed / drafts breakdown), AI & Bots (click it to jump to that tab), Merge Rate, and Avg Time to Merge.
- PR radar — three pills: Opened, Merged, and Avg time to merge, each with a trend arrow against the prior period.
Tabs
Overview
The at-a-glance view of PR health in the selected range.
- PR Trends Over Time — PRs opened, merged, and closed per period. A widening gap between opened and merged means the review queue is growing.
- Status Distribution — the share of PRs by state (open, merged, closed, draft). A large closed-not-merged slice hints at abandoned work.
- Review Activity — two numbers: Avg Reviews per PR (how many review cycles a request needs) and Avg Comments per PR (conversation depth).
- Top Active PRs — the PRs with the most activity in the range, ranked — where the attention actually went.
Metrics
Time and distribution metrics.
- PRs by Repository — which repositories produce the most pull requests.
- Average Time to Merge — creation → merge across merged PRs, as a single headline number.
- Average Time to Close — creation → close for PRs that were closed without merging. Long values mean stale or forgotten work.
- Peak Activity Time / Peak Activity Day — when in the day and which weekdays PR activity happens. Useful for scheduling reviews and understanding contention.
- Metric Trends — how the headline metrics moved over the range, so you can see whether velocity is improving or degrading.
Contributors
Who opens PRs and how fast they move, with a per-person filter at the top.
- Contributor Workload — per user: PRs opened and merged, PRs merged with no review and with no approval (rubber-stamp risk), total lines changed, and a PR-size breakdown (XS–XL).
- Lead Time — the merge pipeline broken into stages per user: time in draft, time to review request, time to first review, time to re-review, time to approve, and time to merge — so you can see exactly which stage each person's PRs wait in.
Discussions
How the team actually reviews.
- Lead Time vs Size correlation — scatter of PR size against lead time: confirms (or busts) the "smaller PRs merge faster" intuition for your org.
- Discussion Intensity — comments received per contributor, split by agreement — who gets the most pushback or the longest threads.
- Reviewer Discussion Intensity — the same view from the reviewer side: who does the heavy reviewing.
- Reviewer Response Time — per reviewer: opening → response, review-request → response, and re-request → response times. The table to look at when PRs stall waiting for feedback.
Commits
Commit-level activity behind the PRs.
- Commit Trends — commit volume over the selected range.
- Top Committers — contributors ranked by commit count.
- Repositories by Commits — which repos absorb the most commits.
- Commits–Commenters correlation — commits vs comments per contributor: finds people who push a lot but rarely review (and vice versa).
Open PRs
A live triage list of everything still open — the count badge shows how many. Four sub-views plus an author filter:
- All Open — every open PR, sortable by title, repository, author, created, updated, last activity, and inactivity.
- My PRs — the same list filtered to your GitHub username.
- Stale — PRs with no activity for 14+ days, with severity cards (2–4 weeks, 1–3 months, 3–6 months, 6+ months) — click a card to filter the table to that severity.
- Drafts — open draft PRs.
Each row links straight to the PR on GitHub, and bot-authored PRs carry a badge.
AI & Bots
Automation-authored pull requests in the selected range, classified into three categories:
- AI agents — opened by Copilot, Cursor, Devin, Claude, and similar coding agents.
- Bots & apps — Dependabot, Renovate, GitHub Actions, and other automation accounts.
- AI co-authored — human PRs carrying
Co-authored-by/ AI-generation signals.
Charts break the population down by category, by tool / agent, by author, by status in range, by activity over time, and by repository — followed by the PR list itself, where each row shows the detected tool and the signals that triggered the classification (author account, co-author trailer, and so on).
Typical uses
- PRs wait days for the first review → Discussions → Reviewer Response Time shows who to rebalance.
- Long lead time is all CI → Contributors → Lead Time isolates the stage; the slowest workflows and regressions then tell you which pipeline to fix.
- Stale drafts pile up → Open PRs → Stale, sorted by inactivity — close or revive.
- Half the PRs are bots → AI & Bots shows the real share and whether it's growing.