
The Exception-Sorted Approval Queue.
The challenge
Approving an expense took longer than filing one.
A manager opened the queue to a list of merchant names and dollar amounts with no context — was $340 at an unfamiliar vendor a client dinner or something worth questioning? Finding out meant opening each receipt individually, checking the policy, and often messaging the employee directly. Most managers batched all of it for a Friday afternoon they usually didn’t get to.
“I know I’m the bottleneck. I just can’t tell what’s normal without opening every single one.”
— Engineering manager, 40-person team



The Exception-Sorted Approval Queue.
The Process
Timed the actual approval, not the submission. We shadowed six managers for a week. The submission flow was never the problem; every complaint was about the approval side.
Flagged the exceptions, not the whole list. Most expenses were routine and needed zero scrutiny. We built the system to surface only what was unusual against a person’s own history.
Context on the card, not behind a click. Merchant, category, policy match, and the employee’s note all had to be visible without opening anything.
Tested batch approval before building it. We mocked an “approve all routine” button with paper prototypes first, worried it would feel reckless. Every manager we tested it with asked why it didn’t exist yet.




Solution
A queue sorted by exception, not chronology. Anything outside a person’s normal spending pattern surfaces first; everything routine sits below, ready for one action.
Batch-approve the routine ones. One tap clears every unflagged expense at once, with a running total shown before you confirm.
Inline policy match. Each card shows whether the expense fits company policy automatically, so a manager isn’t the one doing the lookup.
A two-tap escalation. Flagging something to finance or asking the employee a question happens without leaving the queue.
Outcome
Median time-to-approval dropped from six days to under one day within the first two months. The clearer signal: batch approval accounted for 70% of all approvals by month three — meaning most of a manager’s queue stopped requiring individual attention at all, which is what made the six-day backlog possible in the first place.
What I’d do differently. The exception model was tuned on individual spending history, which worked well for tenured employees and poorly for new hires with no history yet. New employees’ first month of expenses got flagged constantly regardless of how routine they actually were. I’d have shipped a team-level baseline for new hires instead of waiting for them to build their own history.
Median time to approval
-83%
Approvals cleared via batch action
70%
My queue used to be a dread. Now it's mostly one tap, and I actually look at the expenses that need me.

Rosa Ferreira
Chief Innovation Officer
