EnableYourData.com

KPI · Projects and time

Sprint velocity: formula and example.

Sprint velocity is the number of story points a scrum team fully completes in a sprint. You only count work that meets the definition of done and usually take the average over the last three to five sprints. Velocity helps the team plan how much work it can realistically take on in the next sprint.

Sprint velocity formula

Sum of story points of completed items per sprint, averaged over recent sprints

Worked example

Acme Groothandel's IT team, which maintains the web shop and the integrations with the warehouse, completed 34, 28 and 31 story points in its last three sprints. The average velocity is (34 + 28 + 31) ÷ 3 = 31 story points per sprint.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A stable velocity makes planning predictable; swings point to changing team membership, interruptions or unclear work. Velocity is a planning aid for the team itself, not a productivity measure: story points are a relative estimate and differ between teams. Only compare a team with its own earlier sprints.

Pitfalls with sprint velocity

  • Comparing velocity across teams when each team has its own story point scale.
  • Counting partly finished work; only items that meet the definition of done count.
  • Making velocity a target, so estimates quietly inflate without more being delivered.

SQL & DAX

Calculating sprint velocity in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
SELECT sprint,
       COUNT(*) FILTER (WHERE status = 'done') AS completed_items,
       SUM(story_points) FILTER (WHERE status = 'done') AS completed_points,
       ROUND(AVG(SUM(story_points) FILTER (WHERE status = 'done'))
             OVER (ORDER BY sprint ROWS BETWEEN 2 PRECEDING AND CURRENT ROW), 1) AS rolling_avg_3_sprints
FROM tasks
WHERE sprint IS NOT NULL
GROUP BY sprint
ORDER BY sprint;
DAX · Power BI
Completed Points = CALCULATE ( SUM ( Tasks[StoryPoints] ), Tasks[Status] = "done" )
Avg Velocity = DIVIDE ( [Completed Points], DISTINCTCOUNT ( Tasks[Sprint] ) )

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for sprint velocity per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

How do you calculate sprint velocity?

For each sprint, add up the story points of all items that are fully done according to the definition of done. Take the average over the last three to five sprints. Use that average to plan the next sprint.

Can you compare velocity between teams?

No. Story points are a relative estimate that each team applies in its own way, so 30 points in one team is not the same as 30 in another. Only compare a team with its own history.

What if a team does not use story points?

Then you can count completed items per sprint or per week, known as throughput. That works well when items are roughly the same size. Many teams use throughput and cycle time instead of velocity.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.