Invoice Chaser: a late fee check you can run yourself
What it is
Invoice Chaser is a Claude skill for freelancers with an overdue invoice. You give it the invoice details. It works out how many days overdue it is, the late fee under your contract and which reminder stage applies, then drafts a chaser email.
The money and date math lives in a small Python script (late_fee.py, Python 3, standard library only). That part is the same every time, so you can check it without Claude, without an API key and without a network.
Check the numbers yourself
Download late_fee.py, run-script.sh and expected-script-output.json into one folder (SKILL.md is optional) and run:
bash run-script.sh
It runs this input and compares the output with expected-script-output.json. It prints PASS and exits 0 on a match.
python3 late_fee.py --amount 2400 --due 2026-09-15 --today 2026-10-16 --monthly-rate 0.015
Expected: 31 days overdue, late fee 36.69, total due 2436.69, stage 3 (final notice), 8.28 more per week.
Version 1.0.0 of the script also reports stage_by_days and reminders_sent. Stage comes from days overdue, and reminders you already sent can move it forward but never back: stage = the higher of the stage by days and (reminders sent + 1), capped at 4. Add --reminders-sent 2 to the command to tell it you already sent stages 1 and 2. With this input the stage stays 3.
Money is calculated with exact decimals and the interest is rounded once to cents, half up. Bad input (a negative rate or grace period, a zero or non-numeric amount, a bad date) returns a JSON error and exit code 2. Once a cap is reached, the extra per week is 0.
The formula is amount x monthly rate x 12 / 365 x days overdue. Simple interest, no compounding.
Downloads
Full free sample with tests, README and MIT license: Invoice Chaser sample v1.0.0
SKILL.md refers to scripts/late_fee.py and a references folder inside the full skill; here late_fee.py is a single file next to it.
What happened when we ran it in Claude
We ran this input once on a free Claude.ai account on Oct 23, 2026, with this exact SKILL.md (SHA-256 starts e760b295):
Invoice INV-1042, $2,400, issued Sept 1, due Sept 15 (net 14). Client: Daniel Reyes, Brightline Coffee Roasters - I did their packaging design. My contract says "1.5% per month on overdue balances". I sent a friendly reminder on Sept 22 and a follow-up on Oct 2, no reply. Today is Oct 16. Payment link: https://pay.example.com/inv-1042. I'm Priya, Priya Shah Design.
Claude read the skill, ran the script and answered with this status line:
INV-1042 · $2,400.00 · 31 days overdue · Stage 3 (final notice; stages 1 and 2 already sent) · Late fee per contract: $2,400 × 1.5% × 12/365 × 31 days = $36.69 · Total now: $2,436.69 (grows about $8.28 per week)
Then it wrote a final notice email, a dated follow-up schedule and two short replies for likely client answers. Those match the script. The email wording is Claude's and changes on every run. That run used the earlier version of late_fee.py. Version 1.0.0 gives the same numbers for this input, and run-script.sh checks that.


What we did not test
- Not run in ChatGPT, through an API or on a paid Claude plan.
- Only this one input was run in Claude.
- The free sample includes the fee method and the stage table (references/fee-method.md and stages.md). The email templates are part of the paid pack and are not published here.
SKILL.mdmentions them, the script does not need them.
Good to know
- It's a drafting helper, read the email before you send it. Late fee notes are general information, not legal advice.
- A late fee only makes sense if your contract or invoice terms said so before the work started and your local law allows it.
- The reminder stages (friendly, firm, final notice, escalate) and their day ranges are our own convention, not a legal rule.
Need clean invoice and quote templates for the next job? The Invoice & Quote Set has auto totals, an invoice log for days overdue, and fillable PDFs.
See the Invoice & Quote Set, $9.99
Or keep the free Invoice Chaser sample and browse the product page.
Made by Kitwise Studio