Black-and-white stick comic: two waiting-room chairs both tagged PENDING — one holds a dozing man, the other a skeleton with cobwebs.

Stalled approval ≠ slow approval

Overdue is one threshold on one clock. Slow and stalled are different states with different remedies. No peer ships the pair; our classifier does.

Overdue is overdue. Why split it?

Because overdue is one threshold on one clock. Slow and stalled are different states with different remedies. Take two approvals, both waiting four days.

The first went to a named person who is on site all week, knows about it, and will clear it Friday. It is progressing. Four days is what this kind of decision costs in this company. Nothing is wrong. Escalate it and you have interrupted someone doing their job and taught them that your alerts are noise.

The second went to a group address. Nobody opened it. There is no name against it, nothing is advancing, and it will still be there in three weeks unless a human intervenes, at which point it will not be an approval any more, it will be a delivery date. The remedy is not patience. The remedy is a different person.

Same elapsed time. Same badge on every board we have looked at. Opposite correct actions. That is what makes them two states rather than two readings of one.

Does a better threshold fix it?

No, and this is the part worth being precise about. Thresholds measure duration. The distinction is about whether anything is happening — whether the wait is attached to something that is moving. A slow approval is a healthy wait inside its expected window. A stalled approval has passed the point where waiting is still a strategy, and it needs escalation rather than a nudge. You can hold those apart with a clock involved, but the clock is not the discriminator, and any design that starts from the clock produces one pile with a gradient.

Has anybody shipped the pair?

We looked hard. Across two hundred and twenty vendor pages and seven hundred and twelve captured product screens, no peer enforces the pair — meaning nowhere is there a product where something breaks if the two states are treated as one. The nearest cousin puts an approval overdue notice with a named unresponsive assignee at thirty-six hours, plus a tile reading SLA at risk. That is real time pressure and worth stealing the density of. It is still a threshold on a clock, and the word stalled does not appear. One reconciliation product shows average exception age in days, which is the same instinct applied to the queue as a whole rather than the item. Everyone else has one pending pile.

Our own side of that comparison, stated to the same standard. The pair is enforced in our classifier, not asserted: the two states are separate outputs, and there are named tests that fail if they collapse — sixteen passing at class level and eleven more against the database, run and dated. The wait threshold is installation configuration, defaulting to forty-eight hours, so the company sets what a healthy wait means in that company rather than inheriting a number from us. That is product capability. It is not market evidence, and we do not get to cite it as proof anybody else needs it.

What does that cost in the interface?

Small, which is the annoying part. The decisions queue sorts stalled first by default, rather than by age. The two states get visibly different chrome, not two shades of the same colour. The front page carries the same badge, so the person who has to act sees it without opening a queue. And you can reconstruct, later, how long something waited and which class it was in — because the point of measuring approval waiting is not the dashboard, it is being able to look back at the week that went wrong and ask what would have happened if the right signal had arrived at the right time.

One caution before you build it. There is a second axis that looks similar and is not: reviewer fatigue. A queue can be perfectly healthy on timing and worthless on judgment, because the person clearing it approves everything in eleven seconds. Stalled versus slow tells you whether the decision is moving. It says nothing about whether the decision is any good. Those want different instruments, and conflating them is the next mistake after this one.

Which leaves the question we have not answered. A stall needs an owner to escalate to. What is the correct treatment when the reason nothing is moving is that nobody was ever assigned — when the stall is not a person being slow, but an organisation having no answer to who decides this?

We think that is a routing failure wearing an approval costume. We are not yet sure it should be the same badge.

Got it. Closing this tab.

Keep going. Sort stalled to the top.

Research base: stalled-vs-slow verdict · gov-run enforced-vs-asserted (classifier tests, SLA install config) · criteria-clickpaths criterion 3 · evidence-trace-midpage · hitl-gate-peers (End Close aging) · T16 approval calibration

In this research

Catalog entities mentioned in the post or its research notes.