For each finished sprint, track three numbers: what the team committed to, what it delivered, and what carried over, with each counted by one fixed rule so it means the same thing every sprint. In Azure DevOps, the Agile Analytics extension reports these per team in Sprint Summary.
Three numbers, not one
A single completion percentage hides too much, so keep these separate.
- Delivered of committed. Did the team finish what it said it would? Sprint Summary reports this as commitment reliability.
- Done of all items. How much of everything that ended up in the sprint got finished, including work added after planning?
- Carryover. How much unfinished work stayed in the sprint at the end, or moved straight into the next one?
When the commitment is locked
Committed means what is in the sprint at the end of its first day, measured in UTC. Sprint Summary shows this as Planned Items, "Committed at end of day 1", and anything added later appears under Scope Change. So plan before the end of day 1. A team that plans the day before the sprint starts is covered. A team that moves its stories in on day 2 will see 0 planned and all of them as added.
What counts as carryover
An item is carryover for a finished sprint when all three of these are true.
- It was in the sprint at the end of at least one sprint day.
- It was not done when the sprint ended or when it left the sprint. Done means the first state mapped as Done in Workflow Mapping, with one day of grace after the last sprint day.
- It was either still in the sprint at the end, or moved straight into the next sprint.
And what does not
Three edge cases decide most arguments.
- Moved back to the backlog unfinished: removed scope, not carryover.
- Pulled in by mistake and out the same day: never counts.
- Late additions: they count, and the view says so ("2 added in the last 2 days"), so a spike from late scope is visible.
Why a backlog move is removed scope
Rolling an item into the next sprint means the team still intends to work on it now. Sending it back to the backlog is a decision to stop for the time being. Counting both as carryover would penalise a team for descoping honestly, and reward quietly leaving items in the sprint. Scope change is reported separately, so descoping stays visible.
How the percentage works
Carryover percentage is carryover divided by every item in the sprint at the end of at least one day. It does not need a commitment, so teams that never lock one still get a figure. A running sprint shows a dash ("Carryover is counted when the sprint ends."), because mid-sprint it would only be a count of unfinished work.
Related: How carryover is counted
Get the Done line right first
Every number here depends on where done sits in your process. If Ready to Release is mapped as Done, items count as delivered when they reach it. An admin can check this under Tools, Configuration, Workflow Mapping.
Reading several sprints
One sprint is an anecdote. Sprint Velocity, a Dashboard card that is off by default, shows the last 6 sprints, and Delivery Signals shows the reliability and carryover trend for one team. The running sprint never enters an average. If carryover holds while delivered of committed drops, the team is probably overcommitting. If carryover rises with late additions, look at what enters the sprint.
Comparing several teams
With two or more teams selected, Sprint Summary shows Teams at a glance: delivered of committed, done of all items, scope change and carryover. For a parent team, the Sub-teams view has a Delivery tab with the same ideas per sub-team. Nothing rolls up across Azure DevOps organisations.
Where the rule applies
Sprint Summary, Sub-teams, Sprint Velocity, the Dashboard, Delivery Signals, Exec Report and AGAN AI all use this carryover rule. Team Benchmarks, Retro Snapshot and the Team Health widget do not yet: they still count committed items not finished by sprint end, so their figures can differ.
Try it
Agile Analytics runs on Azure DevOps Services (cloud). The 30-day free trial starts on install with no credit card, and everyone in the organisation has full access while it runs.
Related: Sprint reports: scope and carryover · Install instructions