Spanish traders set the standard for GnuCash database design
87 points
7 hours ago
| 11 comments
| handson.money
| HN
cett
1 hour ago
[-]
Reminds me a bit of how in the UK the guinea coin ceased to circulate decades ago but it's still used for bidding on racehorse auctions.

1 guinea = 1.05 pounds

You purchase the horse in guineas, seller gets paid in pounds, auctioneer keeps the missing 5% as commission.

reply
gus_massa
5 hours ago
[-]
Side question:

I'm surprised by the explanation of the 8 in the "real de a a ocho" because "traders counted gold doubloons on their fingers, skipping their thumbs." (and the link to investopedia has a similar explanation).

But from https://en.wikipedia.org/wiki/Doubloon

> Spanish American gold coins were minted in one-half, one, two, four, and eight escudo denominations, with each escudo worth around two Spanish dollars or $2. The two-escudo (or $4 coin) was the "doubloon" or "pistole", and the large eight-escudo (or $16) was a "quadruple pistole"

I think it makes more sense that some time ago it was possible to split some coins in half and quarters, so someone decide to continue the tradition and use base 2 to move up.

reply
vitalikpie
5 hours ago
[-]
Yeah, I thought about it when I first saw the coin cut into pieces - https://www.pirateglossary.com/glossary/pieces-of-eight

But then why didn't they cut it into 10 pieces - https://etc.usf.edu/clipart/40600/40610/pie_01-10a_40610.htm ?

reply
Swizec
5 hours ago
[-]
> But then why didn't they cut it into 10 pieces - https://etc.usf.edu/clipart/40600/40610/pie_01-10a_40610.htm ?

Ever tried cutting a cake? It’s a lot easier to visually judge half of a circle segment. You’d need a compass to get accurate tenths (or fifths) and I imagine it is generally frowned upon if some tenths are a lot smaller than others (happens a lot with cake)

reply
noja
5 hours ago
[-]
Easier to cut into halves?
reply
vitalikpie
5 hours ago
[-]
Yeah. Likely so. While at the same time, they may have some other reason - https://www.youtube.com/watch?v=g9S6qD_Wylw
reply
dmurray
5 hours ago
[-]
> So, unless you are a Spanish trader from the 16th century or have a book with fractional stocks from the 90s, HandsOnMoney will serve you well.

US treasury futures are still priced in 32nds of a dollar increments. Sorry, that's not true, they're quoted in 32nds, but sometimes priced in half-, quarter- or eighth-32nds. One might trade at 105-22.5, which means 105 and 45/64ths.

https://www.cmegroup.com/trading/interest-rates/basics-of-us...

reply
vitalikpie
5 hours ago
[-]
God damn it! I did not bother to check the treasury. Thank you for catching mistake - I will correct it.

I knew there will be something to hunt minor units.

reply
wodenokoto
5 hours ago
[-]
> 1. Japanese Yen has no minor units (due to post-WWII inflation)

Japanese yen do have minor units, and they are confusingly called sen (which is a homonym for one thousand)

Now a days they are mostly used for stock prices. But they exist!

reply
vitalikpie
5 hours ago
[-]
Did not know that. Will update the article. Thank you!
reply
pbreit
29 minutes ago
[-]
Storing money as an integer is OK but I've never liked APIs that required financial amounts to be integers. Amounts always eventually need to be displayed to a human as a decimal.
reply
stronglikedan
11 minutes ago
[-]
displaying as a decimal is nondestructive, whereas doing math with a decimal is asking for trouble
reply
WhyNotHugo
6 hours ago
[-]
I used GNUCash years ago in Argentina while we had high inflation. Some operations were in local currency and other are Dollars. The currency exchange changing hourly. Tracking finance is a nightmare, since you basically need an exchange rate for every operation.
reply
vitalikpie
6 hours ago
[-]
Lived through something like this after USSR collapsed and before Hryvnya was introduced. Boy I remember the bread cost - 10,000,000 :D
reply
phyzix5761
6 hours ago
[-]
How's the inflation now with Milei's changes? I know charts show its at a 10 year low but reality could feel different.
reply
bgribble
5 hours ago
[-]
I committed to the GnuCash codebase pretty regularly in the 1999-2002 era... I think maybe I actually implemented the fractional representation that the article discusses? Not sure, it was a long time ago! I definitely remember receiving some very heated emails about how this was total nonsense and there was no reason to do anything other than a decimal representation. The phrase "a superhighway of abstraction, leading nowhere" has stuck with me for lo these many years :) good times
reply
vitalikpie
5 hours ago
[-]
Thanks for the info! But did you guys thought about fractional commodities those days? Or was it clear that it is going away?
reply
bgribble
4 hours ago
[-]
I seem to remember that we were aware that fractional commodities were going away, but exact rational values would still be important to be able to represent historical holdings and transactions.
reply
vitalikpie
4 hours ago
[-]
In hindsight do you think it was an right decision or too "pure"?
reply
6LLvveMx2koXfwn
6 hours ago
[-]
I wonder if Hackernews ranking algorithm has been updated to exclude comments toing and froing about whether or not the article is LLM generated!
reply
vitalikpie
6 hours ago
[-]
haha, true.

Thing is - I'm not a English speaker. But I chat a lot with Claude/ChatGPT - i feel like I'm picking the style from them unintentionally.

reply
aitchnyu
30 minutes ago
[-]
I was cutting edge, a few people assumed I was a Markhov chain.
reply
simonebrunozzi
5 hours ago
[-]
Doesn't sound like reality to me. The article looks very much AI-generated. Nothing to do with not being an English native speaker.
reply
vitalikpie
5 hours ago
[-]
hm, I don't have any other ways to prove it. The thing is - I thought this is something LLM can't write about.

Just imagine a prompt: "Hey Claude, go ahead and come up with idea why GnuCash stores numbers as fractions and come up with an article for HN". I actually tried it and god damn thing came up with something very similar :D

reply
fractallyte
5 hours ago
[-]
I am a native English speaker, and I find accusations of LLM-writing exceedingly annoying – to the point where I sometimes intentionally write in that style, just so I can hit back with a profanity.
reply
vitalikpie
5 hours ago
[-]
Yeah, I'm just a developer mostly chatting with LLMs. I hope I'll develop a distinct style some day.
reply
abdullahkhalids
6 hours ago
[-]
I would like to use finance tracking products like GNUCash. But I don't have the patience to download the csv for half a dozen accounts every month (Products like plaid are a no go from a basic security perspective). I am in Canada, and there seems to be no hope that I will have API access to my bank accounts anytime soon.

Also, did I mention how much it annoys me that the transaction description differs between the CSV and the PDF statement for pretty much all banks I use.

reply
neilv
1 hour ago
[-]
Import-only is the lazy way. :) If you want, GnuCash also has features to support manually entering each transaction as it occurs.

Then GnuCash has features to match up financial institutions data exports against your transaction splits, see the discrepancies, and then reconcile against their PDF statements.

It's a way of life, but you always know what money you have, where. Although that sounds like something for wealthy people, I'd say it's actually more important the less money you have.

reply
bregma
5 hours ago
[-]
Well, there is legislation before Committee to mandate open APIs that any accredited institution can use. As a consumer you will not be eligible, but you will be allowed to pay some third-party to pull your data from your bank and save it in their database, after which maybe they might allow you to download it in their proprietary format should they choose.

Me, I use plain-text accounting (hledger) that automatically imports the CSVs from my bank and categorizes transactions automatically, and I wrote some quick scripts using Python to import the PDFs from my brokerages and paystubs. It's not automated pulls but I only have a handful of accounts so it's really not a pain to manually pull statements once a month and run the import scripts. It takes me longer to reconcile everything to the penny then it does to do the imports, and it's a whale of a lot faster than manually entering through GNUCash. Plus, it's plain text so all you need is vim, git, and the command line.

reply
abdullahkhalids
4 hours ago
[-]
The openbanking thing has been going on for 4-5 years now, with no end in sight. The banks simply do not want to enable a system which allows third party apps to step into the space, and they are too large and lobby a lot. I don't expect anything to happen for a while still.
reply
vitalikpie
4 hours ago
[-]
I was contemplating between hledger and GnuCash for a while and then choose GnuCash because it has pretty good UX for transactions entry.

The missing piece for me was a mobile app. So trying closing this gap with HandsOnMoney.

But I'll be honest - I'm putting off the statement import as much as I can until my financial anxiety kicks in.

reply
vitalikpie
6 hours ago
[-]
Agree. I wish banks have their APIs open. It's 2026 and we have OIDC.

But I used to actually pull the CSV once a week and feed it to GnuCash. It's pretty good at auto-categorization.

Also I simplified my finances to only a couple of checking accounts and only one credit account (for car rentals).

reply
rbanffy
5 hours ago
[-]
> I wish banks have their APIs open

There needs to be a lot of investment in training and safe defaults though. Most people are not ready to automate even a little of their banking like that.

I would even prefer banks had the option to push data to trusted feeds than having open APIs you could call on your own.

reply
abdullahkhalids
5 hours ago
[-]
Only need a read only API for financial analysis.

I definitely do not support an API for doing financial transactions. That will result in so much hacking and theft.

reply
vitalikpie
4 hours ago
[-]
Agree on this. Current situation is kinda broken:

- people do not trust Plaid and Finicity - data is captive inside of bank portals - each damn CSV has it's own format

reply
vsviridov
5 hours ago
[-]
I'm using self-hosted Sure.am and also using SimpleFin to connect to Canadian banks. It works, but barely, since it effectively scrapes with no real API access. I have to login daily to update 2-FA on various accounts, and have suffered account lockouts a couple of times, due to "suspicious activity".

But it still beats downloading multiple exports from the bank and importing it manually...

reply
phyzix5761
6 hours ago
[-]
I simplified to just 2 accounts and I enter them manually twice a week. I keep a detailed budget so it helps to do it that frequently.
reply
vitalikpie
5 hours ago
[-]
Do you do budget in GnuCash or somewhere else?
reply
gostsamo
6 hours ago
[-]
Feels ai generated and waste of time to read even though the topic could be interesting.
reply
fbuilesv
6 hours ago
[-]
I think English is not the first language of the author ("we are counting fingers and thumbs"?).

There's also a `Surprisingly written by a human :)` at the bottom.

reply
vitalikpie
6 hours ago
[-]
yep, I'm Ukrainian
reply
ponyous
6 hours ago
[-]
> Surprisingly written by a human :)

Article ends with this

reply
gostsamo
6 hours ago
[-]
A true surprise if so, but still low in informational density and annoying to read.
reply
vitalikpie
6 hours ago
[-]
huh, sorry I'm really bad at writing - this is one of my first attempts
reply
mlcruz
6 hours ago
[-]
I really enjoyed the read. Not everything needs to be some sort of utilitarian information density optimized reading piece.

Keep up the good work!

reply
vitalikpie
5 hours ago
[-]
Thanks!
reply
jrm4
5 hours ago
[-]
You're not. You're not bad at all. Please ignore the negatives here, they're certainly more a result of AI paranoia/fatigue than meaningful criticism.

Anyone reading this and who is complaining that it's too long and content-light? Respectfully, you really need to check yourselves, you're probably the one with the "internet brain" dopamine or whatever problem. This is NOT an unreasonable amount/style of words for what is said.

reply
fractallyte
5 hours ago
[-]
You're not bad at writing. You have your own style. Keep it up! This was an interesting article.
reply
vitalikpie
4 hours ago
[-]
Thanks :)
reply
gostsamo
6 hours ago
[-]
Your title promises a story about the spanish traders. It does not deliver, but talks about 3 other different topics that I'm not interested in and jumping between them to test my nerves. If it is about the architecture of whatever you are doing, put the architecture in the title and don't make your title an offhand comment somewhere there. Fucked up clickbite.
reply
vitalikpie
5 hours ago
[-]
Yeah, sorry. It's kind of intentional. Did not want to give it a boring name like "Storing fractions vs decimals".
reply
internet_points
5 hours ago
[-]
Don't be. Keep writing! Boring people gonna be boring. I for one found it a fun article with a great title, and I also liked your other https://handson.money/blog/2026-05-20-ai-coding/
reply
vitalikpie
4 hours ago
[-]
Thanks. After all I'm a human too. I'm prone to AI psychosis.
reply
e40
5 hours ago
[-]
Clickbait is a thing and pisses people off.
reply
bitwize
5 hours ago
[-]
Yeah, I got an AI vibe off it too, and was surprised to find this. The problem is, to quote Orson Welles, "it's not as conversationally written. It's full if things that are only correct because they're grammatical, but it's tough on the ear, you see." AI writing bears a resemblance to the most insufferable marketing speak, so if you ape that kind of writing in an attempt to sound punchy or whatever, you're going to be accused of being a bot.
reply
vitalikpie
5 hours ago
[-]
I think it's because thought-process is done in Russian, translated into English and the checked for grammar mistakes with Grammarly.
reply
bitwize
5 hours ago
[-]
That would explain a lot. Grammarly went full LLM brainrot a few years back, so if you rely on its suggestions your writing will... sound a certain way.
reply
vitalikpie
5 hours ago
[-]
I'm using a free version, so if an LLM suggestions slipped in - it only a couple of them.
reply
Buxato
6 hours ago
[-]
I think its not.
reply
vitalikpie
6 hours ago
[-]
It is :) No AI slop. I'm intentionally trying to write without LLM (my previous blog posts clearly disclose it).
reply
ctxc
6 hours ago
[-]
(you mean it's _not_ AI generated)
reply
vitalikpie
6 hours ago
[-]
Yeah this one is my attempt to write without LLMs rewriting my thoughts. P.S. Came to the decision after going through https://thebullshitmachines.com/
reply
fractallyte
5 hours ago
[-]
I strongly disagree. I found the whole article interesting and enlightening – I certainly wasn't aware of the topic before, and I'm glad it was posted on HN.

Furthermore, it didn't feel LLM-generated to me. Quirky, yes; nothing wrong with that.

reply
vitalikpie
5 hours ago
[-]
Thanks! I believe blogs and indie products should have personality - otherwise it so easy to overlook them.
reply
vitalikpie
6 hours ago
[-]
Curious what made you think it's AI slop?
reply
stronglikedan
10 minutes ago
[-]
the overwhelming desire to be an edgy edgelord
reply
swordlucky666
6 hours ago
[-]
The discussion on Spanish traders set the standa raises interesting points. In practical applications, the key challenge is balancing performance with maintainability. Would be valuable to see more concrete examples of trade-offs.
reply
vitalikpie
4 hours ago
[-]
Thanks for idea. I think I'll do another more techy article on this.
reply