Moving House Costs & Checklist
Made for anyone moving house.
A workbook for a house move: every cost with what you expected against what you actually paid, a checklist of who is doing what and by when, and a summary of the total cost and what is still outstanding. The summary carries a chart that redraws itself as you type.
- Tabs
- 4
- Columns
- 23
- Fill themselves in
- 17
£7one 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.
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 580 rows.
Costs
| Column | Type | Worked out as |
|---|---|---|
| Cost Item | text | |
| Category | choice (list) | |
| Paid To | choice (from Contacts › name) | |
| Expected Cost | currency | |
| Actual Cost | currency | |
| Over or Under | currency | IF(OR(ISBLANK([actual_cost]), ISBLANK([expected_cost])), "", ROUND([actual_cost] - [expected_cost], 2)) |
| Status | choice (list) | |
| Date Paid | date | |
| Still To Pay | currency | IF(AND(ISBLANK([expected_cost]), ISBLANK([actual_cost])), "", IF(OR([status]="Paid", [status]="Cancelled"), 0, IF(ISBLANK([actual_cost]), [expected_cost], [actual_cost]))) |
| Notes | text |
Checklist
| Column | Type | Worked out as |
|---|---|---|
| Task | text | |
| Stage | choice (list) | |
| Who Is Doing It | choice (from Contacts › name) | |
| Needed By | date | |
| Status | choice (list) | |
| Days Left | number | IF(ISBLANK([due_date]), "", IF([status]="Done", "", [due_date] - TODAY())) |
| Attention | text | IF(ISBLANK([due_date]), "", IF([status]="Done", "", IF([due_date] < TODAY(), "Overdue", IF([due_date] <= TODAY() + 7, "Due soon", "")))) |
| Notes | text |
Contacts
| Column | Type |
|---|---|
| Name | text |
| Role | choice (list) |
| Phone | text |
| text | |
| Notes | text |
Summary
| Measure | Worked out as |
|---|---|
| Total Expected Cost | SUM([Costs!expected_cost]) |
| Total Actual Cost Recorded | SUM([Costs!actual_cost]) |
| Total Paid So Far | SUMIF([Costs!status], "Paid", [Costs!actual_cost]) |
| Still To Pay | SUM([Costs!still_to_pay]) |
| Projected Total Cost of the Move | SUMIF([Costs!status], "Paid", [Costs!actual_cost]) + SUM([Costs!still_to_pay]) |
| Over Budget By | SUM([Costs!variance]) |
| Share of Budget Spent | IFERROR(SUM([Costs!actual_cost]) / SUM([Costs!expected_cost]), 0) |
| Largest Single Cost | MAX([Costs!actual_cost]) |
| Costs Not Yet Paid | COUNTA([Costs!item]) - COUNTIF([Costs!status], "Paid") - COUNTIF([Costs!status], "Cancelled") |
| Tasks Outstanding | COUNTA([Checklist!task]) - COUNTIF([Checklist!status], "Done") |
| Tasks Overdue | COUNTIF([Checklist!flag], "Overdue") |
| Tasks Due in the Next Seven Days | COUNTIF([Checklist!flag], "Due soon") |
| Checklist Complete | IFERROR(COUNTIF([Checklist!status], "Done") / COUNTA([Checklist!task]), 0) |






