Hacker News new | past | comments | ask | show | jobs | submit login
Simple Personal Finance Tracking with GnuCash (csun.io)
479 points by igpay 13 days ago | hide | past | web | favorite | 319 comments





Aaaaaaaaarrrrrrrgggggggghhhhh!

I just want a bank account and to have that bank record my spending and let me download it, securely, and automatically.

I mean the European Union has taken years to force, yes force banks to do this, and it is basically still broken.

I don't want to spend this much effort on something so obviously solvable. It just offends me. Yes that is the right word.

And, finally, none of this matters if I have trouble with the real problem - sticking to a budget. Solving that one is what I want personal finance apps to help me with. Keeping track of my finances should be a solved problem, locked in a box and forgotten about.


I know you're not asking directly for advice, but if you'd be interested, I find the following is the easiest way of keeping a budget.

0. Forget about tracking things down to the dollar, or even the tens of dollars. That level of precision is unnecessary. If a coffee here or there is going to break your budget, it's already broken and you need to go in to panic mode.

1. Have a spreadsheet with vague monthly costs like 'transport', 'food' and the like. Combine that with your monthly income, and you'll know what your approximate monthly savings should be

2. Every month, manually record your savings.

3. Over time, compare your actual savings with your expected savings

4. If there's a discrepancy of a meaningful amount (however, remember step 0) then you might need to bury in to the details a little bit more.

Given that sort-of system, you have enough manual touchpoints that the budget is in your mind when you're making discretionary purchases, but not so much that it's stressing you out.

I've made a sheet that does basically the above with example budgeting for what I'm familiar with in Sydney - https://docs.google.com/spreadsheets/d/1KW3i-m8BtJ2O9lKurhJr...


> If a coffee here or there is going to break your budget, it's already broken and you need to go in to panic mode.

I understand exactly what you are saying here, however, there have been several times in my life where buying a coffee here or there will break my budget. I know that's a level of poverty that most people on HN have never experienced before, but it's a reality for many people.

You don't really ever want to go into panic mode. Living on a very limited budget is not the end of the world. I actually chose my lifestyle. I had this idea that there are 2 ways to be rich: make more money than I need, or need less money than I make. Sometimes the second one involves a lot less stress (which is admittedly quite difficult for a lot of people to believe).

If you are on such a limited budget, it is quite important that you know whether or not that coffee on Monday means that you aren't going to eat on Sunday. At the same time, if you do have some wiggle room, it's quite important to treat yourself occasionally.

What is important to track as your expenses has nothing to do with absolute value. It has to do with the value relative to your total budget. If nothing you buy costs more than $5, then obviously you are going to track smaller values. On the other hand, one of the huge advantages of having no money is that it doesn't take long to count it ;-)

So I would rather say that if you need to track down to the level of individual dollars for a personal budget, something like GnuCash is probably not the appropriate tool.


I think the old addage "look after the pennies and the pounds will look after themselves" really applies.

Some people don't seem to mind not really tracking their spending down to an extremely granular level (ie everything) because they make so much money that small outgoings on their bank account are worthless, or they have to dedicate their time to their family and can't be bothered to track it.

That seems odd to me because they could be paying for things they don't need, or odd subscriptions they really could live without. Small subscription services rely on you not noticing the "small" amounts, but many small items make a big item.

I think a spreadsheet to track everything is really helpful to ensure that you are only spending what you need to spend, particularly if you wish to simplify your lifestyle (work less!) and do your proposed lifestyle 2 (need less money to live).


I have mixed feelings about this and overall I still want to engage in better financial tracking. However, the obvious flip side of the coin is that if I need several hours a month to keep proper track of the budget to save a few hundred more a month it might not be worth it, as I value more what I do with that time and not worry about a budget. The problem of course is that once I start tracking in detail I may find out we're wasting much more than that :(

I'm on the same page as you. I want to make sure my wife and I are not overspending (still happens on occasion), but I also don't want to waste time on it.

So I have a simple metric: Is my money (cash + investments) increasing each week?

If it is, then once every ~6 months, I take a look at my family's spending and see if there is anything we would be happy getting rid of.


I allocate items by credit cards, eg. "meals out" on one credit card, "food" on another, "fuel" on another. That's only 3 lines on a spreadsheet showing the budget.

If at the end of the month, the spend on each card is higher than those figures I've failed.

With modern apps for card balances, seeing if you're near your budget helps.

The alternative is to get money physically out of the bank and put it into separate envelopes and spend out of the envelopes. You'll be amazed at how your spending habits change when you have to physically hand over cash.

If you are finding that looking down a list of 50 purchases at the end of the month "takes up too much time", I would wonder how much time you spend watching TV and compare the time values. One is surely more important than the other.


Takes me about 20 minutes once a month to compare my bank's monthly PDF with my own records, and update anything I missed. One reason not mentioned so far is to identify payments I don't recognize, just in case someone got access to my account or a monthly charge suddenly tripled.

So far nothing big (some things on Amazon change price by a few dollars up or down after putting in the order), but I always wince a little when I see someone not bothering at all.


Not sure if we're talking about the same thing. I do look (more than once a month probably) to cc statements for unexpected charges. I do not keep track however of how much I spent on categories such as subscriptions, clothing, groceries, take in, dining out, toys and then trying to come up with a budget for each and stick to it. That's more work than 20 min a month.

You probably only need a few months of data to make conclusions.

I hope my comment wasn't too insensitive to this issue.

I don't think so! It's just a different point of view. For a lot of people, having to scrape by with a small amount of money is a really frightening situation. And truly if you are in debt (especially if you are in a cycle of debt), it can be absolutely crushing. So there are definitely times where you need to engage emergency measures. But a lack of money (from a Western perspective) is not in itself reason to worry, per se. There is enough money and there is not enough money. Where you draw that line is surprisingly flexible. Especially in these difficult times, it's something that I would like people to understand.

> 0. Forget about tracking things down to the dollar, or even the tens of dollars. That level of precision is unnecessary. If a coffee here or there is going to break your budget, it's already broken and you need to go in to panic mode.

Yes and no. Late last year I did track everything to the cent (well, to the grosz, the fractional part of Polish złoty) and used ledger (the CLI double-entry accounting tool) to analyze it. My main discovery there was that most of our spending was so thoroughly distributed across every category that there was no easy wins to be had. Pretty much the only things we could do that weren't serious lifestyle changes involved garbage-collecting some subscriptions and instituting monthly limits on $favourite-foodstuffs. But before doing a high-granurality trace of expenses, I was sure there were trivial cuts to be made. Turns out, they weren't.

Doing this level of tracking is probably not sustainable in the long run (unless you're in emergency mode), but doing that for couple of months is a great opportunity to reevaluate all spending in your life.


I and wife have been tracking our expenses (and income) to a penny for more than 10 years now. It's easy when you don't have a lot of cash expenses and have a habit of entering them every night you make them. Dealing with card and other electronic transactions is even easier. Convenient software also helps a lot. We use KMyMoney, but there are many good choices.

I did the same a couple of years ago, and came to the same conclusion, which is why I've settled more-or-less on the system above.

Nice!

I just stop spending money unless I absolutely have to. A cup of coffee and a bit of candy at the gas station every other day (2+4 euro) * (365/2) * 10 years. Thats ELEVEN THOUSAND euro I could probably be doing something more interesting with. At 7 euro/kg and 30 gr/liter 11k is 52380 liters of coffee or 314285 cups or 86 cups/day for 10 years. 2/3 was candy (we are not buying that) so we only have 28 cups left per day. At 2 cups per day (which is 4 times as much) it still is 140 years of coffee every 10 years.

I pick 10 years because its short. If we take 50 years it is 55 000 euro. Now imagine throwing money around like that all day long.

Think about that when you get a free coffee.

I know it doesn't sound very convincing but most people manage to match their spending with their income. It really doesn't matter how much you earn. Real wealth is in not spending it.

Also, if you hoard enough cash and enough discipline it eventually stops making sense to work. More time to enjoy life! (jay!) Also, that bag of candy is probably killing me. If I'm hungry I must have planned things poorly.


> More time to enjoy life!

What if I enjoy life by buying a fancy coffee & drinking it on my walk to work?

The downside of your formulation of "why buy coffee? you could be enjoying life instead!" is that this worldview encourages people to feel guilty about buying coffee. Extreme frugality has its place, but remember that "your life" that you have to enjoy isn't something that starts in 5 years or 10 years or once you save $x, it's what's happening right now, all the time. I might not be alive in 5 years, none of has that guarantee. So I enjoy my coffee.

It sounds like you enjoy frugality for its own sake which is fantastic, and more power to you. But I think most personal financial planners would suggest that you have a goal you're working towards rather than "hoard cash." What's the point of that? "Thats ELEVEN THOUSAND euro I could probably be doing something more interesting with" figure out what that "something more interesting" is and it might make sense to forgo your daily coffee. Hoarding cash is not a goal.

> If we take 50 years it is 55 000 euro.

Yippee! I'm 85 years old (assuming I haven't died already) and I have an extra €55k. Am I allowed to drink coffee now?


Yeah, but how fancy is the fancy coffee though? Are we talking Starbucks or a three day roast sourced from a micro lot in Kenya?

If it fits your budget, go for it, but let's not confuse convenience with enjoyment or quality.


I say this in order to share constructive feedback, because I know a lot of people on HN are not great at "tone" and sometimes appreciate an explanation why their comment might accidentally offend:

This comment is very condescending and pointlessly critical. You suggest that I do not know how to enjoy coffee correctly, and am instead perhaps "confusing convenience with enjoyment." Rest assured that, I, along with basically everyone, can be trusted to know what they themselves enjoy or do not enjoy, without your advisement.

To clarify, I am using "fancy" as a shorthand for "expensive," i.e. a $5-6 coffee rather than a $2 coffee.


> Hoarding cash is not a goal.

Especially considering the inflation tax. Especially lately.

And money should be making more money after the $5000 point.


Yeah... well... I'm terrible at that. Recently I learn many more purchases can simultaneously be investments. The topic now makes me wonder if this 7000$ vintage espresso machine is robust enough for another 20 years of service. https://coffeemachinewarehouse.com.au/product/gaggia-vintage...

It looks more solid than fiat?


> What if I enjoy life by buying a fancy coffee & drinking it on my walk to work?

haha, are you asking for my permission here? We are different people! Thank god! Imagine if our hard worked grand-design for life turned out exactly the same. Now that would be truly terrible.

> this worldview encourages people to feel guilty about buying coffee.

I don't feel guilty when I don't, I feel stupid when I do.

> Extreme frugality has its place, but remember that "your life" that you have to enjoy isn't something that starts in 5 years or 10 years or once you save $x, it's what's happening right now, all the time.

Right, dopamine is going to happen. Don't worry about it. I resist the cravings also because I don't want to become an instinct and emotion driven creature.

> I might not be alive in 5 years, none of has that guarantee. So I enjoy my coffee.

If you skip this one the next one will taste at least twice as good. Eventually you sit there clamping onto the cup with both hands and making conversation with it.

The thing with bodies is that they always want something. There is no end to it! (haha)

> It sounds like you enjoy frugality for its own sake which is fantastic, and more power to you. But I think most personal financial planners would suggest that you have a goal you're working towards rather than "hoard cash."

Of course! They wouldn't have a job if they didn't!

> What's the point of that?

I'm not hoarding cash. There is no point in that for me!

> "Thats ELEVEN THOUSAND euro I could probably be doing something more interesting with" figure out what that "something more interesting" is and it might make sense to forgo your daily coffee.

I just want to be able to live without ever worrying about money.

> Hoarding cash is not a goal.

Money doesn't make you happy but a lack of it is just awful. Hoard enough until it stops making sense.

> > If we take 50 years it is 55 000 euro. > Yippee! I'm 85 years old (assuming I haven't died already) and I have an extra €55k. Am I allowed to drink coffee now?

haha, thanks for that. I can live comfortably on 1000 euro so the 55 k would allow me to reduce my earnings to 500 euro for 110 months spread out over the 50 years or 11 months every 60 months. If I brutally cut 5 more corners like this I could spend most of the 50 years reading HN poke peoples mind like this (and better)

Thanks for just saying what you think.


I agree with the "I will teach you to be rich" (it's a book) approach a bit more than "i can't buy a $5e coffee daily".

Their approach is more like a performance engineer. You look at the biggest costs first and reduce it down. I.e. Ask for a raise, refinance your place, find a cheaper place to rent, etc.

When you get down to the coffee you would be faced with: is it cheaper to make good quality coffee, or am I paying for the experience?

Personally I tend to view these re-occurring costs and I try to look at a way I can amortize them over a longer period of time. It's easier to justify the cost of a 200+$ espresso maker if I'm really that big of a fan and already have a defined habbit.


I love the IWTYTBR philosophy too. My favorite part is the concept of "guilt-free spending". Once you get the "big wins" down like you talked about, you can set aside 15-20% of your monthly net income to be spent any way you like. This seems intuitive at face value, but the example Rami uses with buying a $150 pair of cashmere sweatpants brings it home. It was inside his $500/month or whatever "guilt-free spending" budget, so it doesn't matter if it was a good deal or not. You just have to want it. He says his friends all commented how it was a dumb purchase and he could have gotten regular sweatpants for $20 instead, but that's missing the point.

I've taken the same approach, and this month some of my guilt-free spend went to a nice burr coffee grinder to replace my old blade one. But I'm not going to try to calculate the amortized joy per $ or long-term savings I'll get out of it, I just love brewing coffee, this makes it better, and I could afford it.


>Once you get the "big wins" down like you talked about, you can set aside 15-20% of your monthly net income to be spent any way you like.

In fact, I think no matter what your budget is like, it's important to have at least some "doesn't have to be justified" budget set aside, even if it's just $5 a month. If your monthly "doesn't have to be justified" budget is $5, and you decide to blow that $5 on an expensive coffee every month, that's perfectly OK and you shouldn't feel guilty.


I think there's a distinction to be made between "guilt-free" and "dumb/wasteful" spending. I can totally understand spending $150 on a pair of sweatpants if they "bring you joy" and are useful and will last you a decent amount of time. But just because you're willing and able to spend your money without guilt, doesn't mean any and every purchase is a good one. At the very least, spending a lot of money on a series of low quality items that you end up having to replace is a sustainability issue.

And that doesn't preclude you from getting a good deal either. That doesn't mean you should spend days shopping around for a few dollars off every purchase, but "voting with your wallet" is always worth doing.


No, I think the point is that you shouldn't make this distinction with respect to your budget. It's saying that if you take care of other wasteful spending, get your big wins, then plan for $500 of spending, then it doesn't matter if you make a dumb purchase. Don't feel guilty that you didn't get the best deal, don't feel guilty about the concept of a "good" or "bad" purchase, it just was within your budget, you wanted it and someone was selling it. You can't always do this comparison and avoiding dumb/wasteful decisions.

Yes, I am exaggerating a bit, but I think you missed the point.


I don't feel guilty at all. I feel fantastic not buying the sweatpants. I [quite specifically] don't want the joy from them. I just need clothing and I like to look sharp. A month ago I visited a second hand store. It was really well maintained, the experience was much like visiting a museum. They had a lot of second hand clothing all washed, ironed and nicely folded / on coat hangers and it was all nicely sorted by size.

I buy 8 pants for 3 euro each simply because they look fantastic on me. If it was a [new] clothing store I wouldn't buy 8 but I'd spend 100 euro on 5 of them and at most 50 for the other 3 if I ran into them there. I just didn't put myself in a [new] clothing store type of situation. I prefer to expose myself to (usually not very nice) second hand clothing at some interval. Sometimes they have something nice. Parts missing I buy new.

I see some wonderful old leather chairs too, the best one was sold regrettably. I also consider buying a really heavy suitcase massage table that I absolutely do not need but it looked really awesome, was in mint condition and was absurdly cheap. A fun day.

Clothing stores nowadays strike me as if everyone is going to a funeral. By comparison its a depressing experience but sometimes you have to. I wouldn't be able to sell those cloths at those prices, I'm paying for their ability to sell me things. (fool me)


If I have the time I do like to browse used merchandise, as well as find stuff on craigslist etc. that I know I can fix up or deal with rather than buy a new one.

Often it's cheaper given the bigger picture just to buy a new one, though. But, finding some old tech t-shirt in a thrift store is fun!

I definitely don't buy new vehicles.


You know, I had a technical job interview a few months ago where the interviewers told me I spent too much time on the little details and ignored the big picture. I didn't get what they meant until this comment, so thank you!

> It's easier to justify the cost of a 200+$ espresso maker if I'm really that big of a fan and already have a defined habbit.

That's exactly what I did: Started a small spreadsheet to work out how long it would take to pay off a $400 espresso maker. Turned out I would make my money back within a year.

Then there's the added bonus that I now own a decent espresso maker which has been great for making guests coffee/showing off. I also get to choose the beans and milk which means that if I wanted to, I could substantially lower the price of my self-made cup of coffee if I was ok with lower quality beans/milk (turns out that I am not ok with that, so no savings there :().


> It really doesn't matter how much you earn. Real wealth is in not spending it.

Have to add on that this is definitely not correct. Yes you must not simply inflate your spending to match your 100% of income if the latter increases, but while there's a limit to how much you can decrease outlays, income increase has no exact limit. Bob makes $60k, never buys coffee, brings lunch from home every day, stays focused on his personal finances, saves $5k/yr on lunch & coffee expenditures. Alice makes $60k, buys a $5 latte every single day, spends $12-15 per workday on lunch, focuses on job skills & networking, and negotiates a $10k raise upon switching jobs. Who comes out on top in this situation?

My point is not that budgeting or frugality isn't useful, but that focusing on changing outlays and considering income fixed or even irrelevant, as you suggest, is not a useful or accurate way to look at things.


I think you‘re making a good point.

I would add though, that 6510‘s statement...

> * it really doesn't matter how much you earn. Real wealth is in not spending it.*

didn’t remind me of extreme frugalism (in which case I would side with your argument) but with my encounters in the workplace: No matter how much most people increase their income, they also increase their spending. And some manage to par their spending increases with with their income increases.

Like many in tech, I‘ve made great income progress and during that I saw and continue to see colleagues struggling financially even though they‘re in the top income decile.


To me, suggesting that I save money by not buying coffee for fifty years is extreme frugalism.

12-15 is 1200-1500 cent. Lets say 1300.

10 cent coffee (12 euro/kg 30gr/liter) + 20-50 cent sandwich (5 cent slice or 15 cent bun, a 10 cent egg and/or 25 gr cheese 25 cent, 5 cent butter) is 30-60 cent. Lets say 40.

1300/40 = 32.5 while Alice only got a 17% raise. The extra 5k doesn't buy her anything. She will just favor the 15$ lunch which is 20% more expensive(!)

Coffee was just an example of course. Bob wont be able to save this much on everything while some things will be even cheaper. There are other perks like growing your own food and making your own stuff.

But the real kicker is perhaps that Alice could [naively] spend all of her savings on a big purchase, get fired and turn her life into hell on earth. If Bob does that he can be reasonably certain he will figure it out. His big purchase is also more likely something that can be converted back into cash.


Agreed, and that whole "oh just ignore purchases less than $10" is what causes people to go into debt without realizing it.

Buying $8 daily coffees, lottery tickets, in-app purchases for crates of Candy Crush tokens, and subscribing to all kinds of useless subscription-delivery services (razors, shirts, Japanese candy, etc) adds adds up even if you're on Silicon Valley salaries.


You are pretty much buying shots of endorphins. You get those anyway. You can get more of it for a short while but then sensitivity is dialed down and you have to buy candy crush crates forever. I really enjoy turning down the offers.

I think I phrased my comment poorly. I agree that a daily coffee is probably worth considering at ~$3x5x50 = $750 a year. (actually in my case I have multiple coffees throughout the day so if I were to purchase them it'd be more like $1500 or more). What I mean is the _occasional_ coffee is not worth bothering about.

I think any recurring payment is worth recording, but where you set the level is pretty personal


While I agree that recurring costs should be accounted for, I'm trying to get a bit of balance in my approach.

To put it in perspective, it's not out of the realm of possibility that I could switch jobs and make $11k extra this year. It's also not out of the realm of possibility that I have an injury that puts me out of work for the next 2 years. (Or, hypothetically, a global pandemic that reduces or increases my hours)

I deal with that level of uncertainty by only tracking the broad strokes.


> 0. Forget about tracking things down to the dollar, or even the tens of dollars. That level of precision is unnecessary. If a coffee here or there is going to break your budget, it's already broken and you need to go in to panic mode.

I'd suggest considering using a separate payment method for those things, and only those things, that you just think are going to be just a little expense here or there that doesn't need detailed tracking.

Track the total spent via that payment method every month on your budget. It's then easy to tell at a glance if you were right about not needing to track these things in detail or if you have missed some things that you should be tracking in detail.


My bank has this feature where the same card has two PIN codes. The PINs are coupled to different bank-accounts, the PIN determining which account will be charged. So groceries I pay with 111222, coffee-to-go with 333111... My bank does the rest. All easily analysable and exportable.

I've never heard of that being an option at any bank. Who are you with? Sounds really useful.

What do you do if PIN pads are disabled due to COVID concerns and customers are only permitted to make contactless payments?

Have you actually seen disabled PIN pads? I have seen places refusing cash (which I believe is illegal), but the PIN pads are easily wiped down between uses.

Federally, assuming you are speaking of the US, a business refusing to take cash for goods/services is not illegal, as you are not paying a debt:

https://www.federalreserve.gov/faqs/currency_12772.htm

Business owners should note that state and local laws can and do vary on this topic!

https://blogs.findlaw.com/free_enterprise/2019/08/is-it-lega...


Yes, in Poland I have seen a few shops where the clerk and the PIN pad are behind a sealed glass barrier and there is no way to hand the PIN pad over to the customer. The clerk holds the card reader up to one side of the glass, you hold your card up to the other side, and the contactless transaction manages to reach across the glass.

Also, refusing cash is perfectly legal -- and increasingly common -- in a number of countries.


> 0. Forget about tracking things down to the dollar, or even the tens of dollars. That level of precision is unnecessary. If a coffee here or there is going to break your budget, it's already broken and you need to go in to panic mode.

I use Homebank[1] which has pretty useful auto-assignment rules. I then have vague categories - think groceries, lunch & dining (e.g. buying lunch is more luxurious than buying lunch and dining is even more extravagant)

Every couple of weeks I import my statements and have a quick look at anything that wasn't auto-assigned - there's usually a couple of things and I add these, based on the merchant name or description, never to worry about again.

I figure this gives me the best of both worlds.

The only reason this small amount of work works for me is that I don't have to pay cash for much. When I do, it's unique enough I remember and categorise it, no biggy. I understand this wouldn't work for most though.

I wouldn't want to lose track of the small things, as they do add up! Keeping the categories loose (and not caring about the difference between coffee and a sandwich) makes it work.

"Look after the pennies and the pounds will look after themselves." as my grandma always says.

[1] http://homebank.free.fr/en/


When all the financial aggregators (Wealthfront, Personal Capital, Yodlee) fail me and I need to get a clear understanding of my finances, I always regress to something like this.

My way is as follows. Have three accounts: current, savings and retirement. The first two are cash, the third is something more long term. First work out the percentage of your income that you need to go into your retirement fund to maintain your current lifestyle when you retire. I plan to retire at 50. Your salary will get paid into your current account periodically. When it does, you check how much was still in your current account from last month and (hopefully) move the correct amount to your retirement fund. Whatever is left after that goes into your savings account. You can spend your savings on things you don't need like car, holiday etc. But never spend it all as you don't want to liquidate your retirement in an emergency. You'll know you always have enough in your current account for your essentials (bills, groceries). You never have to worry.

0. and 1. is exactly why I built myself a 'this-should-be-aspreadsheet' webapp to estimate my expenses to have a rough budget. I only update it once in a while and check if it's somewhat accurate. I'm quite happy with that approach.

Thanks for the ideas of 2-4!


>0. Forget about tracking things down to the dollar, or even the tens of dollars. That level of precision is unnecessary. If a coffee here or there is going to break your budget, it's already broken and you need to go in to panic mode.

A coffee is $5 give or take.

If I have one every day that's $1,825 a year. If I splurge and have two every other day that's $2,737. That's a lot of money.

The simplest way to budget is to just give yourself a set amount of cash every morning and keep spending it until you run out. You get immediate feedback because you can see how many banknotes you have left.

Funnily enough I think that's the main reason why there's a war on cash.


Yes a coffee every day is worth tracking, my emphasis was more on 'here or there'. I would say any ongoing payment is probably worth tracking unless it's truly trivial

> 0. Forget about tracking things down to the dollar, or even the tens of dollars. That level of precision is unnecessary. If a coffee here or there is going to break your budget, it's already broken and you need to go in to panic mode

I strongly disagree. Entering every penny, and tagging every transaction correctly, lets you see where your money is going very quickly. A coffee won't break my budget but now I can see that I'm spending $x/month at my local cafe, etc.


Also, for most of the vast middle-class and below, an inability to track your spending down to the dollar is itself a sign that your budget is broken. Most of us don't have so many transactions coming in and out that this should be difficult and it's a possible sign of dysfunction if you do.

Cutting down on the small stuff like has really helped us out over the long run.

Coffee is about 4.5 USD where I'm at, which is part of the reason.

The big expenses are still what matter though.



Thanks! It's much more sophisticated than anything I've tried

I've evolved it over time - I think budgeting, the csv import is key to get a rough handle on expenses, but I guess not every bank supports that.

> That level of precision is unnecessary.

It may be unnecessary if you are just trying to see how you spend your money, but may be necessary if you are running a business. YMMV.


some years back I started working on an app to track finances in that kind of way. No micro-management, just macro-management of budgets and categories. It would also forecast considering past data and future predictions and see where you would attain goals or go broke! :)

I should get back to it sometime


I like the idea, but I would be wary of it for this reason: the people who would like to use it are probably the most miserly members of /r/personalfinance. The kind who are likely to quibble about the $8/mo plan compared to the $9.50/mo plan. Basically the worst customers you can imagine.

That said, let me know if you do it!


Imagine simple government software that acts as a middle man and sends out automatic fines if the api is not up to spec.

I would like to see a complete log of every purchase made like my bank keeps only with much more detail, each bill broken down to well described products with pictures, serial numbers and manuals. As that involves sensitive data we would have to think of some way to wrap it.

I also want tax office to have real time access to a relevant sub set. One administration with every purchase in the country and ever hour worked.

Then do salaries and taxes by the second and split off tax payments right where the transaction happens.

Might as well aggregate everything for sale into one giant government web store.

If everything is made insanely convenient it doesn't matter what it costs. No more sloppy fuzzy business but everything by spec.

I wonder how many people want to start a business but are simply to terrified by the paperwork.


There is software provided by TPP (third party provider) that acts as a middle man between user and bank. User just "connect" all banks, and then TPP can retrieve the data using differen sources

> automatic fines if the api is not up to spec

Fines As A Service?


> Then do salaries and taxes by the second and split off tax payments right where the transaction happens.

ACH literally takes O(days) to move a few bytes of data from one bank account to another and the system simply stops working evenings and weekends, so this is a bit much :)

If / when BTC and LN become ubiquitous, you can probably achieve this without much effort.


Slow banks would still be a thing, they just cant (be allowed to) process these transactions.

Also, the bytes don't really have to flow from A to B. The payload is much to predicable. For 8 hours money flows into the account and flows out of the other account at a fixed rate. A daily or weekly validation would be enough. (with automatic fines for not updating the work schedule)


In Australia, the "consumer data right" is about giving fintechs (and probably AUSTRAC too) standardised access to banking data, but if you go and say "I'm a consumer and want to access my data", the banks are all "lol no": https://github.com/ConsumerDataStandardsAustralia/standards/...

Same in EU as far as I've investigated.

So the issue is that large banks (I feel like I can speak with a bit of authority as I work at one and know many colleagues who work at others) have no desire to give up user data, and I don't think this problem will be solvable without governments stepping in to force banks to comply. They're in a better position than more traditionally tech-centric companies in this regard because they fall under heavy regulation, and can do all kinds of legal hand-waving to show why their data must remain private.

There are a lot of great APIs that banks provide, but my personal opinion is that they're largely meant to distract from the fact that the vast majority of your data ISN'T accessible through an API. A lot of banks are building genuinely great tools for developers - thinking specifically of JPM's Quorum and Capital One's Cloud Custodian. But these aren't open banking tools.

Plaid and similar services are great, and the best we can currently do, but they have inherent shortcomings in that they face the same restrictions as any other developer trying to get information directly from a bank.

It's largely the same picture in healthcare. The government is trying to force healthcare companies to open up their environment, and healthcare companies are fighting tooth and nail to stop that. The CEO of EPIC Systems got the heads of many, many major hospitals to directly oppose a rule the HHS is trying to pass basically forcing health record companies to open up. For the time being EPIC has their "App Orchard" which... well, go visit apporchard.epic.com and you'll get a picture for how much they care about giving individuals the right to their health data and developers the right to build more systems on top of their own.


The EU had the right intentions, but made a big mistake in pushing this onto the banks. Which indeed results in each bank now having a "mandatory" shitty expenses section.

What they should have done instead, is standardize a secure export function of all your expenses, allowing open source, and vendors to provide statistics and utilities based on this format.


Especially when you are a customer at multiple banks.

Doubly especially when you're a developer that can handle a proper API themselves, and do a better job at it than all the startups that will pop up to sell you a budget management service, nothankyou.

All these years I wanted a widget that would display three numbers and a graph on my phone's home page. A total sum of money on all my non-savings accounts across all banks, the amount I already spent today, and a "burndown graph" for the month showing how much of this month's income I've already spent. I can write that widget myself, and I will do a better job than any of the startups - by virtue of not needing to include tracking, telemetry, not needing to make it a webview rendering React because $multiplatform, etc. But I can't do this, because the API endpoints needed don't exist unless you're a company with a large enough budget to afford it.


> because the API endpoints needed don't exist unless you're a company with a large enough budget to afford it.

I’m pretty sure Plaid’s free tier is more than enough for the use case you suggest.


Took a look, it looks promising. With two caveats. One:

  Plaid supports institutions in the following countries:

    Canada ( 'CA' )
    France ( 'FR' )
    Ireland ( 'IE' )
    Netherlands ( 'NL' )
    Spain ( 'ES' )
    United Kingdom ( 'GB' )
    United States ( 'US' )
My country (Poland) is unfortunately not on the list.

Two, there's some mention that "Some European institutions use an OAuth authentication flow, ...". I can't find any info on how long the OAuth tokens are valid, but I suspect they'll be short-lived enough to destroy any possibility of having a script placed in cron.


What personal finance apps have you tried with budgeting? There are a few on the market, the most popular being YNAB and Mint. My personal opinion is that Mint tries to do too much while YNAB forces you into a rigid philosophy.

I made Lunch Money (https://lunchmoney.app) as a potential happy medium between the two. If you end up trying it out, feel free to let me know what you think!


Jen, thank you so much for LunchMoney. It feels like you really love developing it, and it shows.

I've first heard of it from the IndieHackers podcast featuring you [1] and remember myself signing up and thinking "wow, this is exactly how I would design and build something like that".

Everything is polished, thought through, and the pace with which you push out new features is crazy.

Thank you!

[1] https://www.indiehackers.com/podcast/150-jen-yip-of-lunch-mo...


That's so awesome to hear, thanks for sharing!

I’ve been meaning to get a sense of my day-to-day finances for a while now and I have to say that your site is great. Concise, answers all the obvious questions, and directly compares to the two most popular solutions on the market. Amazing work!

Q: Have you ever considered alternative payment schemes, e.g., student pricing, loyalty pricing (pay $X first year and then $Y for all subsequent years, Y < X)?


Thanks!

We raise our prices every few months so you will be grandfathered into the pricing plan at sign up. Aside from that and occasional coupon codes for first year subscriptions, we don't have any other payment schemes (yet!).


Every bank I've used lets you download your transactions as a csv or qfx, which is then trivial to import onto gnucash (I still need to spend ~20m each month carefully sorting things in categories).

Do they let you download it programmatically? Because if not, it's next to worthless for any kind of frequent use.

Once a week I do this. It's far from worthless. It's how I do my budget. Ever dollar earned goes into a spending category. I spend out of the categories. It works amazingly well. Before I had a mortgage I just had 11 bank accounts one for each category. That paired with a stack of automatic payments to allocate each pay check and had pretty well automated my budget.

Well, worthless is a strong word, it's better than nothing as it saves you typing. But having programmatic access to that data - even being able to skip the auth - would enable series of different usecases, like keeping the budget always in sync with your spending, or being able to preview your last activity conveniently, or trigger further actions on the basis of that, or just make a banking frontend that doesn't suck.

(Case in point: every month I have to send a bunch of PDFs with transaction details to my accountant; every month I waste almost an hour, a really frustrating hour, on fighting my bank's broken React SPA, and then manually renaming the PDFs I've managed to tear from the mouth of that beast. An hour on doing things that would take 30 seconds with a shell script if I could only trigger a list of transactions and a PDF summary request via an API. An hour on manually doing the only thing that's preventing me from completely automating away my regular interactions with the accountant.)


You can always try selenium to download it programmatically if they don't let you. Or make a script to download it.

There are tons of third-party doing this for you, and I'll just cite one because it makes sense here: https://www.budgea.com/. It's much like any other, except they're a commercial entity that was born out of an open source project called weboob (https://weboob.org/). That project aims at getting information out of website without having to use websites' javascript or restrictive APIs; it's still browsing the web, but not with a browser.

weboob has many capabilities, such as "listing messages" or "listening to music" and an important one is "getting financial information out of an account". Each capability is in the middle of 2 things:

- Applications, which want to implement a given capability; a basic one is boobank (https://weboob.org/applications/boobank) but you can write anything

- Modules, listed in the same page; a module is a website

The weboob project is completely open source and written in Python. If you use the boobank application you can use it to download and store all your financial transactions, and automate it as needed. As the example on the homepage shows, you can pipe it into munin (or any other graphing tool) and see the evolution in your accounts automatically.


Don't know about GP, but I don't want to touch any third party. Beyond data concerns, I haven't seen one that would provide me with necessary amount of control (which amounts to being able to run SELECTs against my finacial data and graph them how they like).

Thanks for the link to weboob project, I haven't seen that one. boobank looks much more like something I want to have, though I can't find anything on how it works - how are the banking modules implemented? In particular, are they accessing an API, or just scrapping the bank's page? The reason myself and others are pushing for consumer-open API access is because, while scrapping is something a competent programmer can do (+/- jumping through the increasingly arcane authorization hoops), it's technically against ToS, and I'm personally not willing to risk my bank thinking I'm trying to "hack" them.


I only mentioned the third party to show it can be done with the project that is behind. I do agree with you on the reluctance to depend on third parties for things like that.

Weboob relies entirely on web scraping: like I said, it's a form of browsing the site, just not with the usual browser. I do agree that services should provide APIs, but webood is targeted at websites won't/don't want to do it.


Sticking to a budget is an emotional problem, not a mathematical one. Helping solve emotional problems is extremely difficult.

Yep, emotional solutions work better for many. An example:

1) Pay rent and all bills on time, fully. This is sacred. It is called the Golden Rule for a reason.

2) After rent and bills, take the rest out in cash.

a) Split the cash into the number of weeks it needs to cover.

b) Split the cash for each week into two equal parts. Put one half in an envelope labeled "Monday" and the other half in one labeled "Friday".

c) Hide each week's envelope in a different part of your room or house.

3) Put the first week's "Monday" money in your pocket. Spend it until it is gone or not. You decide. If you overspend, hopefully it was on a Wednesday because you must make do. Eat oatmeal, eat rice, eat spinach. Get through it.

4) On "Friday" put the other half of the week's budget in your pocket and spend it before you go to bed on Sunday.

5) Repeat


I would love to do this, but I live in a country where cash isn't a thing. It's explicitly not accepted in most places.

How can I spend the same effect if I only have a debit card? I am wondering if two accounts or a currency card is a good idea. But it's just not the same as having a physical pile of cash that you can judge how fast it's going down and how much is left


Every purchase can involve a receipt. Put the value of the receipt onto a spreadsheet after each purchase. Discard the receipt. Get into a habit of doing it.

Also, spend on a credit card instead of debit. The credit card takes the fall in case of fraud or scam but this is not the case with debit cards and you'll be out of pocket.

Alternatively, spend each item on different credit cards, eg. fuel on one, food on another, partying/treats on another. You will be able to quickly see how much you're spending using their apps, or the realisation of how often you're getting one particular card out of your wallet.


Anything that creates friction to over-spending is a benefit. It won't stop you outright, but over time it will tend to get the job done. Multiple accounts is a great way of doing this. I have several accounts. Some examples...

I have a 'bills' account. This has all my semi-fixed bills. Some bills like electricity fluctuate, but it's generally always in the same ballpark. Every paycheck the same amount of money goes into this account. It's enough to cover the bills plus a small bit to account for fluctuations. I also keep a "buffer" amount in this account. If we imagine that the buffer is $500. Then I don't worry until the balance drops below $500. Otherwise, everything going on in this account is "automatic."

I have an account dedicated to just my car. My car is paid for, and every month I put in a "car payment" into that account. Any repairs, new tires, etc. come from that account. This changes a flat tire from an "emergency" into a "minor inconvenience." When it comes time to get a new car, I usually have enough money in there to pay for the next car in full after trade-in.

I have an emergency/savings account. Every paycheck $55 goes into this account. It covers medical copays, house repairs, etc. that exceed my ability to pay out of my "day to day" budget. So a regular doctor visit gets paid for out of my regular money, but a hospital visit with a big copay gets paid for out of the emergency fund.

One part of my budget is, "Burn money." This is money I have budgeted for random shit that I just feel like getting. This is easily accessible, usually in cash, but could easily be a debit or cash card. When that runs out, I stop spending.

This kind of system isn't for everyone. And of course I could technically transfer money from any account to another in seconds on my phone. But just that tiny bit of friction between me and the bad decision GREATLY improves my behavior. I'm still not perfect, but I'm meeting my savings goals, and am quite happy with the results. Whatever system you devise for yourself, remember that friction between you and bad things is the key. I've heard of people going so far as to freeze their credit card in a glass of ice in the freezer. In order to be able to use it, they have to go through the annoying process of thawing out this big hunk of ice. It really gives them time to consider whether it's really worth spending that money/taking on that debt.

Also, think in terms of systems, not goals. A goal is wanting to save money. A system is a series of processes or behaviors that lead to a result. If you're a runner, your goal might be to run a marathon. Your system is the training schedule you complete every week. Systems are better than goals. There's lots of literature on systems vs goals you can read up on.


> I just want a bank account and to have that bank record my spending and let me download it, securely, and automatically.

My (US based) bank and both my credit cards do this just fine and I download them to gnucash; it does this with a third-party library AqBanking, which includes both a GUI configuration program and a command-line tool for downloading to a CSV, which you can the process with whatever you like.


I have my financial institutions send me an email every time there is a transaction. Those emails are then scraped and forwarded on to a spreadsheet.

It works Ok, but I hit my zapier limit sometimes.

I'm currently working on setting up my personal server to receive emails from my account and parse them into a table locally, which I can then connect into Google sheets with an API key.


It never occurred to me that this might be an option. Great idea. I wonder if credit cards have this too...

I've been downloading monthly statements manually and feeding them into my data woodchopper, but email sounds like a good alternative (or maybe complimentary?).


I have a similar pipeline (bank and credit cards included) although I run my own SMTP server to capture the transactions as they're forwarded from my main email account. It's a pain to setup the first time but not hard to maintain if you lock it down.

It started out fairly basic (just CSV files dumped somewhere monthly) but the more history is there the more I find to do with it. I recently rewrote the whole thing and added auto-reconcile support, so it can tell if my record in Ledger is wrong and point out the exact discrepancies. I have a tendency to be lazy about recording things so making the machine check everything is nice.

It sucks that there aren't any good APIs for this sort of thing. But until that happens I'm stuck running Postfix and scraping HTML out of mbox files.


Well, my swiss banks both provide a download in this format:

  CAMT.053: Bank to customer account statement. Detailed and structured payment data.
  https://en.wikipedia.org/wiki/ISO_20022
But quite what motivated them to move from their proprietary .csv they used to have I'm not sure.

I feel this, I ended up writing a python script with a selenium browser to scrape the data off of my banks website so I could automatically insert it into my firefly-iii instance. Originally I had it going into a complicated google sheets spreadsheet. Only breaks three times a year for the last 7 years.

I agree totally. The worst part is loyalty card companies have an easier time tracking my spending than I do.

> I just want a bank account and to have that bank record my spending and let me download it, securely, and automatically.

I don't think this solves the problem, unless you use incredibly broad categories for budgeting such that you never want to split a single transaction over two categories.


This reminds me of that Upton Sinclair quote: 'It is difficult to get a man to understand something when his salary depends upon his not understanding it.'

I think banks benefit from a certain amount of sloppiness. Get hit by a finance charge here, accumulating unnecessary interest on a credit card there? Who cares! Let the bank handle it, don't worry, banking should be convenient...

So despite endless paeans to customer service and 'community' and whatever horns the banks are tooting these days, seeing how you spend your money simply remains difficult.

By design.

Which is why the fix is not coming, and never will be coming, unless you implement it yourself.

Because it is difficult to get a bank to build a tool when the bank's profits are improved by them not building it.


You're overestimating banks abilities: https://en.wikipedia.org/wiki/Hanlon%27s_razor

I don't think it applies. Your bank's website and app are two best places they can use to upsell you their financial products. Exposing the data in a sane way would cut directly into their profits.

Can't you scrape / download a bank statement? Or if you use a credit card scrape the card pdf statement.

We've pretty much given up. Waiting for N26 or another neobank to support CHF deposits (not likely going to happen though).

Until then we've been using a mix of Excel and YNAB.


Wouldn't it be nice if they provided all of that and more with a REST API?

This is what's confusing me about this chain of comments. All the big banks i'm aware of have APIs (Wells, Capital One, etc.). Most of the "neobanks" do as well (Monzo, Mercury, etc.)

If that's not enough, you can just use Plaid. Am I missing something here?


Generally speaking, bank APIs are for use by businesses that want to be able to pull bank customer data. There are integration hoops and so forth. They are not for end user use.

Plaid has, or used to have, a mode where in preprod you could give it your credentials to a limited number of organizations and then pull in your data. Not sure that survived the Visa acquisition, but even if it did- personally implementing a Plaid integration gave me the willies. Handing over creds was in clear violation of bank terms of service. Plaid seemed to be playing fast and loose from a security perspective (IMO) and retained the right to keep your data even if you removed credentials. Was not comfortable.

Having implemented scrapers to pull my data- that option also painful.

OP is not wrong.


> Generally speaking, bank APIs are for use by businesses that want to be able to pull bank customer data.

Generally speaking, yes, presumably because API access to checking and savings accounts is only applicable to businesses 99% of the time.

Most consumers, even programmers, don’t have a real need for API access to their accounts that isn’t already covered by simple CSVs or Plaid.


It's not about the format, it's about the access. I'd be fine with a CSV of my bank transactions, even the completely broken pseudo-CSV that my bank outputs. What I need is the ability to pull that CSV with an API call automatically, instead of having to log in to the bank (which takes almost a minute and involves retyping numbers from a mobile device), and navigate to the right place to find the CSV download (which takes another minute).

Basically, the bank UX sucks for my needs - and I'm guessing, for most people's needs[0]. Cynic in me says that the reason I can't get an API access is because somebody then would make an interface that doesn't suck, and the banks would lose the best place they can upsell people with financial products.

--

[0] - There's a reason why "preview your balance and last transaction" feature shows up in mobile banking apps these days.


The other thing you need is a transaction I'd. Transaction amounts can change over time. I got caught by this when I tried to build my own tracking tools. Credit card transactions in foreign currencies commonly change over time. My balances never added up and I couldn't figure out why. Turns out most banks support ofx. That has IDs so you can track the changes.

if only there were a currency that existed completely transparently on a public ledger that can be integrated into any finance tracking application without asking a company for API keys or scraping wouldn't it be crazy if someone made something like that money without permissions

Plus it’s really easy to track your finances when you don’t have any transactions.

If you just want to know what businesses you tend to spend money on, many credit cards in the US do this. E.g. Chase has pie charts showing dining vs travel vs utilities, etc.

If you want more fine grained data, you can download statements for the month or year to date, etc

If you want to see your net worth across every bank/brokerage over time you can use an app like weslthfront or personal capital


> Chase has pie charts showing dining vs travel vs utilities, etc.

Bank software almost always miscategorizes something.

My bank categorizes my purchases from the liquor store as 'home improvement'. The house certainly looks better when I'm drunk, but that's probably not what they had in mind.


Whereas what I would want is to not use an app, not log in onto the site to download statements, just use an API endpoint to get a list of all the transactions since last time I called it, dump it into SQLite database, and run SQL queries against it. In my own software. That fetches the statements several times a day, or - better - updates whenever a new transaction is recorded by the bank.

Tracking your own finances independent of any other party is very much not a solved problem and is more a matter of trust than of technicalities. This is your finances were talking about here.

As to financial discipline no amount of tooling is going to help you out with that. Tools can help you you what you already want to do but they can't make you want to do something that you don't want.


I've used GnuCash for years before switching to beancount (https://bitbucket.org/blais/beancount/ with smart_importer: https://github.com/beancount/smart_importer) and fava (https://github.com/beancount/fava/). Much easier to work on your journals (ledger, trades, prices...) since they are just text files. Really great if you're using the beancount package for Sublime: https://packagecontrol.io/packages/Beancount.

More importantly, the importers (for all my banks and financial services) let me import and reconcile all transactions, but also archive all documents (including PDF, text files, etc) in one, well organized directory: each file is saved into a folder that corresponds to my account structure such as Asset:Current:Cash, Liability:Mortgage, Income:Salary, Expenses:Health:Dentist. It's great to rely on fava (example: https://fava.pythonanywhere.com/example-beancount-file/incom...) to check your accounting (with all files listed in the journal by date, with tags and links and other neat features) and still be able to browse documents in your file browser.


Wow, your setup sounds very similar to what I've converged on. Except I wrote a fairly substantial pipeline that preprocesses the data before giving it to beancount and Fava.

Maybe I missed something, but it seemed like beancount wants everything to live in One Giant Journal file. I really wanted a pipeline where each bank statement PDF would output one file with a corresponding list of transactions (this stage can run completely in parallel and I use "ninja" to make it very fast).

Then another process can run over these files looking for matches (+$X, -$X), and spit out "transaction groups", where each transaction group is a set of transaction ids that sum to zero. And then a different interactive tool lets you categorize transactions and spits out transaction groups with embedded "expense" transactions. It's all non-destructive; each tool only adds data, and nothing ever modifies existing files. Then a final step can combine all these files and spit out a beancount file for Fava.

How does this compare with the way beancount's importer does it? How does its importer handle transfers and categorization? Is it destructive or non-destructive?


You're parsing PDF? I'd imagine most places allow some sort of data export like csv or something? That's how I get the data out of Chase and BofA.

Yes, in my experience CSV/XML/etc export is spotty. Some institutions don't have it at all, and even when they do the time range can be limited or hard to time-window reliably.

For example, I can't get CSV about my pay stub and all the places money flows (taxes, insurance, etc). So I use PDF as the best way to get all the data.

Parsing PDF is a huge PITA, since PDF is really designed only for layout and not to encode semantic document structure. But if you want the greatest amount of visibility, nothing is as authoritative as the actual statements.


Yeah, I guess I don't really look at paystubs often and my banks support good csv export for like 2+ years, so I'll always have it when I need when I refresh those sheets. I do year-to-date in those sheets to make them not huge.

Regarding taxes, I do a tax year calculation using my W2's and returns to compute an effective tax rate and figure out ways I can improve my situation re taxes -- but my budgeting basically only starts once the net money hits a bank account which has worked pretty well.


There are a few problems with exporting data... here's what comes to my mind at the moment:

- It's an additional step and unnecessary when you're already downloading PDF statements, which you probably should be doing regardless

- Data is often unavailable for export after a few months or a year or two (depending on the bank), far earlier than PDFs

- If you have PDF scans (especially from earlier days) then you need to parse the OCR anyway

- If you're using official APIs (instead of writing a scraper or or downloading by hand) then you may need to pay extra


To each their own, csv for me has been the easiest thing moving forward every month or three.

I did do a historical net worth calculation and the only data I had going back far enough was PDFs, so through a mix of bash scripts and pdftotext, I was able to get a number for each month back about 10 years. But I ended up just putting that monthly balance for each account in a google sheet so I could sum and plot it there. Now I just stick the month-end balance for each account in a sheet to keep this updated.


> beancount wants everything to live in One Giant Journal file

Actually, beancount supports include directive. See includes section [1] of the language syntax document

[1]: https://docs.google.com/document/d/1wAMVrKIA2qtRGmoVDSUBJGmY...


Thanks for the reference. But a single transaction can span multiple financial institutions. Say you pay off a credit card. One half of the transaction comes from the credit card statement, the other half comes from your bank. The two halves sum to zero.

My understanding is that the whole transaction has to live in one file with Beancount. This doesn't seem amenable to having each bank statement generate a single Beancount output file.

But I could be wrong. I don't know how Beancount's importer works.


I use beancount, and a somewhat custom importer and categorizer. (happy to expand on those but this comment is about the multi-transaction).

I have the categorizer send such transactions to a temporary "limbo account". So I have two transactions:

  # This TX is imported from checking acct statement:
  2020-05-15 * "ACH Payment BankA credit card"
      Assets:BankA:Checking  -500
      Equity:Limbo:CreditCardPayments

  # This TX is imported from credit card statement:
  2020-05-16 * "Payment applied THANK YOU"
      Liabilities:BankB:CreditCard  500
      Equity:Limbo:CreditCardPayments
In both cases the second posting is added by the automatic categorizer based on the description.

After doing a bout of imports, I look at the Limbo account, which should always sum to zero. Sometimes the two TXs don't appear on the same day, so occasionally there's a temporary balance there but that's fine.

I use the same to match up my direct deposits (one end from paystubs import, other from checking account), wire transfers between banks/brokerage, etc. I tend to put them in different subaccounts of "Equity:Limbo" so that I can more easily spot any discrepancies.

Edit: Should've first read the previous reply that says the same thing!


If you really want to do that, there is a beancount plugin called ZeroSum that does it

https://github.com/redstreet/beancount_reds_plugins/tree/mas...


Conceptually this is one transaction; from a book keeping (and beancount) perspective it is, or can be, two.

Often (in the US) the dates are different- debit from the bank on day X, post to credit card on day X + 1 or X + 2. For my stuff I want the dates in beancount to reflect the dates on the respective statements, so that the balances, which are date-specific, match.

So I capture these as two transactions. I do it as- debit the bank, credit the "ether", then debit the "ether" credit the credit card.

Beancount just wants the postings within a literal transaction to sum to zero. If this conceptual transaction is split into two literal transactions, with some fictional bridge account in between, they can live in different beancount files.


Can I ask how you parse PDFs? I'm curious both in terms of reading the PDF data (Python library?) and parsing it (regex?)... and do you have to deal with OCR as well?

I use "pdftotext -layout" and then parse that. Here is some more info from people who have tried this approach:

https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...


Thanks!

"each file is saved into a folder that corresponds to my account structure such as Asset:Current:Cash, Liability:Mortgage, Income:Salary, Expenses:Health:Dentist"

Beancount user here, even if you don't bother with any finance tracking, organizing financial documents following the folder structure is useful - see "Filing Dcouments" in https://docs.google.com/document/d/1e4Vz3wZB_8-ZcAwIFde8X5Cj...

Shameless promos:

- People are starting to make Fava extensions for things like envelope budgeting, portfolio tracking, etc. Usually these are announced on the mailing list: https://groups.google.com/forum/#!forum/beancount

- The sublime plugin is great but I have a really useful improvement to search by org-mode headlines that never seemed to get merged - see https://github.com/norseghost/sublime-beancount/pull/14


> People are starting to make Fava extensions for things like envelope budgeting

I've been hearing about making extensions for envelope budgeting for years, with little progress. I haven't checked in the last 2 years though - any progress on this?

To be frank, it was fairly annoying that the author kept declaring it as "not too hard" and yet no one came up with one.



Thanks. Too soon to see if it will be workable. I'll stick to Ledger until this becomes mature.

Thanks for this. Looks compelling. Is there a simple installation guide, I find it hard to figure out how to get going.

As a longtime beancount user- it should be easy to install- there are packages for most OSes, they mostly work, the maintainer, Martin Blais is amazing and indefatigable, and the community is active and friendly and technical.

But the "how to get going" part is where I find the real difficulty lies.

There is a conceptual friction in double-entry accounting, which beancount enforces. If you do not have prior exposure to it, even if you are financially and mathematically inclined- grokking double entry can be a life-changing practice. It is the Iyengar Yoga to the 7 minute workout that is just tracking transactions as per GnuCash or Quicken or whatever.

One has to have the appetite to consume a worldview. As someone living in that world, FWIW, I highly recommend it. I would not undersell the conceptual work required. It is not for everyone.

But if the approach speaks to you, reach out on the mailing list and people will help with the mechanics.

Cheers.


A thousand times yes! the abstraction of double-entry accounting is absolutely central to understanding the modern economy and why (large) economic agents behave the way they do. It’s also essential for understanding fiat money, which is more or less just numbers in a double-entry ledger.

The documentation says to type "pip install beancount". That doesn't seem hard, so I'm guessing you're having some other problem? If you post on the mailing list, people will help you.

The installation is really just a python library, but if you want to keep everything contained you can put them in a Dockerfile

I made this VS Code extension to help with manually entering Beancount transactions: https://github.com/aostiles/Beanquick

I'm also a happy beancount user. It's also pretty simple to extend, if not too documented.

I was able to write a plugin to get data from the Milan stock exchange in a few hours, which was very nice. The vim plugin is also pretty ok.


Been an avid beancount'er for about two years now too!

I've never used the import features, the manual inputting of transactions into a text file doesn't take too long.


This sounds amazing. It would be great if one day you could publish a detailed how-to / tutorial.

How do you parse the pdfs?

"Simple" is not an adjective I'd associate with GnuCash. Maybe it is if you're coming from a background in accounting or have a penchant for numbers. It's pretty complicated, and I wouldn't recommend it to someone who just wanted to keep an eye on their budget. A simple spreadsheet will suffice. Or any number of more user friendly tools.

That being said, GnuCash is a powerful double entry book keeping system which can almost certainly handle all your bookkeeping needs. But simple, it is not.


I also wasn't super sure about sticking "simple" in the title, but while writing this article and going through the GnuCash setup steps, I actually started to feel like it was appropriate.

As another commenter mentioned, I think that the "complicated" part of using GnuCash is understanding double-entry bookkeeping, which is why I devoted so much time in the article trying to explain it in concrete terms. My intention here isn't necessarily to steer people to GnuCash itself (I'm learning about a lot of alternatives from these comments), but to simplify the core underlying concepts. Not sure if I achieved that, but I tried!


Given the typical audience of HN.. if you already know how to program you already know how to use something that's way more complicated than GnuCash.

GnuCash is very simple if you already know double-entry accounting... and learning double-entry accounting would probably be the work of a weekend or less for anyone who knows how to program. Not hard.


I've been a longtime GnuCash user, and really it's as simple as you want it to be. You can, for example simulate the Spreadsheet approach with 3 accounts: Checking, and two hidden accounts: Income and Expenses. Make Checking the default tab, hide a few columns you're basically done. And if you decide you need a more complicated model, all those extra features are there and available on your schedule.

Probably the biggest hurdle IMO is the single user nature. Even the SQL backend requires a global lock.


I agree with it being simple. I used it when I needed to learn about accounting for my day job. I used it for 2 or 3 months for my personal expenses. I could not continue because I got lazy. But I learned a lot about accounting from using it - certainly helped me with my day job.

Double entry booking is complicated but it pays off to learn if also for personal finance because errors are much less likely than with a spreadheet.

This is commonly stated, but I found it relatively straightforward once I saw the extended accounting equation (https://en.wikipedia.org/wiki/Accounting_equation) and knew every entry needed a corresponding entry to make the equation balance.

Assets = Liabilities + Equity + (Income - Expenses)

For some reason the (Income - Expenses) part gets left off in many introductory explanations of the accounting equation. I think that leads to a lot of confusion about how to treat Income and Expense accounts in programs like GnuCash for newcomers to double entry accounting.


I agree this is important to understanding double-entry accounting. Keep in mind that the Income - Expenses gets elided because the Retained Earnings go towards Equity

I wish somebody did an explainer of all this, not just for dummies, but for us European dummies. I've approached this topic multiple times, and I always get confused by all these Liquidities, Equities, Accounts Payables, Accounts Receivables, Commodities, and how come any article trying to explain any of that starts talking about stock trading.

The first time I tried to use GnuCash was many years ago. I began by opening up the documentation and reading the overview, which, it turned out, began with a fairly lengthy history of the practice of double-book accounting. I later found that this choice, which isn't necessarily a negative, did a fair job of representing GnuCash as a whole.

It is not that hard, I followed a Youtube tutorial and about a week later things clicked in place for me. I am glad I put the effort because I feel that I've gained a skill that will change my approach to money for the rest of my life.

I’ve been using Gnucash for my personal finances for a several years now, and really love it - it’s not dead simple, and requires an understanding of double entry bookkeeping, but where it really shines is flexibility. A couple of examples are as follows:

1. Expenses in the future - If I book a bunch of plane tickets for later in the year today, I can book those expenses in those months in which I’m traveling (pre-paid asset until then) there-by seeing when I’m incurring those expenses vs. the cash flow of those expenses.

2. Corporate expenses - I can book expenses that I will be re-imbursed for as receivables and not have them run through my “income statement” (nothing like putting some business class plane tickets on your personal card to make things look weird)

3. Loans - whether it’s an auto loan on your car or simply a loan to a friend it’s great to be able to see your entire balance sheet (and remember that some items are outstanding!)

4.variable granularity - decide how detailed you want to get for some accounts you may decide you don’t need that much detail (because you track it some other way - like your 401k) and you can just track your total balance at month end (+/- deposits)

5. Track illiquid investments in your net worth (not saying the marks are right, but at least you have a placeholder value for them on your balance sheet (your home - private company stock etc.)

6. Privacy - it’s your data - no sharing it with anyone else


Future-dating transactions allows me to run my household finances like a comptroller. Cash is never idle in my bank accounts!

These are great examples, thank you for putting this list together. I use mint to track transactions + a running spreadsheet of account balances. These are exactly all of my gripes with my current system.

My partner and I have been tracking all our spending for the last five years with hledger (ledger reimplemented in haskell) and some custom import and management scripts inspired by "Full-fledged hledger" [1]. More recently we added Plaid [2] for auto-importing from financial accounts. I love having a plain-text history and being able to ask complex queries.

One unexpectedly-sweet benefit is that your spending is a high-granularity record of where you have been and what you have been doing, encoding some signals you might not have thought to write in a diary. Things like "that was when we were saving for our down payment" or "I was going to coffee shops every day trying to finish my dissertation" or "that was when we had a pandemic." I enjoy looking back through our ledger the same way I enjoy going way back in my gmail history.

[1] https://github.com/adept/full-fledged-hledger [2] https://plaid.com/


+1 for full-fledged hledger! I just got it set up last week, and putting together the small scripts for parsing all of the CSVs was (to me) a fun programming exercise that reaped huge visibility into how I spend my money :)

It's hugely valuable to have all of your financial data in one, human-readable place. Not only to you, but to whomever might be executing your will ;)


Imagining my will as a poorly-documented API makes me feel present stress on behalf of my unborn descendants :)

also highly recommend its tui https://hledger.org/hledger-ui.html

I've been playing around with ledger[1] recently. On one level, it is the simplest of tools requiring only a command line and a text editor. But once you wade into the documentation[2] you will begin to see it quite differently. Its capabilities are staggering...

[1] https://www.ledger-cli.org/index.html

[2] https://www.ledger-cli.org/3.0/doc/ledger3.html


I strongly recommend people give ledger a try, especially if you're a UNIX-nerd who gets a lot of use out of sed/grep/awk.

It's totally changed the way I think about finance, for my person and for businesses. It also means I can have very informed conversations with accountants! :)

Double-entry accounting as a domain is super interesting, and Ledger's intersection of that domain with UNIX hackery is a joy to experience.


I looked in to switching from GnuCash to Ledger about 5 years ago, and found that it would have been too painful to use for manually inputting the thousands of transactions I had because it just didn't have the nice auto-complete and GUI nicities that GnuCash had.

I'm a hardcore command-line and keyboard-only power user, so I would have absolutely loved to have made Ledger work for me rather than use the mouse-heavy GnuCash interface, but couldn't, and went back to GnuCash with my tail between my legs.

I'd still rather use it, so maybe I'll give it another try some day.


I've been using ledger for a year next month.

As you imagine, the fact that it's text-only has been both a burden and a blessing.

Burdens:

- inserting transactions takes a long time, when you're starting out. will always take a long time if you never "automate"

- it's easy to make little mistakes and not catch it until the next time you compile or make a report.

blessings:

- git, sed, grep, awk all "work as advertised"

- you can automate the boring things, as they get more boring, and you can learn a lot along the way

at this stage, I have a combination of awk and python scripts (maybe 500 lines total, but a lot of it is regex) that convert my financial institutions' transaction export csvs into ledger transactions. I pretty much copy paste that into specific ledger files. The next step that I'm currently automating takes a concatenated `git diff` and interactively categorizes expenses/splits/assigns to the correct ledger file.

I also blew a ton of time (maybe 40 hours) on scraping those csvs from bank websites, workday, and fidelity (basically, a puppeteer script for logging in, downloading all the files available). Getting past google auth for workday was hard. But learning these things has been fun.

With all this automation, I spend maybe 20 minutes every weekend importing things over from the banks. I'd do it every month, but I'm still a control freak with it.

Doing this has been super fun! And it also has yielded a lot of insight into my finances. Above all, it gives me a feeling of "control" over my finances like no other. Itemizing deductions takes an hour, just as a throwaway example.


> I looked in to switching from GnuCash to Ledger about 5 years ago, and found that it would have been too painful to use for manually inputting the thousands of transactions I had because it just didn't have the nice auto-complete and GUI nicities that GnuCash had.

Similar problem, except I use KMyMoney. I wrote a program to convert my KMY file to Ledger format. So I still enter transactions in KMyMoney but have the power of Ledger as well.


+1 for ledger.

I switched from GnuCash to ledger about 8 years ago and never looked back.

I have a script that pulls my bank account using aqbanking [1] and icsv2ledger.py [2]. The latter can match transactions to templates and set transaction accounts and payees automatically. It also supports autocompletion of account names when a transaction is not matched by a template.

For cash entries, I use ledger-mode in Emacs. (I also use Org mode, so I spent a lot of time in Emacs anyway.) ledger-mode also supports autocompletion.

I only use the command line for reporting and have aliases for the most common reports. These mostly revolve about showing my current budget.

[1] https://wiki.gnucash.org/wiki/AqBanking [2] https://github.com/quentinsf/icsv2ledger

Fun fact: The second program I wrote was a database in Turbo Pascal to keep track of my loose change.

Not so fun fact: I lost my GnuCash files after I made the switch. Ten years of accounting gone. :(


This is exactly what made me switch away from ledger. I thought that a command-line/plaintext only workflow would be great, because that's what I usually prefer. However, a GUI + autocomplete just ended up being way more useable for me in this case.

Assuming GnuCash can do some sort of plain text record dump, I would probably try to cobble something together to convert that to an acceptable ledger format. Maybe with AWK or something similar...

Beancount as well, very similar in philosophy and staggering in capability, slightly different flavor and rendition compared to ledger.

http://furius.ca/beancount/


The plaintext accounting ecosystem as a whole is pretty great. Only thing however is that literally none of them comply with the XDG Base Directory Spec. So to have hledger with a web-ui and auto-importing for example means like 3-4 dotfiles littering the home directory.

hledger author here, I can't think what all those would be - would appreciate your help at https://github.com/simonmichael/hledger/issues/1081 if you have the time.

Is this a critical issue for you? How often do you `ls -a` in your homedir?

It's an annoyance. For example, I like to put everything in .config under version control. It's a much bigger pain to do it in the home directory.

It's kinda fun to idly scroll through gnu's list of free software

https://directory.fsf.org/wiki/GNU

As far as I can tell, everything there was made simply because somebody out there thought it's important for a Free version of said software to exist. That's pretty cool. There's gnucash of course, but also a gnutrition calorie/macro/micro tracker, a flight simulator, some sort of comic saving software... the list goes on. Fun!


There's even GNU Social, a decentralized version of twitter which is either dead or nearly dead.

That list also mentions GNU Health and GNU Med for hospitals. I'm curious as to whether they're actually used, and if so, who uses them.


I tried GnuCash and generally liked it. However, it was a little more complicated than I wanted. In addition, I wanted to be able to access via the web, when I was away from my computer. (cause at the time, I thought it was only available locally)

I also wanted my life partner (my lovely wife) to participate. This was going to be the hard part. Behavior modification. So I built a very simple "tracker".(php/codeigniter/mysql) Date, description, category, spender, cost, that could be accessed anywhere.

I asked my wife to start tracking spending. As we had just bought a new house and 1 1/2 year old. She was extremely resistant to the idea. Six months after using the "tracker" she told me that she didn't plan on doing it more than 2 days before she gave up. However since starting it 3 years ago she and I have increased our "frugalness" and really looked where we should spend money (vacations, artisan food and not items to impress other people… such as fancy cars.)

I think part of the trick is not necessarily import or export or "api"ing data. The trick is doing a manual entry for each transaction. Kind of like a spending journal, food journal or just a journal. There still seems to be power in manually entering a transaction, although it might not be by pen and paper.


> The trick is doing a manual entry for each transaction. Kind of like a spending journal, food journal or just a journal. There still seems to be power in manually entering a transaction, although it might not be by pen and paper.

This was a big realization for me. I tend to prefer getting the "robots" to do things for us (in other words, automate things). Developing an intuition of what's happening with your money is hard when you use an automated tool though.

The process of managing the ledger bi-weekly really adds something more for me. Working on each entry to determine a category, writing down amounts, noticing how many entries I've entered into a category each session, and looking at it in aggregate afterward gives me some greater sense of how my financial life works. I can almost picture writing the transactions in GnuCash before I even do it.

I get what you mean about it being complicated though. I learned the bits I needed to get by and mostly stick to that. So that works for me. In the long run, the double-ledger manual style is what I think is most important.


>The trick is doing a manual entry for each transaction.

I would second this for anyone whose goal is to spend less money. I think some people keep track of purchases just to see all spending and may not care about reducing spending. In that case, importing data can save time.

This article also agrees with your suggestion. She suggests it's th that knowing you are going to have to write down your purchase helps you think before automatically spending: https://www.nytimes.com/2018/11/28/smarter-living/budget-mon...


I built my own budgeting app and I strongly modeled it after Google Inbox. After importing transactions, you then need to get to “uncategorized zero”, which is identical to inbox zero. I like that it’s much less tedious than manual entry but you still see and work with each transaction. After a transaction has been fully reconciled, it disappears. It’s very analogous to managing email.

It’s running on a raspberry pi in our house and my wife and I both use it. One feature I am adding is a “hey what’s this?” flag that tells the other person to reconcile/categorize the transaction that the other person has more context on.


I've been using YNAB. I want to switch out because YNAB is too expensive. What I miss with open source alternatives is the mobile app. I don't like to link my bank accounts, so I enter expenses manually whenever I buy anything. The mobile app is critical for that to work.

YNAB can sometimes feel expensive. And while I could use an OSS solution like Gnucash or ledger, I don't have the time to deal with the tech support needed to be able to share my setup with my spouse. Likewise, we extremely value the mobile experience. To me, YNAB is cheap and well worth the money.

You might want to try "Every Dollar" which is free and has a mobile experience. It's not open source, of course, but it might fit what you're looking for.


This is exactly why I pay for YNAB. As I'm going through all of these free options I'm wondering what support there is for sharing the information with my spouse and how much manual wrenching I'll have to do to make that work and what my less-technical spouse will have to put up with to work with it.

YNAB is drop-dead simple and available on all of our different platforms. Money well spent.


Thing is, I have very limited usage. I don't really use or want the budgeting facilities. I just want a simple app to keep track of expenses. I even considered building my own little apk (I use android) which will just sync from mobile via dropbox (just like YNAB classic used to do).

For the same reasons I am still using the classic version of YNAB (paid once). But unfortunately the Mac version is not compatible with Catalina so I am also forced to search for a new app.

I have recently been experimenting with the mac app "Buckets," which seems conceptually similar to YNAB. It costs $50, but offers a full free trial with no feature or time limits.

Downsides are the data import process, which can be complicated, and the lack of a mobile app.

https://www.budgetwithbuckets.com


I paid once as well, but was forced to upgrade to Catalina for other reasons. Felt cheated, but I understand why they do it.

Too many of these personal finance apps aren't putting the web first

YNAB (web version) has a pretty excellent web-first experience. And I'm not sure that I want a total web experience if half of my battle is recording transactions at the time they occur, right in the store. This is super convenient, no reason to keep receipts and enter them when I get home.

I will never understand why people spend time on expense tracking spreadsheets and apps.

I mean, you’re the one spending money you already know what you spent it on... Your bank already has a history of transactions if you want to look at it.

Put 30% of your income in a savings account, the money for necessary bills in another account with auto-billing, and the rest for spending in a spending account.

I see so many people categorizing everything with spreadsheets and budget apps and I just ask myself... why? If you set aside savings and necessary expenses what’s the point of categorizing your spending?


It's because once I started doing it I found that I didn't actually know what I spent money on, not really. I found that my rough estimates for where my money was going were way off and lagged actual changes in my behavior by a number of months. Just as an example, I still don't feel like my family is spending close to double what we used to on groceries during the pandemic, but I know that we are because I have months of history to compare against.

So then you could say, great, so you know that for sure now, so what? Well, this is actionable! Continuing with the example, now we can look at the upward trend in groceries and ask whether we're happy about that. Is it an overall upward trend, or is it coming from something else that we've deprioritized? In this case, yeah, it's pretty directly coming out of eating out and socializing, so not something we need to worry about. But in other cases it has provided data to inform hard decisions about where to cut.

And that actionable trade off thing isn't even my favorite part! My favorite part is peace of mind when we buy stuff. I don't have to wonder whether we can afford things, we either have the money for it, or we can move money for it from some other thing we were gonna spend it on, or we just can't afford it. But there's no guesswork, which is so much more relaxing than what I used to do (guess and hope).

Your mileage may vary, but for me, it's some of the best invested time I spend.


Do you put savings and necessary expenses aside when paid? To each their own. If it works for you great. I can’t imagine sitting down and tracking whether my grocery expenses fluctuated from one month to the next, since it can’t impact my ability to pay bills and save. If I was worried about not having money for groceries I would set that money aside when I get paid.

I also have a family and am the sole income earner. I just set aside everybody's spending money / allowance and they can do with it as they wish.


Your system sounds simpler but more rigid than mine. In my system, everything is a negotiable trade off. There is not static bills and savings to set aside, there is a trade-off between those things and spending. If I want to spend more on groceries or socializing or vacations in some period of time, that is just a trade-off against all the other things in my budget. Maybe I'd rather find ways to lower my bills than my spending. Maybe I want to save less in some month so that I can spend more on something that will bring us more joy that month. It is easier to make these decisions on trade offs with good visibility into all spending and saving.

But I would also suggest that it seems like you're actually doing the thing you said you don't understand why people do. You have a budget, it just has a relatively small number of categories. But the answer to your question is that people do this for the same reason that you do your setting aside of money for bills, savings, and spending.


> I see so many people categorizing everything with spreadsheets and budget apps and I just ask myself... why?

I was saving 30% of my income per month, and wanted to save at least 50%. So I decided to measure my expending, and try to cut it off without actually impacting my quality of life.

I discovered that substantial parts of my expending were going to: warm and cold water (2x the national avg per person), electricity bill, take-away food, transportation, health insurance.

I changed all the water taps with ones with a lower volume rate "by default" (you have to go out of your way to open them to the max), replaced all bulbs with LEDs, decided to only go for take away once per week but get the nicest and most expensive one instead, bought a bike for commuting, and changed health insurance and electricity providers to similar ones, but much cheaper.

Those were minimal changes in lifestyle that bumped my saving ratio from 30% to 60%.

Without measuring, I would probably would have taken a bunch of random actions that would have impacted my lifestyle more, and not delivered such a big jump.

I don't routinely use these apps, but if you want to continuously optimize your expending, measuring it is step 0.


It's even easier if you don't spend at all. So many of the things we buy are temporary, ephemeral pleasures.

I'm not saying don't invest in fun and experiences; life is short, and you should enjoy it. But picking up random things at Target and idly browsing Amazon might not be necessary. And might be keeping you working harder, longer. Cheap drinks are just as enjoyable as expensive ones.

I've started putting money I would spend on stupid things into savings and investments. Nothing would be better than buying my freedom to work on whatever problems I want to 100% of the time.

I've got mutual funds and growth stocks, but my favorite thing is my dividend stocks. I like watching those returns come in because I'm doing nothing to earn them. It feels magical and has helped curb the desire to buy anything I don't need. If I put it into an investment, the money works for me instead of me working for the system.


I might be the edge case, but I don't actually find double-entry bookkeeping all that useful as a consumer trying to track my expenses.

Instead, I tend to think of my budget as having cycles (monthly, currently), with a net "debit" or "credit" for different aspects of my life. I'm required to credit myself a certain amount in savings every month, and I'm allowed to debit a certain proportions of my income every month for different categories.

I end up tracking this with a set of plain text expense ledgers and a small Rust program: https://github.com/woodruffw/pledger


I'd be curious if anyone has used this and also used YNAB (and can compare them).

I'd put YNAB along with 1Password (and probably Fastmail) in the class of best single purpose pieces of software that I pay for.


> I'd be curious if anyone has used this and also used YNAB (and can compare them).

I'm a long-time user of both. YNAB wins hands-down in budgeting and basic usability.

When I got married, we integrated finances. I had been using GnuCash for years by then. Its interface was an immediate non-starter, even though as an application it's more powerful than YNAB (e.g., stocks and retirement planning, mortgage amortization, business expenses, easier splits--at least in my opinion). If it had a better budget and reporting system, I might have been able to swing it--but it didn't and doesn't, and that was that. The other killer feature YNAB offered was a mobile application.

Financial apps have to reduce friction. Interpersonal first (although that's a tall order for software), but also in delivering fast entry and a big-picture view of what you're doing with your money. GnuCash really isn't designed for any of that. And that's honestly fine for what it is, although I wish the database were easier to wrap your head around—it should be possible to build a cleaner and/or web UI around it than it seems to be.

As it is, I'm not really content with YNAB either, but if that's what it takes to get our internal financial reporting in order, it's a lot better than nothing.


I've looked at YNAB before, I keep wanting to try a finance tracking tool - but I can't ever decide which one is worth my time. What's so good about YNAB? It seems to be marketed at a certain segment that I'm not in. At least, based on their homepage line:

> Stop living paycheck-to-paycheck, get out of debt, and save more money.

As for 1Password, given your username I'm assuming you've tried Bitwarden? What is better about 1Password?


I actually hadn't heard about bitwarden (thanks) - I'll check that out.

I'm not in YNAB's target market either, but the value they provide is useful even if you're not struggling month to month with finances. You get really good control over your money and a much better understanding of how you're spending it and where.

Being really aware of that makes it easier to actually leverage it more because you know exactly what you can put where so you can be closer to zero in your checking account (push more towards investments, etc.).

It also makes it easier to change behavior and know exactly what knobs you can turn with your finances.

Only downside with it is that the auto-import sucks (I suspect because the bank APIs suck). I move all transactions through one credit card and I manually create transactions in YNAB when the card is charged. I use the Apple Card which has really good software so it's easy to notice transactions and make sure things line up.

My username is also from when I was 13 and really excited about linux :-), now mostly on macOS - I haven't really lived up to it.


I'll give the opposing opinion that YNAB's auto-import works well for me (I use it with a local credit union, 2 credit cards, and an online savings account). In fact, I used my own homebrew budgeting software for over a year before I found that YNAB exists and does everything I needed from my own software plus imports from banks automatically which was my biggest pain point with my own solution (it involved painful csv exports every month). I have been happy with YNAB for a year and a half at this point. Your luck may depend on which bank(s) you want it to work with. I believe their bank import api provider was recently acquired by Plaid so they are now using Plaid (as I understand it).

They are using Plaid, and yeah, it varies wildly by bank.

FWIW, I don't know that having a bank that doesn't play nice with Plaid is a deal-killer. There is a school of thought among many YNAB users that you should not use the auto-import, or even csv/ofx/whatever import, because manually entering transactions takes only a few minutes a day, and gives you much better awareness of your outflows. I can see some merit to that, insofar as tightly controlling your spending is kind of YNAB's whole thing.


Even with auto-import, you still have to "approve" each individual transaction that is imported, at which time you can assign it to a category (or approve the auto-suggested category). So that works for me in terms of being aware of spending on a regular basis. And if you manually enter some transactions as you spend, it automatically matches them up with your bank's version of those transactions as you import so you don't end up with duplicates. So it's okay to use it in a hybrid mode where you sometimes enter transactions manually and sometimes wait for them to show up automatically.

Which file export do you use from Apple Card to YNAB? I'm looking at doing the same thing and I'm curious which works best.

I don’t export - when a transaction is made I open the YNAB app and quickly add it.

I resisted doing this for a long time because I thought it would be awful, but it’s actually easier than dealing with import issues and reconciling later.


I've been using YNAB for about 6 months now. I was not living paycheck to paycheck when I started - but I have made significant improvements to my financial well being since I started using it.

Previously I had been using Mint to keep track of my spending, but I never felt in control, it was only useful as a reporting tool of what had already happened.

YNAB is all about giving every dollar a job and setting priorities for your life. It's the envelope system in digital form if you are familiar with that. With Mint and similar systems, I'd just be looking at my pile of cash in my account and thinking "yeah I can easily afford a new gaming PC!".

But I wouldn't be taking into account my 6 month auto insurance bill coming up in 2 months that would require a bunch of cash. YNAB let's me see that easily - it was painful in the beginning as I was "catching up" in all these categories, but now I feel so much more comfortable with my money and how it can be put to good use.


Yeah - I had a similar experience. A lot of people suggest Mint is a similar thing to YNAB, but except for being money related it really isn't.

I used it first too and I think it may actually be worse than nothing.

It's both infested with a ton of ads and makes you think you understand where your money is going without really understanding it.


I used to use GnuCash, and recently started using YNAB.

In a nutshell, I would describe the difference as, "GnuCash (and Mint, Quicken, Moneydance, etc) are for monitoring your finances. YNAB is for controlling your spending."

The more mainstream personal finance apps have all sorts of tools for tracking investments and assets and all that good stuff, and a lot of rich reporting functionality. They also generally have some version of budgeting, typically with a fairly straightforward, traditional approach.

YNAB, by contrast, is really just about budgeting. I'd argue that it's not just an application, it's a whole budgeting method that happens to come bundled with an application to help you in implementing it. When you sign up to YNAB, what you're really doing is subscribing to (founder) Jesse Meacham's personal spin on Dave Ramsey's philosophy of money management. You might as well subscribe to his podcast while you're at it. In fact, I'd suggest listening to a few episodes of his podcast before even signing up for the free trial. If you don't like his way of thinking about money, you probably won't get a whole lot out of YNAB, either.

And YNAB really doesn't even try to be anything else. You can stick your 401(k) balance in there, but YNAB's own documentation encourages you not to bother. All you'll get out of it is that it will show up in one of the reports. It only has three reports, by the way, and they're all spartan and minimally customizable.


I've tried a ton of online apps before eventually writing my own. YNAB can be used to help track spending very well. The budgeting aspect is more to help with self control. For example.. Say you want to tighten down on things a bit, and you notice you spend $230/mo on going out to eat. You can set the budget to $200/mo which basically makes the number red instead of green if you go over.

I would place Lunch Money above YNAB right now. It tracks money in a bit intuitive way, and is easier to use in my opinion.


Why 1Password? I've tried it throughout the years, and IMO nothing has beat KeePass.

It works really well across all of my devices and operating systems (and will continue to do so as those systems change).

I’m glad keepass exists, but I’m happy to support polished software in this domain. I like paying for software I think is really good and focuses on a narrow problem.


+1 for keypass. The apps aren't quite as polished, but they do what I need, and I can store my encrypted password file in my Dropbox folder so that I've still got it if any single company in this small chain folds.

1Password its vault format is open source, so even if the company goes belly up a 3rd party tool that can decrypt your vault can easily be written.

Hold up. Did Gnucash get better reporting or did he make his own? Last time I used Gnucash, which admittedly was 10 years ago, but for a business, I found reporting and the lack of budgeting lacking. The latter could be solved by envelopes (but I find hacky), but the former only by learning Guile, something I was and am not up to. Alternatives like Money dance have a more complete solution, certainly for personal use, in my view.

I guess I'm asking what happened in the past decade to Gnucash ;) 2014 is the last time I really used it, and reporting had then not really changed.


The very first plot shown in the article was generated with custom scripts, published here (https://github.com/csun/simple_gnucash_budget_plots)

I'm not sure how much it's changed since 2014. I think the "budgeting" system is still probably as bad as it was back then, though (and by bad I mean not really applicable for personal use, probably good for businesses). That's why I wrote this budget plotting script.


It did not get better. I am contemplating making a GNUCash adaptor for Grafana.

I want to like GnuCash but I just can't. I have found the UI to be confusing. I still use a freeware, abandoned version of Microsoft Money: https://www.microsoft.com/en-us/download/details.aspx?id=207...

The UI is still excellent. It is the only reason I have Windows installed on a spare computer. Despite never being updated, the principals of personal finance haven't changed that much.


I'm in the same boat! One Windows laptop in the house dedicated to MS Money. With 27 years of financial history, and counting, it still does everything I need it to. Once a year I export it into Excel to do some forecasting and analysis. I'd really love if there were a reliable and future-proof way to get at the data. Sunriise[0] is the only way I know to export raw data but it has a few issues and the source code isn't public.

[0] https://bitbucket.org/hleofxquotesteam/dist-sunriise/wiki/Ho...


I am still using Microsoft Money too, it's great! There is also Money Plus Sunset Home and Business edition available at https://www.microsoft.com/en-us/download/details.aspx?id=756... which includes features for small businesses, see comparison at http://moneymvps.org/faq/article/499.aspx

I tracked my finances for a while with GnuCash and found myself in the category he describes here:

> If you’re happy with just knowing that your credit card balance is less than a certain amount each month, that’s great! You don’t need GnuCash.

I'm curious what fraction of people track personal finances versus those who don't. I don't know if I'm in a big majority, small majority, big minority, small minority, or what.

Do you track your personal finances? If so, in how much detail? Maybe it would make an interesting Ask HN.


I'll bite here... I used to track my finances and balance my checkbook. But, it took hours of my time. The best thing I ever did was create a separate account for my disposable income. My bills account gets the exact amount it needs and everything is payed automatically. The rest of my income goes into my fun account and I rest easy knowing I can spend until it's gone and my bills still get payed.

After that worked well for me, I now put small amounts into various savings accounts, like "tires", "vacation", or "emergency". I use an Ally account with "buckets".

I don't balance anymore, and haven't for 20 years. Just a quick glance at recent transactions to make sure I recognize everything.

It's also amazing how quickly some of those savings accounts add up when I'm not thinking about them much.


My wife and I do something similar.

We have our "Expenses" account that salaries go into. We have our "Offset" account that has our emergency fund in it and offsets the interest for our mortgage. And finally we have a "Goals" account that we use to save up for big ticket items like a new car, holiday, or something.

We take 10% of our respective incomes each into a personal, "off the books" account and we do whatever we like with that.

Simple.


I use ledger to document my personal finances, and I've been using it for about a year.

I do it less for budgeting, and more for a method of centralizing information. I have 4 credit cards that I use regularly, from 3 banks, I'm a w-2 employee with a 401k and benefits, and I file my own taxes. It's hard to keep track of everything, when the relevant data is behind login walls, in occasionally proprietary formats.

I wrote a bunch of scrapers and parsers for obtaining this data, and translating it into a ledger transaction format. Once it's there, I can do all the reporting and whatnot to my heart's content. Writing all of the infrastructure has been a labor of love, with a non-trivial emphasis on labor. I balance out about once a month, but since automating the various transformers, I pretty much never have to debug balances any more, which is a godsend.

It tracks down to a pretty excruciating level of detail, enough that I compute (for example) how much it costs my employer to employ me, my average monthly spread in my checking accounts (between when cc bills, rent are due and when income comes in), average costs of travel-vacation-days, and how that's changed over seasons.

At this point, it mostly "just works", and it's easy to append to my records. The next fun part will be getting useful and actionable insights out of it, and applying them to my life and decisions.

It's very nice to feel "in control" about these things; I don't really worry about money any more.


I’ve been tracking my finances on and off for a few years, but finally made the habit stick around Christmas last year. I do it not so much to know what I’ve spent already, more to know how much I can spend in any given category.

I’m using YNAB, which has honestly changed the way I think about money. Historically I’ve always taken the approach that there’s no point having money and not spending it, impulse buying things, and then being screwed when an unexpected bill comes in. Or the need to eat just before payday.

YNAB pushes you into allocating money at the point it comes in, anything from rent and groceries to a pot for renewing my Amazon Prime subscription when it comes up. Somehow the act of allocating the money seems to trigger the same mental reaction as actually spending it used to, and I’ll now often find myself with more money left over to go into savings at the end of the month because I actually didn’t need to spend most of what was allocated to my generic “fun money” bucket.


I've tracked my finances for as long as I can remember. It's become even more important since getting married.

We track every penny. About once a month we sit down and categorize every purchase we made the last month. We only keep receipts if the purchase was for a non-obvious category (e.g. buying both diapers and groceries at Target) so that we can split each transaction between categories.

For some banks, we manually download transaction data in whatever nice format they provide. For others, we use a syncing service that works with the app.

It's been so great throughout our marriage to know that we're both in charge of the money and make decisions together.

That said, I've talked with many people who don't like that level of detail. At first, it was baffling to me that people didn't know the details of their finances, but as I've grown, I've realized that there's plenty more than one good way to manage your money.

Full disclosure: I actively work on and sell budgeting software.


The only level of detail you need to track your finances to is subtracting your expenses from your income each month. As long as you spend less than you earn, you don't need to worry more than that.

If you'd like be saving more money than you currently are, then you can drill down into each side to look for things to improve.


I've been tracking my finances, with varying levels of details, since 1997.

I started with Microsoft Money, and tracked everything including cash and credit cards charges, for 10 years. It took a while to enter the info and I wasn't really using the info at that detail, so I changed up and also migrated to Moneydance, since Microsoft Money sunset in 2009.

I started over with Moneydance, and instead of recording cash to such detail, I just recorded it as a transfer from checking to "Wallet - Cash" and then balanced that every month by assuming all my cash went to restaurants. Not 100% accurate but mostly correct and way faster.

After a 2-3 years of Moneydance I decided to migrate again to GnuCash, for the various benefits of open source software. This time I also lightened up my recording to condense credit cards purchases down to one monthly entry. Which again saves a lot of time. I glance over my monthly bill to make sure the charges are correct but don't split out by category anymore.

So that's where I am now. Been using GnuCash for the last ~10 years, only record large categories of expenses and basically check credit cards bills for accuracy and keep my checking/savings accounts up to date. I only update retirement/investment accounts once a year, at the end of the year.

I am fortunate to be able to live below my means so I don't have to stress over balancing various accounts to the dollar. I just need a general idea of my position.


I was a ledger user for years, then some things happened, it got out of date, and I haven't gone back. But I tracked it in great detail. Every transaction, updated prices on stocks every month. It was really nice, and I had a tmux configuration that automatically loaded an emacs buffer with an org file holding all my ledger entries, and other panes containing various reports (uncleared balance, balance in cash/credit card accounts, total balance, monthly reports, etc.).

I will do it again, but haven't. I'm presently using YNAB because it's easier for my wife and I to share. I use it to a similar level of detail, but don't track my stocks and retirement accounts with it. IT's been very helpful for us to know how much money we have and where it's all going. Last year was very expensive and we ended up in some debt, so this is also helping us get things back on track. It's hard to get out of debt (especially if it's become a habit to rely on credit) without knowing this kind of information.


I do. I started because I would find myself surprised by the occasional credit card bill that was larger than I expected. It made life easier later when I started seriously putting money in investments, and then much easier when my mother died---she had put my name on all of my parents' accounts so I inherited two more, different bank accounts, two retirement accounts and some honest-to-gosh stock certificates. By the time I got everything cleaned up, I had a love affair with GnuCash and a checking account number that starts with seven zeros.

I track transactions in and out of accounts that I get statements for, with a "cash" expense for withdrawals (I know someone who would track his pocket change in spreadsheets.), and broadish categories for income and expenses (my Books expense account is ... large).

I wish I had created some kind of asset account when we bought a house; instead I just treat the mortgage like rent and have this great big windfall followed by an equal expense when we moved. :-)


I tracked every single expenditure in GnuCash for a year, mostly out of curiosity. But in general I don't worry too much about budgeting because I'm naturally a bit frugal. However, I do a yearly summary of assets in order to track long-term/retirement trajectory. I can also use that to get a single number showing me how much I spend each year.

I track All non-cash transactions and any large cash transactions.

I did it from when I first started working full-time so I could get some idea of savings/spending &c.

It was "meh" usefulness, but pretty easy since I could auto-import the transactions and it takes me maybe 1hr per month to categorize everything.

Now that I'm married its incredibly useful. "Can we afford X?" "How much are we spending on Y?" "I feel like I've been overspending on Z, how bad is it?" are the sorts of questions that can be answered very quickly.

Neither my wife nor I are in "charge" of spending, but I keep the books (because I had been before getting married). These money discussions could very easily become divisive if we didn't have easy-to-access data.


I've sporadically tracked my finances for the past 14 years (started using commercial software on OS X before getting fed up of some of the software and writing my own open source finance app to learn Objective C / Cocoa back in 2009 to do it which I still use), and over the past 6 years have been tracking it rather meticulously, which I find helpful for two reasons:

1. I'm a contractor now, so need to do tax filings, and having detailed finances helps with that.

2. I find it quite interesting (but not always that useful!, although it sometimes is) what my expenditures are each month, i.e. how much I spend on electronics/gear vs holiday vs other, compared to potential savings.


Before I started using GnuCash I had no clue how much I spent monthly. I was fine with the fact that the my savings account seemed to grow over time.

Then one day I got mad at a random fee from my bank after realizing how much they charged me over the years. I closed my account at this bank, decided that I will be more careful with my spendings and started tracking everything with GnuCash.


I do, each bill or bank transaction being its own entry. I'm sure I belong in minority of people who do this. It's all manual labour too without any imports from banks etc. (never tried).

I do it for two reasons. Occasionally I found a problem with double-billing that I would otherwise miss, but mostly it is to be able to check where my money went and plan realistically.


I did for a couple of years - actually wrote my own small CLI app to take care of my very basic student needs :D

At some point I dropped the habit, more out of laziness than anything else. I still have a budget spreadsheet with a rough plan for my monthly finances, I just don‘t track the actual expenses anymore. Reading this makes me think I ought to start again...


Firefly[1][2] is also a really useful personal finance app.

It's more akin to a self-hosted version of Mint. Combined with the Plaid connector[3], I find it the easiest to use for my workflow. And despite the instructions, you don't need a paid dev account. The free Plaid account will let you access up to 100 live financial institutions.

[1] https://github.com/firefly-iii/firefly-iii

[2] Live demo: https://demo.firefly-iii.org/

[3] https://gitlab.com/GeorgeHahn/firefly-plaid-connector


I've used mmex for years and it's been not so stable recently so I gave firefly a try.

There were too many simple use cases that could not be done simply, compared to mmex.

One example is credit card partial chargeback/refunds. The dev suggested to edit the initial charge and substract the refunded amount. I dont want to do that. I like to keep a 1:1 mapping of transactions.

Also income vs expense accounts, instead of payees. If Amazon refunds me partially (let's say $10 from a $100 purchase) it now creates an Amazon income account with $10. I had an Amazon expense account of $100. Both accounts are not linked in any way and it's impossible to know your Amazon balance ($90).

I buy a lot of stuff for my girlfriend and she pays me back around the end of the month. Keeping track of her balance is not possible with Firefly.

A few other things were not working properly or at all.

Dev is very nice and active but I doubt he has any accounting background. Firefly turned out to me as a prettified excel sheet, not a double entry book keeping.


I use this too. Maybe I like the beancount more, but having my finances available on the web to share with my so is valuable. Too many told are meant for one pers,on and don't support modern ideas like tagging.

The multi-user aspect is super handy.

It's also nifty that it exposes pretty much all of the functionality via a REST API, complete with the ability to manage OAuth clients/tokens. Not something I expected to really leverage, but have been surprised how frequently it's come in handy.


Have you tried fava recently? A web interface for beancount. Its become very powerful in the past year or so, allows editing etc too.

Thanks for sharing this - this is exactly what I've been looking for.

How are their tagging/categorization abilities?


> We don’t care about how much money we’ve spent at Amazon

That's like, your opinion man. While I'm sure that's one perfectly valid approach, I find a lot of value in knowing where my money has gone beyond categories.

To make it more concrete, how much I spend at Amazon my Rewards Visa determines whether the 2% bump in rewards is worth the cost of Prime. (I know - most people find enough value in the videos or not thinking about shipping. But I find that I simply spend more at Amazon when I have Prime, so I avoid having it!)

To counter myself, my own software is probably too granular and I waste time on those little details of where I've spent money. I could stand to simplify a bit.


You can track these kinds of things in GNU Ledger (cousin of GNUCash)

The expense category is still something like `Expenses:Books:SciFi`, or whatever. The payee for the transaction is then `Amazon`. If you prefer to make the payee the specific retailer that's selling to you, using Amazon as a platform, you can do that, and instead "tag" the transaction with `:Amazon:`.

You can also track points as a byproduct of the transaction, but that's another rabbit hole.


And that's definitely an important shortcoming in GnuCash. I don't know of a great way to deal with transactions that go beyond "categories". You could use the description field + custom reporting, but that seems a bit error-prone. Luckily, I haven't run into many cases where I felt like I needed something like this.

Last time I looked they seem to have a pretty decent python API so splitting down transactions by retailer shouldn't take too much python-fu methinks.

na, the problem is the data doesn't commonly exist in the model. If I buy a book from a local independent bookstore, that's a debit on checking and a credit in the 'Books' account. If--perhaps due to coronavirus--I buy the sequel on Amazon, that again results in a transaction from checking to books. The payee data isn't there.

I think you can do it via vendors but the small business feature set is somewhat cumbersome.


I used GnuCash for a few years too, then switched to something else because:

1) I couldn't make transaction importing work for the statements that I want 2) I couldn't get to the report that igpay got (this was many years back) for some reason, I also wanted more custom reports and it seemed really complicated to create one 3) I wanted a tool that was more malleable. Although GnuCash is completely open source, the codebase does not look too approachable for me

After trying a few other approaches (including spreadsheets), I settled with Ledger CLI. I also built importing tools over 3 years of coding on weekends and finally got a complete set of features and financial institutions that I want :) Started with the reporting / analytics part recently... You can check it out here:

https://prudent.me

Any feedback will be very appreciated :)


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: