DIY renovation expense tracker spreadsheet: receipts by room and category
A DIY expense tracker is a receipt log with a room, a category and a line ID on every row, plus a check cell that must match your card statement. This example logs 12 receipts totaling $3,999.74.
Free: Contingency & Change Order Tracker, one Excel tab. Confirm your email and the file arrives right away, plus an occasional note (at most one a week) on keeping a renovation on budget. Unsubscribe in one click. Privacy.
General information only, not financial, construction or legal advice. Contingency, holdback and payment-split percentages are your own inputs, and payment and deposit rules vary by contract and by state or province; check yours. Figures cited from other sources are dated where they appear.
What the tracker has to do
A DIY renovation expense tracker is a receipt log where every row carries a room, a category and a line ID, plus one check cell that must match your card statement. Rooms and categories let you see where the money went. The line ID lets each purchase join the budget line it belongs to. The check cell tells you a receipt is missing before the statement closes. The example below logs 12 receipts totaling $3,999.74 across three rooms.
Worked example: 12 receipts
Columns to rebuild: A Date, B Store, C Receipt no., D Room, E Category, F Line ID, G Amount. The receipt number is how you find the photo or paper later. The # column in the table below is that receipt number, shown first to make it easy to read; in the sheet it sits in column C, after Store.
| # | Date | Store | Room | Category | Line | Amount |
|---|---|---|---|---|---|---|
| 1 | Sep 2 | Tile supplier | Bath | Tile | L12 | $1,640.00 |
| 2 | Sep 2 | Tile supplier | Bath | Tile | L12 | $210.00 |
| 3 | Sep 4 | Home center | Bath | Fixtures | L14 | $312.40 |
| 4 | Sep 6 | Paint store | Kitchen | Paint | L21 | $186.75 |
| 5 | Sep 6 | Paint store | Hall | Paint | L31 | $94.20 |
| 6 | Sep 9 | Home center | Kitchen | Hardware | L22 | $128.64 |
| 7 | Sep 11 | Lumber yard | Kitchen | Lumber | L23 | $268.90 |
| 8 | Sep 13 | Home center | Hall | Flooring | L32 | $742.00 |
| 9 | Sep 15 | Tool rental | Bath | Tools | L15 | $96.00 |
| 10 | Sep 17 | Home center | Kitchen | Electrical | L24 | $143.55 |
| 11 | Sep 20 | Home center | Hall | Supplies | L33 | $57.31 |
| 12 | Sep 22 | Online store | Bath | Fixtures | L14 | $119.99 |
| Total | $3,999.74 |
By room that is Bath $2,378.39, Kitchen $727.84 and Hall $893.51, which add to $3,999.74. Tile is $1,850.00 of the total, from receipts 1 and 2.
The formulas
With receipts in rows 2 to 13 and room for more down to row 200:
Receipts total =SUM(G2:G200) 3,999.74
One room =SUMIFS($G$2:$G$200,$D$2:$D$200,"Bath") 2,378.39
One category =SUMIFS($G$2:$G$200,$E$2:$E$200,"Tile") 1,850.00
One line =SUMIFS($G$2:$G$200,$F$2:$F$200,"L12") 1,850.00
Room and category =SUMIFS($G$2:$G$200,$D$2:$D$200,"Bath",$E$2:$E$200,"Fixtures") 432.39
J1 Card statement total (typed from the statement) 3999.74
J2 Difference =ROUND(J1-SUM(G2:G200),2) 0
J3 Status =IF(J2=0,"Ties out","Missing or extra receipt")
Round the difference to cents. Without ROUND, adding many cents values can leave a difference like 0.0000000001 that is not zero. If receipt 9 (the $96.00 tool rental) had not been logged, the receipts would total $3,903.74 and J2 would show 96.00. That is the cue to find the receipt. A positive difference means the statement is higher than your log; a negative one means you logged something twice or that charge has not posted yet.
Owner-bought tile plus an installer
The tile in receipts 1 and 2 is $1,640.00 plus $210.00 of setting materials, so $1,850 in total, bought by the owner. The installer's quote is $2,600. Together the bathroom tile costs $4,450, but they are two different kinds of money, so give them two lines.
| Line | Item | Who | Committed | Paid | Unpaid |
|---|---|---|---|---|---|
| L12 | Tile and setting materials | Owner buys | $1,850 | $1,850 | $0 |
| L13 | Tile installation | Installer | $2,600 | $0 | $2,600 |
| Both | $4,450 | $1,850 | $2,600 |
Receipts land on L12 and the installer's payments land on L13, so a room or category total never mixes a purchase with a contract. For L12 there is no quote, so enter your planned materials spend as its quote amount. If you leave it empty, Paid exceeds Committed and the line reads Overpaid, which is the sheet telling you the spending was never planned. See budget, committed and paid for the full definitions, and the payment schedule guide for scheduling the installer's $2,600.
Checks that save an evening
- Split receipts. One home-center receipt covering two rooms becomes two rows with the same receipt number. The rows must still add to the charge on the statement.
- Returns. Log a return as a negative amount on the same line ID, so the line total reflects what you actually spent.
- Cash and other cards. Add a Paid with column (H) and compare only the card in question:
=ROUND(J1-SUMIFS(G2:G200,H2:H200,"Card"),2). - Amount as printed. Log the total on the receipt, delivery and sales tax included, so it matches the statement.
- Statement timing. A charge made on the last day of a cycle may post on the next statement. Log the receipt by purchase date, compare against the statement by posting date, and list any unposted receipts beside the check cell so the difference has a known cause.
- Spelling. SUMIFS treats "Hall" and "Hall bath" as different rooms. Use a dropdown list.
Where this sits in the larger budget
The receipt log is a method you build; it is not a feature of any particular workbook. In a full tracker the same purchases are payment rows against a line ID, and the line's room and category come from its budget row. That way the room totals in the budget by room guide include your own purchases as well as the contractors' invoices.
What this does not do
This is a planning tool, not financial, construction or legal advice. It stores amounts you type; it does not read receipts, import bank data or store images, so keep the files yourself under the receipt number. The check cell compares two totals and cannot tell you which charge is missing. Your own labor is not an expense row, and anything about taxes is outside the tool. The Hexloom Renovation Budget Tracker puts the Payments and Budget tabs for this in one Excel file.
More renovation budget guides
- Renovation cost overrun percentage calculator: the formula and a worked example
- Renovation contingency tracker: how much contingency is left
- Renovation change order tracker: a spreadsheet for homeowners
- Renovation budget spreadsheet: track committed vs paid
- Renovation budget by room spreadsheet: SUMIFS per room, with an overrun flag
- Kitchen remodel budget spreadsheet in Excel, built line by line
- Contractor payment schedule template for homeowners in Excel
- Contractor bid comparison spreadsheet for homeowners
- Bathroom remodel budget spreadsheet in Excel: how much is really left
Already built
In the Hexloom Renovation Budget Tracker, purchases go on the Payments tab: one row per purchase with the date, the line ID, the amount and your receipt number in the invoice ref column, and a tie-out check against Paid on the Budget tab. Each line's room and category come from its Budget row, and an owner-bought line with no quote shows Overpaid until you enter its planned amount as the Base quote. Rooms & Summary then totals Budget, Committed, Paid and Remaining by room and category. It is one Excel file, $29 one time, with no bank link and no account.