I struggled for a long time managing my money. I had cycles where I decided I needed to organize my financial life, then download a software like MoneyLover (Android), and go over the last couple months of my statements to add every purchase to their categories. I would keep adding the expenses for a while, but always ended up stopping to use it.
This december I decided to give YNAB [1] a try.
I was skeptical at first, but now I'm a convert. They have a lot of material on how to budget in a very simple way. But I think the moment their system clicked for me was when I noticed I was using Categories "wrong". Let me give an example.
Say my wife and I go out for dinner and movies. Previously, my expenses would look like:
Transportation - $20
Cinema - $40
Restaurant - $60
The categories are directly tied to what was purchased. That made sense, but this is focusing on the wrong level IMHO. It's not what was purchased, but why? With YNAB, my expenses look like:
Date Night - $120
The important isn't where the money was spent, but the reason you spent it. Paying a taxi to go to work is different than paying a taxi to go on a date.
This seemingly simple difference changed the way I view my budget. The categories are meaningful for me, and not just the standard "Groceries", "Transportation", "Rent", etc.
I have been using it just for one month, but I love it! I highly recommend you to give it a try.
YNAB is amazing but the monthly fee is a bit much, since it's forever. Personally I use YNAB4 which is a standalone app and I don't use the cloud services, so it was a "pay once" app.
For those interested in an alternative that works in a similar manner, there's Buckets ( https://www.budgetwithbuckets.com/ ) which is also "pay once" and even offers an unlimited trial period.
I’m a big fan of https://www.ledger-cli.org . All my personal finances are tracked in plaintext, in a git repo, using ledger.
That said, making that viable has involved a slowly-evolving ecosystem of supporting tools. For example, I wrote a set of libraries that leverage the free Plaid tier ( https://plaid.com/ ) to automatically fetch bank and credit card transactions, and apply them to the ledger journal. I also wrote a script that takes a schedule and projects out future transactions to the journal, so I can define recurring transactions and view their impact on accounts projected into the future.
The combination of this means that viewing my current reality is easy, and viewing the impact of known future expenses (largely recurring bills/obligations) is easy. That’s been the single largest factor in enabling my long-term money management, because it’s given me confidence in the numbers, which has let me tune things like automatic 401k payments and automatic transfers to savings. I can move the maximum amount of money into long-term-storage because I always have a clear picture of “how much money do I need to keep out to account for my bills/expenses”
(Sorry in advance, this got way longer than I expected)
Yup. Other than the actual journal files, my full set of scripts is on GitHub. The documentation isn’t necessarily stellar, and there’s some sprawl due to the organic nature of the scripts, but I’ll try to call out the interesting pieces:
For starters, I have a relatively lightweight Ruby library for interacting with Ledger journal entries: http://github.com/akerl/libledger . Definitely doesn’t support the full ledger entry spec, I’ve basically expanded it as-necessary to be used by the following 2 tools.
Ballista ( https://github.com/akerl/ballista ) handles future projections. It consumes a YAML description of recurring expenses (shown in the readme) and can project them as ledger transactions. My projection YAML has recurring bills.
Burglar ( https://github.com/akerl/burglar ) handles posted transactions on my bank accounts. The docs are slightly out of date but correct-in-spirit; it now supports a “Plaid” module instead of the older Ally/Amex modules, and given that Plaid has support for all my banks, I use that module for 100% of the transaction parsing, with this config file: https://gist.github.com/akerl/ce93d9584f6cf2fd2948eed6fe93cb... . The creds get stored separately. Burglar, based on that config, fetches all transactions for my credit/checking/savings accounts.
Both those tools can technically work alone, but they’re limited by not knowing how somebody’s particular ledger journals are set up. I store mine as one-file-per-month, one-directory-per-year, and I’ve written a little script that uses Ballista and Burglar and applies them to my journals ( https://github.com/akerl/ledgerhelpers/blob/master/ldgprojec... ). It basically takes all the already-posted content in the journals, the posted content burglar returns, and the projected content ballista generates, and sorts them out into the appropriate files.
My rough process for using this is pretty straightforward. I run ldgproject and check the git diff to see what it’s changed. Burglar uses Ledger’s built-in “xact” function to try to guess the correct expense category for transactions (for example, it knows that Starbucks for me is Expenses:Food:fastsolo and Hilton is Expenses:Travel:hotel), but I generally scroll through and correct a couple it’s gotten wrong. I also have to manually merge transactions that touch multiple accounts. For example, when I pay a credit card, the credit card payment appears on my checking and credit accounts. I have to merge the transaction_id fields onto a single transaction. I’ve considered making it smarter about IDing these kinds of transfer transactions, but it hasn’t yet bothered me enough to cause me to dig in and do it. There are also some specific transactions that I fix to be more specific than the Burglar estimation (mostly, this is my paychecks, which I break out to account for tax withholding and other pre-tax bits).
`prj` gives me “what’s all my credit card usage mapped against my personal checking account”, which basically amounts to “not including bills and my automatic savings, am I overspending on other stuff”.
`bills` gives me “how’s the account where all my bills get auto-paid from looking”
`freg` is a generic helper for forward-projection of “what does this account look like, now and in the past/future”
`bal` shows a balance report for $right_now
`aj` is a helper to open the active journal (this month’s)
Beyond that, if you’re new to the ledger CLI, I highly recommend https://devhints.io/ledger as a great quick-reference. The actual upstream docs at https://www.ledger-cli.org/3.0/doc/ledger3.html are comprehensive, but if you need to find something, take a moment to skim the introduction to make sure you understand how ledger uses various terms like account/transaction/payee/etc, since it will make searching the page much saner.
If you’re still not bored, I also have a slightly outdated blog post on using the ledger files to calculate US tax liability, by taking advantage of the aforementioned splitting of paycheck transactions into net income / tax withholding / etc: https://blog.akerl.org/2016/04/27/code-and-taxes-totally-exc...
I minored in management, one of the simple but big ideas I came away with was that notion of optimizing for "cash flow" (i.e. income minus expenses) can sometimes be more important than profit alone, ie staying cash-flow positive (not underwater) every month as opposed to just at year end.
Turns out this idea is pretty powerful in personal budgeting too. I have a Google Sheets document with these columns (item + months):
Item|1|2|3|4..|11|12|Year
And I split the item categories into Income, Expenses, and Once-off expenses. I put all my recurring inflows into income, recurring outflows into Expenses, and Once-offs is a free form where I enter non-recurring purchases like a new computer or such.
On top of each month column I carry over the previous month's net income, then add income minus expenses minus once-off expenses. This is "cash flow". The goal is to aim to be cash-flow positive every month, and also to maximize the year-end net income -- which then gets invested or carried over to next year.
It then becomes a game to try to optimize the year end net income by doing course corrections every month, while maintaining a non-negative monthly net income.
(incidentally this is also how many businesses are run; well the conservative ones anyway)
I've used MS Money and their "cash flow forecast" for just this style of budgeting for close to 20 years now. The software was discontinued 5 years ago. No app since has had as good a cash flow forecast. I admit it's a crutch at this point. So I'm going to have to build my own replacement.
I've got something similar driven by a data entry sheet where I put transactions. The monthly columns populate by sumifs()'ing off of that sheet.
I just started my third calendar year of this system on January 1st. It's working out pretty well. I like it more than an off the shelf budget app because I can customize it however I want. I use to keep track of other things like the last time I vacuumed my apartment.
Nice. Yes, I handrolled my spreadsheet because I knew exactly how to create the tightest possible effective interface for my use patterns, but I know a lot of my friends struggle to do that so they buy financial software. To each their own I say. I will say the major advantage of spreadsheets is they let you easily run what-if scenarios and see the results update live, which really helps you to visualize if you can better afford a new car in July or October (same spend, different cash flow scenarios).
My inspiration is actually not from accounting or finance, but a simple mass balance equation:
In - Out = Accumulation
Just keep the accumulation positive every month (constraint), and maximize it at year end (objective function).
Also I don't track spend below a certain dollar value. I know people like transaction-level granularity (every chocolate bar, every cup of coffee), but me, I just set aside a monthly buffer for incidentals and forget about it.
Some financial journalists make a big deal of how much you can save by not buying that cup of $2.75 Starbucks coffee every morning, but at my income level it's a rounding error not worth sweating over -- I'd rather focus my time increasing my topline growth i.e. learn and grow into positions with more responsibilities.
(But I also get free coffee at work so there's that :)
First track your expenses. Put them into categories. Trim if necessary. Then budget. Save at least 10% of your income. Better if it’s 25%.
Categories would be housing(includes utilities), transport, food, children(or pets or parents or ‘others’, if any), fun, medical/emergency(if not covered), taxes and insurance, savings.
You will see that some are fixed and some can be variable. You can only trim those that are variable.
Automatic transfers for the fixed and recurring expenses.(these can have a fixed ceiling. Like for utilities or gas etc).
For the variables like food and fun, assign different credit cards to them. That way you can track exactly how much you spend on food and when you change your behavior, you can figure out if it’s working for you and even make changes in the short term.
I have a wonderful partner who takes care a lot of the budgeting/payments etc. I make 2/3 of the household income and I let her have free reign to save/pay things as I personally have a hard time saving money.
What I notice she does is some sort of 'envelope' method, where she has many envelopes, and for every bill she puts the amount needed, in cash, in the envelope. This way you know you have all your bills paid and anything left in your accounts you can use to invest or have fun with. When it comes time to pay a bill, you can either pay it with the cash, deposit it into your account and write a check or put it in before you pay online/phone or however you pay your bills.
She can re-use the same envelope for each month on reoccurring bills, and have some for special events/budgets or a vacation fund envelope. Birthday funds, Christmas etc.
I think physically seeing the bill money separated out of the accounts really helps you know how much left over you have every month to play with.
https://www.tillerhq.com/
It's basically an addon for google sheets and excel online that imports transactions into some premade templates. It's paid, but directly gives you the power of sheets.
I have seen some suggestions but I haven't been able to find an app supporting the following, if anyone knows one app, please share:
- Works on the phone and on the computer.
- The data can be synced to a server which stores it encrypted by your password.
- Cheap or single payment.
While some comments are suggesting YNAB and it looks great, $12 is a bit expensive for a personal budget app, also, they encrypt their data on their servers instead of encrypting it with our password before uploading the data.
budgetwithbuckets.com also looks promising, I like the unlimited free trial and it's single payment model, but it doesn't have mobile apps, which makes not much difference than storing the data on excel.
As already mentioned by toomuchtodo, YNAB (You Need a Budget)[0] is fantastic. It's been my go-to for a few years, since before they released the web version. It's paid, but to me it's worth it for direct importing of transactions from my accounts.
There are, of course, a few free options that do a lot of the same things, but YNAB has been working for me for a long time and is well worth the money.
I don’t track my budget as much as I track my general spending. I use chase for check/credit card, which lets you set up alerts whenever you purchase something above a certain amount (set it to 0 to get emailed for everything), and a daily email giving your current account value (check account has this amount, credit card has this much charged to it). My goal is to keep the credit card under a certain amount per month, and at least keep me cognizant of how much I’m spending total.
I thought YNAB was nice when I used it. However not everyone feels comfortable entering bank credentials on a third party website. Also, not everyone wants to spend their time maintaining a stateful database. In my view historical transactions should be immutable, it's the interpretation of the data that I should be fiddling with by hand. I had some spare time so started working on my ideal budgeting tool that is more like a pipeline, that fetches the relevant account data, applies some scriptable transformations, then outputs a static website with charts & spending breakdown. Besides the architecture, the most important feature to me is that with some prodding it's capable of stitching together account statements into something more like a graph representation where there are no negative transfers, only movements from one named account to another. That allows for a more realistic birds-eye view of what's going on than one would get by viewing any account in isolation.
The project isn't quite where I want it to be, but it's getting close. The next thing to improve is support for banks that only allow users to download an N month window of transactions. Probably I will save each download to a timestamped file then merge them in-memory before the next stage in the pipeline. The source code for all of this is here: github.com/tmerr/bank_wrangler. I don't expect it to be useful for anyone else verbatim but it might give you some ideas or something to fork from. Disclaimer: banks might not be happy about web scraping / using undocumented APIs, so don't mindlessly fetch data without understanding that risk.
I automate all my finances. All of my bills are on autopay, percentages of my paycheck automatically go into investments. It's really important to pay yourself first, so by automating it, I take out the cognitive load. I don't have time, patience, or determination to spend tons of time filling out spreadsheets. I literally spent a few hours setting up autopay and auto-deposit. What's left out of my paycheck is more or less disposable income, though I don't spend nearly that much on a normal month, so it goes into savings.
Maybe once a month or a quarter, I'll look at my savings and redistribute to investments or splurge on something nice.
All of that said, I really don't spend a lot of money. My biggest expense is that I buy lunch 5 days a week. I don't buy a lot of other things... so I guess this works for me.
If you want to know more about how all of this works, I recommend "I Will Teach You To Be Rich" by Ramit Sethi. It's pretty easy to read and walks you through all of the above. Worth more than it's $10 or whatever.
I've been using Mint since the beginning and it has made the single biggest impact in my finances. Being able to see spending trends, areas I'm wasting, and diverting funds to other areas that need it. I'm religious about correctly categorizing every purchase, and maximizing budgets monthly.Monumental for me.
I make a spreadsheet called 'Budget YYYY', typically some time between October and December I make the next year's version, and then these for each month.
The control panel tracks income, where it goes, what was budgeted and what was actually spent.
The Credit Card Balance sheets I use twice a month to get all balances, prompt me to review all statements, and mark all of that off. It’s self-contained and doesn’t impact the rest of the budget.
Income this period gets money added in when I get it.
For spending, I track a couple of categories:
- Yearly / Bi-Annual Bills: Anything that happens not monthly. Domain registrations, car insurance, etc.
- Variable recurring bills: things that I have to pay, but don’t know how much they will be. Electric bill, water bill, etc. I rough-estimate these, and the longer I’ve lived at a place the more accurate I get.
- Static Recurring Bills: Things that are the same every month. Rent, subscription services,
- Grocery Expenses: Anything related to grocery shopping for food / household supplies.
- Restaurants: I explicitly break restaurants out into its own category to better let me see how much money I spend eating out, this is new this year.
- Travel Expenses: When I travel for work, I track things here, and then track the reimbursement.
- Other: Random spending money.
Then for savings I have boxes for:
Savings Account Deposits: I keep a number of savings account set aside for specific purposes, I record deposits into them here.
Savings Account Withdrawls: If I’m using extra money this month for something, I add it as income, and then debt it as a savings account withdrawl. For example, Christmas I made a withdrawal for money from savings, then added it as income, then recording the items bought under “Other”.
Had been using PocketMoney on Palm and iPhone for about 20 years, but the new developer just released a “new version” which is actually copied from another app and bears no resemblance to the original. It was a complete hostile takeover of the user-base for the app (Does this violate and Apple rules? How do you report this type of thing?).
Thinking of giving up and just using GnuCash on desktop now.
PocketSmith holds my personal budget. It takes some getting used to and dedicated time to learn, but it’s been well worth it to me. YNAB was too simplistic for my needs, however it may be just the right fit for someone else.
If you spend frivolously, I agree. Otherwise, credit cards can be a good tool in building a payment history. I am in my mid-30s and have almost no credit history due to paying for everything in cash. While the credit score itself is not bad, my payment history is so limited that lenders appear to consider it a slight gamble.
This december I decided to give YNAB [1] a try.
I was skeptical at first, but now I'm a convert. They have a lot of material on how to budget in a very simple way. But I think the moment their system clicked for me was when I noticed I was using Categories "wrong". Let me give an example.
Say my wife and I go out for dinner and movies. Previously, my expenses would look like:
Transportation - $20
Cinema - $40
Restaurant - $60
The categories are directly tied to what was purchased. That made sense, but this is focusing on the wrong level IMHO. It's not what was purchased, but why? With YNAB, my expenses look like:
Date Night - $120
The important isn't where the money was spent, but the reason you spent it. Paying a taxi to go to work is different than paying a taxi to go on a date.
This seemingly simple difference changed the way I view my budget. The categories are meaningful for me, and not just the standard "Groceries", "Transportation", "Rent", etc.
I have been using it just for one month, but I love it! I highly recommend you to give it a try.
[1] https://youneedabudget.com