Hacker News new | comments | ask | show | jobs | submit login
Ask HN: How do you record your personal finances?
44 points by 0xb100db1ade 8 months ago | hide | past | web | favorite | 50 comments
I am trying to start recording the day-to-day flow of my money as part of a larger goal of implementing some in my life.

I have done some research and some self-hosted software solutions that interest me include [Firefly III], [Transity], [Ledger]. Maybe I'll write my own personal finance record keeping software.

Since this will be the first time keeping track of my own finances, I'd like to hear what has worked for others members of the Hacker News community.

[Firefly III]: https://firefly-iii.org/ [Transity]: https://news.ycombinator.com/item?id=17242136 [Ledger]: https://www.ledger-cli.org/

Here's a practical approach that have been working well for our family.

Forget about recording your transactions, it is way too tedious.

The solution: Use 'jars' for budgeting. Our jars are bank accounts.

First we have a main bank account where money comes in. Set all recurring bills (eg. rent, utilities, phone) to direct debit from this account. Let's call this income account. Leave the debit card at home, don't use it.

Then set an estimate of how much you be spend every week on groceries, transportation, etc. See this as your pocket money.

Then set up another bank account, set an automatic weekly transfer from the income account to this pocket money account. The amount is what you estimated previously. Everything in this account is for you to spend. If you spend less the week before, then you can spend it this week... or not. But you should not spend more than what it is there.

Adjust the automatic transfer amount if needed.

Now, if you want to save... it is the same strategy. Set up a saving target, open a savings account and do automatic periodic transfer from the income account.

Try it... it requires very little effort, makes you more conscious on how much you spend and on what and after a while you will be surprised with how much you're saving.

I did this for a very long time and would recommend. But now I have only one account as it lowers my mortgage payments by having all my savings in the one account and that account being my home loan. So now I use hledger. But your way is still way easier. It can get a little hard to track the number of things I do. At present I have 20 something jars.

Sorry if this seems like a dumb question, but are there any particular banks/accounts you use for this method? I would want it to be very easy to open accounts online with no hassle if I were to use this approach.

I use several banks. Here in the UK, I use Starling & Monzo. There are also international providers such as Skrill and Transferwise. Check what is available to you. Do not be discouraged by nominal account fee. You will save much more money than bank account fees.

CapitalOne 360 allows you to instantly open savings accounts and you can have many of them (not sure what the maximum is--it's high, I've had about 8 at once). That said I liked the bank a lot better when it was ING Direct before they got acquired.

I like this approach a lot and used it myself for years. But I found it kind of falls apart as soon as you want to start using credit though. It's great if you only use cash and debit cards.

I have tried many things apps/excel/text file and after some time I give up. The current solution I use for more than one year and I am happy. Works while travelling (currency support) but it needs internet.

To solve personal finance control I made myself a bot (on telegram). Works on anything web/desktop/mobile and that is just text. I think about it as my accountant.

I send him

>Beer 4 ( meaning I spent 4 on beer)

>wine 6 EUR ( meaning I spent 6 EUR on wine)

If I want to group things in a category:

>Beer is drinks

>wine is drinks

Don't forget to first set the expense currency.

>config ExpenseCurrency USD - (this will be the default expense currency if you don't specify otherwhise)

If you want to export just write:

> export expense

You will receive an url that can be imported(as text) in excel and can be refreshed. I use excel if I want explore/visualize.

I get a reminder/summary every day just to make sure I don't forget.

I have more commands https://docs.google.com/document/d/1x7iYpbXJHGyQQ4CxA1W6LgLr... And more that I have not documented. Let me know if you need something.

It does not uses language understanding, behind it has a compiler so there is NO misunderstanding

If you try it let me know or contact https://twitter.com/cosmaioan

My approach is similar. I keep plain text notes on my phone where each line is something like "16 haircut" or "12o" (eating out). I have a Node script that I currently run manually, but the problem is that I only run it every couple of months... Using a bot keep track of things is a great idea!

Currently I group everything by month, but using a bot would also allow that to be more granular.

One thing I try to focus on is simplicity of the categories. Instead of spending £5 on toiletries and £3 on fruit I just have on "everyday items" category that I use for everything that I buy at the supermarket. So after every purchase I make I only spend about 5s writing it down, rather than trying to do any splitting calculations in my head.

Here are the result: http://www.mattzeunert.com/money.html

Start with double-entry accounting on paper, until you don't learn anything new going through the process. Then you'll be in a position to pick an automation system that works with your process.

You'll need two notebooks:

Start with a transaction journal, where you record your purchases -- amount, how you paid, what you bought, etc. For most things, this is as simple as taping the receipt in.

Your account book has one page per account (method of payment or expense category). Once a week, subtotal all the new transactions by account. Make sure the subtotals balance (sum(expenses) = sum(payments)), and add a line to the relevant page in your account book -- Dates of transactions covered (to crossreference with the journal), subtotal amount, running total.

I’ve been using YNAB (You Need A Budget) for four years now and it has made a big difference in how much we’re saving. I used spreadsheets or other DIY solutions in the past, but they aren’t very multi-user friendly (wife and I share a family budget) and didn’t make me think of savings in the same way.

Here’s a good review: https://thewirecutter.com/money/best-budgeting-apps-and-tool...

The review provides affiliated links to the product...

I have a google sheet with an attached form. I then use simple queries to retrieve the data. For example, I have a sheet that displays the expenses per category (food, holidays, etc.) for the current month and also shows me the % of my income I have spent.

I added a few lines of Javascript which are run on what is probably a rough equivalent of a cronjob. They just check if it's the first of the month and if so append my current, recurring, monthly expenses to the form.

This is a simple and pragmatic approach where I can leverage the data analysis tools of google sheets (charts and stuff), access and add my data from everywhere and not have to implement anything myself.

I also use that to track what I buy for me and my GF so that we can eventually reimburse each other for shared purchases (mainly food). We could also get a shared account but so far it's been working really well.

If I am interested in my overall net worth I just log into my bank account and check out how much money I have and what my ETFs are doing.

The form is pretty simple: Amount, category, name, comment and then choose if it's both (me and my GF), I O (see comment for whom I am owing money).

Default notes app:

  -0.2 morning
  -3 Jack
  +2 John tires
  -1.5 ?
Then I parse it (perl) to standard accounting software, guessing analytics from these comments. No specialized app worked conveniently enough for me than just typing the event on new line.

mind to share the setup?

I wouldn’t mind, but it is only parsed into [[date, amount, comment]+] and then processed by 1c enterprise integrated into our company (we are russians). All the analytics magic/ui happens there, but I’m not sure if it is extractable or disclosable, since it’s mostly a data-driven process specific to us. Pointing to 1c distribution also counts as warez, so...

I don't really bother because when I've tried in the past it's just been really tedious.

I'm using YNAB but probably going to move to my own spreadsheet at some point because their move from product to subscription service provides no extra value - they don't even support UK banks for auto-import which is the only thing they've added.

I had too many transactions to annotate without going insane. Currently:

- chrome headless downloads CSV with transactions from every bank account and every card

- everything's appended to an airtable database

- script sorts transactions into categories (specific: "local joe" is groceries and generic: "restaurant" is eating out)

- anything not annotated can be done manually later

- another script generated graph using Vega https://vega.github.io/vega/

It took time to set up, but I'd really rather script this than manually tag every $ spent. Also there's no way I'm giving a third party my bank credentials. Common bank APIs can't come soon enough.

For a few months, I tracked checking balance in a spreadsheet and did my best to extrapolate out payments and paychecks for a month. The idea was to (1) have checking live paycheck to paycheck, and put the rest in investments (2) figure out what the actual household monthly budget is and (3) simulate “affordable” mortgage payments based on income.

In practice, I managed to retime some of the monthly payments, lowering the variance of the account balance substantially, which created another $5-10k to invest. I also trimmed about $1k from the monthly budget with no lifestyle changes.

For online services, I recommend personal capital’s free tier. It is what Mint should have become.

I was in the same position last year, here's what I did:

- First month: Downloaded YNAB; every day or two, I logged into my bank accounts and check all transactions, added transactions to YNAB (creating budget categories as necessary). By the end of the month, I had a budget (a very bad budget).

- Second month: Review all expenses of previous month and create upper bounds for budget categories (groceries, gas, going out money, books, etc.), removing "unnecessary" expenses (mostly monthly subscriptions). Wrote scrapper for fetching bank transactions.

- Third month: Review last month budget and adjust accordantly.

And that's it. Just keep it simple.

I use ledger, along with a couple scripts I've wired up (if I hit Win-Shift-B I get a desktop notification with my current balances).

I actually appreciate the manual nature of it -- knowing I'll have to go to the ledger and enter something after making a purchase has cut down on stupid purchases.

The only thing I'm missing is a nice GUI summary with some pie charts. There's a couple on GitHub but they either aren't up to date or I can't get them to work like I expect. But I haven't looked too hard -- would appreciate a pointer if there is one.

An application that:

1) Aggregates transactions from my checking accounts and credit cards

2) Summarizes them into daily net cash inflow or outflow broken down by institution and account

3) Creates an all-day event in a private calendar in my google calendar account where for each day:

The event name is the net inflow or outflow (event color is red or green depending on net in floe or outflow.

The event body is text that shows institutions, accounts with their balances nested underneath, and transactions nested underneath the accounts.

I use a basic LibreOffice spreadsheet. There's a fair bit of manual inputting of the data but the advantages are that it takes care of all sorts of cases, from bank to cash transactions.

Importing bank transactions is easy. Regarding cash, one needs to keep a regular track - I do this by tracking them on my phone as a note or something and about once a week I'll enter in all the data into the spreadsheet.

I've been doing it for 8 years now and it's been amazing to see where the money goes and where we can cut down :)

I use ledger for my business and home accounts.

For the business it's OK as there are only a couple of transactions each month, nearly all my business is pushed through Avangate/2Checkout so there is just one invoice a month.

For my personal accounts it's rather unwieldy, I'm probably going to go switch to something desktop based.

I won't use a SaaS product for either, I've had my fingers burn't once on that already.

I started using gnucash again recently after a 10 year break. It has made some progress around ease of use and there is an android version of it now too. Still tedious though. I played with ledger and found it even more tedious.

Fava sure looks pretty, but I haven't tried it:


I have been using buxfer.com so far. What I really like about it is that I need to manually enter only cash transactions. I can link my bank accounts and it will automatically record all credit card & bank transactions - I only need to categorize them. However of late they have been unresponsive to support requests. I wonder if there is even anyone working on the product.

I keep it easy by using mint (also good to track your net worth), set different alerts on each category. I have automatic transfers to savings accounts (investments, IRA, HSA, safety net...).

For sharing expenses with my other half, we are using Vermo for large items (rent...), we're not tracking minor things. We discussed about a shared credit card for common expenses (groceries...).

I use excel. My goal is to find out my monthly costs of living and how much I spend on extras like holidays and repairs.

Recently I have greatly simplified the process. It helps to have a separate contactless card (eg Revolut), everything spent there goes into the monthly living costs column, I don't care about the details.

Spendee + Keep & always backing them up half-yearly. I would love to create something with markdown & https://github.com/remotestorage/remotestorage.js for storing user data.

There's simple Android app called Expenses (red circle, dollar bills with a yellow graph arrow). It's fairly fleshed out and allows for exporting to CSV. Been using it almost a year. I plan on analyzing my data from it once I have more.

I just use my credit card for all my purchases and then the bank already breaks it down by category. I'm not sure why I'd need a separate app and I don't want to give banking credentials to third-parties if I don't have to.

One bank account, one credit card.

Record all income and expenses on iOS Spendee app. Set monthly, weekly recurrent payments. It has been almost two years and has been working good so far.

After years of trying to find something that works for me I've finally found a stack that works. The big issue I had was that I wanted something that could import my bank statements. I found one of this issues here was that the bank transactions had no id's so I couldn't tag the duplicates. Then I found most banks allow you to export to ofx. This has ids and it has the balance at the end of the statement. So I could auto import and de-duplicate. I started to write my own thing but then I remembered something my boss taught me "Only write software as a last resort". Basically meaning most problems are already solved only write custom software if its really needed. So I looked around and found ledger autosync (I love this tool). Then I use hledger for my actual accounting. I rely heavily on automated transactions and virtual accounts to do an envelop style budget. But its been amazing. I've been thinking about documenting the work flow. If you are interested ask on this comment and I'll put something together.

Ledger likes are not for everyone. I'd actually say they not for most people, but I truly love the simplicity and flexibility. But I'd be using a text based email client if it wasn't for everyone sending html emails, so I'm a bit weird. That said having plain text files that you can manipulate is amazing. I don't know why but with Gnu-cash I was always unsure about using import tools and trashing my db. But with hledger I can try something and just roll back in mercurial if I don't like it. I'm sure I could have made copies of my Gnu-Cash files but I just feel more in control of hledger. Also hledger allows for things like automated transaction that simplify envelope budgeting.

With auto sync and hledger, I've gone from my budget taking 1 - 2 hours a week to 10 - 20mins. No more hunting for that one typo that meant my budget didn't balance with my bank balance.

Hledger has also been fantastic as far as help. I've jumped on IRC a few times for help and bug reports. The lead dev has been amazing. Fixing bugs the same day and offering help on using hledger.

There are some great resources here https://plaintextaccounting.org/

Auto sync is here https://github.com/egh/ledger-autosync Hledger is here http://hledger.org/ How to do envelope budgeting with ledger likes https://frdmtoplay.com/envelope-budgeting-with-ledger/

> Then I found most banks allow you to export to ofx. This has ids and it has the balance at the end of the statement.

Watch out with that. Unless you verify the output format yourself for a few months, don't trust the exported ofx files. I haven't seen one bug-free yet, but I've found: wrong values if memo contains numbers, bad date format (minutes used for month), missing IDs, duplicated IDs, IDs generated with every download, dates changing after processing, and some others.

I processed ofx files from a few banks and in the end reverted to CSVs. They're less broken...

Thanks for the warning.

I total up my accounts every month, put it in a spreadsheet.

I use Ledger encrypted with GPG commiting in my Github repo.

Why not just use a private repo?

If it is because it costs money, then bitbucket is your friend.

keep it simple. use mint.

This is basically offloading the record keeping to the bank. However, in an environment where the cash transaction is king, using this method has little value.

People still use cash? I don’t think I’ve made a cash purchase in the last 5 years.

I live in Germany and cash is still the preferred here. My small town near Cologne only started to adopt credit card about 6 years ago. When we arrive, the only shop that would take credit card was the petrol stations franchises.

Wow. Here in New Zealand we switched over to EFTPOS ( debit cards ) around 20 years ago. I was still in school when cash was becoming rare. Mid 30s now so cash seems odd to me.

People actually trust banking institutions with their complete purchase histories and spending habits?

Yes but maybe I’m lacking enough knowledge to be afraid of that. What can they do with that information?

Here is one very obvious use case.

Our spending habits are clearly shown. They could sell that information to marketers.

Ditto, Mint and Personal Finance is good enough.

something like expensify?

Applications are open for YC Summer 2019

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