Core Engineering Metrics

BottlenecksADS

Where the time actually goes — candidate visualizations on REAL data (same cohort and rules as everywhere). Pick the ones worth showing.

Interactive: click any status (segment, row, legend chip) to highlight it across ALL views — timelines re-rank by time spent in it; click again to clear. Ticket keys open Jira. CFD legend toggles bands.

A · Pipeline — where a ticket's time lives

imedian + Σ

One bar = the whole Cycle (work start → done), split by status. Width = share of all cohort time. The widest segment IS the bottleneck. Below — the same statuses ranked: median per visit · total days · share.

Bottleneck: Ready For Review54.8% of all time (Σ 7.1d, waiting). All waiting combined: 92.5%; the work itself (In Progress) — 6.6%.

Ready For Reviewbottleneck
med 0.3d · Σ 7.1d · 54.8%
Ready To Merge
med 4.9d · Σ 4.9d · 37.7%
In Progress
med 0d · Σ 0.9d · 6.6%
Selected for Development
med 0d · Σ 0.1d · 0.5%
In Deployment
med 0.1d · Σ 0.1d · 0.5%

B · Flow efficiency — work vs waiting

imedian + Σ

TWO views. The big CALENDAR bar: median Active vs median Cycle — Cycle runs on the calendar (weekends and holidays INCLUDED, as the document demands; time after a bounce back to New is subtracted), Active counts working hours only. The PROCESS bar below removes calendar physics: BOTH sides count only the assignee's working hours (weekdays, minus their BambooHR vacations and country holidays, capped per day) — its remainder is pure process queues.

Of the median 0.3d cycle, hands-on work is 0.3d (= 0.9wd): the ticket waits 0% of the time.

100% hands-on work
0% waiting
process efficiency (assignee working hours only) · hands-on 12wd of 14.7wd working time in flow
80.3%
19.7% process queues
where the waiting goes · 9d cohort total — TICKET-days of 9 parallel tickets, hence far above the window length
Ready To Merge4.9d · 54.3%
On Hold0d · 0%
bounce-backs to the queue (New category)0.1d · 0.7%
nights, weekends, vacations and the 8h cap inside active statuses4.1d · 45.1%

C · Ticket timelines — the last tickets as segments

i

Each row = one real completed ticket from work start to done; colored segments = statuses. Long same-color stretches across many rows point at the same stage — that's the bottleneck pattern, outliers included.

Longest single stay here: Ready For Review3.4d in ADS-1294. Click a status in the legend to rank tickets by it.

D · Aging WIP — what is stuck right now

i

Open tickets that have not moved the longest (days since the last status change). This is the operational view: today's bottleneck, ticket by ticket.

E · Cumulative flow — queues over time

i

Tickets in each WORK stage, week by week (backlog and done excluded — they drown the queues that matter). A band that keeps widening is a queue that keeps growing — the classic bottleneck signal and its history.

The fastest-growing queue is On Hold: 13 tickets across the window.