# How cycle time and flow charts work

A chart view's histograms, scatters and flow over time charts are worked out in your browser. They read the items the view shows now and the recorded changes to those items' fields. [How time in a status is measured](../time-in-status/) explains where that history comes from.

A histogram groups numbers or durations into ranges. A scatter places each item as a point, by two of its values. A flow over time chart follows the items day by day.

## History fields in the chart settings

The **Field**, **X-axis** and **Break down by** pickers list History fields after the ordinary fields, under each tracked field's own history heading, such as **Status history**. These are the **Time in** fields and the fields of each duration measure, such as **Cycle time end date**. [How duration measures work](../duration-measures/) explains the measures.

- A duration's sum, average, minimum, maximum or median is drawn in days, such as `2d`. When the tallest bar is under a day, it is drawn in hours.
- A History field has no rolled-up total, so **Use rolled-up totals** is not offered for it.
- A **Time in** value on a chart moves forward once an hour.

## How numbers group into ranges

When the categories are numbers, tracked time or durations, **Group numbers by** decides how they become bars. **Break down by** has the same choice under **Group segment numbers by**.

- **Each value** draws one bar per value. Durations and tracked time do not offer it.
- **Automatic ranges** picks the narrowest width that gives at most 12 ranges.

A number starts at **Each value**, and a duration or tracked time at **Automatic ranges**.

## How ranges behave

- A range includes its lower bound and leaves out its upper bound. A value of exactly 2 days falls in `2–4d`, not `0–2d`.
- Empty ranges between the lowest and the highest bar are drawn at zero, so the gaps show. Past 60 ranges, only the filled ones are drawn.
- Turning ranges on for the **X-axis** sets **Sort** to **Default order**, so the bars read from low to high. That happens when you choose a duration or tracked time, or when you switch **Group numbers by** to a range.
- An item without a value, such as an unfinished item's **Cycle time**, is left out.

## How a scatter places items

**Scatter** places each item by two of its values.

- **X-axis**: a date, a formula that returns a date, a measure's started or ended day, or a select field.
- **Y-axis**: a number field, a formula that returns a number, tracked time, a duration, or **Cost**.

**Cost** is offered only to a role that may read cost figures. Each point sits at the item's **Cost**, which already covers the items below it. The **Y-axis**, the tooltip and the percentile lines show amounts in the organization's currency. For anyone else, a scatter on **Cost** shows no points, so the chart says that no item has both values. [How budgets and cost are calculated](../budgets-and-cost/) explains who may read cost figures.

A select field on the **X-axis** gives one column per value that holds a point, in the field's own order. An item that holds several values sits in the column of its first value. An option that was deleted but that items still hold comes last, as **Deleted option**.

## Which items a scatter shows

An item that lacks either value is left out, and a caption under the chart counts these items. A point's tooltip shows the item's title and both values, and clicking the point opens the item.

## Percentile lines

The **Percentile lines** picker under **Display** draws a dashed line for each percentile you choose. Until you change it, **50%** and **85%** are drawn.

- A percentile counts only the points on the chart. At least 85% of the points sit at or below the 85% line.
- Lines that nearly overlap are drawn as one line, labelled with both percentiles.

## Aging work in progress

Aging work in progress puts a select field on the **X-axis** and its **Time in** field on the **Y-axis**. Each item sits in the column of its current value, at the height of how long it has held that value. [How do I chart cycle time, throughput and aging work?](../../views/chart-flow-metrics/) sets one up.

For this pairing, each column gets aging bands instead of percentile lines. The bands use the same thresholds as the aging colour on cards. The aging colour section of [How time in a status is measured](../time-in-status/) explains the thresholds.

## How the aging bands are drawn

- The amber band covers the times that show in amber. The red band starts at the red threshold and runs to the top of the chart.
- When the two thresholds are equal, only the red band shows. A value without enough past stays for an aging colour has no bands.
- The **Display** picker is named **Aging bands** here and offers only **50%** and **85%**. **50%** shows the amber band and **85%** the red band.
- The **Y-axis** always reaches above the highest threshold, so a band shows even when every item sits below it.

Bands need a select field that holds one value at a time. A select field that allows several values gets percentile lines instead.

## Flow over time

**Flow over time** follows items day by day across a range of dates. Its **Field** is a select, people, checkbox or relation field that holds one value at a time, except **Watchers**. Until you choose, the field set to **Status** under **View defaults** is used.

Each day counts the value each item held at the end of that day, in your organization's time zone. Only items whose type has the field take part. An item created during the range enters the chart on the day it was created.

## The dates of a flow chart

Under **Dates**, **Last 90 days** is the default. Each **Last** range ends today and includes it.

- **Container's Start to Finish** is offered when the chart shows the items under one item, the container. The range runs between the container's date fields set to **Start** and **Finish** under **View defaults**.
- A container without both dates, or with **Finish** before **Start**, shows the last 90 days. A caption under the chart says so.
- The dates belong to the view's chart settings, not to one person. Everyone who opens the view sees the same range.
- A range covers at most ten years. A longer range keeps its end date and drops its earliest days.

## Cumulative flow

**Cumulative flow** draws one band for each value that some item held during the range. A band's height on a day is the number of items that held that value at the end of that day.

- The field's last value lies along the axis. Each earlier value is stacked above it, in the field's order.
- **No value** and **Deleted option** sit at the top of the stack.
- A people, checkbox or relation field has no options, so its values are stacked by name. The last name lies along the axis.

## Burnup

**Burnup** draws two lines. **Scope** is the number of items created by the end of each day. **Done** is the number of items that held a finished value at the end of each day.

**Sum** is empty by default, so the chart counts items. Choose a number field to add up its values instead.

A role that may read cost figures can also choose **Cost**, and the figures then show in the organization's currency.

- An item's **Cost** already covers the items below it. An item below another item in the chart is therefore counted inside that item, never on its own as well.
- Such an item counts as done when the item above it is done. It enters the chart on the day the item above it was created.
- An item whose parent is not in the chart counts on its own.
- An item that **Cost** does not apply to has no figure of its own. It adds up the figures of the items below it instead, even items that the view filters out.
- For a role that may not read cost figures, every item counts as 0. A caption under the chart says how many items count as 0 because the role cannot see their **Cost**. It counts only items that count on their own, so an item counted inside the item above it is not in the number.

## When an item counts as done

- **Done when** decides which values count as finished. It lists the field's duration measures, each named by its end values, such as "In Completed (Lead time)". Only the end values matter.
- Until you choose, **Done when** uses the first measure that starts at item creation. On a new organization's **Status**, that is **Lead time**. Without such a measure, it uses the field's first measure.
- A reopened item leaves **Done** from the day it was reopened. Earlier days still count it as done.
- An item finished before its history began counts as done from the range's start. If the item was created after the range's start, it counts from its creation.

## Burndown

**Burndown** draws **Remaining**, which is scope minus done on each day. A dashed **Ideal** line runs straight from what remained on the range's first day to zero on its last day.

- The **Ideal** line covers the whole range, including the days after today.
- A range that lies completely after today shows only the **Ideal** line. It starts from what remains now.

## Days after today

The lines and bands stop at today, because the days after it have not happened. On those days only a burndown's **Ideal** line shows a figure, and a click opens nothing. A cumulative flow or burnup whose range starts after today says "This range starts after today, so nothing has happened in it yet."

## The items behind a band or line

Click inside a band to see the items that held that value at the end of that day. On a burnup or burndown, click on or near a line.

- The **Ideal** line opens nothing, because it counts no items.
- A series you hid by clicking it in the legend is skipped.
- One item opens directly. Several items open a side panel named after the series and the day.
- On a **Cost** sum, only the items that count on their own are listed. An item counted inside the item above it is not listed, even when it is done on its own.

## Example

A burndown uses **Container's Start to Finish**, and the container runs from 1 Oct to 31 Oct. On 1 Oct, 20 items exist and 5 are done, so 15 remain. The **Ideal** line falls from 15 on 1 Oct to 0 on 31 Oct.

Today is 16 Oct. Since 1 Oct, 3 items were added, and 13 items are now done. **Remaining** reads 10, and the **Ideal** line reads 7.5.

## Things that may surprise you

- **The charts use today's items.** An item deleted or filtered out of the view disappears from past days too. An item added to the view appears on past days from its creation.
- **Sums use current values.** Number fields keep no history, and **Cost** is the figure for the hours logged so far. A burnup or burndown therefore adds up each item's value as it is now.
- **An item without a value counts as 0, and a caption says how many.** On a **Cost** sum, that is an item that **Cost** does not apply to, with no figure below it either.
- **A value your role cannot see also counts as 0.** This covers **Cost** for a role that may not read cost figures, and **Budget** for a role without **Financial data**. A second caption counts these items. While cost figures are still loading, neither caption counts the items that wait for them.
- **Measures and flow charts show your own change after a short delay.** Unlike the **Time in** on a card, they read only the recorded history, which refreshes after your change saves. Other people's changes arrive with a history refresh, which runs at least every two minutes while the chart is open.
- **A flow chart, or a scatter with a History axis, waits for the history.** It shows **Loading history** until the history loads. A flow chart whose history cannot load shows **History unavailable**, and it draws once a later attempt succeeds.
- **An unrecorded first value counts from the item's creation.** Some older items entered their value before recording began. Such an item counts in that value from the day it was created.

## Next

- [How do I chart cycle time, throughput and aging work?](../../views/chart-flow-metrics/)
- [Chart view](../../views/chart-view/)
- [How duration measures work](../duration-measures/)
- [How time in a status is measured](../time-in-status/)
