River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Medical Accounts Receivable Process Template

Four documents and three sheets, ordered by which claims stop being recoverable next rather than by how big they are.

Free download  ·  No account needed

AR by Payer and Age

Open insurance receivable, ordered by what expires next

One row per open claim. The three columns on the right are derived, and the middle one is the only reason this sheet is not an aging report.

ClaimPayerDate of serviceFiling windowWindow sourceDays elapsedDays to cliffBalance
        
        

How the derived columns work

Days elapsed is the report date minus the date of service. Days to cliff is the filing window minus days elapsed. Positive means the claim is still recoverable. Zero or below means it is loss, and it leaves open AR so the receivable stops being overstated.

Window source, in order of authority

RankSourceWhat to record
1The payer contractThe clause number, so the window can be re-derived
2Regulation, for Medicare Part BOne calendar year from the date of service
3UnconfirmedMark it, use the shortest window in the file, and add the payer to the list to confirm

Waiting on

Takes one of five values: payer response, corrected claim, records request, patient information, or nothing. A claim waiting on nothing is a claim nobody has decided about.

An accounts receivable process built on aging buckets measures the wrong thing. An insurance claim does not slowly lose value as it ages. It expires, on a date set by the payer's filing window, and after that there is no appeal and nothing to negotiate. Medicare's window is one calendar year from the date of service. Contracted commercial windows are usually shorter, and they are not the same length as each other, which is where an aging report starts lying.

So the register carries a column no aging report has: days to cliff, which is the filing window minus the days elapsed since the date of service. It is per claim, because the window is per payer. An 85 day old commercial claim on a 90 day window has five days left and comes fifth on an age-sorted list. A 351 day old Medicare claim has fourteen. Sorted by cliff they swap, and the five day claim goes to the top.

Dollars are worse. At Kestrel Valley Internal Medicine the four largest open claims carry $13,550 and between 61 and 338 days of runway. The four expiring inside the month total $3,475, and a worklist worked by size from the top reaches none of them. One claim had already expired at $415, denied on day 96 and never worked, which is a handoff problem rather than a follow-up one and belongs with the denial appeal pack.

The four biggest claims, and none of the four that expire this month

AR by Payer and Age, this week's worklist with all three rankings side by side, and the cliff calendar it rolls up to.

AR by Payer and Age

Illustrative rows for a fictional practice, Kestrel Valley Internal Medicine. Report date 31 March 2026. Five payers, three different filing windows.

ClaimPayerDOSWindowSourceElapsedTo cliffBalanceWaiting on
CLM-4102Horizon Medicaid2025-09-30180Contract 7.2182-2415Nothing
CLM-4390Ridgeline Health2026-01-0590Contract 5.4855610Payer response
CLM-4188Medicare2025-04-1436542 CFR 424.4435114845Corrected claim
CLM-4412Ridgeline Health2026-01-1890Contract 5.472181,240Records request
CLM-4433Ridgeline Health2026-01-2990Contract 5.46129780Payer response
CLM-4207Medicare2025-05-0236542 CFR 424.44333321,140Corrected claim
CLM-4361Cascade Mutual2025-12-02180Contract 4.1119613,920Payer response
CLM-4298Summit Advantage2025-08-11365Contract 6.32321331,730Payer response
CLM-4455Cascade Mutual2026-02-20180Contract 4.1391415,260Payer response
CLM-4471Summit Advantage2026-03-04365Contract 6.3273382,640Nothing
TotalTen open claims    1 expired18,580 

CLM-4390 is 85 days old and has five days left. CLM-4298 is 232 days old and has 133. Both facts come from the same register and neither is visible on an aging report, because the aging report has no column for the window. CLM-4102 has already gone: the denial arrived on day 96, nobody worked it, and $415 is now pure loss with nothing to appeal.

Worklist Prioritization

The same claims as a week of work, ordered by days to cliff. The last two columns are the rank each claim would have had under the two orderings practices actually use.

RankClaimTo cliffBalanceAction this weekRank by balanceRank by age
1CLM-43905610Refile clean today, do not wait for the status answer75
2CLM-418814845Send the correction today61
3CLM-4412181,240One status call, then refile46
4CLM-443329780One status call, then refile87
5CLM-4207321,140Send the correction this month52
6CLM-4361613,920Ask for the specific missing element24
7CLM-42981331,730Monthly sweep, prompt payment escalation already sent33
8CLM-44551415,260Monthly sweep18
9CLM-44713382,640Monthly sweep39

Read the last two columns down. A biller working the balance ranking from the top takes CLM-4455, CLM-4361, CLM-4471 and CLM-4298, which carry $13,550 and between 61 and 338 days of runway, and reaches none of the $3,475 expiring this month. Working the age ranking is better and still wrong: CLM-4298 comes third with 133 days left, ahead of CLM-4390 with five. Age and urgency are the same number only when every payer uses the same window, and they never do.

Cliff Calendar

The register rolled up by 30 day band. This is the only report in the practice where one row measures pure loss.

Cliff windowClaimsOpen dollarsWhat it means
Expired1415Gone. No appeal, no escalation, nothing to negotiate.
1 to 30 days43,475This week's worklist, top to bottom.
31 to 60 days11,140This month.
61 to 90 days13,920Normal follow-up sequence.
91 to 120 days00 
121 to 150 days26,990Monthly sweep.
151 days and beyond12,640Monthly sweep.
Live total918,165Recoverable today.

Last month's expired list, with causes

ClaimAmountDays to cliff at first touchCause
CLM-410241584Denied on day 96 and the denial was never worked
CLM-40331,120-6Rejected at the clearinghouse and never resubmitted

Days to cliff at first touch is the diagnostic column. CLM-4102 was first touched with 84 days of runway and still expired, so it was lost inside the practice, at the handoff between the remittance and the appeal. CLM-4033 was first touched after its window had already closed, which is not a follow-up failure at all: it never reached the worklist, so the fault is at submission. Two expired claims, two different fixes, and no aging report distinguishes them.

What's in the pack

01

How the Filing Cliff Is Computed

The method before the sheets: where each window comes from, the three-rank authority order for the source column, and why neither age nor dollars substitutes for it.

02

AR by Payer and Age

One row per open claim carrying the filing window, the clause it came from, days elapsed, days to cliff, and what the claim is waiting on.

03

Worklist Prioritization

The week ordered by cliff, with the rank each claim would have had under a dollar sort and an age sort in adjacent columns so the disagreement is visible.

04

Follow-up Procedure

Five cliff bands with a different action in each, including the rule that inside 14 days you refile rather than buy a status answer you no longer have time for.

05

Payer Escalation Contacts

One page per payer, with the filing clause, the corrected-claim method, and the prompt payment obligation that turns a phone call into a letter.

06

Write-off Policy

Expired and elective write-offs kept apart, because both reduce AR by the same dollar and only one of them was a decision anybody made.

07

Recovery Tracking

One row per closed claim with days to cliff at first touch, which separates a claim lost inside the practice from one that never reached the worklist.

08

Handoffs that keep this register honest

A claim paid below contract is not a receivable, it closed at the wrong number, so it goes to the underpayment recovery pack. A balance after adjudication goes to the patient billing pack.

How to use it

  1. 1

    Open in River, or download it

    Open the pack in River and let the agent build the register from your own AR export, or download the blank Word and CSV files instantly and fill them in yourself.

  2. 2

    Send the AR with dates of service

    Claim, payer, date of service and balance is enough. The date of service is the one field the cliff cannot be computed without, so an aging bucket export will not do.

  3. 3

    Pin down each payer's window

    From the contract clause where there is one, from regulation for Medicare, and marked unconfirmed with the shortest window in the file where the contract is silent.

  4. 4

    Work the cliff, then read the expired list

    The worklist reorders itself weekly. Once a month the expired rows get a cause naming the step that was skipped, and the causes name the process fix.

Frequently asked questions

Is this template free?

Yes. The four documents and three sheets download as Word and CSV files with no signup and no card. "Edit with AI" is the optional path for practices that want the cliff column computed from their own AR export. The rest of the library is at the template library.

What format are the downloaded files?

Word documents for the follow-up procedure, the escalation contacts, the write-off policy and the method note, plus CSV for the three registers, zipped into one file. They open in Word, Pages, Google Docs, Excel, Numbers and Sheets with nothing to convert first.

What is days to cliff, exactly?

The filing window minus the days elapsed since the date of service, computed per claim because the window is per payer. A claim with a positive number is still recoverable. A claim at zero or below is loss, and the register moves it out of open AR so the receivable stops being overstated.

Where do the filing windows come from?

From the contract clause, quoted in the register so the number can be re-derived. Medicare is the exception: one calendar year from the date of service by regulation, not by contract. Where a contract is silent the claim is marked unconfirmed and gets the shortest window in the file, which is the safe direction.

Does this replace our aging report?

No, it re-sorts it. The aging buckets stay, because month-end reporting needs them. What changes is the work order: the same claims ranked by what expires next, with the rank each one would have had under a dollar sort and an age sort in adjacent columns, so the disagreement is visible.

What about a clean claim the payer is just sitting on?

That is an escalation rather than a follow-up, and it needs a written obligation behind it. A Medicare Advantage plan's contract with CMS must provide that it pays 95 percent of clean claims within 30 days of receipt for the claim types named there, with interest owed after that.

Does this work denials or patient balances?

Neither. A denied claim needs an argument written against its reason code, which is the denial appeal pack, and a whole remittance gets ranked first by remittance and denial triage. This register keeps the filing clock on those claims and nothing else.

Find out how much of your AR expires this month

Send the open claims with their dates of service and whatever you know about each payer's filing window. The first thing back is the cliff calendar and the expired list.

Edit with AI