A guide from the Spectra team

The cumulative flow diagram in Jira: how to read it, and how to get a better one

A cumulative flow diagram (CFD) is a stacked area chart showing how many work items sit in each status over time — the single best chart for spotting bottlenecks and scope growth at a glance. Jira has a native CFD, but it's locked to one board's report page and can't be placed on a dashboard. Here's how to read a CFD properly, and how to build one on any project, filter, or JQL scope with Spectra.

Get Spectra on the Atlassian Marketplace
All resources

How to read a CFD (the 60-second version)

Time runs left to right; each colored band is a status; band height = items in that status on that day. Three signals matter:

  • A widening band → work is entering that status faster than it leaves. That status is your bottleneck. The wider it gets, the longer your queue.
  • The vertical distance between the top and bottom lines ≈ your total WIP; the horizontal distance across the bands ≈ approximate cycle time. A CFD is your flow metrics drawn as geometry.
  • A rising top line → scope is growing. If the top line climbs while the “Done” band doesn't, you're starting work faster than you're finishing it — the most common failure mode there is.

Flat bands aren't automatically good, either: a band that never moves can mean a status nobody uses — or work nobody looks at.

What native Jira gives you

The built-in CFD lives under your board's Reports tab. It's genuinely useful and genuinely limited: it's scoped to that one board, it can't be added to a dashboard or shared outside the board's audience, column mapping is fixed to the board's columns, and there's no way to build a CFD across projects or from a saved filter. The recurring community ask — a CFD gadget on a Jira dashboard — has no native answer.

Building a CFD on any scope

Spectra reconstructs the cumulative flow diagram from each issue's change history, which removes the board dependency entirely. The Flow history template gives you a CFD plus an open-issues-over-time chart in one click, and because it's history-based you can point it at:

  • a project (no board required),
  • an agile board,
  • a saved filter — including cross-project filters, which is how you get a program-level CFD,
  • or raw JQL with autocomplete.

And it lives where people will actually see it: as a native gadget on a regular Jira dashboard, next to your cycle-time and WIP widgets.

A cumulative flow diagram in Spectra — each colored band is a status and its height is the number of issues sitting in it, rebuilt entirely from each issue's change history. Point the same chart at any project, board, saved filter, or JQL scope.

Because every Spectra chart is also a filter, the CFD isn't a dead end: spot the widening band, click into the period, and the other widgets refilter to show which issues were sitting in that status and who owns them. The native report shows you the shape; this lets you open it up.

From diagram to diagnosis: three CFD patterns

  • Review band widening, In Progress flat → your constraint is review capacity, not dev capacity. Adding developers makes it worse. Check WIP aging for the review status; consider a WIP limit.
  • Stairstep top line → scope arrives in bursts (big-batch planning). Expect cycle-time spikes roughly one band-width later.
  • Done band growing but bottom bands widening too → you're shipping, but intake exceeds throughput; today's comfort is next month's queue. Pair the CFD with p85 cycle time (see below) to quantify the slide.

A CFD tells you where flow breaks; cycle time percentiles tell you how much it costs you. Use them together — Spectra's templates put them one dashboard apart.

FAQ

Does Jira have a cumulative flow diagram?

Yes — under a board's Reports tab. It's limited to that board's scope and columns and can't be placed on a Jira dashboard or built across projects.

How do I add a CFD to a Jira dashboard?

Not possible natively. Apps like Spectra reconstruct the CFD from issue change history and provide it as a native dashboard gadget on any scope — project, board, saved filter, or JQL.

What does a widening band on a CFD mean?

Work is entering that status faster than it's leaving — a bottleneck. The band's width over time is effectively the queue length in that status.

Can I build a CFD across multiple Jira projects?

Natively, no — the built-in CFD is per-board. With Spectra, point a dataset at a cross-project saved filter and the CFD aggregates the whole scope.

Does building a CFD send my Jira data anywhere?

Not with Spectra — it's built on Atlassian Forge and replays change history entirely inside Atlassian's infrastructure. No external servers. Why Forge-native matters for reporting on data you make decisions against.

See where your flow actually breaks.

Spectra's Flow history template builds a CFD on any scope in one click — free up to 10 users, $0.50/user after.

Get Spectra on the Atlassian Marketplace