Tracking my own invoices, without duplicating the accountant's work

My accountant already tracks invoice payments. They do it well, from bank
statements, at bookkeeping time. The problem isn't how reliable that
tracking is, it's the timing: that information reaches me weeks after the
fact, never at the moment an invoice has just gone past due and a quick
nudge would actually make a difference. invoice-reminder doesn't replace
that accounting workflow, it answers a different question: does this
specific invoice deserve a reminder this week.
Why not hook straight into the bank#
The obvious temptation would have been to wire something into my bank statements and infer automatically which invoices are paid. Two things talked me out of it. First, there's no bank connector available in my current environment. Second, and this is the reason that actually matters: matching a received transfer to a specific invoice is an ambiguous recognition problem, not a simple filter. An amount that roughly matches, a truncated wire description, a client who pays two invoices at once: the risk of an invoice getting marked "paid" when it isn't is far more costly than having to tick a box myself.
A text file, not a database#
~/factures.txt is the source of truth, filled in and corrected by hand.
It's the exact same choice as ~/taches.txt for sync-tasks: a file I
read and edit myself with no friction, not a database to query. One line
per invoice, a PAYEE (paid) suffix added by hand as soon as I see the
payment land. The trade-off I'm accepting: the agent never knows an
invoice is paid until I've written it down myself. That's not a step back
from today, where nothing is tracked on my side before the accountant's
pass, it's simply the cost of a tracking system that's actually mine.
The real problem isn't reliability, it's timeliness#
The accountant has reliable data, arriving late. invoice-reminder has
less automatic data, available at the right moment: right when an
invoice has just crossed the grace period and a reminder can still have an
effect. It isn't a more accurate agent than my accountant, it's an agent
answering a question the accountant never asks, because it isn't their
job to.
Why never send automatically#
Same absolute rule as email-replies: two separate phases, no draft
created without explicit approval. But the stakes are higher here. A
poorly worded email reply is easy to fix word by word before approval. A
poorly calibrated payment reminder lands directly on the relationship with
a client who pays me. The agent prepares the text, finds the original
Gmail thread by client name, and stops there. I'm the one who hits send,
never it.
What I don't know yet#
This piece comes from a design, not from usage. The tracking file is empty as I write this: I haven't yet seen how the agent behaves against a real client who paid two invoices at once, or against several Gmail threads matching the same client name. I'd rather say that plainly than pretend it's already been battle-tested. The real test will be the first time a due date actually crosses the grace period.
What this generalizes to#
Two people can need tracking over the same invoices without it being the same tracking. The accountant needs accuracy after the fact, for bookkeeping and taxes. I need speed, not perfect accuracy, to know whether I should nudge someone this week. Trying to unify both into a single source of truth would have been a false good idea: the right answer isn't choosing between the accountant and a personal agent, it's accepting that they answer two different questions, at two different standards of rigor.


