Joe White’s Blog

Life, .NET, and Cats


Debt Snowball calculator

We’re finally about to get started on our Debt Snowball for real, and I decided to write a program to help me calculate how long it will take. I’m making it available for free download for anyone who’s interested (GPL-licensed). This is still some pretty ugly code; it’s just the result of a few hours’ hacking. But it works nicely.

The screenshot at right shows what the output looks like, using the sample input included with the app. The program allows a decent amount of configuration (everything I needed to project our own debt snowball):

  • You give it a list of everyone you owe money to, your balance, your monthly payment, and your interest rate.
  • You can tell it you want to spend an extra X dollars every month above your minimum payments.
  • You can also give it a one-time lump sum to add to the first month’s payment (e.g., if you just got a big bonus or a tax refund — something that won’t happen every month).
  • For each bill, it shows how much you’ll pay that month (”pay”), the previous balance (”was”), the interest (”int”), and the new balance after payment and interest (”now”).
  • After a bill is paid off, it still shows up in every month’s report, and tells you how long it’s been paid off. This is for pep-talk purposes, so you see what you have done, not just what you haven’t done.

It’s not penny-perfect (it can’t be; credit-card billing cycles are nondeterministic), but it’ll paint a pretty good picture.

Features it’s still missing:

  • It won’t automatically pay the lowest balance each month, yet. It pays debts in the order you list them in the input file. (You can list them smallest to largest according to their balances today, but if one of them pays down faster than the one before it, the app won’t automatically adjust.)
  • &PBOX_R&

  • Anything I haven’t thought of yet.
  • Anything someone requests that I feel like implementing.

How to use it:

  • Install Ruby if you don’t have it already. If you’re on Windows, use the one-click Ruby installer. (Later I may make a version that doesn’t have this requirement, if there’s interest.)
  • Download debt_snowball.zip and extract it somewhere.
  • Edit the bills.yaml file to tell the program how much you owe and to whom, and to set other options.
  • Open a command prompt and run debt_snowball.rb. (Run it from the command prompt, not by double-clicking in Explorer. If you run it from Explorer, the window will disappear before you can read it.)

Some notes on the bills.yaml file:

  • max_months lets you stop the simulation after, say, 6 months. The only reason this would be useful is if you want to look at the first few months of the simulation, and don’t want them scrolling off the top of the screen. If you want to run the simulation all the way through (to see how long it’ll take to pay everything off), set max_months to some really big number.
  • If it’s not obvious, the “apr” setting is your Annual Percentage Rate. Specify this as a percent, i.e., if your APR is 12%, type 12 (not 0.12).
  • The dash-on-a-line-by-itself-between-each-bill is important.

Like I said, this app is still very rough around the edges. But it does what it sets out to do, so if you want to see how long your debt snowball will take, download it and have a go. Comments, criticisms, abject horror at the state of the code, etc., are all welcome; just leave a comment here.

5 Responses to “Debt Snowball calculator”

  1. Michael Eaton Says:

    Joe, great work! I haven’t looked at the code yet, but I plugged out debt into the yaml file and ran the program. Ugh. :-\ Debt sucks.

    mike

  2. Guy S Says:

    Many thanks for doing this — I’m in that unenviable position where it’s now very important I get a handle on my debt and your little tool is going to help me organize what I need to do.

    Best regards!

  3. GuyS Says:

    P.S. Anyone who has ruby installed on a Linux host can use this, too — they just have to prefix ‘ruby’ to the command at the prompt (which is what I did :-)

  4. Peter Says:

    Great tool. But why not make a desktop application? That may be easier to use.

  5. Gregory Pennington Says:

    Wow! Thanks for developing this little app! I’m sure loads of people will find it useful - maybe Peter has a point…?

    Thanks again & keep it up!

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Joe White's Blog copyright © 2004-2008. Portions of the site layout use Yahoo! YUI Reset, Fonts, and Grids.
Proudly powered by WordPress. Entries (RSS) and Comments (RSS).