Your AR Aging Has 47 Invoices Past 60 Days and Finance Chased Six
Your CFO opens the aging report Monday, 47 invoices past 60 days in Q3, six live collections threads, 41 stale reminders sitting in a Netsuite view. A queue nobody staffed.

It is Monday, September 29, 8:07 AM. Your CFO opens the aging report in Netsuite. 47 invoices sit past 60 days across the mid-market and enterprise book. Six of them have an active collections thread in the shared inbox with a reply inside the last five business days. The other 41 last received a system-generated reminder on day 30 and day 45, both of which bounced into a procurement DL that nobody reads. Average invoice on the 47 lands $42K. Total cash held on the aging past 60 days reads $1.97M.
You bought Netsuite at $1,400 a user a month. You bought Ramp Bill Pay for the AP side. You bought a Stripe Invoicing add-on for the SaaS book. Your Controller runs the aging review every Thursday at 3 PM against a 22-column pivot. Six invoices moved this week. 41 did not. The last cash forecast to the board showed a Q3 collections plan of $9.4M. The Q3 actual is landing $1.9M short with two days on the clock.
What AR is at Series B
AR at Series B is a running function with five parts. A trigger that fires on every invoice crossing 30, 45, 60, and 75 days outstanding. A read of the buyer relationship on that invoice, including the last CS touch, the open support ticket count, and the renewal date on the account. A tailored outreach at each aging step that names the invoice number, the PO, the approver, and a specific payment window against the buyer's AP cadence. A dispute-tracking loop that separates the invoice held on a service issue from the invoice held on an AP backlog.
Not one of those parts runs off the Netsuite dunning template. Not one runs off the Ramp AP dashboard. Not one runs off the Stripe reminder cadence. The tools ship a template email, roll up the aging into a pivot, and post the balance owed on the invoice PDF. The function runs when a human reads 20 aging invoices in one sitting, tags the seven held on a dispute, drafts a specific ask against the buyer's AP cadence on the other 13, and ships the read to the AE, the CSM, and the Controller inside the same week. Your Controller ran the function on six invoices last week. The other 41 got a template.
What 41 stale reminders cost the cash forecast
Take a typical Series B SaaS book. 340 active customers, 187 on annual with net-30 terms, 106 on quarterly with net-45, 47 on custom terms carrying a PO workflow that adds 14 to 28 days. Average invoice on the 47 aged past 60 days is $42K. Total cash held on the aging is $1.97M. Board plan for the quarter carried $9.4M in collections against a $12.1M target. Actual lands $7.5M with 48 hours to close.
Three patterns hide in the 41 stale invoices. Invoices held on a service issue the CSM logged in Zendesk but nobody flagged to finance. Invoices held on an AP portal onboarding that finance never completed after the procurement team moved from Coupa to Ariba in June. Invoices held on a PO number mismatch where the buyer approved $84K on the PO and the invoice went out at $84,240 after a proration nobody explained. The three patterns show up in 22 of the 47 aged invoices when a human reads the CRM, the Zendesk queue, and the invoice thread side by side.
Nobody read the 41 side by side in Q3. The Q4 forecast will carry the same shape unless the function ships. Cash tied up on the aging past 60 days at $1.97M against a 12 percent cost of capital and a runway conversation with the board in three weeks is not a template-email problem. It is a function nobody staffed.
Why the tools you bought do not close the loop
Netsuite ships the aging pivot. Netsuite fires the dunning template on day 30 and 45. Netsuite rolls the balance into the board pack. It does not open the customer record in Salesforce and read the last CSM touch. It does not read the Zendesk ticket count on the account. It does not know the buyer's AP portal moved from Coupa to Ariba in June.
Ramp Bill Pay runs the AP side. Ramp does not read the invoices you sent. Ramp does not touch the AR aging. Ramp scores the vendor bill on the way out.
Stripe Invoicing reminds the buyer on the invoice email thread. Stripe does not follow the invoice into a procurement portal. Stripe does not renegotiate a PO mismatch. Stripe does not sit in the Thursday finance review and read the seven disputes against the CSM notes.

The Controller runs the Thursday review off a pivot. She works six invoices to close before Friday and posts the collection to the board dashboard on Monday. The 41 sit inside the same pivot with a status of Sent Reminder 2. The status is a template, not a function.
What a fractional AI collections function does
An agent stack runs the parts on a cadence you did not have to prompt. On every invoice crossing 30, 45, 60, and 75 days, the trigger agent reads the Netsuite record, pulls the customer object from Salesforce, pulls the open ticket count from Zendesk, pulls the AP contact from the last invoice paid, and writes a structured aging artifact into the collections workspace within 20 minutes. The artifact links every source back to the invoice ID.
Inside the same cadence, the outreach agent drafts a tailored email in the Controller's voice against the buyer's AP cadence, names the PO number, the invoice ID, and the approver, and offers two specific payment windows against the buyer's month-end and mid-month runs. Response rate on the tailored outreach lands 34 to 48 percent when the ask goes out inside the same aging step, against 8 to 12 percent on the Netsuite template. The reply lands in the collections workspace with the invoice record linked and a dispute tag if the buyer raises a service issue.
Every Monday, the synthesis agent reads the last 20 aged invoices in one pass. It tags the seven held on disputes, drafts the read for the CRO, the VP CS, and the Controller, and ships a specific ask against each aging step. The Controller reads the draft on Monday afternoon, ships the escalations Tuesday morning, and closes the loop with the AE, the CSM, and the finance ops owner inside the same week. Read the reporting case for the same operating shape against a different function.
The unit economics of the trade
Path A keeps the Netsuite dunning template running, adds the next AR analyst at $115K to $135K loaded, keeps the Thursday review on six invoices, and lets the aging past 60 days sit at 14 to 22 percent of the AR book quarter over quarter. Cash held on the aging lands $1.5M to $2.5M against a 12 percent cost of capital and a board conversation three weeks out. The Q4 forecast carries the same shape as the Q3 miss.
Path B keeps Netsuite for the ledger and the audit trail, runs a 14-day sprint to stand up the agent stack against the trigger, outreach, and synthesis parts, and runs at $3K to $6K a month on API spend and tooling plus a fractional finance operator at $4K to $6K a month who owns the dispute review and the exception loop. Year one lands a 34 to 48 percent tailored response rate, a synthesized read on 20 aged invoices every Monday, and a $600K to $1.4M cash release in the first two quarters against a $42K average invoice.
The three questions to run against every past-60 invoice this quarter
Read the aging pivot before the next board pack. Every past-60 line deserves three questions before the invoice rolls into the next cohort. The questions score whether the invoice is a collection in progress or a template nobody read again. Run them against the last 47 rows this week and a third of the queue moves.
Which buyer conversation backs this aging line? Name the last contact date, the AP owner on the buyer side, and the reply text. If the answer is a Netsuite Sent Reminder 2 timestamp, the invoice is a template send, not a collection. Open the thread inside the current aging step or move the line to the dispute tag.
Which pattern does this line share with the last 19 aged invoices? Name the dispute reason, the buyer portal, and the deal shape. If the answer is one line about the specific invoice, the read is anecdotal. Synthesis lives in the pass across 20 aged invoices in one sitting, not in the row-level pivot on the last one.
Which owner receives this read on Monday? Name the AE, the CSM, and the finance ops owner who acts on the escalation. If the read ships to a Netsuite dashboard and dies on a Thursday pivot, no decision follows. Distribution is the function. A read no owner acts on is a template email, not a program.
If your Controller is chasing six invoices and posting Sent Reminder 2 on 41, the version where 20 aged invoices ship a synthesized read every Monday is fourteen days away. Netsuite ledgers. Stripe reminds. An agent stack runs the function. Scope a sprint and read the first aging review land in the CFO inbox next week.
2026-09-21Your Procurement Queue Has 47 SaaS Renewals This Quarter and Finance Approved Six Blind
Your CFO opens the renewal calendar Monday, 47 SaaS contracts up in Q4, six approved on the vendor quote, 41 auto-renewing on the anniversary. A queue nobody staffed.
2026-09-16Your Zapier Workspace Runs 340 Zaps. Ops Still Owns Every Exception.
Your Head of Ops opens Zapier Monday, 340 Zaps live, 47 tasks in the error queue, three broken since Thursday. A Zap is not an ops function.
2026-09-14Your BI Vendor Sold You 47 Dashboards. Reporting Is Something Else.
Your COO opens Looker Monday, 47 dashboards live, three exec inboxes waiting on the Q3 narrative. A dashboard is not a reporting function.