About invoice-aging
invoice-aging is a skill for analyzing outstanding receivables by how long invoices have been overdue. It groups balances into aging ranges, highlights clients with invoices over 90 days overdue, and calculates weighted average days outstanding.
Key features
- 01Groups receivables into four aging ranges
- 02Matches incoming payments against invoices
- 03Flags invoices overdue by 90+ days
- 04Calculates weighted average days outstanding
- 05Suggests follow-up by aging range
Use cases
- 01Reviewing overdue customer balances
- 02Finding missing or partial invoice payments
- 03Prioritizing collection follow-ups
MCP support
The skill uses Wilson's `transaction_search` to find client payments and compare them with outstanding invoices.
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ openaccountant/ skills --skill invoice-agingAfter installing, type/invoice-agingin Claude Code to confirm it loaded.
Details
From the project READMEInvoice Aging Report
Overview
Analyze accounts receivable by sorting outstanding invoices into aging buckets: Current (0-30 days), 31-60 days, 61-90 days, and 90+ days. Identifies clients with chronically late payments and calculates total exposure.
Wilson Tools Used
transaction_search— find payment transactions matched to known clients or invoice references, identify gaps where expected payments are missing
Workflow
- Ask for the list of outstanding invoices (client name, invoice amount, invoice date, due date) or ask the user to describe their invoicing pattern.
- Use
transaction_searchto find all incoming payments from each client over the past 6 months. - Cross-reference received payments against known invoice amounts and dates.
- For each unpaid or partially paid invoice, calculate days outstanding from the due date.
- Sort into aging buckets:
ACCOUNTS RECEIVABLE AGING — as of [Date]
═══════════════════════════════════════════════════════
Client Current 31-60 61-90 90+ Total
────────────────────────────────────────────────────────
Acme Corp $2,500 — — — $2,500
Beta LLC — $1,800 — — $1,800
Gamma Inc — — $3,200 — $3,200
Delta Co — — — $5,000 $5,000
────────────────────────────────────────────────────────
TOTALS $2,500 $1,800 $3,200 $5,000 $12,500
% of Total 20.0% 14.4% 25.6% 40.0% 100%
═══════════════════════════════════════════════════════
- Flag any client with invoices in the 90+ bucket.
- Calculate weighted average days outstanding.
- Recommend follow-up actions: send reminder (31-60), escalate (61-90), consider collections (90+).
Without Wilson
- Export your invoice list from your invoicing tool (QuickBooks: Reports > Customers & Receivables > A/R Aging Summary; FreshBooks: Reports > Accounts Aging; Wave: Reports > Aged Receivables).
- If no invoicing tool, create a spreadsheet with columns: Client, Invoice #, Amount, Invoice Date, Due Date, Paid Date, Paid Amount.
- Calculate days outstanding:
=IF(PaidDate="", TODAY()-DueDate, PaidDate-DueDate). - Assign buckets with:
=IF(DaysOutstanding<=0,"Current",IF(DaysOutstanding<=30,"Current",IF(DaysOutstanding<=60,"31-60",IF(DaysOutstanding<=90,"61-90","90+")))). - Pivot table: Rows = Client, Columns = Bucket, Values = Sum of Amount.
- For weighted average:
=SUMPRODUCT(Amount,DaysOutstanding)/SUM(Amount).
Important Notes
- Wilson tracks cash transactions, not invoices directly. This skill works best when you can provide a list of issued invoices to cross-reference against bank deposits.
- Partial payments should be tracked. If an invoice is $5,000 and $3,000 was received, the remaining $2,000 is still outstanding.
- Consider offering early payment discounts (e.g., 2/10 Net 30) for clients consistently in the 61-90+ buckets.
Comments
Markdown supported