Running a collections floor from a single source of truth

The setup

A US tax-credit firm files Employee Retention Tax Credit claims for businesses across the country. The commercial model is simple to describe and hard to run: the firm files the claim, the IRS pays the client, and then the client pays the firm its fee. Two things have to happen in that order, and both fail in the real world. The IRS is slow and opaque. Clients get paid and then go quiet. By early 2026 the firm had over 4,000 clients on the books and a collections floor whose entire job was to chase money through those two failure points.

The CEO, a former investment banker, thinks in run rate, variances, severity, and "what do I do next." When we started, the firm was already applying legal pressure on non-responsive clients – a process-server test on a first batch after non-response. This was not a company that needed convincing the problem was real. It needed to see the problem clearly enough to act on it every morning.

The visible symptom

The problem everyone named first was a reporting problem. Leadership did not trust what callers were reporting up. The ask was for dashboards – run-rate metrics, a view of the collections floor, something like the morning report a banker expects on his desk: on track or not, variance, what to do. "What I'm not looking for," the CEO told me, "is exports of reports. I'm looking for intelligence." The request was legible and the instinct was right.

There was a second symptom nobody could see yet, and it took months to surface. Leadership believed that a piece of legal-narrative work was being produced automatically – that a milestone had been hit. It had not. The narratives were still being assembled by hand, with one person as the throttle. The reporting problem was visible. The trust-in-your-own-progress problem was not, and it was the more expensive one.

The judgment moments

This engagement turned on a handful of calls where the obvious move and the right move pointed in different directions.

The Portal API is the source of truth, not the CRM. Every instinct in a sales-led company says build on the CRM. That's where the deals live, where the reps work, the system everyone already touches. I argued the opposite: the financial and compliance fields that collections acts on – what was filed, what the IRS shows, what's actually owed – had to be anchored to the firm's own filing portal, with CRM fields and call notes treated as secondary. The stakes were concrete. A collections rep acting on a stale or contradicted number loses money and, worse, loses faith in the summary the moment it's wrong once. The first time a caller catches the system out, they stop reading it – and then you've built an expensive thing nobody uses. This stepped on CRM-centered habits and on the reasonable assumption that transcript-derived fields were good enough. They were not good enough for money.

Sequence client summaries before the dashboard. The executive pull was for the dashboard – it's the visible thing, the thing you can show a board. I pushed to ship the summaries first: the per-client compression that removes caller prep and standardizes what "the state of this file" means. My reasoning was that a dashboard built on top of unresolved data and inconsistent process is a polished view over noise. It looks like progress and reports on chaos. Build the high-leverage, unglamorous piece first. The dashboard is only trustworthy once the thing underneath it is. This was an argument against the more impressive-looking deliverable, made to the person who wanted to see it.

Do not build a second AI path for the legal narratives. We had the ability to ship a second language-model pipeline to generate legal-ready narratives, and there was prototype momentum pointing that way. I said no – keep the legal narrative manual for now. Generating a fluent narrative automatically would have created exactly the false confidence that later cost us: a system that looks like it's producing legal-ready output while the actual evidence assembly is still manual and incomplete. The wrong move here was the one that demoed well. Choosing not to build is a harder thing to defend in a status meeting than choosing to build. It was the correct call.

Name a role boundary when it's fuzzy. In a mid-engagement conversation, a second stakeholder framed the working relationship as: "You and I are painting the roadmap, but you guys are the muscle." It was said warmly and it was a real fork. Accepting it would have turned me into a scoped subcontractor working under a second requirements layer, with delivery accountability blurred across two people who both thought they owned the roadmap. I chose to be direct about what was actually scoped and who was accountable for delivery, rather than let that framing settle in quietly because it was the polite thing to accept. Getting this wrong doesn't show up as a bad deliverable. It shows up three months later as duplicated work and nobody knowing who owns the outcome.

Name the missed deadline plainly. The CEO set a hard, company-wide directive: by the end of April, escalate everything across the entire firm, no exceptions. It was the right kind of target – dated, absolute, measurable. It was also missed. The deadline slid, with the backlog-clear push carried forward. The judgment moment isn't that a target was hit. It's that the miss was named plainly rather than quietly reframed, and the remediation continued. That's what operating maturity looks like from the inside – you don't get points for the deadline, you get points for not lying to yourself about it. Which is exactly the muscle this whole engagement was trying to build into the reporting.

The through-line across all five: the failure mode in a collections business is believing your own progress. The load-bearing work was making the truth cheap to see, and refusing to ship things that make an untrue picture look more convincing.

What we built

Briefly, because the labor is not the point. Client summaries were wired to a CRM record for each account and rolled out to a scoped set of rep books first, replacing the prior patchwork of call notes and prep sheets. Summary generation runs on a batch-plus-daily cadence tied to the firm's own portal data. The performance dashboard evolved through staged iterations, with the weight put on definition quality, source integrity, and "can a rep act on this" – not on chart count. None of that is the story. The story is what got sequenced, what got anchored to truth, and what deliberately didn't get built.

The numbers

  • Caller prep: from 15+ minutes to about 30 seconds. Callers used to spend 15+ minutes assembling context before a collections call. By mid-2026 that prep was effectively eliminated.
  • ~$2.7 million in fees and refunds made visible by April – the first time the firm had a single structured view of what was owed, to whom, and at what stage.
  • 10,000+ graded calls scored against a consistent rubric, replacing anecdotal reporting with a real performance baseline.
  • ~1,467-deal client-summary pilot across four reps' books, before broader rollout.

What I'd do differently

Lock feedback ownership before scaling a rollout, not during it. When summaries went to more rep books, it was not always clear who owned the loop between "a rep flags this is wrong" and "the fix lands." That ambiguity is cheap to fix at four reps and expensive at forty.

Verify milestones against the real workflow, not against the assumption that a system is running. The single most costly gap in this engagement – the belief that narratives were automated when they were manual – would have been caught earlier by walking one file end to end instead of trusting a status update.

Tie escalation deadlines to a measurable backlog number from day one, so a date like "end of April" has a count attached that either moves or doesn't. A deadline without a number is just a date.

The framing that held

"I was under the presumption that things were happening automatically. I got corrected – it's being done manually. So all the milestones I felt we achieved were actually not achieved. We think we're progressing and we're actually not."

That sentence is the whole engagement. The value wasn't a dashboard. It was making it impossible to keep believing an untrue version of where the floor stood.

If your pipeline has a version of this problem, that's the conversation I want to have.