How much did I spend this month?
That's the whole product. One number, read from your real bank transactions — and the categories underneath it that always add up to it. No budgets, no envelopes, no net-worth charts.
This one shows the arithmetic. Money left your accounts; some of it was spending and some of it wasn't. Card payments, transfers between your own accounts, and money friends paid you back get peeled off — visibly, with amounts — and what remains is the number.
| Actual cash out | $3,795.60 | |
| − | Card payments | $612.40 |
| − | Internal transfers | $1,650.00 |
| − | Paid back by a friend | $52.10 |
| + | Annual charge, spread over 12 months | $120.00 |
| = | Total spent | $2,423.50 |
"Actual cash out" always reconciles with your bank statement. It's the one line you can verify by hand. Spreading a charge across months moves the headline number; it never touches that line.
spend exists as a local program for macOS: Python standard library only, no
pip install, bank credentials in the Keychain, transactions in a JSON file
on your disk. It has a terminal interface and a local web interface, and it is MIT
licensed.
$ spend
September 2026 · 14 day(s) in · 16 day(s) left
Total spent $2,423.50
Offset by transfers in -$52.10 1 item(s) — reimbursements, refunds
of which amortised $120.00 from 1 spread charge(s)
Actual cash out $3,795.60 ← reconciles with your bank
Daily average $134.64
At this rate, month end $4,173.84
Housing $1,650.00 ████████████████████ 68.1%
Groceries $239.30 ██ 9.9%
Shopping $138.00 █ 5.7%
Other $120.00 █ 5.0%
Dining $66.30 2.7%
Excluded card payments $612.40 · internal transfers $1,650.00

But "local" comes with three pieces of homework: a terminal, a Python runtime, and a SimpleFIN Bridge subscription ($15/year) that talks to your banks. The hosted version deletes that homework.
No terminal, no Keychain, no SimpleFIN signup of your own. You authorise your bank once and it syncs from then on. Same rails the local version uses.
An email with the month's total and where it went — on the 1st, or whenever you ask. There's a page to open if you want to dig, but you don't have to log into anything to get the answer.
Export everything as JSON or CSV, then delete the account and the archive. No retention maze, no "contact support to cancel".
The local version's whole pitch is that nothing leaves your machine. Hosted gives that up, so it has to earn it back — and these are the rules it would run under, not aspirations:
Bank access is read-only through SimpleFIN, the same bridge the local version uses. Transactions are stored to produce your report and for nothing else.
Automatic merchant categories send the merchant name and nothing else: no amounts, no dates, no balances, no account numbers. You can turn it off and name merchants yourself.
No ads, no selling or sharing data, no "offers", no credit-card referrals. If it isn't paid for by the subscription, it isn't in the product.
Pricing isn't decided. The waitlist gets asked first — that's what the last question in the form is for.
No budgets. No envelopes. No savings goals. No net-worth or investment tracking. No multi-currency. No "your money personality". A tool you don't have to keep up with is one you'll still be using in a year — and the reason the number can be trusted is that the product does one thing.
Nothing else, ever. If it doesn't ship, you hear that too.