// Posted 2026-07-21

Your AR Aging Shows 74-Day DSO and Nobody Owns Collections

Your controller opens the AR aging Monday, $2.4M outstanding, 41% past 60 days, one $340K invoice on day 118. Collections is a function you never staffed.

Grid of translucent indigo invoice tiles arranged along a stretching amber aging-bucket timeline, one large pink tile pulsing at day 118, blue payment beams routing back to a central collections engine, dark near-black backdrop

It is Monday, 8:47 AM. Your controller opens the AR aging report. Total outstanding $2.4M across 214 open invoices. He sorts by days past due. The top row is a $340K invoice sent March 26th, first reminder went out April 30th, second reminder May 22nd, no reply logged since. The invoice sits at day 118.

He scrolls. A $180K invoice on day 87 belongs to a customer whose champion left in May. A $95K invoice on day 63 sits on a buyer who filed a payment dispute in Zendesk nobody routed to finance. Fourteen invoices carry a Net 60 term the sales team quietly added during Q2 negotiations. Nine of those fourteen sit past day 90.

Pull the last four quarters. 940 invoices shipped, average DSO 74 days against a target of 45, $4.1M in receivables past 60 days, $340K written off as bad debt last year. The board deck shows revenue. The board deck does not show that $2.4M of that revenue is sitting in a Google Sheet the controller reconciles every second Friday from a QuickBooks export.

Collections is a function. Most Series B and C teams have not staffed it because the first hundred invoices were paid inside 30 days on a personal email from the founder. The count grew to 940 a year across three product lines, two billing systems after the acquisition, a NetSuite instance the RevOps lead half-configured in 2024, a Stripe subscription feed nobody reconciles against the ledger, and a "Collections" tab in Notion the controller updates when he has a spare Thursday. The function lives in the gap between the CFO who owns the cash number, the controller who owns the ledger, the RevOps lead who owns the CRM, the sales manager who owns the customer relationship, and the AE who signed the deal. On the org chart it sits under Finance. In practice it sits inside a spreadsheet the controller rebuilds every second Friday.

The 74-day DSO math

Pull the AR aging. Filter by days past due over 30. Count invoices with no reminder sent in the last 14 days. Count invoices past 60 days with no owner logged in the CRM. Count invoices sitting on a customer with a live support escalation. Count invoices tied to a champion who left the buyer's org. Most teams past Series B find 35 to 50 percent of outstanding AR past 60 days, 20 to 30 percent with no follow-up in the last two weeks, and 15 to 25 percent tied to a stale customer contact.

Walk one invoice. The $340K on day 118. The account signed a three-year MSA in October 2024 through a VP Finance who approved payment terms of Net 45. Invoice sent March 26th. The controller's automated reminder cadence sent a note April 30th and May 22nd. The VP Finance resigned June 4th and updated LinkedIn the same day. Nobody in finance saw the update. The successor received no handoff. The AE on the account has not logged a touch since the renewal call in February. The CFO reads the AR aging every Monday and sees the $340K number without the context that would let him call the buyer's CEO on Tuesday.

The team that should own this knows it is broken. The CFO runs a Monday cash call that sorts by amount and hides context behind the aging bucket. The controller ships a weekly reminder cadence out of QuickBooks that fires the same three emails to every invoice past 30 days. The RevOps lead owns the CRM but nobody has wired the CRM to the AR ledger. The AE gets a red-highlighted row in a monthly report she reads on the Friday before quota commit.

Hiring a collections manager is the slow answer

The textbook fix is a senior collections manager or a credit and collections lead. Loaded comp in the US runs $95K to $140K a year. Months one through three go to cleaning the AR aging, building a dispute log, and standing up a weekly reconciliation between the CRM, the ledger, and the payment processor. Months four through nine are when DSO drops from 74 days to 52, bad debt write-offs fall from $340K a year to under $80K, and the cash forecast the CFO ships to the board carries a variance under 5 percent instead of 14.

The fractional version is faster and stops at the same wall. Five to eight thousand a month buys ten to fifteen hours a week of senior finance operations work. The first month rebuilds the reminder cadence and the dispute log. The 940-invoice-a-year volume keeps drifting because a fractional lead cannot rescore every account daily, watch every champion departure across 340 active buyers, draft every escalation the CFO sends, and reconcile Stripe against the ledger every morning.

Both versions assume the work is a person auditing an aging report on a cadence. The work itself is scoring every open invoice daily against dispute risk, payment history, contract term, and champion signal, drafting every escalation the AE and CFO ship, watching every payment portal for a partial payment or a dispute, flagging every buyer whose signer or champion has left, running a live cash forecast that reconciles the CRM against the ledger against Stripe, catching every duplicate invoice inside a day, and posting a cash health digest the CFO reads before the Monday board update. On 214 open invoices with 340 active buyers that is 40 to 55 hours a week of senior collections work. No single hire clears that pile and holds the DSO number at the same time.

What a fractional AI collections function does

Hand the AR aging, the QuickBooks or NetSuite ledger, the CRM, the Stripe or bill.com payment feed, the Zendesk queue, the contract terms library, and the last four quarters of payment outcomes to a fractional AI agent. The agent does the work a collections manager, a credit analyst, and a finance operations lead would do together. The cadence is per-day on invoice scoring, per-morning on payment reconciliation, per-departure on champion tracking, per-week on the escalation queue, and per-Friday on the cash health digest.

Every open invoice rescored daily. The $340K invoice shows a red score Monday morning. Inputs: 118 days past due, VP Finance resigned June 4th, no AE touch since February, no partial payment logged. The score lands in the controller's Slack with the four inputs cited and a proposed CEO-to-CEO escalation drafted for the CFO to sign.

Every champion departure caught the same day. The successor VP Finance posts a role change Wednesday. By Thursday the agent has flagged the account, updated the CRM contact, drafted an intro email routed through the AE, and paged the controller to hold the next reminder pending a fresh handoff.

Every payment reconciled by 9 AM. A partial payment of $180K lands in Stripe overnight against an invoice the ledger still shows fully open. The morning digest names the payment, ties it to the invoice, flags the $160K shortfall, and drafts a note to the buyer's AP contact asking about the remaining balance.

Every escalation drafted for CFO signoff. The nine invoices past 90 days on Net 60 terms get a Friday page with a proposed escalation ladder, a CEO-to-CEO email draft, and a legal handoff option if the buyer does not respond inside seven days.

Every cash forecast reconciled against three sources. The Friday forecast shows expected cash in against the CRM close plan, the AR aging, and the payment portal history. Six invoices move off best case into worst case because the buyer signaled a delay this week. The CFO reads a forecast tied to a live number instead of a controller's gut call.

Live collections command lattice with indigo invoice tiles ranked by aging bucket, amber payment-risk gauges pulsing on stale invoices, pink escalation beams routed to controller and CFO nodes, blue reconciliation feeds arriving at a central cash engine

The unit economics of a 74-day DSO

A Series B company at $22M ARR carrying 74-day DSO on a 45-day target is burning three specific things. The CFO, the controller, the RevOps lead, and two AEs spend a combined 12 to 18 hours a week on aging cleanup, reminder chasing, and dispute reconciliation against a fully loaded hour of $180 to $310. That is $9K to $22K a month of senior time on work a live agent clears. The controller gets six to nine hours a week back inside the first sprint.

The cash line is the second one. Moving DSO from 74 days to 52 releases $1.3M to $1.6M of working capital sitting in AR against $22M in annual revenue. That is one less line of credit draw a quarter and one less awkward call to the lender before the board meeting. The month-end close opens on a reconciled AR position instead of a Sunday-night rebuild.

The bad debt line is the third. Six of last year's eleven write-offs carried a red signal 60 days before the invoice went past 120. Catching four of those six with a CFO escalation shipped inside a working week holds $180K to $260K of revenue the ledger currently writes off. Net revenue lifts one to two points on the same book without a single new logo.

A 14-day sprint to stand up the agent runs in the low to mid five figures. Ongoing cost lands closer to one QuickBooks seat than a collections hire. Invoice scoring and payment reconciliation run in week one. Champion tracking and escalation drafting run in week two. The cash forecast reconciliation runs off a live feed before the sprint closes.

What changes after the sprint

Picture the same Monday, 8:47 AM moment, thirty days after the sprint ships. Your controller opens the AR aging report. Total outstanding $1.6M across 168 open invoices. The $340K invoice shows a partial payment of $220K logged Friday, a fresh handoff email sent to the successor VP Finance Thursday, and a CEO-to-CEO escalation from the CFO drafted for Monday signoff.

By Monday the CFO reads a cash health digest that names the six invoices in escalation, the three buyers with a champion departure caught this week, and a cash forecast delta under four percent against Friday's commit. The controller runs point on the top ten invoices because the agent cleared the aging triage. The RevOps lead reviews a CRM tied to a live payment feed instead of rebuilding from a stale export.

If your AR aging currently reads 74-day DSO with $2.4M outstanding and $340K in bad debt on last year's ledger, the version where every invoice rescores daily and every champion departure pages the controller the same day is fourteen days away. Collections is a function. You can hire against it, you can retain a fractional collections lead for it, or you can scope a sprint and have it running this month. The work is the same. The math is not.

// Related notes