One thing leads to another. I screwed up my 2007 tax return and got audited (not a big scary one, just a "fix this or pay us" notice), which motivated me to go overboard and learn everything there is about taxes, as they relate to my finances.
As as side note, I really appreciate it when people suggest things to learn about or read, as they relate to my posts. I can't think of the others offhand, but I know there have been a few other big ones.
I spent a few days, and I mean sixteen hours a day, learning everything I could about bookkeeping and accounting. For the first time ever I can understand every weird accounting term, and have balance sheets mean something intuitive to me.
Today I'm going to show you the steps I took to set up an awesome personal finance system, and how you can replicate them.
What's the point?
I had made a few halfhearted attempts in years past to convert to things like Quicken or Mint.com. Usually I lasted one day and realized it was pointless. The biggest issue was that I have very erratic spending. Some months I'll spend nothing, and then the next I'll buy $2000 of airplane tickets for the next six months. So one month I'd look like a financial genius, and the next it would look I'd lost a ton of money.
This system solves that problem, along with a host of others. In the meantime, it confers a lot of benefits.
- You will know your net worth to the PENNY.
- You will understand how every transaction and trend affects others.
- You will have a very clear system of tracking how much money you're owed and how much you owe others.
- When tax time comes around you will pay the absolute minimum necessary because you will have perfect records to make smart decisions.
- You will understand how much money it's actually costing you to live every month, which is different from how much you're SPENDING every month.
This isn't some genius system I've invented, or even something I've put together myself. It's simply using good software, generally accepted accounting practices (GAAP), and a business-minded approach to personal finance.
The two key pieces of it are "double entry bookkeeping" and "accrual based accounting".
Double Entry Bookkeeping
When I first heard the name, I immediately assumed that it would be a waste of my time. I want to do my finances quickly, not enter them in twice. As it turns out, double entry bookkeeping is very quick and serves a major purpose.
Every transaction you make affects TWO accounts, not one. If you buy a meal, that's really a transfer from your credit card account to your meal expenses. When you sell your car you are actually transferring money from one asset, your car, to another, your bank account.
This sounds confusing at first, but once you get the hang of it, it's very simple and intuitive. The major benefit of this system is that things always balance out.
Assets = Liabilities + Owner Equity + Income - Expenses
This will always be true. Owner equity is more appropriate in a business setting, but you can think of it as money you started out with before you started tracking your finances.
Let's assume for an example that Owner Equity is zero because I've tracked my finances perfectly since I was born.
If I have $3,000 in the bank (Assets) and owe $5,000 on my credit card (Liabilities), and earned $2000 at my job (Income), then I KNOW my Expenses must be $4000.
Every dollar has been accounted for it two places, as a credit in one and a debit in another.
(technical note: debit and credit don't mean what you think they mean, so if you come up with scenarios like assets and income both increasing when someone pays you for work, that's only because debits and credits have specific accounting meanings which you will learn in the tutorial I link to.)
Let's say I pay $3000 towards my credit card bill. Here's how it would look in double entry accounting:
This transaction would show up if I looked at my ledger for my checking account or my credit card account. Nice, right?
Because things always balance out, it's very easy to spot mistakes, and very difficult to get lazy and not properly describe transactions.
I've done a terrible job of explaining double entry accounting, but I think that's mostly because you have to learn it to appreciate it. Luckily an accountant has made an absolutely stellar tutorial. Go through that and you will really understand why it's so important to use double entry.
There are two ways that you can account: on a cash basis or on an accrual basis. I'd heard about this before, because the IRS always asks which way you're accounting.
The difference is this: cash accounting recognizes transactions when the money is received or paid, accrual accounting recognizes transactions when they are earned.
Let's say there's a play I want to see next month. I buy a ticket for $50 now, so that I can get good seats. How do I account for the $50?
If I'm using cash based accounting, I enter it as a transaction for today. If I'm using accrual based accounting I enter it as a transaction for the day the play shows.
Which one is right?
Well, cash would seem to be better initially. I paid for it today, so why shouldn't it be accounted for today? The main reason is because it is actually an expense incurred the following month.
If I go through my monthly expenses it might seem like I spent a lot of money on entertainment this month, even though I stayed at home. Meanwhile, it may seem like I was really frugal the following month, even though I went to see a play.
Using accrual accounting gives you a much more accurate picture of what your "cost of living" is per month.
Here's an even better real life example: I pay $375 per year to rent a server to host my web sites. This charge is put through every March. If I used cash based accounting, this would make March look like a less profitable month than the rest.
But if I'm using accrual, how do I charge the $375?
I use an intermediate account. In my accounting software I set up a "Hosting Credit" asset. When the $375 is billed I add it to my American Express liability account and to the Hosting Credit account. Now my credit card ledger is accurate, and my net assets also reflect the $375 in services I'll receive. I set up an automatic $31.25 transfer from Hosting Credit to Hosting Expenses every month, and now my expenses are accurate; they show the actual cost of hosting every month.
I also do this for plane tickets. I have a "future travel" asset account. In the case of the play, you could have "future entertainment", or just a miscellaneous future assets account.
Income works the same way. I write articles for Gadling, which they schedule for publication as they see fit, and then they pay me later on. If I used cash based accounting, it wouldn't actually reflect how productive I was. Payments would be lagged a month or so in advance. If I stopped writing, I would still be reporting income from them a month later.
The correct way to do it is to set up a "Accounts Payable" asset. Every time I write an article, I make an increase (debit) to Accounts Payable and an increase (credit) to Income:Gadling (the colon means that Gadling is a sub asset, just for organization).
Then when they pay me I transfer money in my ledger from accounts payable to my bank account. Again, balances and dates are both accurate.
One last example is splitting costs with friends. If someone owes me money, I will record it as an asset under their name, as well as a decrease in my cash account. Then when they pay me back I mark it as an increase in my cash account and a decrease in the amount they owe asset.
If any of this is confusing, it's just because you haven't started playing with the software. Once you start making accounts and transactions it becomes very obvious how it all works. The tutorial mentioned above also helps quite a bit.
Back in the 13th century, when double entry accounting was invented, I'm sure they recorded it on yak hides or stone tablets. These days we can use amazing software to do it.
I have spent a lot of time researching this, and to my knowledge there are only two true double entry software systems. Other systems, like Quickbooks, are based on double entry, but they hide it from the user. I tried Quickbooks and hated it.
My favorite option is Moneydance. It's the dumbest name ever, but It's essentially perfect software. The ONLY thing I don't like about it is that it doesn't use "debit" and "credit" labels, but instead uses "increase" and "decrease". You'll understand why if you do the tutorial.
Here are a couple screenshots from my own books to give you an idea of what it's like.
- I blacked out a bunch of stuff. I don't really care if people know how much money I have, but it also seems like a mistake to share it for some reason. I've tried to keep a lot of it there to give real life examples.
- The only reason I have an Ameritrade account is because they had a promotion. As I've written about before, all of my money is in Berkshire.
- Accounts receivable is money owed to me. The blacked out bar is someone's name.
- Notice under "Cash In Wallet" it says USD. When I get Dominican Pesos next month in DR, I will have a separate asset for those. Moneydance can connect to the internet and get current exchange rates. So if I had 70 DOP and my 85.75 USD in my wallet, it would show 87.75 in "Cash in Wallet", because 35 DOP = 1 USD. Pretty cool.
- It also gets stock prices dynamically. I've blacked out my shares and total for Berkshire Hathaway, but the total changes as the stock price changes. It's weird to see one's net worth fluctuate so much.
- Moneydance can connect to SOME online banks and get transactions. The transaction importer works VERY well. In a few hours I imported and manually labeled all of my transactions for all of 2009, including complicated things like money owed, splitting train tickets between two people, etc.
- From banks it can't connect to online, it can import the Quicken files that most of them will export.
- Back on the left under Intermediate, you can see things like my balance at Callwithus, future travel, and my hosting credit. If you look on the calendar on the top right, you can see that tomorrow it will transfer from the hosting credit asset to hosting expenses.
- My RV is a fixed asset because it's worth a lot relative to my net worth, and if I track it I can mark depreciation every year to match its market value. This gives me a more accurate picture of my net worth.
- I blurred things in this one instead of blacking them out. Just my travel dates to keep things surprising and discourage stalking.
- The yellow entries are future entries. They don't affect balances on the front page. The last three are the same because I'm splitting the $610 ticket from above over the three legs. One flight is May, one is June, and one is July. Instead of being accounted in March, when none of them are, costs will be distributed over the correct months.
- Why is my balance $45.54 at the bottom? It should be zero because I've flown all of the flights I've paid for. The reason is because TRAVELOCITY OVERCHARGED ME! My receipt from them shows $271.79, but my Amex charge was much higher. Good thing I'm tracking this...
- When they correct their error I will make a transaction that decreases my Amex liability and decreases my Future Travel asset. If they don't correct their error, I will kill them.
- The search bar at the top is usually wider but I scrunched up the page to take a screenshot. The search is awesome,on the fly and instant.
Another great piece of software is GnuCash. It's a bit less user friendly, but a little more hardcore (it has the option to properly label credit and debit). I used it at first, but switched because I liked the autocomplete and online features of Moneydance.
I also prefer the way Moneydance handles special assets and liabilities, like bank accounts, credit cards, and investment accounts. In particular, it allows your investment account to have a cash component. I'm slightly on margin right now, so if I hadn't blacked mine out, you would see a negative balance there. Once I put more money in, it will go back to positive.
One thing I miss about GnuCash is that it allows you to fully edit each transaction in both ledgers that it appears in. Moneydance will only let you change the memo field in the ledger it was originally entered on .
You'll be happy with either program. GnuCash is totally free and open source (if you notice that the splash screen is terrible, don't worry! It annoyed me so much that I made them a new one which will be included in the next release). Moneydance costs $40, and is worth it to me. Speaking of which... I forgot to enter that payment in the ledger!
Both pieces of software work on Windows, Mac, and Linux. If you have any questions, leave them in the comments and I'll do my best to help.