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.)
- 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.