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.

  1. Click Share and add the group's email addresses.
  2. Give Editor access only to people who need to enter or change rows.
  3. Use Viewer or Commenter access for people who only need to inspect the file.
  4. Protect formula columns and the Summary tab after testing, while leaving input cells open.
  5. 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.