The Challenge
Vendor follow-ups lived in inboxes. Procurement chased missing documents, ops chased late deliveries, and finance chased invoice mismatches: often on the same vendor, in three parallel threads. Leadership saw “mostly on track” averages while a small set of aged exceptions created most of the friction.
Buying another vendor portal was not the bottleneck. Teams needed a single place where exceptions were categorized, owned, aged, and reviewed: without forcing every partner onto a new SaaS login overnight.
The Approach
We treated exceptions as the product. Each open issue entered a board with stable categories: missing KYC, PO mismatch, delivery delay, quality hold, invoice exception: plus vendor name, owner, opened date, SLA target, blocker type, and next action. Green averages stayed secondary to age and concentration.
- Stable taxonomy, Categories matched how teams already spoke; no weekly rename cycles.
- Single owner, Primary puller per row with a named backup.
- Age buckets, On track, near breach, breached, critical age.
- Digest over chase, One morning email listing breached and ownerless items.
- Weekly category review, Which exception types recurred; fix process, not only tickets.
What We Built
A Google Sheets exception board with Apps Script refresh for age calculations, conditional formatting for breach states, and a timed digest to procurement and ops leads. Intake forms enforced required fields before an item could sit in “active.” Historical closures stayed queryable so recurring vendor patterns were visible across months.
Managers stopped asking for status screenshots. The digest mirrored sheet columns: vendor, category, age, owner, next action: so the email was not a second narrative.
How It Worked
When a delay appeared, the owning team opened a row instead of a chase thread. External vendor mail still happened, but outcomes were written back the same day. Daily digests highlighted breached rows and blank owners. Weekly, leadership reviewed category counts and top aged vendors: then decided whether to renegotiate, change intake rules, or reassign capacity.
Automation calculated age and sent reminders; humans still owned escalations and commercial decisions. The board never auto-closed work to protect a vanity SLA percentage.
Results
Chase email volume dropped because status lived in one place. Aged exceptions became visible before they stacked into crises. Recurring categories: especially document and invoice mismatches: drove intake fixes instead of endless individual nudges. New team members could read the board and understand risk without tribal inbox knowledge.
Leadership conversations shifted from “are we okay?” to “which three vendors and which two categories are aging?”, a better use of review time.
Takeaway
Vendor friction rarely needs another portal first. It needs named exception categories, owned queues, visible age, and a digest that replaces chase culture. Automate prep and flags; keep judgment with the people who renegotiate and escalate. That is how SLA reporting becomes an operating board instead of a green average.
