Ledgerlinedata
livesince 2023ledgerline.example.com
Ledgerline started as a script that read PDF invoices out of a Dropbox folder and dumped the totals into a spreadsheet. I wrote it for my own bookkeeping in an afternoon, then kept extending it until it needed a real database instead of a sheet with 40 tabs.
It exists because every invoicing tool I tried wanted to be the place you send invoices from, and I did not want that. I wanted the opposite: a place that watches a folder, extracts vendor, date, amount, and line items, and lets me ask questions like “how much did I spend on hosting in Q2” without opening twelve PDFs.
How it works
Point it at a folder, and it parses what it can with a set of vendor-specific templates, falling back to a rougher generic parser for anything it does not recognize. You get a searchable table and a CSV export. There is no OCR for scanned paper invoices yet, only text-layer PDFs.
What it does not do
It does not send invoices, chase late payments, or talk to your bank. I use a separate tool for actual accounting and Ledgerline just answers questions about spend. I turned down a request last year to add payment processing, because that is a different, much more regulated product, and not one I want to run.
Filed under data
What changed in Ledgerline
- 4.2Vendor names are matched case-insensitively. Four years of AWS, Aws and amazon web services are now one row.
- 4.0Moved from Postgres to SQLite. The database is 90MB and was being served by a machine that cost more per month than my accountant.
- 3.1Line items are extracted, not just totals. This took three weekends and broke on the first Dutch invoice it saw.
- 1.0Replaced the spreadsheet.