Simple Personal Finance Tracking with GnuCash
csun.io
csun.io
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.
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.
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.
I've never used the import features, the manual inputting of transactions into a text file doesn't take too long.
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?
- 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
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.
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.
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.
Actually, beancount supports include directive. See includes section [1] of the language syntax document
[1]: https://docs.google.com/document/d/1wAMVrKIA2qtRGmoVDSUBJGmY...
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.
https://github.com/redstreet/beancount_reds_plugins/tree/mas...
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.
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!
https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
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
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.
discussion: https://groups.google.com/forum/#!topic/beancount/RXvOvHHdse...
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
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.
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.
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.
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!
Probably the biggest hurdle IMO is the single user nature. Even the SQL backend requires a global lock.
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/
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 ;)
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.
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 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. :(
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.
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.
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!
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 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.
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.
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...
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.
Downsides are the data import process, which can be complicated, and the lack of a mobile app.
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.
YNAB is drop-dead simple and available on all of our different platforms. Money well spent.
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?
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.
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.
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.
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 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 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/
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.
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.
How are their tagging/categorization abilities?
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 put YNAB along with 1Password (and probably Fastmail) in the class of best single purpose pieces of software that I pay for.
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.
> 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'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 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.
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.
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.
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.
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 would place Lunch Money above YNAB right now. It tracks money in a bit intuitive way, and is easier to use in my opinion.
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 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.
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.
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.
[0] https://bitbucket.org/hleofxquotesteam/dist-sunriise/wiki/Ho...
> 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.
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.
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 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.
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 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.
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...
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.
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. :-)
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.
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’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 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 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.
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.
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.
I think you can do it via vendors but the small business feature set is somewhat cumbersome.
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.
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:
Any feedback will be very appreciated :)
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.
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.
(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.)
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...
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.
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.
I think any recurring payment is worth recording, but where you set the level is pretty personal
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.
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'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.
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.
Yes, I am exaggerating a bit, but I think you missed the point.
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)
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.
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.
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 :().
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?
If it fits your budget, go for it, but let's not confuse convenience with enjoyment or quality.
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.
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.
Especially considering the inflation tax. Especially lately.
And money should be making more money after the $5000 point.
It looks more solid than fiat?
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 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.
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.
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.
Also, refusing cash is perfectly legal -- and increasingly common -- in a number of countries.
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...
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.
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).
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.
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.
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.
Coffee is about 4.5 USD where I'm at, which is part of the reason.
The big expenses are still what matter though.
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.
Thanks for the ideas of 2-4!
I should get back to it sometime
That said, let me know if you do it!
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.
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.
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.
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.
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.
Fines As A Service?
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.
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)
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.
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
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
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.
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.
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.
I've been downloading monthly statements manually and feeding them into my data woodchopper, but email sounds like a good alternative (or maybe complimentary?).
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.
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!
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...
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)?
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!).
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
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.
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.
If that's not enough, you can just use Plaid. Am I missing something here?
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, 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.
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.
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.
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.
I’m pretty sure Plaid’s free tier is more than enough for the use case you suggest.
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.
Until then we've been using a mix of Excel and YNAB.
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.
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.
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.
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 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.
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.
Personally, I don't mind manually entering the stuff, because you'll need to classify everything into the correct accounts anyway.
That stuff is the OFX/QFX setup. Basically it logs in and fetches those files for you. Banks are notoriously bad at this however.
> No data is stored on servers, except when you enable Cloud Sync to keep your data up-to-date on all your devices. In this case the data is stored encrypted on iCloud.
Many others promise that, but fail to deliver. Emma works for me, consistently. At the end of the day each of us manage our finances differently and the workflows have to be personalised. It's about finding the one that makes sense to you rather than "the best".
And I have another sheet to compute net worth - retirement and brokerage accounts hold funds for which I can get a price using the GOOGLEFINANCE function, so the numbers change over time and I know pretty much down to the penny what my net worth is after I sorta manually enter in a couple bank balances.
In the article, I briefly touch on skipping manual transaction logging and just importing statements from your bank / credit card. And I gloss over this, but it looks like GnuCash offers similar functionality for automatically updating stock prices https://wiki.gnucash.org/wiki/Online_Quotes - not sure if it's a pain to set up or not, but it's probably not as easy as just calling a google sheets function.
Seems like you wouldn't have any reasons to switch over given that you've already got a nice system going, but just wanted to point out that you can use GnuCash in a way that's not quite as... rigid as the way I use it :)
I have some charts and graphs embedded with the data - like net worth over time, brokerage over time, etc. My worry with a baked system is it doesn't have the data in a way I want in a chart, whereas with this system, I can pretty much create whatever I want from the raw data in the sheet...
I haven't used, because I use personal capital and they both used Yodlee, and my biggest gripe about personal capital is yodlee isn't keeping up with 2fa style logins from banks
However, stock symbol APIs break on the regular, so there can be times when this process is broken until a fix is published and you upgrade.
I've tried GnuCash and Skrooge, can't ever get the direct downloads to work for more than two months without breaking.
Quickbooks Online, which I have been using for a little over a year, does syncing exceptionally well; but at the cost of a polished UI.
Ideally I would love to be able to access my Quickbooks desktop database using iOS or web, alas that’s not doable.
I recently moved to KMyMoney and everything just clicked. I found the interface to be nicer, especially combining the filter functionality with the ability to select multiple things and tag them appropriately.
I appreciate the article trying to explain Double-Entry bookkeeping, and I would suggest people look into KMM as an alternative to GnuCash.
A more accurate phrasing would have been "Filter all the payers that contain this string, and allow me to select them and see how much money was transferred to/from them."
That was a sad day because I'd like to use an offline finance tracker on my phone.
BTW GnuCashMobile is not GnuCash, it's some third party android app.
The product is https://decimals.app, and the way I thought about bringing the simplicity to it was to wrap the API behind decimals and currency libraries already in use. If you want it for personal use, let me know, but it's something closer to LedgerCLI at this point, as it doesn't come with reports and other things from GnuCash.
I can sync all your data to an S3 bucket, so you would have all the data in the json format on your AWS account. As I use DynamoDB, it would be pretty straight forward to do. So, let me know what you thing and if you are interested in using a lib or REST API to create entries to a ledger, hit me up.
And why are the columns different to the example shown later for the checking account (or current account, as we say here in the UK)? You've got "increase" and "decrease" vs "deposit" and "withdrawal". Obviously you're likely to use your credit card and checking account in substantially different ways, but surely the fundamentals of transferring money in and out is similar enough that they ought to look the same in your finance software?
A savings account goes the other way.
I don't know why but it's an accounting convention.
Sometimes I think those conventions just exist to confuse people into needing an accountant.
> Credit card accounts are almost always negative
This is only true if you think of them like a bank account. Every credit card statement I've ever receive has shown the amount I owe as a positive amount.
> This is only true if you think of them like a bank account. Every credit card statement I've ever receive has shown the amount I owe as a positive amount.
I just checked my online banking - I bank with Nationwide, a UK building society (a bit like a US credit union but functions like a bank). In the main statement of accounts, which looks like this [1], the credit card balance is shown negative. So is my mortgage, which makes for a depressing overall sum! I won't bore you with more detail but generally they mostly stick to this pattern in other screens. Oddly, in that example screenshot, the credit card balance is shown as positive - I'm not sure if that's because it's just an example and they faked it wrongly or because the way balances are shown have changed since that picture was taken.
I've never had a credit card with anyone else, so that's why I'm surprised that the debt is presented as a positive number. It's interesting to see (from your comment and others) that's it's normally done that way. My initial cynical reaction was that this is a marketing ploy to make you feel a bit less bad about it, and I'm not surprised that Nationwide doesn't follow suit given that it's not run for profit.
[1] https://i0.wp.com/money-watch.co.uk/wp-content/uploads/2011/...
> The "credit card" account is a liability account
Interesting, thank you, I hadn't heard of "liability account" before. So it seems that it is something accountants really do use, not just the cynical marketing plot I initially thought. But it still does seem an unnecessary complication to me compared to just having all accounts working the same way (but some happen to be negative). Maybe it's a just mathematician / computer scientist thing of preferring things that make mathematical sense rather normal intuitive sense, a bit like zero-based indexing or end iterators that point one past the end.
GnuCash's Price Editor can fetch values automatically. It used to be able to use Yahoo finance, but they cut that off a while back. There is a replacement, but I cannot remember what it is at the moment (and am on the work laptop).
GnuCash is actually pretty easy to use, once you get used to the double-entry system and how it handles some things. I have a moderately complex situation (and it's been stupid complex in the past), and I don't spend more than a few minutes a month on it (unless I'm trading stocks; it can take more time to set up each stock's account for proper tracking).
This is definitely one of the clumsier parts of GnuCash. Still works though.
It's possible to get Yahoo! data through web scraping, but it's certainly less convenient than it used to be.
IEX also has an open API for querying historical data.[1] I don't think it has as much historical data as Yahoo! has, and it's changed a bit since the last time I thought about putting together a backtester.
Credit card payments end up with two records of the payment, one from the credit card and another from your bank.
There's no way to merge records in GnuCash, ideally you would be able to mark them as the same record, but keep them both to keep the import logic happy.
The big challenge IMO is that each transaction has a date, but sometimes the ends disagree on when it happened. E.g. you transfer money from checking to a brokerage, it takes multiple days but you have to choose one date for that transaction.
They're separate records whichiwould like to keep... but as a single merged ledger entry.
Apparently not all import assistants do this for some reason.
[0] https://www.csun.io/images/gnucash/expenses_piechart.png
I’ve always thought that having the data recorded in a single text file made the software only suitable for extremely small financial accounts. So I’ve put a SQL database that you have control over as the place where the data is saved (using a similar schema to what GNUCash does). Also added GRPC endpoints so scripts can talk to it easily.
It’s still early stage but plan is to make a bunch of front ends so that every financial task within a business can talk to the same backend (bank reconciliations, payroll etc)
P.S. I am not associated with this app. I am just a happy customer.
[0] - https://play.google.com/store/apps/details?id=com.monefy.app...
Invoicing though, she's still been doing with a different program since the ones in GnuCash are hard to get good-looking. I was about to ask for tips here, but then I see there's a whole bunch of stuff out there we could try first: https://github.com/search?q=gnucash+invoice :)
Are there others who have faced this issue similar to mine? Did you use GnuCash or something else? I'm more of CLI but she's more GUI. So...
I could write this myself, and have done a trivial one in the past. Is there anything better?
A big takeaway (adjustable on "Spending Plan") is "if you can reduce your expenses modestly during a downturn in retirement, your chance of success is much higher".
Sequence of Returns risk is also shown pretty well. The failure instances are commonly when your backtest year is immediately prior to a recession or The Great Depression.
Paired with Fava budgeting capabilities, my personal finance tracking is almost frictionless. It takes literally 5 minutes to go through 5 accounts.
Since I live in Germany, I still have to use cash, which is a bit a pain to track.
For that, I use an Android app that writes data directly into the Beancount ledger.
In the video, the guy recommends MoneyDance, but the same system would probably work in GnuCash too.
Easy to set up and requires the least amount of ongoing work to accurately categorize transactions.
I imagine Richard Stallman himself rappelling down a sold rock face to spread the good word of GNU.
How many libraries you got?