Comprehensive tutorial on double-entry personal finance?
I had to implement a simplistic double-entry accounting system, and compiled a list of resources. Some of them are more helpful than others, but I'll share them all with you. Hope this helps! Simplifying accounting principles for computer scientists: http://martin.kleppmann.com/2011/03/07/accounting-for-computer-scientists.html See this excellent article on how Debits and Credits work: http://accountinginfo.com/study/je/je-01.htm See this article for an example Chart of Accounts with lots of helpful descriptions: http://www.netmba.com/accounting/fin/accounts/chart/ Excellent PDF by Martin Fowler on Accounting Patterns using an event-drive system: http://www.martinfowler.com/apsupp/accounting.pdf Additional useful resources by Martin Fowler: http://martinfowler.com/articles.html#ap Ideas on using Domain-Driven-Design (DDD): https://stackoverflow.com/questions/5482929/how-to-use-object-oriented-programming-with-hibernate Double Entry Accounting in Relational Databases: http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html Double Entry Accounting in Rails: http://www.cuppadev.co.uk/dev/double-entry-accounting-in-rails/ Joda-Money: http://joda-money.sourceforge.net/ Joda-Money Notes: http://joda-money.svn.sourceforge.net/viewvc/joda-money/JodaMoney/trunk/Notes.txt?revision=75&view=markup Blog entry with good comments: http://www.jroller.com/scolebourne/entry/joda_money Related Blog Entry: http://www.jroller.com/scolebourne/entry/serialization_shared_delegates JMoney: http://jmoney.sourceforge.net/wiki/index.php/Main_Page JMoney QIF Plugin: http://jmoney.sourceforge.net/wiki/index.php/Qif_plug-in Ledger on GitHub: https://github.com/jwiegley/ledger/tree/master/src/ Implementing Money class in Java: http://www.objectivelogic.com/resources/Java%20and%20Monetary%20Data/Java%20and%20Monetary%20Data.pdf  Martin Fowler's implementation in Patterns of Enterprise Application Architecture page 489, View partial content in Google Books: http://books.google.com/books?id=FyWZt5DdvFkC&printsec=frontcover&dq=Patterns+of+Enterprise+Application+Architecture&source=bl&ots=eEFp4xYydA&sig=96x5ER64m5ryiLnWOgGMKgAsDnw&hl=en&ei=Kr_wTP6UFJCynweEpajyCg&sa=X&oi=book_result&ct=result&resnum=7&ved=0CEQQ6AEwBg#v=onepage&q&f=false XML based API for an accounting service, might get some ideas from it: http://www.objacct.com/Platform.aspx The GnuCash tutorial has some basics on double entry accounting:  http://www.gnucash.org/docs/v1.8/C/gnucash-guide/basics_accounting1.html#basics_accountingdouble2 I found this book to be pretty decent: It is a workbook, and full of little exercises.
"So you are off to a really good start.  Congratulations on being debt free and having a nice income. Being an IT contractor can be financially rewarding, but also have some risks to it much like investing.  With your disposable income I would not shy away from investing in further training through sites like PluralSite or CodeSchool to improve weak skills.  They are not terribly expensive for a person in your situation.  If you were loaded down with debt and payments, the story would be different. Having an emergency fund will help you be a good IT contractor as it adds stability to your life.  I would keep  £10K or so in a boring savings account.  Think of it not as an investment, but as insurance against life's woes.  Having such a fund allows you to go after a high paying job you might fail at, or invest with impunity.   I would encourage you to take an intermediary step:  Moving out on your own.  I would encourage renting before buying even if it is just a room in someone else's home.  I would try to be out of the house in less than 3 months.  Being on your own helps you mature in ways that can only be accomplished by being on your own.  It will also reduce the culture shock of buying your own home or entering into an adult relationship. I would put a minimum of £300/month in growth stock mutual funds.  Keeping this around 15% of your income is a good metric.  If available you may want to put this in tax favored retirement accounts.  (Sorry but I am woefully ignorant of UK retirement savings).  This becomes your retire at 60 fund.  (Starting now, you can retire well before 68.)  For now stick to an index fund, and once it gets to 25K, you may want to look to diversify. For the rest of your disposable income I'd invest in something safe and secure.  The amount of your disposable income will change, presumably, as you will have additional expenses for rent and food.  This will become your buy a house fund.  This is something that should be safe and secure.  Something like a bond fund, money market, dividend producing stocks, or preferred stocks.   I am currently doing something like this and have 50% in a savings account, 25% in a ""Blue chip index fund"", and 25% in a preferred stock fund.  This way you have some decent stability of principle while also having some ability to grow.   Once you have that built up to about 12K and you feel comfortable you can start shopping for a house.  You may want to be at the high end of your area, so you should try and save at least 10%; or, you may want to be really weird and save the whole thing and buy your house for cash.  If you are still single you may want to rent a room or two so your home can generate income.   Here in the US there can be other ways to generate income from your property.  One example is a home that has a separate area (and room) to park a boat.  A boat owner will pay some decent money to have a place to park their boat and there is very little impact to the owner.  Be creative and perhaps find a way where a potential property could also produce income. Good luck, check back in with progress and further questions! Edit:  After some reading, ISA seem like a really good deal." Aswath Damodaran's [Investment Valuation 3rd edition](http://www.amazon.com/Investment-Valuation-Techniques-Determining-University/dp/1118130731/ref=sr_1_12?ie=UTF8&amp;qid=1339995852&amp;sr=8-12&amp;keywords=aswath+damodaran) (or save money and go with a used copy of the [2nd edition](http://www.amazon.com/gp/offer-listing/0471414905/ref=dp_olp_used?ie=UTF8&amp;condition=used))  He's a professor at Stern School of Business. His [website](http://pages.stern.nyu.edu/~adamodar/) and [blog](http://aswathdamodaran.blogspot.com/) are good resources as well. [Here is his support page](http://pages.stern.nyu.edu/~adamodar/New_Home_Page/Inv3ed.htm) for his Investment Valuation text. It includes chapter summaries, slides, ect. If you're interested in buying the text you can get an idea of what's in it by checking that site out. For double entry bookkeeping, personal or small business, GnuCash is very good. Exists for Mac Os. "Remember where they said ""Life, liberty and the pursuit of happiness?  That is the essence of this problem.  You have freedom including freedom to mess up.  On the practical side, it's a matter of structuring your money so it's not available to you for impulse buying, and make it automatic.   Have you fully funded your key necessities?  You should have an 8-month emergency fund in reserve, in a different savings account.  Are you fully maxing out your 401K, 403B, Roth IRA and the like?  This single act is so powerful that you're crazy not to - every $1 you save will multiply to $10-100 in retirement.  I know a guy who tours the country in an RV with pop-outs and tows a Jeep.  He was career Air Force, so clearly not a millionaire; he saved. Money seems so trite to the young, but Seriously. THIS. Have auto-deposits into savings or an investment account. Carry a credit card you are reluctant to use for impulse buys.  Make your weekly ATM withdrawal for a fixed amount of cash, and spend only that.  When your $100 has to make it through Friday, you think twice about that impulse buy.  What about online purchases? Those are a nightmare to manage.  If you spend $40 online, reduce your ATM cash withdrawal by $40 the next week, is the best I can think of.  Keep in mind, many of these systems are designed to be hard to resist.  That's what 1-click ordering is about; they want you to not think about the bill.  That's what the ""discount codes"" are about; those are a fake artifice.  Actually they have marked up the regular price so they are only ""discounting"" to the fair price.  You gotta see the scam, unsubscribe and/or tune out.  They are preying on you.  Get angry about that!  Very good people to follow regularly are Suze Orman or Dave Ramsey, depending on your tastes.  As for the ontological... freedom is a hard problem.  Once food and shelter needs are met, then what?  How does a free person deny his own freedom to structure his activities for a loftier goal?  Sadly, most people pitching solutions are scammers - churches, gurus, etc. - after your money or your mind. So anyone who is making an effort to get seen by you and promise to help you is probably not a good guy.  Though, Napoleon Hill managed to pry some remarkable knowledge from Andrew Carnegie in his book ""Think and Grow Rich"". Tony Robbins is brilliant, but he lets his staff sell expensive seminars and kit, which make him look like just another shyster.  Don't buy that stuff, you don't need it and he doesn't need you to buy it." Start at Investopedia. Get basic clarification on all financial terms and in some cases in detail. But get a book. One recommendation would be Hull. It is a basic book, but quite informative. Likewise you can get loads of material targeted at programmers. Wilmott's Forum is a fine place to find coders as well as finance guys. "There's plenty of advice out there about how to set up a budget or track your expenses or ""pay yourself first"". This is all great advice but sometimes the hardest part is just getting in the right frugal mindset. Here's a couple tricks on how I did it.  Put yourself through a ""budget fire drill"" If you've never set a budget for yourself, you don't necessarily need to do that here... just live as though you had lost your job and savings through some imaginary catastrophe and live on the bare minimum for at least a month. Treat every dollar as though you only had a few left. Clip coupons, stop dining out, eat rice and beans, bike or car pool to work... whatever means possible to cut costs. If you're really into it, you can cancel your cable/Netflix/wine of the month bills and see how much you really miss them. This exercise will get you used to resisting impulse buys and train you to live through an actual financial disaster. There's also a bit of a game element here in that you can shoot for a ""high score""... the difference between the monthly expenditures for your fire drill and the previous month.   Understand the power of compound interest. Sit down with Excel and run some numbers for how your net worth will change long term if you saved more and paid down debt sooner. It will give you some realistic sense of the power of compound interest in terms that relate to your specific situation. Start simple... pick your top 10 recent non-essential purchases and calculate how much that would be worth if you had invested that money in the stock market earning 8% over the next thirty years. Then visualize your present self sneaking up to your future self and stealing that much money right out of your own wallet.  When I did that, it really resonated with me and made me think about how every dollar I spent on something non-essential was a kick to the crotch of poor old future me." Investopedia does have tutorials about investments in different asset classes. Have you read them ? If you had heard of CFA, you can read their material if you can get hold of it or register for CFA. Their material is quite extensive and primarily designed for newbies.  This  is one helluva book and advice coming from persons who have showed and proved their tricks. And the good part is loads of advice in one single volume. And what they would suggest is probably opposite of what you would be doing in a hedge fund. And you can always trust google to fish out resources at the click of a button. I spent a while looking for something similar a few weeks back and ended up getting frustrated and asking to borrow a friend's Bloombterg.   I wish you the best of luck finding something,  but I wasn't able to.   S&amp;P and Morningstar have some stuff on their site,  but I wasn't able to make use of it.  Edit: Also,  Bloomberg allows shared terminals.  Depending on how much you think as a firm,  these questions might come up,  it might be worth the 20k / year "The statement ""Finance is something all adults need to deal with but almost nobody learns in school."" hurts me. However I have to disagree, as a finance student, I feel like everyone around me is sound in finance and competition in the finance market is so stiff that I have a hard time even finding a paid internship right now. I think its all about perspective from your circumstances, but back to the question. Personally, I feel that there is no one-size-fits-all financial planning rules. It is very subjective and is absolutely up to an individual regarding his financial goals.  The number 1 rule I have of my own is - Do not ever spend what I do not have. Your reflected point is ""Always pay off your credit card at the end of each month."", to which I ask, why not spend out of your savings? plan your grocery monies, necessary monthly expenditures, before spending on your ""wants"" should you have any leftovers. That way, you would not even have to pay credit every month because you don't owe any. Secondly, when you can get the above in check, then you start thinking about saving for the rainy days (i.e. Emergency fund). This is absolutely according to each individual's circumstance and could be regarded as say - 6 months * monthly income. Start saving a portion of your monthly income until you have set up a strong emergency fund you think you will require. After you have done than, and only after, should you start thinking about investments. Personally, health > wealth any time you ask. I always advise my friends/family to secure a minimum health insurance before venturing into investments for returns. You can choose not to and start investing straight away, but should any adverse health conditions hit you, all your returns would be wiped out into paying for treatments unless you are earning disgusting amounts in investment returns. This risk increases when you are handling the bills of your family. When you stick your money into an index ETF, the most powerful tool as a retail investor would be dollar-cost-averaging and I strongly recommend you read up on it. Also, because I am not from the western part of the world, I do not have the cultural mindset that I have to move out and get into a world of debt to live on my own when I reached 18. I have to say I could not be more glad that the culture does not exist in Asian countries. I find that there is absolutely nothing wrong with living with your parents and I still am at age 24. The pressure that culture puts on teenagers is uncalled for and there are no obvious benefits to it, only unmanageable mortgage/rent payments arise from it with the entry level pay that a normal 18 year old could get." Not sure why you're posting in r/finance; did you meant to post in /r/PersonalFinances ? Or /r/financialindependence ?  Anyway, I'll play.  There are 3 ways you can go about it, make it 4:  1. Commercial: find yourself a job/career that you'd do it for free.  I once met a guy who was in your similar situation and he had a hot dog stand in the hearth of the financial district of a large US city; he did it for the fun and to be social.  He'd be there only when the Stock Market was open and if the weather was good.  You could also develop a more challenging career for the satisfaction of it: writer, artists, craftsman....  You could go back to school, or take an online class, or do an online degree for the pure satisfaction of it all 2. Start a company. Similar to #1 above, but this this 100% entrepreneurial. It could be just yourself, or enlist the help of the wife; full time or part time. This again, follow your passion; since you're set financially it should not that difficult to break even. With time you could grow and hire people, but that increase the complexity and you might find yourself managing the business and not actually getting the satisfaction of doing what you had set to do. 3. Volunteer: find a non profit whose mission aligns with your values, and volunteer there; 1 or a couple of organizations; if you're up to it with time you could climb up the ranks ...   4. Mentoring: there are a lot of people who dream about being in your situation. I am sure it was not luck but hard work as well. You could become a blogger, write a book (in your name or anonymously); or mentor directly someone, reddit and a web site is a good marketing start.  If you have enough money (accredited investor) you could become an angel investor, or join an angel consortium to help people with your background to make something out of themselves. 5. A combination of 2 or more from the above. "I think this question is perfectly on topic, and probably has been asked and answered many times.  However, I cannot help myself. Here are some basics however: Personal Finance is not only about math.  As a guy who ""took vector calculus just for fun"", I have learned that superior math skills do not translate into superior net worth.  Personal finance is about 50% behavior.  Take a look at the housing crisis, car loans, or payday lenders and you will understand that the desire to be accepted by others often trumps the math surrounding a transaction. Outline your goals  What is it that you want in life?  A pile of money or to retire early?  What does your business look like?  How much cash will you need?  Do you want to own a ton of rental properties?  How does all this happen (set intermediate goals). Then get on a budget  A budget is a plan to spend your money in advance.  Stick to it.  From there you can see how much money you have to implement various goals.  Are your goals to aggressive?   This is really important as people have a tendency to spend more money then they have.  Often times when people receive a bonus at work, they spend that one bonus on two or three times over.  A budget will prevent this from happening. Get an Emergency Fund  Without an emergency fund, you be subject to the financial whims of people involved in your own life and that of the broader marketplace.  Once you have one, you are free to invest with impunity and have less stress in a world that deals out plenty.  Bad things will happen to you financially, protect against them. The best first investments are simple:  Invest in yourself.  Find a way to make a very healthy income with upward mobility.  Also get out and stay out of debt.  These things are not sexy, but they pay off in the long run. The next best investment is also simple:  Index funds.  These become the bench mark for all other investments.  If you do not stand a good chance of beating the S&P 500 index fund, why bother?  Just dump the money in the fund and sleep well at night." "Asset = Equity + (Income - Expense) + Liability Everything could be cancelled out in double entry accounting.  By your logic, if the owner contributes capital as asset, Equity is ""very similar"" to Asset.  You will end up cancelling everything, i.e. 0 = 0.  You do not understate liability by cancelling them with asset.  Say you have $10000 debtors and $10000 creditors. You do not say Net Debtors = $0 on the balance sheet.  You are challenging the fundamental concepts of accounting.  Certain accounts are contra accounts. For example, Accumulated Depreciation is Contra-Asset. Retained Loss and Unrealized Revaluation Loss is Contra-Equity." "I'm another programmer, I guess we all just like complicated things, or got here via stackoverflow. Obligatory tedious but accurate point: Investing is not personal finance, in fact it's maybe one of the less important parts of it. See this answer: Where to start with personal finance?  Obligatory warning for software developer type minds: getting into investing because it's complicated and therefore fun is a really awful idea from a financial perspective.  Or see behavioral finance research on how analytical/professional/creative type people are often terrible at investing, while even-tempered practical people are better. The thing with investing is that inaction is better than action, tried and true is better than creative, and simple is better than complicated. So if you're like me and many programmers and like creative, complicated action - not good for the wallet. You've been warned. That said. :-) Stuff I read In general I hate reading too much financial information because I think it makes me take ill-advised actions. The actions I most need to take have to do with my career and my spending patterns. So I try to focus on reading about software development, for example. Or I answer questions on this site, which at least might help someone out, and I enjoy writing. For basic financial news and research, I prefer Morningstar.com, especially if you get the premium version. The writing has more depth, it's often from qualified financial analysts, and with the paid version you get data and analysis on thousands of funds and stocks, instead of a small number as with Motley Fool newsletters. I don't follow Morningstar regularly anymore, instead I use it for research when I need to pick funds in a 401k or whatever. Another caveat on Morningstar is that the ""star ratings"" on funds are dumb. Look at the Analyst Picks and the analyst writeups instead. I just flipped through my RSS reader and I have 20-30 finance-related blogs in there collecting unread posts. It looks like the only one I regularly read is http://alephblog.com/ which is sort of random. But I find David Merkel very thoughtful and interesting. He's also a conservative without being a partisan hack, and posts frequently. I read the weekly market comment at http://hussmanfunds.com/ as well. Most weeks it says the market is overvalued, so that's predictable, but the interesting part is the rationale and the other ideas he talks about. I read a lot of software-related blogs and there's some bleed into finance, especially from the VC world; blogs like http://www.avc.com/ or http://bhorowitz.com/ or whatever. Anyway I spend most of my reading time on career-related stuff and I think this is also the correct decision from a financial perspective. If you were a doctor, you'd be better off reading about doctoring, too. I read finance-related books fairly often, I guess there are other threads listing ideas on that front. I prefer books about principles rather than a barrage of daily financial news and questionable ideas. Other than that, I keep up with headlines, just reading the paper every day including business-related topics is good enough. If there's some big event in the financial markets, it'll show up in the regular paper. Take a class I initially learned about finance by reading a pile of books and alongside that taking the CFP course and the first CFA course. Both are probably equivalent to about a college semester worth of work, but you can plow through them in a couple months each if you focus. You can just do the class (and take the exam if you like), without having to go on and actually get the work experience and the certifications. I didn't go on to do that. This sounds like a crazy thing to do, and it kind of is, but I think it's also sort of crazy to expect to be competent on a topic without taking some courses or otherwise getting pretty deep into the material. If you're a normal person and don't have time to take finance courses, you're likely better off either keeping it super-simple, or else outsourcing if you can find the right advisor: What exactly can a financial advisor do for me, and is it worth the money?  When it's inevitably complex (e.g. as you approach retirement) then an advisor is best. My mom is retiring soon and I found her a professional, for example. I like having a lot of knowledge myself, because it's just the only way I could feel comfortable. So for sure I understand other people wanting to have it too. But what I'd share from the other side is that once you have it, the conclusion is that you don't have enough knowledge (or time) to do anything fancy anyway, and that the simple answers are fine. Check out http://www.amazon.com/Smart-Simple-Financial-Strategies-People/dp/0743269942 Investing for fun isn't investing for profit Many people recommend Motley Fool (I see two on this question already!). The site isn't evil, but the problem (in my opinion) is that it promotes an attitude toward and a style of investing that isn't objectively justifiable for practical reasons. Essentially I don't think optimizing for making money and optimizing for having fun coexist very well. If investing is your chosen hobby rather than fishing or knitting, then Motley Fool can be fun with their tone and discussion forums, but other people in forums are just going to make you go wrong money-wise; see behavioral finance research again. Talking to others isn't compatible with ice in your decision-making veins. Also, Motley Fool tends to pervasively make it sound like active investing is easier than it is. There's a reason the Chartered Financial Analyst curriculum is a few reams of paper plus 4 years of work experience, rather than reading blogs. Practical investing (""just buy the target date fund"") can be super easy, but once you go beyond that, it's not. I don't really agree with the ""anyone can do it and it's not work!"" premise, any more than I think that about lawyering or doctoring or computer programming. After 15 years I'm a programming expert; after some courses and a lot of reading, I'm not someone who could professionally run an actively-managed portfolio. I think most of us need to have the fun part separate from the serious cash part. Maybe literally distinct accounts that you keep at separate brokerages. Or just do something else for fun, besides investing. Morningstar has this problem too, and finance.yahoo.com, and Bloomberg, I mean, they are all interested in making you think about investing a lot more than you ought to. They all have an incentive to convince you that the latest headlines make a difference, when they don't. Bottom line, I don't think personal finance changes very quickly; the details of specific mutual funds change, and there's always some new twist in the tax code, but the big picture is pretty stable. I think going in-depth (say, read the Chartered Financial Analyst curriculum materials) would teach you a lot more than reading blogs frequently. The most important things to work on are income (career) and spending (to maximize income minus spending). That's where time investment will pay off. I know it's annoying to argue the premise of the question rather than answering, but I did try to mention a couple things to read somewhere in there ;-)" Anyone able to recommend a good resource on computing discounted cash flows? I'm looking for something that will walk me through calculating DCFs working from the balance sheet, income statement, etc. Textbook or online resources both work! Strictly speaking the terms arise from double entry book keeping terminology, and don't exactly relate to their common English usage, which is part of the confusion. All double entry book keeping operations consist of a (debit, credit) tuple performed on two different books (ledgers).  The actual arithmetic operation performed by a debit or a credit depends on the book keeping classification of the ledger it is performed on. Liability accounts behave the way you would expect - a debit is subtraction, and a credit is addition. Asset accounts are the other way around, a debit is an addition, and a credit is a subtraction.  The confusion when dealing with banks, partly comes from this classification, since while your deposit account is your asset, it is the bank's liability. So when you deposit 100 cash at the bank, it will perform the operation (debit cash account (an asset), credit deposit account). Each ledger account will have 100 added to it. Similarly when you withdraw cash, the operation is (credit cash, debit deposit). However the operation that your accountant will perform on your own books, is the opposite, since the cash was your asset, and now the deposit account is. For those studying math, it may also help to know that double entry book keeping is one of the earliest known examples of a single error detection/correction algorithm.