frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

One Number I Trust: Plain-Text Accounting for a Multi-Currency Household

https://lalitm.com/post/one-number-i-trust/
53•ayi•3h ago

Comments

nubg•1h ago
Can somebody explain to me the advantage of double-entry bookkeeping? Is it basically just a "checksum" so it's easier to notice when something is off?
Etheryte•1h ago
Yes, it makes it both really simple to spot mistakes and also allows you to easily audit the whole thing after the fact. In corporate contexts it's a straightforward way to make sure your bookies are also honest, just have an external firm look through the whole thing every now and then.
phil-martin•1h ago
I must have read half a dozen intro-to-accounting books, and it never ever clicked for me. I understood the concepts, the benefits, but it just felt 'wrong'.

It wasn't wrong of course, there is so much history, ingenuity and the invention of double entry accounting, but I just couldn't get my brain to understand it.

The way the concepts settled in my head was: double entry accounting is just an excellent way of modelling a graph with nodes and edges. Accounts are nodes, transfers are edges. Every edge has a source and a destination.

For a paper ledger, each column is graph node, and each row is a graph edge.

That was enough for me to be able to learn the rest of the things I needed for interacting with the accounting world.

But I also realised that that description really only helps a very small part of the population. :D It makes things so much worse for most people.

"Hey could you help me understanding this accounting thing?"

"Sure, but first thing is, let's learn graph theory! You know who Dijkstra right?"

Whole buckets of nope.

But thats a digression from your actual question - whats the point?

It presents a rigid set of rules of recording transfers, everything has to have a from account and to account (i.e. a graph edge), every row must add up to zero.

Because of that, it makes it easy to spot any mistakes in data entry. If any of your rows dont add up to zero - then you've made a mistake.

RedNifre•25m ago
Here is my explanation for "software people who understand databases". The structure of the explanation will be as follows:

  1. Explain how you would do simple accounting with a database
  2. Point out which indices you'd create for performance
  3. Show how the "double entry" part of double entry accounting is about the indices
1. The way you'd do accounting in a database is with two tables: One table for accounts (e.g. your checking account, or the supermarket account, which you don't own) and another table for transactions. The transactions move an amount of money from one account to another, e.g. from your checking account to the supermarket account. Or if you use it for budgeting, you might split your checking account into a groceries account, a rent account etc. (think "categories").

2. For performance, you would create indices based on the accounts in the transaction table, so you could easily check what's going on e.g. in your groceries account or how much you spent at the supermarket.

3. Double entry accounting was formalized in the 15th century, way before computers became a thing, but bound paper books were already somewhat affordable. The way you'd do accounting is like this: During the business day, you would write down your transactions as they happen, into a scrapbook, similar to the transactions table mentioned above. At the end of the day, you'd do the "double entry" part, which means you take your "index" books where each book is about one account and you transcribe each transaction from your scrap book into the two books of the two accounts that are mentioned in the transaction, e.g. if you spent $10 from your groceries account into the supermarket account, you'd double enter that transaction both into your "groceries" book and into your "supermarket" book. Then, when you want to check on how much you spent at the supermarket in a particular month, you could easily look it up in the supermarket book (this would be very tedious when using the scrap book). These account centered books are like the indices in the database mentioned above.

So the double entry part is about clever index building for making it easier and faster to understand what's going on in your accounting system.

huhkerrf•1h ago
I get that people on here don't like subscriptions, and I understand why, but I've been using You Need a Budget for well over a decade, and it is probably the last subscription I'd ever give up.

The automatic import of expenses is so valuable for my family and keeping track of how much we've spent and how much we have left for the month.

We used the fixed-cost version for years beyond when it was officially supported, and it didn't have the automated import, and I don't think I could ever go back to a system that didn't. There were always a few days a month, at least, when I wasn't exactly sure where we were in our expenses.

dugite-code•1h ago
For a FOSS alternative: Actual budget isn't dissimilar from what YNAB was years ago when it was an on device budgeting software
loloquwowndueo•22m ago
+1, I bought YNAB back when you could - old Windows version that I would run under WINE. I used that until 2025 when I migrated to self-hosted Actual Budget (I run it on fly.io). It does everything I need.
skwee357•1h ago
I dont mind paying for a personal finance tool, but I feel like most of them are made for an average consumer who spends in one currency and needs budgeting. I operate in at least 3 currencies, don’t care about budgeting, and need support for tracking stocks and automatic currency conversions.

The only tools that were able to provide that were GnuCash and PTAs like beancount.

My point is, there is a big segment of people who are not served by existing personal finance tools simply because they operate in more than 1 currency, or have a slightly more complicated setup than envelope budgeting.

huhkerrf•1h ago
I regularly pay with 3 currencies, and YNAB isn't great for that, but it ends up working out because 95% of my spend is in just one.

But, you're right, I have no need for tracking stocks, as I only check in once a year or so, and I can't imagine YNAB would manage that well.

ajdude•41m ago
I used YNAB since back when they used to just sell the software and maintained a subscription for a little while. I will say that their approach to budgeting has changed the entire way of how I look at money, and even though I have switched to GNU Cash, I have essentially replicated the envelope method there (it requires four entries per transaction instead of the standard two).

For anyone who wants to use this envelope method without paying for YNAB, I recommend checking out Buckets, which is another software that works similarly.

ixwt•3m ago
I've been using YNAB 4 (aka YNAB Classic on Android) for some time. I got a new phone, and the phone app finally won't run on the new phone. YNAB 4 is also quite buggy on my Arch based setup (someone maintains a package on AUR using Wine). So I think it's finally time to move on, which I think I'm doing this year.

My only issue with Buckets is that the YNAB importer doesn't take into account that YNAB will take your overspending and take it from your next month's income. I have some bad habits that means I was really using YNAB as more of a financial tracker than an actually budget system. That's my own fault though. The envelope in question comes out to $-10k... That's all my own fault though. It just means I have to massage it into Bucket's system, or start a new budget.

phil-martin•1h ago
I really enjoyed reading this, and it is inspirational as it is something I have wanted to do for a long time. And as a software developer, it really appeals to me.

How do you think it compares time-wise to using existing accounting software? Was the time investment worth it to get the control and visibility you now have?

Etheryte•1h ago
This is neat, but I'm not really convinced this level of granularity makes sense for personal finances? Or at least it does not for me personally. I find that simply entering all my accounts into one big excel once a month more than suffices to keep track of everything. Maybe I make a typo here and there but it doesn't really matter in the grand scheme of things cuz I'm gonna type a new number next month anyway.
phil-martin•54m ago
I guess it depends on the complexity of ones personal finances? The author had multiple currencies, investments, and who knows what else.

I ran a small business for a while, and I would draw a parallel to that. Once a family's finances hits the complexities of a small business, multiple assets, loans, cars, long term savings, investments, I'd say the granularity is worth it. I would certainly like to try it out.

pimlottc•43m ago
I like having an archive of PDF statements but the downside is that it’s usually a tedious manual process to download them. There’s so many to track - bank accounts, credit cards, investments, utilities, doctor bills… Every website is different, and they are rarely batch-downloadable. So I tend to be a few months behind at any given moment until I get around to it.

Anyone found a better way to keep on top of downloading statements?

Macha•33m ago
> The key insight is that bank statement PDFs are almost always columnar. Of course, this relies on the PDF having a proper text layer; if your bank sends you scanned images, you’re out of luck (though I’ve yet to encounter one that does). When you convert them to text while preserving the layout, you get something that looks like this:

So I decided to try this out with my bank who's export options are (one of the mentioned slightly silly multi-line format) XLSX or PDF only, and it appears they've done some "encryption" (really a simple substitution cipher and an embedded font with the characters jumbled up so it renders correctly) to the PDF to prevent this. All the marketing text and headers are in the pdftotext output fine but the actual data is all accented and non-printable characters (also if you copy/paste out).

The substitution cipher does seem stable across a few statements, but still seems like less work to work off the XLSX

lalitmaganti•15m ago
Interesting! You might want to try Tabula in that case.

For that type of "obfuscated" PDFs I've come across, it does well, it's just a lot slower to run than pdf2text.

Macha•11m ago
It appears Tabula also gets the substituted content instead.

What I'm seeing is that for example, POS is substituted to & !ë on every line in every file, etc. I can see by comparing to the rendered PDF for other common text (like my name, the local supermarket, etc) that those all seem to be 1:1 substitutions too.

symbogra•2m ago
I used to do this during my first real job and was tracking every sandwich I bought, then one of the senior engineers told me to stop wasting time with it and make more money, and then I was enlightened.

FracturedJson

https://github.com/j-brooke/FracturedJson/wiki
81•PretzelFisch•1h ago•16 comments

10 years of personal finances in plain text files

https://sgoel.dev/posts/10-years-of-personal-finances-in-plain-text-files/
142•wrxd•3h ago•46 comments

39th Chaos Communication Congress Videos

https://media.ccc.de/b/congress/2025
44•Jommi•53m ago•4 comments

Standard Ebooks: Public Domain Day 2026 in Literature

https://standardebooks.org/blog/public-domain-day-2026
172•WithinReason•5h ago•28 comments

One Number I Trust: Plain-Text Accounting for a Multi-Currency Household

https://lalitm.com/post/one-number-i-trust/
53•ayi•3h ago•23 comments

HPV vaccination reduces oncogenic HPV16/18 prevalence from 16% to <1% in Denmark

https://www.eurosurveillance.org/content/10.2807/1560-7917.ES.2025.30.27.2400820
151•stared•4h ago•70 comments

Show HN: Dealta – A game-theoretic decentralized trading protocol

https://github.com/orgs/Dealta-Foundation/repositories
9•kalenvale•1h ago•0 comments

Why users cannot create Issues directly

https://github.com/ghostty-org/ghostty/issues/3558
484•xpe•12h ago•177 comments

Happy Public Domain Day 2026

https://publicdomainreview.org/blog/2026/01/public-domain-day-2026/
342•apetresc•12h ago•64 comments

OfferGridAI – side-by-side comparison of real estate offers from PDFs

https://offergridai.com
5•beechwood•41m ago•5 comments

What You Need to Know Before Touching a Video File

https://gist.github.com/arch1t3cht/b5b9552633567fa7658deee5aec60453/
14•qbow883•5d ago•2 comments

Matz 2/2: The trajectory of Ruby's growth, Open-Source Software today etc.

https://en.kaigaiiju.ch/episodes/matz2
61•kibitan•6d ago•28 comments

A website to destroy all websites

https://henry.codes/writing/a-website-to-destroy-all-websites/
611•g0xA52A2A•17h ago•317 comments

FreeBSD: Home NAS, part 1 – configuring ZFS mirror (RAID1)

https://rtfm.co.ua/en/freebsd-home-nas-part-1-configuring-zfs-mirror-raid1/
77•todsacerdoti•7h ago•7 comments

Can I throw a C++ exception from a structured exception?

https://devblogs.microsoft.com/oldnewthing/20170728-00/?p=96706
19•birdculture•4d ago•4 comments

Windows 11 surges among PC gamers on Steam as Linux stalls

https://www.windowscentral.com/gaming/pc-gaming/windows-11-surges-among-pc-gamers-on-steam-as-lin...
13•pjmlp•26m ago•13 comments

Round the tree, yes, but not round the squirrel

https://www.futilitycloset.com/2026/01/02/round-and-round/
46•beardyw•5h ago•38 comments

Joseph Campbell Meets George Lucas – Part I (2015)

https://www.starwars.com/news/mythic-discovery-within-the-inner-reaches-of-outer-space-joseph-cam...
24•indigodaddy•23h ago•4 comments

Cameras and Lenses (2020)

https://ciechanow.ski/cameras-and-lenses/
460•sebg•20h ago•53 comments

Show HN: I built a clipboard tool to strip/keep specific formatting like Italics

https://custompaste.com
10•EvaWorld9•2h ago•7 comments

Going immutable on macOS, using Nix-Darwin

https://carette.xyz/posts/going_immutable_macos/
84•weird_trousers•5h ago•47 comments

Can Bundler be as fast as uv?

https://tenderlovemaking.com/2025/12/29/can-bundler-be-as-fast-as-uv/
285•ibobev•16h ago•89 comments

Contact the ISS

https://www.ariss.org/contact-the-iss.html
63•logikblok•5d ago•20 comments

A small collection of text-only websites

https://shkspr.mobi/blog/2025/12/a-small-collection-of-text-only-websites/
10•danielfalbo•3h ago•3 comments

Linux is good now

https://www.pcgamer.com/software/linux/im-brave-enough-to-say-it-linux-is-good-now-and-if-you-wan...
892•Vinnl•17h ago•705 comments

Marmot – A distributed SQLite server with MySQL wire compatible interface

https://github.com/maxpert/marmot
130•zX41ZdbW•11h ago•27 comments

BYD Sells 4.6M Vehicles in 2025, Meets Revised Sales Goal

https://www.bloomberg.com/news/articles/2026-01-01/byd-sells-4-6-million-vehicles-in-2025-meets-r...
293•toomuchtodo•22h ago•456 comments

Show HN: Enroll, a tool to reverse-engineer servers into Ansible config mgmt

https://enroll.sh
199•_mig5•1d ago•38 comments

Show HN: OpenWorkers – Self-hosted Cloudflare workers in Rust

https://openworkers.com/introducing-openworkers
465•max_lt•23h ago•143 comments

Bluetooth Headphone Jacking: A Key to Your Phone [video]

https://media.ccc.de/v/39c3-bluetooth-headphone-jacking-a-key-to-your-phone
517•AndrewDucker•1d ago•187 comments