sheetsmith

Templates › Plans and occasions

Wedding Budget & Guest List

Made for couples planning a wedding.

A planner for the wedding: a budget by category with what was estimated, what has been paid and what each supplier is still owed, a guest list with replies and meal choices, and a summary giving the total cost, the amount left to pay and the final head count. The summary carries a chart that redraws itself as you type.

Tabs
3
Columns
26
Fill themselves in
31

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

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.
The summary page, every figure calculated from the tables
The chart, drawn from the totals in the table beside it
What is inside: the tabs, the columns and what fills itself in
Where you type, and the shaded columns that work themselves out
The guide sheet that opens first and explains the file
Everything included in the download

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 450 rows.

Budget

One row per supplier or cost line. Fill in the estimate first, then the agreed price and anything paid. Room for 150 rows.

ColumnTypeWorked out as
Categorychoice (list)
Suppliertext
What It Coverstext
Estimated Costcurrency
Agreed Pricecurrency
Paid So Farcurrency
Cost We ExpectcurrencyIF(AND(ISBLANK([estimate]),ISBLANK([agreed_price])),"",IF(ISBLANK([agreed_price]),[estimate],[agreed_price]))
Still OwedcurrencyIF(AND(ISBLANK([estimate]),ISBLANK([agreed_price])),"",IF(ISBLANK([agreed_price]),[estimate],[agreed_price])-[paid])
Over Estimate BycurrencyIF(OR(ISBLANK([estimate]),ISBLANK([agreed_price])),"",[agreed_price]-[estimate])
Payment StatustextIF(AND(ISBLANK([estimate]),ISBLANK([agreed_price])),"",IF(IF(ISBLANK([agreed_price]),[estimate],[agreed_price])-[paid]<=0,"Paid in full",IF([paid]>0,"Part paid","Nothing paid")))
Balance Due Ondate
Days Until DuenumberIF(ISBLANK([final_due]),"",[final_due]-TODAY())
Contacttext
Notestext

Guest List

One row per guest. The head count and meal numbers on the summary come from the reply and meal columns. Room for 300 rows.

ColumnTypeWorked out as
Guest Nametext
Sidechoice (list)
Groupchoice (list)
Day Or Eveningchoice (list)
Invite Sentbool
Replychoice (list)
Replied Ondate
Meal Choicechoice (list)
Dietary Notestext
Table Nonumber
Counts In Head CountnumberIF(ISBLANK([rsvp]),"",IF([rsvp]="Attending",1,0))
Meal Still NeededtextIF(ISBLANK([rsvp]),"",IF(AND([rsvp]="Attending",ISBLANK([meal])),"Meal choice needed",""))

Summary

The headline answers: total cost, what is left to pay and the final head count.

MeasureWorked out as
Total estimated costSUM([Budget!estimate])
Total cost we expect to paySUM([Budget!expected_cost])
Paid so farSUM([Budget!paid])
Still left to paySUM([Budget!balance])
Share of the cost already paidIFERROR(SUM([Budget!paid])/SUM([Budget!expected_cost]),0)
Over or under the original estimateSUM([Budget!variance])
Suppliers paid in fullCOUNTIF([Budget!payment_status],"Paid in full")
Suppliers still owed moneyCOUNTIF([Budget!balance],">0")
Owed within the next 30 daysSUMIFS([Budget!balance],[Budget!final_due],">="&TODAY(),[Budget!final_due],"<="&TODAY()+30)
Guests invitedCOUNTA([Guest List!guest_name])
Final head count: guests attendingCOUNTIF([Guest List!rsvp],"Attending")
DeclinedCOUNTIF([Guest List!rsvp],"Declined")
Still awaiting a replyCOUNTA([Guest List!guest_name])-COUNTIF([Guest List!rsvp],"Attending")-COUNTIF([Guest List!rsvp],"Declined")
Day guests attendingCOUNTIFS([Guest List!rsvp],"Attending",[Guest List!day_evening],"Day guest")
Evening guests attendingCOUNTIFS([Guest List!rsvp],"Attending",[Guest List!day_evening],"Evening only")
Meals: chickenCOUNTIFS([Guest List!rsvp],"Attending",[Guest List!meal],"Chicken")
Meals: beefCOUNTIFS([Guest List!rsvp],"Attending",[Guest List!meal],"Beef")
Meals: fishCOUNTIFS([Guest List!rsvp],"Attending",[Guest List!meal],"Fish")
Meals: vegetarianCOUNTIFS([Guest List!rsvp],"Attending",[Guest List!meal],"Vegetarian")
Meals: veganCOUNTIFS([Guest List!rsvp],"Attending",[Guest List!meal],"Vegan")
Meals: childrenCOUNTIFS([Guest List!rsvp],"Attending",[Guest List!meal],"Children's meal")
Attending guests with no meal chosen yetCOUNTIFS([Guest List!rsvp],"Attending",[Guest List!meal],"")
Catering cost per attending guestIFERROR(SUMIF([Budget!category],"Catering",[Budget!expected_cost])/COUNTIF([Guest List!rsvp],"Attending"),0)
Total cost per attending guestIFERROR(SUM([Budget!expected_cost])/COUNTIF([Guest List!rsvp],"Attending"),0)