Emily Adler Consulting
Case study · Collections

From an Excel Aging Report to a Daily AR Command Center

At a multi-branch industrial distributor, answering one question about one account meant checking the ERP, an Excel tracker, and a shared inbox, then asking whoever sent the last email. I built one application that tells the AR team who to contact, why, and what to say, and tells the owner which accounts are becoming a financing problem.

01 · The situation

Every question meant going somewhere else.

The client managed collections from an AR aging report exported out of an older ERP into Excel. Acting on that report meant going somewhere else for every question worth asking.

  • Have we already sent this? The answer lived in the ERP, and even then it could be wrong, because an individual may have sent the invoice or statement from their own mailbox.
  • Where does this conversation stand? The status might be in an Excel tracker, or it might only be in the head of the person who had the last exchange.
  • What does this customer actually look like? Customers sit as branches under corporate parents. The team needed both views to make a decision, and the ERP gave neither one cleanly.

Assembling a usable picture of one account took manual compilation, so it happened weekly at best, not daily. Leadership had a different version of the same problem: no early warning on which accounts were turning into a financing issue rather than a collections issue.

02 · What I built

One application, organized by who sits down to use it.

For the AR team, a recommendations queue. The app opens on the day's work: accounts ranked by risk tier, each with a recommended next step. From that screen the team can draft a follow-up, log a note, record a promise-to-pay date, or snooze an account.

Recommendations screen listing customer accounts by risk tier, each with a recommended collection action and buttons to compose, snooze, note, or record a promise to pay.
The AR team's first screen: every account ranked, every next step named. Shown on the demo's sample data.

Email status, read automatically. The app reads the shared accounting inbox and tags each thread, such as disputed or awaiting reply. Drafts go back into the same inbox, so the team's workflow does not change.

Customer profile showing aging buckets, open invoices, the recommended action, internal notes, and the email thread tagged In Dispute.
Aging, invoice detail, and the full email thread in one view, with each message tagged by status.

For the owner and the lender, one summary view. Aging, concentration by corporate parent and branch, and the accounts restricted under the company's financing terms or trending toward that line. Since July the lender group sees the same view.

Summary screen with total AR and aging bucket tiles, and the top ten corporate groups and customers by balance, flagged where a financing restriction applies or is approaching.
The leadership view: concentration, aging, and accounts approaching a financing restriction.

Every view drills to invoice level and exports to Excel. A How it works tab documents the logic, so the team can explain it and change it without calling me.

03 · Results

Where the process runs now.

93.8%of over-90 balances
cleared within a month
Under 1%of over-90 reductions
from write-offs
38%receivables growth absorbed
by a smaller team

The process now clears 93.8% of over-90 balances within a month, with effectively no write-offs. It is cash. Over the same nine months receivables grew 38% and the accounting team got smaller.

04 · Why it worked

The hard part was not the build.

It was deciding what belonged on each screen and what did not. That meant holding four things at once:

  • How the aging actually behaves
  • What the company's financing terms restrict
  • How the accounting team really handles email
  • What the owner needs to see before a Monday meeting

Miss the finance context and you get another dashboard nobody opens. Miss the operational context and you get a tool the team works around. I build for the finance and operations functions I have run, so the tool matches the process instead of the process bending around the tool.

Off-the-shelf collections software does not fit a business like this one. A custom build used to be priced out of reach at a company this size. AI changed that math: this one was built and in daily use within a month, using Claude Code. What it did not change is the four things above.

The team runs it without me, and that was a build requirement rather than an afterthought.

05 · See it

Want to see it? Open the demo.

The demo runs on sample data for a fictional distributor. Every screen works, including notes, snoozes, and statement downloads. Email is simulated, so nothing is sent.

The demo opens right away. I read every request and may follow up once.

Have a process that lives in a spreadsheet? Book a call.

Contact Let's talk

A thirty-minute intro is the first step.

Most engagements start with a 30-minute conversation. No pitch and no canned proposal, just an honest look at what is going on and whether I can help.