Taking Control of My Accounts With Plain Text Accounting

A note to self – but I’m posting it because sometimes other people are interested to know how I work. More than usually techy, may not appeal to everyone.

I’ve been spending some time lately in the Terminal – the command line interface that sits beneath the friendly surface of my Mac and Chromebook.

I’m learning to do things in a more deliberate, text-based way. I started with file organisation and newsletter subscriber backups, and have now extended to accounting.

The tool I’m using is called hledger. You give it a CSV export from your bank and a “rules file” that tells it how to interpret the data – which column is income, which is expenditure, how to categorise things. It then produces reports.

There’s no subscription. No cloud. No one else’s server. It’s not being quietly scanned by Google. Just text files I control, backed up to a private GitHub repository.

I’m getting help from Claude in setting this up, which is mildly ironic given that one of my reasons for doing any of this is to reduce dependence on proprietary software that tends to get more expensive over time – something I’ve written about before in the context of posting to my own site first. Claude is helping me build something I’ll own outright when we’re done, which feels different from being helped into someone else’s walled garden.

To be clear: my actual financial data never goes near Claude. I’ve described the structure of what I’m doing – which columns, which categories – but the CSV files stay on my own machines throughout.

The most interesting thing I’ve learned so far: Claude told me not to edit my raw CSV files, even when they contain transactions categorised in ways that aren’t useful to me. My instinct was to just go in and fix the data. The right approach, it appears, is to leave the CSV alone – a faithful record of what the bank gave me – and instead write rules in a separate file that interpret the data the way I want it.

Turns out this is part of a broader approach called plain text accounting, which has a small but serious community behind it.

What I like about this, once I’d got over my instinct, is that the rules file becomes a kind of audit trail of my thinking.

And because it’s in Git, I don’t have just the current rules – I have the full history of every change I’ve ever made to them, with timestamps.

An edited CSV would give me none of that. It would just give me data I’d quietly changed and might later not be able to trust.

Early days. But I’m enjoying it.


-

If you enjoyed this post, please consider sharing it by email or on social media. Here's the link. Thanks, JPF.