How-To2026-08-218 min read

How to Create a Sprint Velocity Report in Linear (Step-by-Step)

Linear does not have a built-in velocity chart like Jira's, but it provides the cycle completion data needed to calculate and track velocity manually. For engineering teams that prefer Linear's speed and simplicity over Jira's reporting features, a lightweight velocity tracking system in Google Sheets or Notion gives you the planning data you need without requiring a Jira migration.

This guide covers extracting velocity data from Linear cycles, building a velocity tracker, and using the data for cycle planning.

Step-by-step guide

01

Access cycle completion data in Linear

Navigate to your team's Cycles view. Select a completed cycle. Linear shows: total issues completed, total issues carried over, and (if estimates are enabled) total story points completed vs. planned. Take note of the completed story points figure for each cycle. You will use this to build your velocity baseline.

02

Enable estimates if not already set up

Go to Team Settings > Estimates. Enable story point estimates with your preferred scale (Fibonacci is most common). Require all issues to have estimates before they enter a cycle. Retrospectively adding estimates to old cycles is not possible, so start tracking from the current cycle and build your baseline over 5+ cycles.

03

Build a velocity tracker in Google Sheets

Create a Google Sheet with columns: Cycle Name, Start Date, End Date, Working Days, Planned Points, Completed Points, Velocity (=Completed/Working Days), and Notes. Fill in one row per completed cycle. The Velocity column normalizes by working days to account for holiday-shortened cycles. Create a line chart of the Velocity column over time to visualize the trend.

04

Calculate your rolling average velocity

In the Google Sheet, add a column: 3-Cycle Rolling Average = AVERAGE(last 3 Velocity values). Use this rolling average, not the single-sprint velocity, for cycle planning. The rolling average smooths out anomalies (holiday sprints, onboarding periods) and gives a more reliable planning baseline.

05

Export cycle data from Linear

Linear allows CSV export of issue data. Go to Issues > filter to your team and a specific cycle > Export. The CSV includes issue estimates and status. Use a SUMIF in Google Sheets to total story points for issues with status "Done" per cycle. This is the manual equivalent of Jira's built-in velocity chart.

06

Use velocity data to set cycle capacity

At the start of cycle planning: check the Google Sheet velocity tracker for the 3-cycle rolling average, adjust for team availability this cycle (use the (available days / baseline days) × velocity formula), set this as the cycle's story point ceiling in the Linear cycle description, and stop adding issues when you reach the ceiling.

07

Review velocity trend in retrospectives

Share the velocity trend chart in every retrospective. Are we improving, stable, or declining? What changed in cycles where velocity dropped? What worked in high-velocity cycles? Velocity trend discussion grounds the retrospective in data rather than perception — the "this sprint felt slower" comment can be confirmed or refuted by the chart.

Common mistakes

Not enabling estimates from cycle one

Without estimates, there is no velocity data. The sooner estimates are enabled and required, the sooner you have enough data for a meaningful velocity baseline. Do not defer — start in the next cycle.

Using total issue count instead of story points

Issue count is a weak velocity proxy because issue sizes vary wildly. A cycle with 20 small issues may represent less work than a cycle with 8 large issues. Story points normalize for issue size.

Not accounting for cycle length variation

Cycles that vary from 1 to 3 weeks produce incomparable velocity numbers. Normalize by working days (points per day) to make cycles comparable regardless of length.

Tips

Share the velocity Google Sheet link in your team's Linear cycle description each cycle so the data is visible during planning

Use the Linear API to pull cycle data programmatically into Google Sheets for automated updates (requires engineering setup)

Add a "Unplanned Work" column to the velocity tracker to track how much of each cycle was consumed by unplanned interruptions

Compare velocity before and after key team events (new engineer onboarding, engineering manager change, major refactor) to understand their impact

How Vantage helps

Vantage generates dependency-aware tickets that reduce velocity-damaging blockers. When Wave 1 tickets complete, Wave 2 tickets become unblocked automatically — reducing the idle time between dependent tasks that commonly causes mid-cycle velocity drops.

Frequently asked questions

Spend less time on setup, more on decisions

Vantage connects your tools and generates specs grounded in real data. Free to start.

Free to start. No credit card required.

Related reading