Proper Spreadsheets

Templates › Money

Monthly Household Budget

Made for households getting a grip on their money.

Set a monthly budget for each category, record what you actually spend and earn, then see where you went over, what is left and how much you saved. The summary carries a chart that redraws itself as you type.

Of the 24 columns, you fill in 15 and the other 9 work themselves out, and all 17 figures on the summary do too. There is room for 1,460 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.

The workbook's summary and the table behind it
A row typed into the real file. Every figure that changes is the spreadsheet's own arithmetic. What the film shows, in order:
  1. A new row is typed into the Spending tab, one cell at a time, in the white cells a person fills in.
  2. The shaded cells in that row fill themselves in.
  3. The figures on the Summary tab change to include the new row.
  4. The chart, Where the money goes by category, redraws with it.
The chart, drawn from the totals in the table beside it. See it full size
Where you type, and the shaded columns that work themselves out. See it full size

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 1,460 rows. Open any tab to see its columns.

Budget

8 columns

One row per category per month. Fill in the amount you plan to spend and the sheet works out the rest. Ready for 320 rows, every one with its formulas in place.

ColumnWhat goes in itWorked out as
MonthPick the month this budget applies to, written as year then month.Pick one: 2026-01, 2026-02, 2026-03, 2026-04, 2026-05, 2026-06, 2026-07, 2026-08, 2026-09, 2026-10, 2026-11, 2026-12, 2027-01, 2027-02, 2027-03, 2027-04, 2027-05, 2027-06, 2027-07, 2027-08, 2027-09, 2027-10, 2027-11 or 2027-12.
CategoryPick one: Housing, Utilities, Groceries, Transport, Dining Out, Health, Childcare, Household, Leisure or Other.
BudgetedType an amount in £.
Actual SpendFills itself in.

The total of Amount on Spending where Month matches this row's Month and Category matches this row's Category.

The formulaIF(OR(ISBLANK([month]),ISBLANK([category])),"",SUMIFS([Spending!amount],[Spending!month_key],[month],[Spending!category],[category]))
Left To SpendFills itself in.

Worked out from this row's Month, Category and Budgeted, using Amount, Month and Category on Spending.

The formulaIF(OR(ISBLANK([month]),ISBLANK([category]),ISBLANK([budget_amount])),"",[budget_amount]-SUMIFS([Spending!amount],[Spending!month_key],[month],[Spending!category],[category]))
Budget UsedFills itself in.

Worked out from this row's Month, Category and Budgeted, using Amount, Month and Category on Spending.

The formulaIF(OR(ISBLANK([month]),ISBLANK([category]),ISBLANK([budget_amount])),"",IFERROR(SUMIFS([Spending!amount],[Spending!month_key],[month],[Spending!category],[category])/[budget_amount],0))
StatusClose means you have used nine tenths of the budget or more.Fills itself in.

Worked out from this row's Month, Category and Budgeted, using Amount, Month and Category on Spending.

The formulaIF(OR(ISBLANK([month]),ISBLANK([category]),ISBLANK([budget_amount])),"",IF(SUMIFS([Spending!amount],[Spending!month_key],[month],[Spending!category],[category])>[budget_amount],"Over",IF(SUMIFS([Spending!amount],[Spending!month_key],[month],[Spending!category],[category])>=[budget_amount]*0.9,"Close","On track")))
NotesType any text.

Spending

9 columns

Every payment out of the household, one row each. Ready for 900 rows, every one with its formulas in place.

ColumnWhat goes in itWorked out as
DateType a date.
CategoryThese match the Budget tab so the two line up.Pick one: Housing, Utilities, Groceries, Transport, Dining Out, Health, Childcare, Household, Leisure or Other.
DescriptionType any text.
AmountType an amount in £.
Paid FromPick one: Joint Account, Current Account, Credit Card, Cash or Direct Debit.
EssentialTick if this was something you could not avoid.Tick it when it applies.
MonthUsed to match each payment to its budget month.Fills itself in.

Worked out from this row's Date.

The formulaIF(ISBLANK([date]),"",TEXT([date],"YYYY-MM"))
YearFills itself in.

Worked out from this row's Date.

The formulaIF(ISBLANK([date]),"",YEAR([date]))
BudgetedFills itself in.

Worked out from this row's Date and Category, using Budgeted, Month and Category on Budget.

The formulaIF(OR(ISBLANK([date]),ISBLANK([category])),"",SUMIFS([Budget!budget_amount],[Budget!month],TEXT([date],"YYYY-MM"),[Budget!category],[category]))

Income

7 columns

Money coming in, so the savings figures have something to work from. Ready for 240 rows, every one with its formulas in place.

ColumnWhat goes in itWorked out as
DateType a date.
SourcePick one: Salary, Second Salary, Bonus, Freelance, Benefits, Interest, Refund or Other.
DescriptionType any text.
AmountType an amount in £.
Paid IntoPick one: Joint Account, Current Account or Savings Account.
MonthFills itself in.

Worked out from this row's Date.

The formulaIF(ISBLANK([date]),"",TEXT([date],"YYYY-MM"))
YearFills itself in.

Worked out from this row's Date.

The formulaIF(ISBLANK([date]),"",YEAR([date]))

Summary

17 figures

The answers, updated as you fill in the other tabs. This month means the calendar month you are in today.

FigureWorked out as
Budgeted this month

Worked out from Budgeted and Month on Budget.

The formulaSUMIFS([Budget!budget_amount],[Budget!month],TEXT(TODAY(),"YYYY-MM"))
Spent this month

Worked out from Amount and Month on Spending.

The formulaSUMIFS([Spending!amount],[Spending!month_key],TEXT(TODAY(),"YYYY-MM"))
Left to spend this monthA negative figure means the household is over budget overall.

Worked out from Budgeted and Month on Budget and Amount and Month on Spending.

The formulaSUMIFS([Budget!budget_amount],[Budget!month],TEXT(TODAY(),"YYYY-MM"))-SUMIFS([Spending!amount],[Spending!month_key],TEXT(TODAY(),"YYYY-MM"))
Share of budget used this month

Worked out from Amount and Month on Spending and Budgeted and Month on Budget.

The formulaIFERROR(SUMIFS([Spending!amount],[Spending!month_key],TEXT(TODAY(),"YYYY-MM"))/SUMIFS([Budget!budget_amount],[Budget!month],TEXT(TODAY(),"YYYY-MM")),0)
Categories over budget this month

Worked out from Month and Status on Budget.

The formulaCOUNTIFS([Budget!month],TEXT(TODAY(),"YYYY-MM"),[Budget!status],"Over")
Categories close to their limit this month

Worked out from Month and Status on Budget.

The formulaCOUNTIFS([Budget!month],TEXT(TODAY(),"YYYY-MM"),[Budget!status],"Close")
Amount over budget this month

Worked out from Amount and Month on Spending and Budgeted and Month on Budget.

The formulaIF(SUMIFS([Spending!amount],[Spending!month_key],TEXT(TODAY(),"YYYY-MM"))>SUMIFS([Budget!budget_amount],[Budget!month],TEXT(TODAY(),"YYYY-MM")),SUMIFS([Spending!amount],[Spending!month_key],TEXT(TODAY(),"YYYY-MM"))-SUMIFS([Budget!budget_amount],[Budget!month],TEXT(TODAY(),"YYYY-MM")),0)
Income this month

Worked out from Amount and Month on Income.

The formulaSUMIFS([Income!amount],[Income!month_key],TEXT(TODAY(),"YYYY-MM"))
Saved this month

Worked out from Amount and Month on Income and Amount and Month on Spending.

The formulaSUMIFS([Income!amount],[Income!month_key],TEXT(TODAY(),"YYYY-MM"))-SUMIFS([Spending!amount],[Spending!month_key],TEXT(TODAY(),"YYYY-MM"))
Savings rate this monthThe share of this month's income you did not spend.

Worked out from Amount and Month on Income and Amount and Month on Spending.

The formulaIFERROR((SUMIFS([Income!amount],[Income!month_key],TEXT(TODAY(),"YYYY-MM"))-SUMIFS([Spending!amount],[Spending!month_key],TEXT(TODAY(),"YYYY-MM")))/SUMIFS([Income!amount],[Income!month_key],TEXT(TODAY(),"YYYY-MM")),0)
Income this year

Worked out from Year and Amount on Income.

The formulaSUMIF([Income!year],YEAR(TODAY()),[Income!amount])
Spent this year

Worked out from Year and Amount on Spending.

The formulaSUMIF([Spending!year],YEAR(TODAY()),[Spending!amount])
Saved this year

Worked out from Year and Amount on Income and Year and Amount on Spending.

The formulaSUMIF([Income!year],YEAR(TODAY()),[Income!amount])-SUMIF([Spending!year],YEAR(TODAY()),[Spending!amount])
Essential spending this year

Worked out from Amount, Year and Essential on Spending.

The formulaSUMIFS([Spending!amount],[Spending!year],YEAR(TODAY()),[Spending!essential],TRUE)
Payments recorded this month

Worked out from Month on Spending.

The formulaCOUNTIFS([Spending!month_key],TEXT(TODAY(),"YYYY-MM"))
Average payment this month

Worked out from Amount and Month on Spending.

The formulaIFERROR(SUMIFS([Spending!amount],[Spending!month_key],TEXT(TODAY(),"YYYY-MM"))/COUNTIFS([Spending!month_key],TEXT(TODAY(),"YYYY-MM")),0)
Largest single payment this year

The largest Amount on Spending.

The formulaIFERROR(MAX([Spending!amount]),0)