← Field notes
Delivery

Why your sprints keep slipping — and the four causes hiding in your data

Roughly four in five agile teams roll work over every sprint. It is almost never a capacity problem. It is four specific, findable causes — and they are already sitting in your Jira and Git history.

KalMatrix·July 13, 2026·8 min read

If your sprints slip so regularly that you have stopped being surprised, you are not an outlier — you are the norm. Study after study lands on the same uncomfortable number: around 80% of agile teams roll incomplete work over every single sprint. When something happens to four teams in five, it is not a performance problem with your people. It is a structural problem with how the work is planned, tracked, and watched. The good news is that structural problems are findable. The four causes below are not mysteries. They are already sitting in your Jira and GitHub history, waiting for someone to read them in time.

A useful rule of thumb from delivery research: if your rollover rate is above 30%, you do not have a capacity problem. You have a planning-and-visibility problem — and that is fixable without hiring anyone.

Cause 1: Dependencies you found out about too late

When engineers are asked what actually sank the sprint, the single most common answer is dependencies — one recent survey put it at more than a third of all rollovers. A story is blocked on another team, a vendor API, a sandbox credential, a security sign-off. On the board it looks like one stalled ticket. In reality it is a blast radius: the three stories queued behind it that cannot even start, the engineer who context-switches to filler work, the integration test that slides to the last day.

The reason dependencies slip sprints so reliably is that boards measure the blocked ticket, not its subtree. A single 3-point story marked Blocked can be quietly holding a dozen downstream points hostage — and the burndown chart, which treats every remaining point as equal and independent, shrugs. The fix is not more diligence at standup. It is a system that reads the dependency links and prices the blocker by everything stuck behind it, the day it stalls, not the day the demo fails.

Cause 2: Scope that grew after you committed

Here is a detail most teams never notice: Jira’s own velocity report calculates committed work as the total at the moment the sprint begins. Anything added afterward — the "quick" compliance ticket, the escalation that landed on day six — is not counted against the commitment. So scope can grow 20% mid-sprint and the burndown will quietly absorb it, making a team that is drowning look merely busy.

Worse, the damage from added scope is not linear. Fifteen percent added on day two amortizes across the whole sprint. The same fifteen percent added on day ten comes dollar-for-dollar out of committed work, plus the context-switch tax of re-planning around it. And the mirror image — work quietly removed from the sprint to make the burndown look better — is invisible unless someone is watching the changelog. A real scope-change ledger records both: what was added, what was pulled, by whom, when, and what it cost the date.

A sprint rarely dies from one big blow. It dies from a dozen small fictions — a late add nobody logged, a blocker nobody escalated, a ticket closed before its review — each invisible alone, fatal together.

Cause 3: The review queue nobody is watching

Everyone hits "ready for review" in the same two-day window near the deadline, because the deadline synchronizes finish lines. The trusted senior reviewer is idle on day four and drowning on day eleven — every sprint — and everyone acts surprised. By the time a dashboard says "bottleneck," the SLA is blown and the outcome is decided. But the pileup is forecastable from the board on day seven: count who is mid-flight, know who reviews whom, do the arrival arithmetic. Small improvements in pull-request cycle time have an outsized effect on rollover precisely because review is where finished work goes to wait.

This is also the cheapest slippage to fix, because it is not a coding problem — it is a routing problem. Naming a second default reviewer and setting a 24-hour first-response norm recovers points that were already written, just stuck at the last step. You only need to see the queue forming three days before it clears, by name.

Cause 4: Carryover treated as if it were fresh

A ticket on its third sprint is not a fresh ticket with the same number on it. It is underestimated, blocked on something nobody wrote down, dreaded by its owner, or quietly deprioritized while everyone nods that "it’s committed." Planners count its five points at face value every sprint; veterans know it needs splitting, killing, or it spills again. When a fifth of every sprint is recycled carryover, your velocity is quietly over-promising — because velocity re-counts the same recommitted points lap after lap. Counting each ticket once, in the sprint it actually finishes, tells you the honest number to plan the next sprint around.

The pattern behind all four

Notice what these causes share. None of them is exotic. Each one is already recorded — in the issue links, the changelog, the review timestamps, the sprint history. What is missing is not data. It is someone with the time to read every ticket and every pull request, every morning, across every team, and connect the dots into a sentence a delivery lead can act on before standup ends. That is exactly the job KalMatrix was built to do: read your Jira and GitHub together, forecast each active sprint against your team’s own history, and surface the specific thing that is dragging it — the blocker and its blast radius, the scope that snuck in, the reviewer holding the queue, the carryover that will spill again.

Sprints do not have to be a coin flip you re-lose every two weeks. The causes are knowable, and they are knowable early — while a slip is still recoverable, not after it has been reported upward and become a broken promise. For the forecasting side of this, see why late work hurts more than its point count suggests. For the reporting side, see how a board can be green on the surface and red in the code.

Worried about a specific sprint? The free sprint miss-risk calculator turns “where are we” into a calibrated chance of missing — the same S-curve math, no signup, runs in your browser.
Stop reading about it. Read your own brief.

The demo is a fully-populated workspace — real sprints, real forecasts, the same daily diagnosis this post describes. No signup, nothing to configure.

← Back to the blog

Keep reading

All field notes
Delivery truth

Your Jira board is lying to you

Every “Done” column hides a question the board can’t answer: is there merged code behind it? The gap between board-done and code-done is where slipping sprints quietly wait — until demo day makes them loud.

Read the note
Forecasting

Why late work hurts more: the S-curve nobody plans for

Sprint work does not finish in a straight line — it finishes on an S-curve. That single fact is why a late epic hurts far more than its point count suggests, and why naive burndown lies to you at exactly the wrong moment.

Read the note
Product

From dashboards to decisions

A dashboard reports the past and leaves the thinking to you. A chief-of-staff brief does the thinking and hands you a decision. Here is why one clear call a day beats ten charts that make you feel informed.

Read the note
Leadership

How a CTO can actually know if the team will hit the deadline

Most status turns red overnight in week eleven — after the recovery options have expired. Here is how to get a defensible read on a deadline early enough to change the outcome, without micromanaging a single engineer.

Read the note
Estimation

Story points can’t forecast a date — and were never meant to

Velocity is a useful planning heuristic and a terrible crystal ball. If you are turning a story-point average into a delivery date, here is why it keeps betraying you — and what to denominate your forecast in instead.

Read the note
Delivery truth

Watermelon status: how to catch a project that’s green outside, red inside

Watermelon reporting is the most expensive lie in delivery because it is comfortable. Here is how green-on-the-outside, red-on-the-inside status forms, and how to catch it with evidence instead of accusation.

Read the note
Forecasting

Monte Carlo vs velocity: how to forecast a delivery date you can defend

A single-date forecast from a velocity average is a promise you will almost certainly break. A probabilistic forecast gives you a range and the odds. Here is the difference — and why leaders trust the range.

Read the note
Leadership

Engineering metrics that matter — without surveilling your developers

The metrics that predict delivery and the metrics that destroy trust are not the same list. Here is how to measure the system without measuring the people — and why the distinction is the whole game.

Read the note