PR Revert Rate

Last updated: October 27, 2026

PR Revert Rate shows how often merged pull requests (PRs) are later undone by a revert PR. A rising rate points to gaps in review, testing, or release checks.

Why it matters

  • Quality health check: a revert means a change shipped that shouldn't have. Spikes point to process problems worth a look.

  • Team comparison: shows which teams might benefit from support with review, testing, or tooling.

  • Measuring improvements: track the rate after you change review guidelines, add tests, or adopt new tooling.

How it works

PR Revert Rate = Total Reverted PRs ÷ Total PRs merged × 100
  • Total Reverted PRs: PRs by your contributors whose status is reverted.

  • Total PRs merged: PRs by your contributors whose status is still merged. A reverted PR moves out of this count, so the denominator excludes the reverted PRs.

How Span detects a revert:

  1. When Span ingests a PR from GitHub (github.com), it reads the PR description. "Reverts owner/repo#123" at the start of a line (the text GitHub's Revert button writes) marks PR 123 as the reverted PR. "This reverts commit <40-character SHA>" (the text git revert writes) marks the PR that contains that commit, when exactly one PR contains it.

  2. When the revert PR merges, Span changes the original PR's status from merged to reverted.

  3. If the revert PR is later closed or the link goes away, Span sets the original back to merged.

  4. A reverted PR stays dated by its own merge time, so the revert raises the rate for the period when the original merged.

Where to find it: Insights > Productivity > Velocity > Delivery, with percentile benchmarks, filters by team, repository, and time period, and a click-through list of the reverted PRs. It's also available in Targets, team and person Metrics tabs, and custom dashboards.

Setup

  1. Ask your Span account team to turn on PR Revert Rate. Span turns this on for your organization on request.

  2. Connect GitHub (github.com) or Azure DevOps. Revert detection doesn't run on other Git hosts today.

  3. Revert with GitHub's Revert button or with git revert, and keep the default description text so Span can detect it.

  4. Optionally add a PR Revert Rate target in Targets to list reverts for your team.

Things to know

  • The denominator leaves out the reverted PRs. Worked example: your team merged 200 PRs in a month and 6 were later reverted. Total PRs merged now shows 194, so PR Revert Rate = 6 ÷ 194 = 3.1%, not 3.0%. The gap is small at low rates and grows as reverts increase.

  • Reverts are detected on github.com and Azure DevOps. On Azure DevOps, Span uses the revert links Azure DevOps records instead of the PR description. On GitHub Enterprise Server (including Cloud with data residency), GitLab, and Bitbucket, Span doesn't detect reverts, so the rate reads 0.

  • Custom revert text isn't detected. A PR described as "Rollback of #123", partial reverts, and fix-forward PRs don't count. Manual fixes through regular commits don't count either.

  • Only completed reverts count. Open, draft, and closed-without-merge revert PRs don't change the original PR's status.

  • Recent periods can rise later. A revert next month raises this month's rate, because the original PR keeps its own merge date.

  • The revert PR is a merged PR. It counts in Total PRs merged like any other PR.

  • Bots and ignored accounts are out. PRs from accounts Span can't map to a person, and from ignored repositories, branches, and usernames, leave both sides.

  • Rough reading guide: below 1% is excellent; 1–3% is typical for mature teams; 5% or more deserves a look at review, testing, and deployment practices. Weekly views are noisy, so use monthly or quarterly views for trends.

Related articles

Total PRs Merged

% of PRs Merged with Tests

Change Failure Rate Report

Need help?

Contact your Span account team or reach out to support@span.app.