Linear issues to dashboard

Finally, an export with real cycle time in it.

Export issues from Linear's settings or from a view, drop the CSV here, and you get the delivery dashboard that most trackers cannot support. Linear writes Created, Started and Completed as three separate ISO timestamps, which makes lead time and cycle time genuinely computable rather than approximated. Canceled issues are excluded from throughput, and blank Estimate values are treated as unsized rather than as zero.

Prefer the full explorer? Open the app, or start from the generic dashboard builder.

Real cycle time
Started to Completed, computed per issue, not approximated from last-modified dates.
Canceled work excluded
Canceled issues are kept out of throughput while staying visible as their own count.
Unsized issues flagged
A blank Estimate means nobody sized it, and it is never silently read as zero points.
Nothing uploaded
Issue titles and assignee names stay in this tab. No signup required to look.

Three timestamps change what you can ask

Most issue trackers give you a creation date and, if you are lucky, a completion date. Linear gives you three: when the issue was created, when someone actually started it, and when it was completed. That third column is the one nobody else provides without digging through a changelog, and it splits a single vague duration into two useful numbers. Created to Started is how long work sat in the backlog. Started to Completed is how long it took once someone picked it up.

Those two answer different questions and suggest different fixes. A long queue time means you are committing to more than you can start. A long working time means the work itself is too big or too blocked. Teams that only see the combined figure argue about the wrong one for months. Because every value is a proper ISO timestamp, none of this needs a format workaround first, which is a pleasant change from every other file on this site.

How to export from Linear

  1. Open workspace settings Click your workspace name at the top left, then Settings, then Import / Export. This is the full-workspace path and gives you every team in one file, which is unusual and useful.
  2. Or export from a specific view If you only want one team or one project, open that view, use the menu at the top right, and choose Export. The columns come out the same, so both paths land on this page identically.
  3. Request the CSV Linear queues the job and emails a download link to your account address. Workspace-wide exports on a large instance take a few minutes; a single team view is usually immediate.
  4. Check the Status values Linear's workflow states are per team, so Done on one team and Shipped on another are the same completion. Note which of your states are terminal before you read a throughput chart.
  5. Drop it on this page The three timestamps become queue time and working time, Cycle Number becomes the iteration axis, and canceled issues drop out of the delivery counts automatically.

The Linear API returns the same fields with the same ISO timestamps, so if you already pull issues through GraphQL a flattened response lands on exactly these panels without any renaming.

Try with sample Linear data (the same columns, 102 rows, no upload needed).

What the dashboard shows

Every panel below is built from a column that is actually in the export, named the way Linear names it.

  • Cycle time trend. Started to Completed per issue, plotted over completion date, so you can see whether a process change actually moved the number.
  • Queue time against working time. Created to Started and Started to Completed as two stacked components of lead time, which is where most improvement conversations should start.
  • Throughput by cycle. Completed issues grouped by Cycle Number, with canceled work removed, giving a clean iteration-over-iteration count.
  • Estimate distribution. Points per issue as a spread, with unsized issues counted separately so they cannot be mistaken for trivial ones.
  • Team and Project split. Two levels of ownership, cross-filtering, so a project spanning three teams is still readable.
  • Priority against outcome. Whether urgent issues actually finish faster, which is a question most teams assume the answer to and rarely check.
Sample header row
ID,Title,Team,Status,Priority,Estimate,Assignee,Creator,Labels,Cycle Number,Project,Created,Started,Completed,Due Date

Small things to watch in a Linear export

  • Started can be blank on completed issues. Small fixes sometimes jump straight to done without ever entering a started state. Those rows have a lead time but no working time, and averaging over them without checking undercounts your real cycle time.
  • Estimate is unitless and optional. It is a number with no unit attached, whatever your team decided points mean, and plenty of issues carry no estimate at all. Blank is not zero, and treating it as zero makes an unsized quarter look weightless.
  • Canceled issues have a Completed timestamp. Canceling sets the completion time just like finishing does. Count them as throughput and every abandoned idea counts as delivered work, which flatters a quarter considerably.
  • Cycle Number is per team. Two teams both have a cycle 14 and they are not the same two weeks. Group by team first or the iteration chart quietly merges unrelated periods.
  • Status names vary by team. Workflow states are configured per team in Linear, so a workspace-wide export contains several names for the same terminal state. Decide which ones count as done before reading anything.
  • Labels are comma-joined. One cell, several labels. An issue tagged both regression and customer reads as a single combined string until something splits it apart.

Linear's export is the least hostile file in this whole category. ISO timestamps, a genuine started state, and a stable id scheme mean the analysis is about your process rather than about parsing. The only real trap is treating canceled work as delivered.

Frequently asked questions

How is cycle time different from lead time here?

Lead time is Created to Completed, the full journey from someone writing an issue down to it shipping. Cycle time is Started to Completed, only the part where the work was actively being done. The gap between them is queue time, and on most teams the queue is the larger of the two. Linear is one of the few trackers whose export lets you separate them without reading a changelog.

Should canceled issues count as completed?

No, and this catches people because canceling sets the Completed timestamp exactly the way finishing does. If you filter on the presence of that timestamp alone, every abandoned idea joins your throughput. Filter on Status instead, treating only your genuine terminal states as done. This page excludes canceled issues from delivery counts and shows them as their own number.

What does a blank Estimate mean?

That nobody sized the issue. It does not mean zero effort, and reading it as zero makes a quarter full of unsized work look like a quarter with no work in it. The dashboard counts unsized issues separately and shows both the point total and the proportion of issues that carry no estimate, which is often the more interesting number for a team debating whether to keep estimating.

Can I compare cycles across teams?

Not directly by number. Cycle Number is scoped to a team, so team A's cycle 14 and team B's cycle 14 cover different calendar weeks and possibly different lengths. Group by Team first, then by Cycle Number, and the iterations line up within each team. To compare across teams, use the completion date as the axis instead and let the calendar do the alignment.

Why do some completed issues have no Started time?

Because they never passed through a started state. A one-line fix opened and closed in the same afternoon often goes straight to done, so the row has Created and Completed but nothing in between. Those issues have a lead time and no measurable working time. The dashboard reports how many rows are in that shape rather than quietly averaging around them.

Does the export leave my browser?

No. Parsing happens in the tab and the charts render from memory. Linear issue titles are usually specific about what is broken and which customer reported it, which makes the file more sensitive than a row count suggests. There is no upload endpoint on this page, no account, and nothing kept once you close the tab.

Split your lead time into queue and work

102 issues with three ISO timestamps each, a few canceled, several unsized, spread across two teams and five cycles. The two-part lead time chart is the one to look at.

Open the sample Linear dashboard