Case study · B2B SaaS · client anonymised
Invoicing platform, reconciliation flow
Product and context
A B2B invoicing platform serving accounting teams, roughly 30,000 monthly active users. The engagement started from a familiar contradiction: reports satisfaction steady at 4.0, renewal conversations fine, and a finance-team churn number that had crept up two quarters running with no complaint trail explaining it.
Baseline
The baseline scored the Task surface at 2.4 behaviour against 4.0 perception — the silent friction signature, concentrated in the monthly reconciliation flow. Session data showed a median of 9 minutes and 40 interactions to reconcile a batch that the underlying matching engine resolved in seconds; users were manually confirming matches the system had already made, one at a time, and describing the routine in interviews as “how reconciliation works”.
Confidence at baseline was 0.81: the behavioural side was fully instrumented, perception came from eight interviews and two quarters of tickets.
Signals targeted, and why
- Task completion — the reconciliation funnel carried the largest recoverable cost in the product, priced from time burned across 30,000 users.
- Error recovery — mismatch states dumped users to a generic error with no path back; the session data showed batch abandonment doubling after any error event.
What changed
Confirmed matches were auto-accepted with a review list instead of requiring per-row confirmation — the step was removed, not explained, per the silent-friction playbook. Mismatch errors were rewritten to name the specific row and offer the two legal fixes inline.
Rescore
Nine weeks after baseline: median reconciliation time fell from 9 minutes to 70 seconds, batch completion rose 18 points, and the Task surface moved to 3.9 behaviour. The composite moved 2.9 → 3.6 at 0.87 confidence. Perception stayed at 4.0 — exactly as the framework predicts for silent friction: nobody praised the change, and nobody needed to.
What did not work
The first treatment attempt failed. Before removing the confirmation step, the team shipped a tooltip explaining that matches could be batch-accepted — the explain-it option the playbook warns against, kept in because it was cheaper. Four weeks of data showed no movement: users who had normalised the routine did not read guidance about the routine. The step had to actually go. That failed month is in the elapsed time above, and it is the most instructive part of the engagement.
Elapsed time
Nine weeks from baseline to rescore, including the four-week failed treatment. Direct build effort for the successful fix: under two engineer-weeks.