AnyKanban

Docs › Concepts

Why percentiles instead of averages

Every statistic AnyKanban computes about how long work takes is a percentile. There is no average anywhere, and no standard deviation, and that is a decision rather than an omission.

An average describes a shape your process does not have

Cycle times are almost never distributed symmetrically. The usual shape is a heap near the left, where most items finish quickly, with a long thin tail to the right where a handful took weeks. On that shape the average sits somewhere with no items near it, moves whenever one straggler finishes, and answers no question anybody asked. A team told "our average is 6 days" cannot use it: they cannot promise 6 days, and they cannot tell whether today's card is unusual.

A percentile survives the same distribution intact, because it is arithmetic over order and not over magnitude. Sort what you finished, look at the item 85% of the way along, and you have a sentence a team can say out loud: 85 percent of what we finished took nine days or less. One outlier moves it barely at all: it changes a rank, not a total.

The four numbers, and why they are those four

What it means What to do about it
p50 half of finished work took this long or less a card past it has already used more time than most finished work needed. Worth a conversation
p70 roughly a coin flip on landing inside the service level the same conversation, now urgent
p85 the service level expectation, and the number to quote past it, no forecast for this card is worth quoting
p95 almost everything this board has ever finished took less past it, the item is outside its own process's experience. Treat it as an exception, not as a late item

p85 is the number worth memorising, because it is the one you use forwards. When somebody asks whether the next thing fits before the end of the sprint, the useful answer is "85% of what we finish takes nine days or less, and this looks bigger than that", which is a two-second conversation instead of an estimate.

Why a ladder at all, rather than one line

Because each rung answers a question the others cannot, and the arithmetic is exact. If your service level is the 85th percentile, then an item that has already survived past the p-th percentile still has

chance of breaching = (1 − 0.85) ÷ (1 − p)

So a card that has just passed the median has about a 30% chance of breaching. One that has passed the 70th has about 50%, the coin flip. That is why the same conversation changes tone between those two lines: nothing about the card changed, but its odds went from about 15% when it started to 30% past the median, and then to an even chance past the 70th.

⚠️ That arithmetic is tied to the 85th being your service level. If you quote the 95th instead, the same two rungs read 10% and 17%, and "coin flip" belongs somewhere else entirely. The lines are the same; the sentence you say at the daily meeting is not.

Why the 95th appears only on a longer history

The lines are read by nearest rank: every one of them is a duration something actually took, never an interpolation. That is what makes them quotable: you can go and find the item.

It also means the 95th is meaningless on a small sample. With fewer than twenty closed items, the 95th percentile is the slowest item ever recorded, and a line drawn there says "the worst thing that ever happened to us" while looking like a service level. So the board withholds it until it has thirty closed items, which is where the flow-metrics literature puts a distribution worth relying on. A board under that draws four bands; a board over it draws five, and the picture itself tells you how much history stands behind it.

The rung still appears above the chart, outlined and empty. A number that quietly disappears teaches nothing; a hole teaches that there is a fifth rung and this board has not earned it yet.

Why it is your board's history and not an industry figure

The distribution is computed from what your own organization closed in the last 90 days, or the last 12 months where that quarter holds fewer than ten closed items, bounded to the work item types this board shows and to the projects its cards come from. Not an average across your organization as a whole, not a benchmark, not a number we chose. Two boards showing different types, or drawing on different projects, honestly get different p85s; two boards over different queries on the same types and projects get the same one, because Analytics answers by type and project rather than by query.

Ninety days is long enough for the shape to be stable and short enough that a team which has genuinely got faster sees it, instead of being averaged against its own past year.

What happens when there is not enough history

Below about ten closed items a percentile is arithmetic long before it is information: a card lands in the "75th percentile" because three of four items were faster, which says more about the sample than about the card. So the board does not show one. It falls back to a comparison that needs no history at all, which card has sat longest in this column right now, and says which comparison it is making. A board that quietly answered a weaker question would be worse than one that admits it has nothing.

Between ten and thirty closed items the numbers are shown and marked provisional. Two different sentences, because "not enough data" and "usable but young" call for two different reactions.

One setting overrides all of this: a limit your team types in itself, Highlight cards at this many days or more on the Fields tab of board settings. When a board has one, it takes precedence over every percentile on the board, a column's own history included, and the strip above the board says Marking cards at or above this board's age limit. A percentile describes past work; the limit records what the team promised. Clear it to go back to measured history.

Why age, and not time in the current column

Three numbers here look similar and mean different things.

Age is the leading indicator. Cycle time and throughput describe work that has already finished, where nothing can be changed; age is about work still in flight, where a conversation today still changes the outcome.

Two cards that make the difference obvious

A card moved backwards. Somebody pushes a story from In Review back to In Progress on Thursday. On Friday its day counter reads 1, because the state changed and that clock restarted, while its age still reads 14, because work on it started a fortnight ago and going backwards did not undo any of that. The counter is right and the age is right; they are answering different questions. Reading the 1 as "this is nearly new" is the mistake this page exists to prevent.

A card that skipped a column. A hotfix goes straight from In Progress to Done without passing through In Review. It never accumulates a single day in the column it skipped, and nothing anywhere records that it was skipped. Its cycle time simply comes out lower, and it lowers p50 and p85 along with every other finished item. That is honest: the item really did finish that fast. What it is not is evidence that review is quick.

That distinction matters most at the per-column numbers under a column's name, which are the one place the mistake is easy to make. They are computed from completed visits to that column, so an item that skipped it contributes nothing to it either way, so p85 11d under In Review means "of the work that went through review, 85% was out within eleven days" and never "85% of our work clears review in eleven days". The two sentences differ by exactly the hotfixes.

Why a step and a process are both worth measuring

The strip above the board and the numbers under a column name answer different questions, and a board shows both because the second is only sometimes available.

Compares Answers
the strip the item's whole age against closed cycle times is this item unusual for our process?
a column's numbers days in that column against that column's own history is this step unusual?

The second is the sharper of the two, because it names somewhere to go. "This item is old" accuses every column equally; "fourteen days in review, where half of what passes through takes two" names a queue, and usually a person to talk to. So where a column has enough history of its own, meaning ten completed visits, the same threshold as everywhere else, its cards are judged by it, and the column prints the numbers it is judging by so you can see that is what is happening. A column without those numbers compares against the whole process instead, or, while the board has fewer than ten closed items, marks the card that has sat longest in that column. Either way the strip above the board says which comparison it is making.

One case produces no numbers however much history exists: two or more columns over one state (see Put two columns over one state). The history behind these numbers records state changes only, not the placement field that says which of those columns a card was in, so a number under any of them would be measuring a step none of them took. Those columns fall back the same way as any other column without numbers.

Why the clock does not stop when a card is blocked

Because waiting is the signal. A typical team spends far more of an item's life waiting than working on it, and a measure that paused during the waiting would report the number that already looks fine. Days here are calendar days, blocked time included.

Breaching is never a reason to deprioritise

Past p85 an item has no reliable forecast left. It does not become less important: the customer is still waiting, and an item that has already taken too long is the last thing worth abandoning. The color is calm on purpose: on a board that has been left alone for a while there will be many of these, and an alarm that fires from every card stops being an alarm.