Debt Payoff Tracker
Made for people clearing cards and loans.
A workbook for clearing debts: what you owe on each one, every payment you make, and a summary showing the total left, the interest it is costing you and which debt to attack first. The summary carries a chart that redraws itself as you type.
Of the 23 columns, you fill in 14 and the other 9 work themselves out, and all 19 figures on the summary do too. There is room for 640 rows of your own.
£4.99one payment, yours to keep
- Opens in Excel, Google Sheets and Numbers
- Delivered straight away
- No macros, nothing to install
- Change it free before you buy
Payment is handled by Stripe. Your card details go to them and never to us. Sales are final, which is why every tab, column and calculation is shown on this page first.
Already have a spreadsheet of your own? Check it for mistakes, free.
- A new row is typed into the Debts tab, one cell at a time, in the white cells a person fills in.
- The shaded cells in that row fill themselves in.
- The figures on the Summary tab change to include the new row.
- The chart, Opening Balance By Debt Type, redraws with it.
Everything inside, before you pay
This is the whole design: every tab, every column and how each calculated one is worked out. White cells are yours to fill in; the shaded ones work themselves out and are locked so a formula cannot be overwritten by accident. There is room for 640 rows. Open any tab to see its columns.
Debts
15 columns
| Column | What goes in it | Worked out as |
|---|---|---|
| Debt Name | A short name you will recognise. This is the name you pick when you record a payment.Type any text. | |
| Lender | Type any text. | |
| Debt Type | Pick one: Credit Card, Store Card, Overdraft, Personal Loan, Car Finance, Student Loan, Family Loan or Other. | |
| Opening Balance | Type an amount in £. | |
| Interest Rate | Type a percentage, like 20%. | |
| Minimum Payment | Type an amount in £. | |
| Paid To Date | Fills itself in. | The total of Amount Paid on Payments where Debt matches this row's Debt Name. The formulaIF(ISBLANK([debt_name]), "", SUMIF([Payments!debt], [debt_name], [Payments!amount])) |
| Interest Paid | Fills itself in. | The total of Interest Part on Payments where Debt matches this row's Debt Name. The formulaIF(ISBLANK([debt_name]), "", SUMIF([Payments!debt], [debt_name], [Payments!interest_portion])) |
| Balance Now | Fills itself in. | Worked out from this row's Debt Name, Opening Balance, Paid To Date and Interest Paid. The formulaIF(ISBLANK([debt_name]), "", ROUND(MAX([opening_balance] - ([paid_to_date] - [interest_paid]), 0), 2)) |
| Interest Per Month | Fills itself in. | Worked out from this row's Debt Name, Balance Now and Interest Rate. The formulaIF(ISBLANK([debt_name]), "", ROUND([current_balance] * [interest_rate] / 12, 2)) |
| Percent Cleared | Fills itself in. | Worked out from this row's Debt Name, Opening Balance and Balance Now. The formulaIF(ISBLANK([debt_name]), "", IFERROR(([opening_balance] - [current_balance]) / [opening_balance], 0)) |
| Months To Clear | Fills itself in. | Worked out from this row's Debt Name, Balance Now, Minimum Payment and Interest Per Month. The formulaIF(ISBLANK([debt_name]), "", IF([current_balance] <= 0, 0, IFERROR(ROUNDUP([current_balance] / MAX([min_payment] - [monthly_interest], 0), 0), ""))) |
| Rate While Open | Shows the rate only while a balance remains. The summary uses it to pick the most expensive debt.Fills itself in. | Worked out from this row's Debt Name, Balance Now and Interest Rate. The formulaIF(ISBLANK([debt_name]), "", IF([current_balance] > 0, [interest_rate], "")) |
| Balance While Open | Shows the balance only while a debt is still open. The summary uses it to find your quickest win.Fills itself in. | Worked out from this row's Debt Name and Balance Now. The formulaIF(ISBLANK([debt_name]), "", IF([current_balance] > 0, [current_balance], "")) |
| Notes | Type any text. |
Payments
8 columns
| Column | What goes in it | Worked out as |
|---|---|---|
| Date Paid | Type a date. | |
| Debt | Pick one of the Debt Name entries on Debts. | |
| Amount Paid | Type an amount in £. | |
| Interest Part | The interest charged on that statement. Leave it blank if you do not know it.Type an amount in £. | |
| Off The Balance | Fills itself in. | Worked out from this row's Amount Paid and Interest Part. The formulaIF(ISBLANK([amount]), "", ROUND([amount] - IF(ISBLANK([interest_portion]), 0, [interest_portion]), 2)) |
| Payment Type | Pick one: Minimum, Extra, Lump Sum or Final Payment. | |
| Method | Pick one: Direct Debit, Standing Order, Bank Transfer, Card or Cash. | |
| Note | Type any text. |
Summary
19 figures
| Figure | Worked out as |
|---|---|
| Total Still Owed | The total of Balance Now on Debts. The formulaSUM([Debts!current_balance]) |
| Total You Started With | The total of Opening Balance on Debts. The formulaSUM([Debts!opening_balance]) |
| Knocked Off The Balances | The opening balances less what is left, so the part of your payments that actually reduced the debt. Worked out from Opening Balance and Balance Now on Debts. The formulaSUM([Debts!opening_balance]) - SUM([Debts!current_balance]) |
| Percent Of The Debt Cleared | Worked out from Opening Balance and Balance Now on Debts. The formulaIFERROR((SUM([Debts!opening_balance]) - SUM([Debts!current_balance])) / SUM([Debts!opening_balance]), 0) |
| Total Paid In So Far | The total of Amount Paid on Payments. The formulaSUM([Payments!amount]) |
| Interest Paid So Far | The total of Interest Part on Payments. The formulaSUM([Payments!interest_portion]) |
| Interest Building Up Each Month | What today's balances cost you in interest over one month if you paid nothing. The total of Interest Per Month on Debts. The formulaSUM([Debts!monthly_interest]) |
| Interest As Part Of Everything Paid | Worked out from Interest Part and Amount Paid on Payments. The formulaIFERROR(SUM([Payments!interest_portion]) / SUM([Payments!amount]), 0) |
| Minimum Payments Due Each Month | The total of Minimum Payment on Debts. The formulaSUM([Debts!min_payment]) |
| Paid This Month | Worked out from Amount Paid and Date Paid on Payments. The formulaIFERROR(SUMIFS([Payments!amount], [Payments!payment_date], ">=" & (EOMONTH(TODAY(), -1) + 1), [Payments!payment_date], "<=" & EOMONTH(TODAY(), 0)), 0) |
| Paid This Year | Worked out from Amount Paid and Date Paid on Payments. The formulaIFERROR(SUMIFS([Payments!amount], [Payments!payment_date], ">=" & DATE(YEAR(TODAY()), 1, 1), [Payments!payment_date], "<=" & TODAY()), 0) |
| Debts Still Open | The number of rows on Debts where Balance Now is above 0. The formulaCOUNTIF([Debts!current_balance], ">0") |
| Debts Cleared | Worked out from Debt Name and Balance Now on Debts. The formulaCOUNTA([Debts!debt_name]) - COUNTIF([Debts!current_balance], ">0") |
| Attack This Debt First | The open debt with the highest rate. Every spare pound does the most good here. Worked out from Rate While Open and Debt Name on Debts. The formulaIFERROR(IF(MAX([Debts!active_rate]) <= 0, "Nothing outstanding", INDEX([Debts!debt_name], MATCH(MAX([Debts!active_rate]), [Debts!active_rate], 0))), "Add your debts to begin") |
| Its Interest Rate | The largest Rate While Open on Debts. The formulaIFERROR(MAX([Debts!active_rate]), 0) |
| Quickest Win To Close | The smallest balance left, if you would rather clear a whole debt for the morale. Worked out from Balance While Open and Debt Name on Debts. The formulaIFERROR(IF(COUNT([Debts!active_balance]) = 0, "Nothing outstanding", INDEX([Debts!debt_name], MATCH(MIN([Debts!active_balance]), [Debts!active_balance], 0))), "Add your debts to begin") |
| Balance On That One | The smallest Balance While Open on Debts. The formulaIFERROR(MIN([Debts!active_balance]), 0) |
| Months Left At Minimum Payments | The longest of your debts, paying only the minimum. Paying extra shortens it. The largest Months To Clear on Debts. The formulaIFERROR(MAX([Debts!months_to_clear]), 0) |
| Debt Free Around | Worked out from Months To Clear on Debts. The formulaIFERROR(EDATE(TODAY(), MAX([Debts!months_to_clear])), TODAY()) |