River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Accounts Receivable Collections Template

Ranks the book by what the money costs and how many dated promises the account has actually kept, then runs the sequence that chases them.

Free download  ·  No account needed

Aging Worklist

[Company] — receivables at [date], ranked by what is at risk

Two columns decide the order, and neither of them is the age. The age rank stays on the row so you can see what moved.

ColumnWhere it comes fromWhy it is here
BalanceAging exportSize, which the bucket view flattens
Days past dueOriginal due date, never re-agedKept for reference, not for ranking
Age rankCalculatedWhere the aging report would have put it
Settled promisesPromise-to-Pay LogDated commitments whose date has passed
Promises keptCleared cash against the logBehaviour, not sentiment
Carrying cost per monthBalance at the borrowing rateWhat the balance costs to hold
At risk per monthCarrying cost times share brokenThe sort key
Open promisePromise-to-Pay LogSuppresses the send until its date passes
Next step and ownerDunning ScheduleA queued send, not a suggestion

The three rules the ranking runs on

No settled promisesWeighted at half. Untested is not the same as reliable
Partial paymentBroken for the shortfall, and the shortfall rolls forward once
Open and inside its dateExcluded from the keep rate, and the sequence holds

Fill it from your own aging export and contact history, or open the pack and let the agent build both from the source exports.

An aging report sorts by how old the money is, which is the one fact about a receivable nobody can act on. Corriden Industrial carries 8,940,000 across seventy accounts at 75.7 days. Its aging report opens every week with Threlfall Bros Contracting at 133 days past due, and Threlfall costs 3,448.75 a month to carry. Halbrook Fabrication sits forty-seventh day past due and sixth on that same report, and it costs 8,654.17 a month, which is more than double.

This pack prices every balance at the rate the business actually borrows at, then joins the aging export to a promise-to-pay log built from your own contact history. Every dated commitment anyone has ever made becomes a scored row carrying the amount, the date, the name and role of whoever gave it, and what actually cleared. That gives each account a keep rate. Halbrook has made four commitments and kept none of them. Weatherby Plant Services, second oldest on the book at 112 days, has kept both of its.

Rank on carrying cost multiplied by the share of commitments broken and eight of the ten accounts change position. Half of what the book costs to carry, 29,066.53 a month, sits behind an account that has broken a dated promise. Every message names the last commitment by amount, date and person, and an account that misses its date resumes at the escalation call rather than the first reminder it ignored. Promises that land become dated receipts in the 13-week cash forecast pack, and the same squeeze from the other end is the payment prioritization memo.

Four of the sheets, filled in for one book

Aging Worklist, Promise-to-Pay Log, Dunning Schedule and DSO Trend.

Aging Worklist

Corriden Industrial, Inc. at 30 September 2026. An illustrative book of seventy accounts. Carrying cost is the balance at 7.75%, being the prime rate of 6.75% plus the 100 basis point spread on the revolver. At risk is that cost times the share of the account's settled promises it broke.

#AccountBalanceDaysAge #KeptCost/moAt risk/moNext step
1Halbrook Fabrication1,340,0004760 of 48,6548,654Escalation call to the CFO
2Ferncastle Mining Supply1,720,0003871 of 311,1087,406Escalation call to the treasurer
3Ostrander Marine612,0008431 of 53,9533,162Final notice, log attached
4Novantis Fabrication892,0001910none yet5,7612,880First call, get a commitment
5Threlfall Bros Contracting534,00013311 of 63,4492,874Hold, commitment live to 2 Oct
6Rhoscombe Utilities428,0007140 of 22,7642,764Escalation call
7All other, 61 accounts575,0002299 of 143,7141,326Automatic sequence
8Kilbourne Rail1,105,0002681 of 17,1360Hold, commitment live to 15 Oct
9Weatherby Plant Services986,00011222 of 26,3680Hold, commitment live to 8 Oct
10Ardleigh Energy Group748,0006153 of 34,8310Hold, commitment live to 10 Oct
Total8,940,00018 of 4057,73829,067Eight of ten rows moved

Weatherby is the second oldest balance on the book and the ninth most urgent. Halbrook is the sixth oldest and the first. That gap is the whole sheet.

Promise-to-Pay Log

Extract. Every dated commitment, scored against cleared cash. Forty settled promises across the book, eighteen kept, so a keep rate of 45%. An open promise inside its date is not scored.

IDMadeAccountWho gave itAmountPromisedOutcomeLateWhat broke it
P-0212 JulOstrander MarineDena Whitlock, AP Supervisor150,00017 JulKept0The one that landed. It was the only date on their payment run
P-0228 JulHalbrook FabricationRow Iveson, AP Manager450,00024 JulBroken68Sent 90,000 of 450,000 on the day. Only that much had ever been approved
P-0294 AugFerncastle Mining SupplySasha Iremonger, Group Treasurer520,00021 AugBroken40Treasury deferred the run after a covenant test, and told us three days late
P-03313 AugArdleigh Energy GroupTom Bassford, Financial Controller290,00028 AugKept0
P-03519 AugHalbrook FabricationRow Iveson, AP Manager500,0005 SepBroken25No reason offered, three unreturned calls since
P-0413 SepFerncastle Mining SupplySasha Iremonger, Group Treasurer640,00018 SepBroken12Second miss running. The covenant test is still not cleared
P-04410 SepHalbrook FabricationRow Iveson, AP Manager272,00026 SepBroken4Offered unprompted while the 500,000 was already broken
P-04725 SepThrelfall Bros ContractingMarcus Rean, Financial Controller253,0002 OctOpenNames the customer paying them and the date, which is new

Four of Ostrander's five broken commitments were dated to a day its own payment run does not happen. That is in the log because somebody asked, and it is why the next call opens with the calendar.

Dunning Schedule

The week of 1 October. A queue with a date, a channel and an owner on every row, not a description of a process. Three things suppress a send: cleared funds, an open commitment inside its date, and a recorded dispute.

SendAccountStepMessageOwnerNamesStatus
1 OctHalbrook Fabrication4 restartEscalation callControllerP-035, P-044Queued
1 OctFerncastle Mining Supply4 restartEscalation callCollections leadP-041Queued
2 OctOstrander Marine5Final notice, log attachedCollections lead5 promisesQueued
2 OctRhoscombe Utilities4 restartEscalation callCollections leadP-045Queued
3 OctThrelfall Bros ContractingHoldNothing sendsControllerP-047Held
5 OctNovantis Fabrication2Invoice now past dueAutomaticQueued
8 OctWeatherby Plant ServicesHoldNothing sendsAutomaticP-043Held
9 OctWeatherby Plant Services4Call and log a commitmentCollections leadP-043Scheduled
15 OctKilbourne RailHoldNothing sendsAutomaticP-046Held

Every call in this queue is aimed at the person who gave the commitment. Halbrook's goes above them, because the AP manager has not returned three calls since the fifth.

DSO Trend

One definition, used everywhere: month-end receivables over the average daily revenue of the trailing three months, taken as 91 days. The cash column is what the gap to the 62 day target is worth.

MonthRevenueMonth-end ARDSOChangeDays over targetCash over targetInterest a year
Mar 20263,340,0007,510,00069.97.9846,70365,620
Apr 20263,410,0007,690,00069.9+0.07.9870,00067,425
May 20263,520,0007,940,00070.4+0.48.4942,85773,071
Jun 20263,680,0008,210,00070.4+0.18.4981,20976,044
Jul 20263,590,0008,480,00071.5+1.19.51,128,57187,464
Aug 20263,620,0008,720,00072.9+1.310.91,300,440100,784
Sep 20263,540,0008,940,00075.7+2.813.71,615,824125,226

Five and a third days added across the quarter, which is 621,668 of cash. Three quarters of it sits in two accounts, and both of them broke a dated commitment to get there.

What's in the pack

01

Aging Worklist sheet

Every account priced at your borrowing rate, with settled promises, promises kept, carrying cost, carrying cost at risk, and the rank the aging report would have given it sitting on the same row. Sorted on the at-risk column.

02

Promise-to-Pay Log sheet

Thirty-one worked rows. Amount, promised date, the name and role of whoever gave it, the message that referenced it, what cleared, how late, and one sentence on what broke it. This is the join key the whole pack runs on.

03

Dunning Schedule sheet

A send queue with a date, a channel and an owner on every row. Holds are shown with the reason and the date they lift, so an account you are deliberately not chasing looks different from one you forgot.

04

DSO Trend sheet

Seven months on one definition, with days over target, cash over target and annual interest beside each row, plus a note naming the accounts that moved the number. The closing balance ties to the receivables you substantiate in the monthly close pack.

05

Collections Policy

How accounts are ranked, what counts as a promise, what stops a send, how disputes are recorded, and where authority sits for holds, plans and write-offs. Written to be tested against the sheets rather than interpreted. The limit that let the balance get this large is set in the customer credit policy pack.

06

Dunning Sequence

Five dated messages with full drafts, from a courtesy notice five days before the due date to a final notice at day forty-five with the promise log attached. Each one states its own job in a sentence.

07

Escalation Script

The call after a break. Openings for an account with a history and one without, the three questions that produce a date that holds, and what to do when the answer is a dispute or a refusal.

08

Carrying Cost Basis

The one rate the whole ranking derives from, with its source, the date it was read, and the spread over it. Also holds the DSO definition and the rule for federal customers who owe interest by statute.

09

Five agent prompts

Rank the Worklist, Log a Promise, Queue the Next Sends, Escalate a Broken Promise and Report the DSO Trend, each one wired to the sheets so the ranking recalculates as commitments are made and broken.

How to use it

  1. 1

    Open in River, or download it

    Open the pack in River and let the agent build the worklist from your own aging export, or download the blank Word documents and CSV sheets and fill them in yourself. Both routes are free.

  2. 2

    Set the rate before anything else

    Write the borrowing rate, its source and the date you read it into Carrying Cost Basis. Every ranking in the pack derives from that one number, and the comparison only holds while every row is priced off it.

  3. 3

    Mine the contact history for promises

    This is the step people skip. Notes in a spreadsheet, a folder of sent emails, a shared inbox: every dated commitment buried in there becomes a scored row, and the scoring is what reorders the list.

  4. 4

    Queue the sequence and hold the line

    Approve the send queue, let steps one to three run automatically, and take the calls yourself. When a committed date passes unpaid, resume at the call, never at the first reminder.

Frequently asked questions

Is this template free?

Yes, all of it. The documents come as Word files and the sheets as CSVs, with no signup and no card, the same as everything in the template library. Edit with AI is a separate optional route that opens this pack in River and builds it from your own aging export and contact history.

Why rank by carrying cost instead of days past due?

Because age says nothing about size and nothing about intent. In the worked book, the oldest account costs 3,449 a month and the sixth oldest costs 8,654. Ranking on cost times the share of promises broken moves eight of ten accounts out of the order the aging report gives you.

Where does the discount rate come from?

The marginal cost of the money, which for most businesses is the revolver. The worked example uses the bank prime loan rate published in the Federal Reserve's H.15 release plus the 100 basis point spread in the credit agreement. Substitute your own and record the source.

What counts as a promise?

An amount, a date, and the name and role of the person who gave it. Two out of three is a conversation, not a commitment, and it never gets logged as one. A partial payment against a commitment is a break for the shortfall, and the shortfall rolls into the next commitment rather than being counted twice.

Does this work for consumer receivables?

No, and the policy says so. The Fair Debt Collection Practices Act defines a debt as a consumer obligation for personal, family or household purposes and attaches a statutory regime to it, per the Act as published by the FTC. Consumer balances get flagged, held out of the sequence, and routed to counsel.

What about customers who owe us interest anyway?

Federal agencies do, by regulation. Under the Prompt Payment rule an agency paying a proper invoice late owes an interest penalty at a Treasury-published rate, and section 1315.10 requires it to be paid without the vendor asking. Calculate it and put it on the account.

Does the sequence actually send?

Steps one to three do, automatically, on their offsets from the due date. Steps four and five are a call and a controller-signed letter, so they land in a person's queue with the promise log already attached. Cleared funds, a live commitment or a recorded dispute suppresses any of them.

Stop working the oldest invoice first

Download the blank pack as Word and CSV files, or open this exact pack in River and let the agent price your book and score every promise in it.

Edit with AI