MosoFin · A/R aging and collections, in plain words

Who owes us money, how late are they, and who do we chase first?

Customers who pay on an invoice often pay late. This skill sorts every unpaid customer invoice by how late it is. Then it ranks the late customers to show who to chase first, and it writes reminder drafts for a person to review.

The 20-second version

You give it a date and say what you need. It reads your unpaid invoices, from your books or from your files. It sorts each invoice into a band of lateness, on the amount that is still open. It compares the total with the aging summary, and with your balance sheet if it has that balance. It ranks the late customers and writes reminder drafts. It never sends a reminder and never changes your books.

What a run finds

Six invoices and one credit at Northbrook Trading on 30 September

Northbrook Trading sends invoices to its customers and works in US dollars. Firms that get payment after delivery, for example by invoice, are more likely to report slow-paying customers1. The as-of date is Wednesday 30 September 2026. For each invoice, the skill calculates the days past due: the as-of date minus the due date. Then it puts each invoice in a band of lateness. Accountants call these bands aging buckets.

CustomerInvoiceDueDays past dueBucketOpen $What the skill sees
Harbor RetailINV-1001Tue 15 Sep151-3012,000Late
Harbor RetailINV-0950Sat 1 Aug6031-608,500Late
Crestline FoodsINV-0901Sat 20 Jun10291-1206,400The original invoice was 10,000, and 3,600 is paid. The skill ages the 6,400 that is still open
Pinnacle ClinicsINV-1010Sat 10 Oct−10Current24,200Not yet due
Summit HotelsINV-0870Fri 1 May152Over 12015,000Insolvency notice received. No reminder. Professional review
Acme CorpINV-0990Mon 31 Aug301-303,300Disputed, as you said. It goes to the person who owns the dispute
Lakeside FreightCM-0044−1,200A credit memo that is not applied to an invoice. Lakeside has a credit balance: refund it or reclassify it
Gross invoices69,400
Unapplied credit−1,200
Net A/R68,200
Example figures for a made-up company, in dollars. A negative number of days means the invoice is not yet due. The skill takes disputes from you, because your books do not hold them reliably.
Current$24,200Pinnacle, not yet due
1-30 days late$15,30012,000 + 3,300
31-60 days late$8,500Harbor. The 61-90 bucket is $0
Over 90 days late$21,40091-120 is 6,400 and Over 120 is 15,000. All buckets: 24,200 + 15,300 + 8,500 + 0 + 6,400 + 15,000 = 69,400

Why sort by age? An older unpaid balance is less likely to be paid. Accountants use the same buckets to estimate the amount that will never come in. They apply a higher rate to the older buckets2. The skill builds the aging only. It does not estimate that amount, and it never writes off a balance.

The mistake it catches

The oldest invoices are missing from a quick search

Most accounting systems have an invoice search. Most invoice searches show recent dates by default. So old unpaid invoices can be missing from the result. Those are the invoices that collections must chase.

What the skill does

It reads the aging detail report as of 30 September
Open invoices in the aging6
Over 90 days late$21,400
Crestline, aged on$6,400 open
Every unpaid invoice is in the aging. If your workspace does not list an aging detail report, the skill asks you for an export. It uses the invoice search only to add details.

The common shortcut

Search the recent invoices and call the result an aging
Open invoices in the resultrecent only
Over 90 days latecan be missing
Total owedtoo low
The result looks complete. At Northbrook, the two oldest invoices hold $21,400, which is 31.4% of the money customers owe. A recent-date search can omit invoices of that age.

The skill also ages each invoice on its open balance. Crestline paid 3,600 of a 10,000 invoice, so 10,000 − 3,600 = 6,400 is still open. The aging totals use 6,400. The detail shows the original 10,000 beside it.

A customer balance report does not replace an aging. It gives one total for each customer and no buckets, so it cannot show what is overdue.

The tie-out

The summary agrees, and the books show $750 more

The skill adds the invoices and the credit: 69,400 − 1,200 = 68,200. It compares that net total with the aging summary report, for each customer, for each bucket and in total. The two agree within 0.01. Accountants call this a summary-to-detail reconciliation.

Then it compares the 68,200 with the A/R balance on the balance sheet, which is $68,950. The difference is 68,950 − 68,200 = $750. A likely cause is a journal entry that someone posted directly to the A/R account. The skill puts the $750 on the Exceptions sheet, with the amount and the likely cause. It never forces the two figures to agree.

Detail to summaryAgrees68,200 against the aging summary, within 0.01
Aging to the books$75068,950 − 68,200. It goes to Exceptions with the amount and a likely cause
What the output saysSummary onlyThe aging does not agree with the books, so the output may not say "reconciled to the general ledger"
The numbers it works out

Two thirds of the money is late

Overdue$45,20069,400 − 24,200 not yet due. That is 66.3% of 68,200
Over 90 days$21,4006,400 + 15,000. That is 31.4% of 68,200
Weighted days past due53.6Each invoice counts by its open amount. An invoice that is not yet due counts as 0 days
Largest customer35.5%Pinnacle owes 24,200 of 68,200

The weighted days past due: (12,000 × 15 + 8,500 × 60 + 6,400 × 102 + 24,200 × 0 + 15,000 × 152 + 3,300 × 30) ÷ 69,400 = 3,721,800 ÷ 69,400 = 53.6 days. The skill counts Pinnacle's invoice as 0 days, so an invoice that is not yet due does not hide the late ones.

The skill also reports how much the five largest customers owe. Five Northbrook customers owe money, so the five largest are all of them. The largest one shows more: Pinnacle owes 35.5%. One customer that owes 40% of your receivables is a different risk from fifty customers at 2% each.

DSO on credit sales

The quarter from July to September, 92 days
Ending A/R$68,200
Credit sales: 150,000 − 4,000$146,000
68,200 ÷ 146,000 × 9243.0 days
Credit sales are the invoices of the quarter less the credit memos of the quarter. The skill shows that calculation.

DSO on total income

The same quarter, with cash sales included
Ending A/R$68,200
Total income, with $44,000 of cash sales$190,000
68,200 ÷ 190,000 × 9233.0 days
Cash sales were never owed to you, so this figure looks 10 days better. The skill shows it only with your approval, with the label "Approximate DSO (total-income proxy)".

DSO means days sales outstanding: the average number of days that you wait for payment. The skill divides the ending A/R by the credit sales of the period, then multiplies by the days in the period. An accounting textbook also uses credit sales3. It divides net credit sales by the average A/R, and then divides 365 by that result. The skill uses the ending A/R and the days in the period. So the two formulas can give different results. With both formulas, fewer days usually means that customers pay faster3.

Who it chases first

Two reminder drafts, and four customers with a different next step

The skill ranks the late customers by age and open balance. It sends a disputed invoice and an insolvent customer to a different path. Then it gives each customer a band of action.

RankCustomerOpen $Oldest, daysNext action
1Crestline Foods6,400102Over 90 band: escalation review under Northbrook's policy. A draft to review
2Harbor Retail20,500608,500 + 12,000. 31-60 band: formal follow-up and a request for a payment date. A draft to review
Not rankedSummit Hotels15,000152Insolvency notice. No reminder. Professional review
Not rankedAcme Corp3,30030Disputed. A dispute note to the person who owns the dispute, with no demand for payment
Not rankedPinnacle Clinics24,2000Not yet due. No action
Not rankedLakeside Freight−1,200Credit balance. Exceptions sheet: refund it or reclassify it
Example figures for a made-up company, in dollars. The bands are the skill's defaults. 1-30 gets a friendly reminder, and 31-60 a formal follow-up. 61-90 gets a management review, and Over 90 an escalation review under your own policy. You can change them.

Summit Hotels sent an insolvency notice. The skill stops ordinary reminders to Summit and sends the account to professional review. In the US, a bankruptcy filing usually starts an automatic stay. The stay stops lawsuits, garnishments and most collection activity against the debtor4. That rule is US law. Other countries have their own rules, so ask a professional about the countries where you trade.

Acme Corp disputes its invoice. The invoice stays in its bucket, and the skill routes it to the person who owns the dispute. A reminder that treats a disputed invoice as late damages the relationship and does not get the invoice paid.

The skill writes two drafts, for Crestline and for Harbor. Each draft is neutral and contains no fees or threats. Each draft carries the mark REVIEW REQUIRED - NOT SENT. The skill never contacts a customer. A person reviews each draft and decides whether to send it.

How a run starts

Seven items, in one message

The skill asks these first, in one short batch. It asks only for what it cannot already see. At item D, it makes a statement and asks no question.

  1. Use MosoFin for this run, or upload the data yourself?
    MosoFin is the connection to your books and the other platforms you link. With it, the skill reads from there. Without it, you upload the files, and the checks are the same. The skill asks this only if your account has the MosoFin tools. If not, it says once that the run is manual.
  2. As of which date?
    The skill counts every bucket from this date. It asks only if the date is not clear. It never chooses a default date without telling you.
  3. What do you need: the aging only, a collection plan, DSO or reminder drafts? All customers, or one?
    The answer decides which inputs matter. The core aging needs no dispute flags, payment history, DSO or policy. For one customer, the skill finds the name in your customer list and tells you the match.
  4. It tells you: an aging lists unpaid invoices, so it is always on invoices issued (accrual), even if you file on a cash basis.
    Only DSO and income figures depend on the basis. If you ask for a cash-basis aging, the skill explains this. Then it asks if accrual is acceptable, before it reads any data.
  5. For DSO: the period. On the upload path, also your credit sales.
    Only if you want DSO. Credit sales are the base that DSO needs, because total income includes cash sales. On the MosoFin path, the skill calculates credit sales from invoices less credit memos. It offers the total-income proxy only with your approval.
  6. Any disputes, credit holds, customer tiers or payment history?
    These change the ranking and the tone. Disputes go to resolution, away from collection pressure. The skill asks only when the plan needs them. It never guesses them from the ledger.
  7. Your collection policy: approved wording, payment contact and escalation steps.
    Only if you want drafts. The drafts use only the terms that you supply. They use neutral language with no fees or threats.

Then it reads the plan back and waits for your yes. The skill's own example is for Northbrook. With DSO added for this page, it reads like this:

"Building the A/R aging for Northbrook Trading as of 30 September 2026, accrual basis, from your Mosofin connection: invoice detail tied to the aging summary, then a collection plan and reminder drafts in your approved wording, every draft marked not sent. DSO for July to September, on credit sales from your invoices and credit memos. Shall I go ahead?"
What you need

Connect once, or upload the aging detail

Connected with MosoFin

Say yes, then give it what no ledger holds

  • It reads back the workspace and the company file by name, and waits for your yes
  • It reads the aging summary, and the aging detail if your workspace lists that report
  • It reads the invoices, payments, credit memos and the customer list
  • It reads the A/R balance in your books, to test the aging against it
  • You still give it the disputes, credit holds, customer tiers, payment history and your collection policy, when the output needs them. The books do not hold them reliably
Uploading instead

Bring the aging detail, and more if you have it

  • A/R Aging Detail as of the date: one row for each open invoice, with the due date and the open balance. CSV or XLSX, required. Export it with the aging method "Report date"
  • A/R Aging Summary for the same date, CSV, XLSX or PDF, recommended. Without it, the output says that there was no independent tie-out
  • A/R balance from the balance sheet or trial balance, CSV, XLSX or PDF, recommended. The skill needs it before it can call the tie-out a reconciliation to the general ledger
  • Unapplied credits and payments, CSV or XLSX, only if the detail and the summary do not agree
  • Credit sales for the period, only for exact DSO, typed in the chat or as CSV or XLSX
  • Company name, as-of date and base currency, typed in the chat, required. Disputes, holds and policy, typed in the chat when the output needs them
What you get back

Seven sheets, from the run context to the coverage

Run contextThe workspace and company by name, the as-of date, the basis, the sources and the missing fields. It ends with blank lines for the preparer and the reviewer.
Aging summaryEach customer against each bucket, with totals, the metrics and the next action.
Aging detailOne row for each invoice, with its dates, days past due, bucket, original amount and open balance.
Collection planThe ranking, the reason, the next action, and blank fields for the owner and the status.
DraftsReminder text for review only. Every draft carries the mark REVIEW REQUIRED - NOT SENT.
ExceptionsCredits, credit balances, missing dates or currency, disputes and any reconciliation difference, each with an amount, a cause, an action and an owner.
CoverageFor each task, what the skill read and with which tool. It also shows what you must supply because the skill could not read it.

It asks whether you want the sheets as an Excel file before it makes one. If you say no, you get the same sheets as tables in the chat. It waits until you see and approve the results. Then it offers to save your customer tiers, standing holds and disputes, collection policy and DSO basis for the next run. It never saves customer contact details, balances or draft letters.

What it never does

Six rules that never bend

  • Never reads MosoFin without asking. A connected account is not permission to read it.
  • Never reads anything before you answer the intake items and say yes to the read-back.
  • Never writes, updates or deletes anything, in any system. Every entry that it makes is a proposal for a person to post.
  • Never contacts a customer. Every draft carries the mark REVIEW REQUIRED - NOT SENT. A draft never invents a dispute, a credit hold, a payment promise, a late fee, a suspension or legal action.
  • Never forces a tie, and never shows part of the invoices as the full aging. An invoice search is not a complete aging. A customer balance report is not an aging. The skill shows each difference that it cannot explain.
  • Never guesses disputes, holds, tiers or payment history from the ledger. It never shows a proxy DSO without its label. It never adds different currencies into one total without a label.
Words you'll hear

Seven terms, in plain English

Accounts receivable
The money that customers owe you for invoices that they have not paid yet. Accountants write A/R or AR.
Aging
A table that sorts every unpaid invoice by how late it is.
Aging bucket
One band of lateness, for example 1-30 days late. The skill's default bands go from Current to Over 120.
Open balance
The part of an invoice that is still unpaid, after payments and credits.
DSO
Days sales outstanding: the average number of days that you wait for payment3.
Dunning
The routine series of payment reminders to a late customer.
Automatic stay
In the US, a bankruptcy filing usually starts it. It stops most collection activity against the debtor4.
Sources

Where the facts on this page come from

The sources are a Federal Reserve survey, two sections of an accounting textbook and a US courts glossary. We found each one on 28 October 2026 in search results. We did not open the pages, so follow each link for today's wording. What the skill does comes from the skill's own files.

  1. Federal Reserve Banks: 2024 Report on Payments, Small Business Credit SurveyAbout four in five small firms have a problem with payments. Firms that get payment after delivery, for example by invoice, are more likely to report slow-paying customers.
  2. OpenStax: Principles of Accounting, Volume 1, 9.2 Account for Uncollectible Accounts Using the Balance Sheet and Income Statement ApproachesThe aging method sorts receivables into age bands. It applies a higher rate of loss to the older bands, because older balances are more likely to stay unpaid.
  3. OpenStax: Principles of Accounting, Volume 1, 9.3 Determine the Efficiency of Receivables Management Using Financial RatiosReceivables turnover is net credit sales divided by average receivables. Days' sales in receivables is 365 divided by that turnover. Fewer days usually means that customers pay faster.
  4. Administrative Office of the U.S. Courts: Glossary, "Automatic stay"A bankruptcy filing usually starts an automatic stay. The stay stops lawsuits, garnishments and most collection activity against the debtor. This is a US rule.

No outside authority backs the six buckets, the action bands, the 0.01 tolerance, the seven sheets or the draft mark. They are the skill's own rules. We made up Northbrook Trading and every figure in the example for this page. All four sources are US sources.

About this skill

This page explains ar-aging-and-collections, from the MosoFin finance skills library, MosoFin/mosofin-finance-skills on GitHub. Read the skill on GitHub → The skill is in the card format on the main branch. It merged in PR #1 on 26 October 2026, and a bookkeeping-audit fix followed on 27 October 2026. This page describes that version. Want the worked examples? Learn it step by step →