Need a free Miami bachelor party expense spreadsheet? Build one in Google Sheets with four tabs for purchases, shares, repayments, and balances.
One row equals one purchase. Keep a payback in its own settlement row. Turns out, that small distinction prevents a reimbursement from inflating the trip total.
Set up the workbook before the first charge
Open Google Sheets and create a blank file. Name it something your group will recognize, then add these tabs:
| Tab | Purpose |
|---|---|
Expenses |
Records the full cost of each purchase |
Allocation |
Shows which people owe part of each expense |
Settlements |
Records repayments from one person to another |
Summary |
Calculates category totals and net balances |
The four-tab setup takes a little more work. It also keeps the math readable when someone pays back a hotel deposit days later.
Build the Expenses tab
Use one row for each charge. Do not create separate expense rows for each attendee.
| Column | What to enter |
|---|---|
| ID | A unique code such as E001 or E002 |
| Date | The date the charge was made |
| Description | A clear label such as Hotel deposit or Boat deposit |
| Amount | The full charge, entered as a positive number |
| Category | A consistent label such as Transport, Accommodation, Meals, Activities, Nightlife, or Alcohol |
| Paid by | The person who paid upfront |
| Split method | Equal, Usage-based, or Custom |
| Participants | Names of people who may share the cost |
| Participant count | The number included in a simple equal split |
| Receipt link | A link to a receipt photo or file |
| Notes | Payment details, exclusions, deposits, or other context |
Format the Date column as a date and Amount as currency. A category dropdown can help prevent variations such as Nightlife, night life, and Clubs from becoming separate totals.
Here are illustrative rows:
| ID | Date | Description | Amount | Category | Paid by | Split method | Participants | Count |
|---|---|---|---|---|---|---|---|---|
| E001 | 2026-03-15 | Hotel deposit | $800 | Accommodation | John | Equal | John, Mike, Alex | 3 |
| E002 | 2026-03-16 | Boat deposit | $450 | Activities | Mike | Usage-based | John, Mike | 2 |
These amounts are examples, not Miami price estimates.
Keep the full receipt amount in Amount. If John pays a $320 club charge for six people, record $320 once. Put the six people in the allocation records instead.
A personal flight usually belongs to the traveler who bought it unless the group agrees to subsidize it. Record that decision in Notes.
Choose the split rule before booking
Put the rule in the group chat before anyone pays a deposit. Formulas cannot settle an agreement that was never made.
| Cost | Rule to consider | Question to settle |
|---|---|---|
| Hotel or vacation rental | Equal, room-size, or nights-stayed | Does a larger room carry a larger share? |
| Rental car and gas | Equal among users or usage-based | Should people who never ride pay? |
| Boat, club, or optional activity | Per-person or usage-based | Who actually attended? |
| Shared groceries and meals | Equal or attendee-based | Are personal items excluded? |
| Personal flights | Individual | Is anyone intentionally covering another traveler? |
| Groom's expenses | A written group rule | Which activities, if any, are included? |
Equal splits are easy to explain. Usage-based splits usually fit optional nightlife or activities better. Nights-stayed and room-size rules can work for lodging. Income-based splitting is possible, but it needs explicit agreement and may feel too personal for a bachelor party.
Calculate individual shares in an Allocation tab
The Allocation tab turns the participant list into usable math. Add one row for each person and expense combination.
| Column | What to enter |
|---|---|
| Expense ID | The matching ID from Expenses |
| Person | One attendee's exact name |
| Included? | Enter 1 if included or 0 if excluded |
| Share override | An exact dollar amount for a custom split |
| Share owed | A calculated amount |
For an equal split, leave Share override blank. For a custom split, enter the exact amount each person owes. Use zero rows when you want the exclusion decision to remain visible.
In Allocation!E2, enter this formula and copy it down:
=IF(D2<>"",D2,IF(C2=1,IFERROR(VLOOKUP(A2,Expenses!$A$2:$D$1000,4,FALSE)/SUMIF($A$2:$A$1000,A2,$C$2:$C$1000),0),0))
The formula looks up the full expense, counts the included people, and divides the charge evenly. An override replaces that equal calculation.
For a boat that only some people use, mark only those people with 1. For a hotel with different room values, enter overrides instead. The overrides for one expense should add up to the full Amount.
Thing is, the Expenses amount remains the source of truth. The Allocation tab explains who owes it.
Add a Summary tab for balances
Put each attendee's name in Summary!A2:A. Add these headings in row 1:
| Column | Heading |
|---|---|
| A | Person |
| B | Paid upfront |
| C | Share owed |
| D | Sent in settlements |
| E | Received in settlements |
| F | Net |
Use these formulas in row 2, then copy them down:
B2:=SUMIF(Expenses!$F$2:$F$1000,A2,Expenses!$D$2:$D$1000)C2:=SUMIF(Allocation!$B$2:$B$1000,A2,Allocation!$E$2:$E$1000)D2:=SUMIF(Settlements!$B$2:$B$1000,A2,Settlements!$D$2:$D$1000)E2:=SUMIF(Settlements!$C$2:$C$1000,A2,Settlements!$D$2:$D$1000)F2:=B2-C2+D2-E2
A positive Net means the group still owes that person. A negative Net means that person owes the group.
For category totals, place a category name in H2 and use this in I2:
=SUMIFS(Expenses!$D$2:$D$1000,Expenses!$E$2:$E$1000,H2)
You can also generate a category table automatically. Put this in an empty area such as H5, then leave the cells below it clear:
=QUERY(Expenses!A:K,"select E, sum(D) where E is not null group by E label sum(D) 'Total'")
To review larger charges, use this temporary filter in an empty area:
=FILTER(Expenses!A2:K1000,Expenses!D2:D1000>100)
Change the threshold to fit your group. It is only a review tool.
Add an allocation check somewhere on Summary:
=ROUND(SUM(Allocation!E2:E1000)-SUM(Expenses!D2:D1000),2)
Once every expense has a matching allocation, this check should read zero. A nonzero result usually means an expense has no allocation, an override is wrong, or a share was entered twice.
Record reimbursements separately
Create these columns in Settlements:
| Column | What to enter |
|---|---|
| Date | When the repayment was made |
| From | The person sending money |
| To | The person receiving money |
| Amount | The repayment amount |
| Note | The expense ID or reason |
| Confirmed? | Optional confirmation status |
A reimbursement is a transfer, not a new hotel, meal, or nightlife expense. Do not add it to the Expenses tab as if the group bought something again.
Some templates put Reimbursement in a Split method column. That convention can work only if the summary excludes those rows from spending totals. If you use it, assign 100% to the person responsible for that line and 0% to everyone else, then record the actual From and To details separately. The 100%/0% flag alone cannot show who paid whom.
Use positive repayment amounts. The Summary formula then moves the sender's net toward zero and reduces the recipient's amount still due.
Handle deposits, refunds, and currency differences
Keep a deposit connected to its original expense ID. If a vendor later refunds part of it, add a separate credit row or clearly adjust the original row, and explain the choice in Notes.
If someone pays in euros or another currency, record the original amount and currency in Notes. Agree on a conversion method before settling, then use one consistent currency in the Amount column. Do not mix currencies silently in a single total.
Review the sheet after each major outing. A quick check catches missing club covers, duplicated meal receipts, and people added to an activity they skipped.
Share the file without losing the formulas
Test the workbook with two sample expenses first. Change one amount and confirm the Summary changes as expected.
- Click
Shareand add the group's email addresses. - Give Editor access only to people who need to enter or change rows.
- Use Viewer or Commenter access for people who only need to inspect the file.
- Protect formula columns and the Summary tab after testing, while leaving input cells open.
- Send the group a short rule message explaining the split method and review schedule.
Google's help for protecting sheets and ranges explains the available controls. Protection helps prevent accidental edits, but it is not a substitute for sharing the file with the right people.
Check these common mistakes
Before sending the link, verify the following:
- Every purchase appears once in
Expenses. - The Amount column contains the full charge.
- Names match exactly across Expenses, Allocation, Settlements, and Summary.
- Participant counts agree with the names listed.
- Custom share overrides add up to the expense amount.
- Reimbursements are not included in category spending totals.
- Receipt links or useful notes are attached to unusual charges.
- The allocation check reads zero after all rows are entered.
To be honest, a simple tracker works well when the group follows one naming rule. The dashboard matters less than consistent entries.
Create the four tabs, enter the two sample rows, and make the allocation check read zero before sharing the workbook with the group.