Skip to the content

The Invoice Chaser for overdue retainers and project invoices

Retainers bill monthly and milestones bill on delivery, and clients are slow to approve, so payment trails the work. Give the Invoice Chaser your invoices CSV and it finds what's overdue, puts it in order, and drafts a reminder for each one in the tone your day cutoffs pick. It runs on your computer with your own AI key and it never sends a thing. The honest limit: it reads only your CSV, so it can't know a client approved late or already paid.

We'll help you set it up. Setup and support are included.

What you'll need first

Set up: Python, version 3.11 or newer, on your own machine.

What this looks like in your business

An agency's final reminder shouldn't threaten a work stoppage unless the owner says so, and here the owner's own sentence does it. In the sample, a retainer invoice 125 days late and a project invoice 73 days late both get a final tone draft. The only threat in the draft is the agency's own line, "We'll pause active project work on the account until this invoice is paid." The tone moves from friendly to firm at day 8 and to final after day 29. An invoice for a law firm, 4 days late, sits inside the 4 quiet days, so it gets no draft.

What goes in and what comes out

What you put in

SAMPLE ON MADE-UP DATA invoices.csv

What you put in
SAMPLE ON MADE-UP DATA. From the file invoices.csv, lines 1 to 12.
customer,invoice number,amount,due date,last contact
Tidewater Sample Outfitters,NS-0814,2500.00,2026-10-28,
Redfern Sample Coffee,NS-0809,4800.00,2026-10-12,
Lumen Sample Dental,NS-0801,1900.00,10/5/2026,2026-10-07
Ardent Sample Fitness,NS-0795,3200.00,9/25/2026,
Copperfield Sample Homes,NS-0780,6500.00,2026-09-13,2026-09-19
Juniper Sample Tea Co,NS-0764,1250.00,2026-08-30,2026-09-29
Pinnacle Sample Software,NS-0742,8000.00,2026-08-01,2026-08-26
Foxglove Sample Florist,NS-0718,950.00,2026-07-14,
Halcyon Sample Spa,NS-0695,2750.00,2026-06-10,2026-07-03
Orchard Sample Realty,NS-0815,3400.00,2026-09-31,
Brindle Sample Books,NS-0816,pending,2026-09-30,

What comes out

SAMPLE ON MADE-UP DATA overdue_list.csv

What comes out
SAMPLE ON MADE-UP DATA. From the file overdue_list.csv, lines 1 to 11. Every file the package writes starts with a DRAFT line that names the run, the provider and the exact model. It's shown here as written.
DRAFT run=20261019T211203Z-f1be06 template=invoice-chaser version=1.0.4 provider=openai model=gpt-6-luna input_sha256=8cefca07f4f6099d5c5d8bf8074a242e033cb90f2879bc88c08beed62f61737e
rank,customer,invoice_number,amount,due_date,days_overdue,tone,reminder_draft,run_date
1,Halcyon Sample Spa,NS-0695,"$2,750.00",2026-06-10,125,final,reminder_001.txt,2026-10-13
2,Foxglove Sample Florist,NS-0718,$950.00,2026-07-14,91,final,reminder_002.txt,2026-10-13
3,Pinnacle Sample Software,NS-0742,"$8,000.00",2026-08-01,73,final,reminder_003.txt,2026-10-13
4,Juniper Sample Tea Co,NS-0764,"$1,250.00",2026-08-30,44,final,reminder_004.txt,2026-10-13
5,Copperfield Sample Homes,NS-0780,"$6,500.00",2026-09-13,30,final,reminder_005.txt,2026-10-13
6,Ardent Sample Fitness,NS-0795,"$3,200.00",2026-09-25,18,firm,reminder_006.txt,2026-10-13
7,Lumen Sample Dental,NS-0801,"$1,900.00",2026-10-05,8,firm,reminder_007.txt,2026-10-13
8,Quartz Sample Law,NS-0819,"$5,200.00",2026-10-09,4,friendly,"none, inside quiet days",2026-10-13
9,Redfern Sample Coffee,NS-0809,"$4,800.00",2026-10-12,1,friendly,reminder_009.txt,2026-10-13

The settings you change

Two inputs: one or more invoice CSV files and exactly one settings .txt. The columns are customer, invoice number, amount, due date and last contact, and the template also reads client, customer name, invoice no, invoice, amount due, balance, due and last contacted as other names for them. The sample agency's settings are business_name: Sample Northlight Studio, friendly_through_day: 7, firm_through_day: 29, quiet_days: 4, and a final_notice_sentence about pausing project work. Dates written year-month-day or month/day/year both work. In config.json, check the provider and the model name. max_jobs, 200 by default, caps how many reminders one run drafts.

Before you buy

What it won't do

  • It won't send a reminder.
  • It won't add a late fee, interest or a threat you didn't set.
  • It won't connect to your bank or your accounting login.
  • It won't mark anything paid.
  • It only knows what's in your CSV. If you got paid and didn't update the file, it will still call that invoice overdue.
  • For this trade: it won't tell a retainer from a milestone, or know that a client approval is still pending. A stop-work line appears only if you write one. In skipped.csv, a negative amount shows with an apostrophe in front of it.

What you bring

  • Set up: Python, version 3.11 or newer, on your own machine.
  • Account: an AI provider key in your name; this page's sample came from OpenAI.
  • Files: your retainer and project invoices in one or more CSVs, and a single settings .txt.
  • Sent to your provider: customer names.
  • Kept on your computer: invoice numbers, amounts and due dates, which the code puts into each draft itself.
  • Your API key stays in a setting on your computer. The package never saves it, and it goes only to the AI provider you choose, never to us.

Questions you might have

Can it threaten a work stoppage on its own?

No. The only stop-work wording is a sentence you write into the final_notice_sentence setting, and the code puts it into final tone drafts exactly as written. The AI never writes a threat. The sample agency's line is "We'll pause active project work on the account until this invoice is paid." Leave the line out and your final drafts carry no next step.

Clients approve slowly, so I invoice on delivery. Does it know a milestone from a retainer?

No. It sees the customer, the invoice number, the amount, the due date and the last contact, and nothing about a project or an approval. A late approval doesn't change the due date it reads. If the due date in your CSV is wrong, fix the CSV before the run.

We have confidentiality terms. Do client names go to the AI company?

The customer names in your CSV do, so the reminder can address them, and nobody else gets them. Invoice numbers, amounts and due dates stay on your computer. If a client's name is itself confidential, decide whether to run that client's invoices through it.

How many invoices can I run at once?

One run drafts up to 199 reminders. If more than 199 are overdue, run them in groups, or raise max_jobs in config.json, which is 200 by default. Rows that are skipped don't count toward the 199. The sample run drafted 8 reminders from 9 listed invoices, and the sixth skipped row is the law firm inside the quiet days.

Where to go next

$29, one time

  • Separately, your AI provider charges you for what you run.

We'll help you set it up. Setup and support are included.

$29 one timeBuy this template