The problem: late discovery of stuck work
Teams notice bottlenecks when dates slip, stakeholders escalate, or someone asks "why is nothing in Done?" Postmortems name Review, QA, or approvals — but the pattern was visible weeks earlier in widening queue bands and cards aging in the same column.
Detecting bottlenecks early is not about more status meetings. It is about flow signals: where work accumulates, how long items sit idle, and whether throughput is stable or eroding.
Why gut feel and Done counts fail
Done count is a snapshot — high completions this week hide a Review queue doubling.
Anecdotes dominate — "QA is slow" without data invites blame, not experiments.
Spreadsheet exports lag — manual CFD builds break when columns rename or history is incomplete.
AI without board history hallucinates — generic chat invents blockers; you need movement logs from the PM system.
Bottleneck detection needs historical column data plus per-item aging.
Framework: pattern → item → cause → experiment
1. Pattern (CFD) — flow_cfd stacks item counts per column over time. Widening band = growing WIP or queue at that step. Thick Review/Test band = approval or QA choke.
2. Item (aging) — flow_aging flags cards sitting too long in current column — today's standup list, not next month's crisis.
3. Cause (human) — Blocker comment, dependency, approver absence, env down — data shows where; conversation shows why.
4. Experiment — WIP cap, approver SLA, split column, add QA capacity — measure CFD two weeks later.
| Observation | Likely bottleneck | First experiment |
|---|---|---|
| Thick Review band | Approvals, senior review | Approver SLA, upstream WIP limit |
| Thick Testing band | Env, definition of ready | Test env fix, DoR checklist |
| Wide Doing band | Too much WIP | Personal/column WIP cap |
| Backlog surge | Intake > finish | Grooming, limit starts |
Where WKFGo fits: flow_aging and flow_cfd
flow_aging
WKFGo flow_aging analytics help PMs:
- List items exceeding age threshold in current column
- Feed weekly manager digest and
decision_inboxescalation - Pair with standup: "why is this still here?" before breaking dates
MCP exposes flow_aging for AI-assisted portfolio questions: "Top aging items on Project Atlas with IDs."
flow_cfd (cumulative flow diagram)
flow_cfd prepares historical column data for CFD views:
- Weekly trend in control meetings
- Before/after WIP limit experiments
- Evidence for "we need QA capacity" — patterns, not anecdotes
Note: CFD needs movement history — freshly migrated boards need a few weeks of data.
AI-assisted synthesis
Connected assistants can combine both: "Summarize bottleneck signals — CFD trend last 14 days plus top five flow_aging items — cite task IDs."
Reading signals without panic
Stable parallel bands — roughly healthy flow.
One band grows — bottleneck there; drill into aging in that column.
Flat Done slope — low throughput — check WIP and blockers.
All bands jump — intake batch without finishing — scope or staffing signal.
Direction matters more than fake precision on slopes.
Getting started this week
Screenshot this week's flow_cfd as baseline. List flow_aging red items in standup daily until cleared or re-assigned. Pick one experiment — WIP cap on Doing or approver SLA on Review. Compare CFD two weeks later; one paragraph in wiki explains the result. Share with stakeholders as "we are addressing the approval queue" — not a statistics lecture.
Freshly migrated boards need patience — wait three to four weeks of movement history before treating CFD bands as authoritative.
Anti-patterns
- Monthly CFD glance with no action
- Too many micro-columns — unreadable bands
- Blaming assignees for approval queues
- Showing CFD to executives without one proposed experiment
Bottlenecks hide in Review and Testing columns while In Progress looks busy. flow_cfd shows queue growth over time; flow_aging names the oldest cards. When CFD shows queue growth in Testing, ask whether environments or data fixtures are the constraint before assuming testers need motivation—fix systemic WIP limits and approval policy before adding headcount.
Run a monthly audit: do AI answers cite task IDs from MCP? If not, tighten prompts to require citations before any stakeholder-facing draft leaves the team.
FAQ
How much history does CFD need?
A few sprints or roughly three to four weeks of continuous flow minimum.
Can AI auto-fix bottlenecks?
No — AI surfaces signals; humans change process, staffing, or scope.
flow_aging vs list_tasks overdue?
Overdue is calendar due date; aging is time in current status — complementary.
Where do I access these in WKFGo?
Reports/analytics in-app and MCP portfolio tools.
See the choke point before the slip
Use flow_aging for today's stuck items and flow_cfd for pipeline trends — AI helps synthesize; your team runs the experiment.
Try it now
Put these patterns on live project data—not slide decks.