A shared Google Sheet is usually enough for a small, informal ski group. Use separate tabs for the bill, each person's share, and the reimbursement.
That separation matters. If all three records share one row, a payment can look like a second expense. The layout below covers lift tickets, rentals, lodging, gas, groceries, and meals, including trips where people ski different days.
Choose the split rule before the first receipt
Decide what fair means before someone buys the first lift ticket. Equal splits are easy, but optional costs and different rooms need more care.
| Split method | Good fit | What to watch |
|---|---|---|
| Equal per person | Shared lodging, common gas, or group supplies | Nonparticipants may pay for something they did not use |
| Usage-based | Lift tickets, rentals, lessons, meals, or gas by passenger | You need a reliable count of users, days, or portions |
| Room or nights | Lodging with different rooms or arrival dates | Record the room and night allocation clearly |
| Custom dollar shares | Discounts, deposits, credits, or unusual arrangements | Everyone should see how the amount was calculated |
| Income-based contributions | A group that voluntarily agrees to uneven contributions | Income details can feel intrusive, so do not assume consent |
Write the rule in the group chat. For example: "Gas is split by passenger, lift tickets by skier and ski days, lodging by room and nights, and shared groceries by eater."
The payer can be a participant, but does not have to be. Keep the split rule separate from the payment method. Cash, a bank transfer, or a payment app is simply how money moves; the sheet records why it moved.
Build the Google Sheets workbook
A five-tab workbook sounds heavier than it is. Each tab has one job, so a refund or reimbursement does not get mixed into the original bill.
| Tab | Recommended columns | Purpose |
|---|---|---|
People |
Name | Keeps spelling consistent for dropdowns and formulas |
Expenses |
Expense ID, Date, Description, Payer, Amount, Category, Receipt Link, Notes, Allocated, Check | Records what was paid |
Splits |
Expense ID, Person, Share, Basis | Records who is responsible for each expense |
Settlements |
Date, From, To, Amount, Method, Status, Note | Records reimbursements after the expense |
Summary |
Person, Paid, Share, Net, Settlements Out, Settlements In, Remaining | Shows who should receive or send money |
Use one row per expense in Expenses. Use one row per person benefiting from that expense in Splits.
For a $400 gas charge paid by Alex for four passengers, Expenses has one row with an amount of 400. Splits has four rows at 100 each. Alex's $400 advance is not a settlement.
The Share column means the amount a person is responsible for. It does not mean the amount they already paid.
Add formulas that catch missing shares
Assume row 1 contains headers. Start by checking whether every expense has been assigned to participants.
Place this in Expenses!I2:
=SUMIF(Splits!$A:$A,A2,Splits!$C:$C)
Place this in Expenses!J2:
=IF(ABS(E2-I2)<0.01,"OK","CHECK")
Allocated adds the shares linked to the expense ID. Check confirms that the shares match the bill, allowing for a small rounding difference. Copy both formulas down the sheet.
For an equal split, place this in Splits!C2:
=IF(A2="","",INDEX(Expenses!$E:$E,MATCH(A2,Expenses!$A:$A,0))/COUNTIF($A:$A,A2))
This divides the expense by the number of split rows with that ID. For lift tickets, meals, or other usage-based costs, replace the formula with each person's actual dollar share. The Check cell should still say OK.
Show who owes what
List each participant in column A of Summary. These formulas go in row 2:
| Summary column | Formula | Meaning |
|---|---|---|
| B: Paid | =SUMIF(Expenses!$D:$D,A2,Expenses!$E:$E) |
Expenses paid by that person |
| C: Share | =SUMIF(Splits!$B:$B,A2,Splits!$C:$C) |
Their assigned responsibility |
| D: Net | =B2-C2 |
Positive means the group owes them; negative means they owe |
| E: Settlements Out | =SUMIFS(Settlements!$D:$D,Settlements!$B:$B,A2,Settlements!$F:$F,"Paid") |
Paid reimbursements they sent |
| F: Settlements In | =SUMIFS(Settlements!$D:$D,Settlements!$C:$C,A2,Settlements!$F:$F,"Paid") |
Paid reimbursements they received |
| G: Remaining | =D2+E2-F2 |
Their balance after completed settlements |
A pending payment does not change Remaining. Mark it Paid only after the money arrives.
If Alex paid $400 in gas but has a $100 share, Alex starts with a net balance of positive $300. The other three passengers each start at negative $100. As each person pays Alex, the remaining balances move toward zero.
To check the entire trip, add this somewhere on Summary:
=ROUND(SUM(D2:D),2)
It should return 0.00 when every expense has matching shares. A nonzero result usually means a participant, expense ID, or share amount is missing.
For a category view, use this formula on Summary:
=QUERY(Expenses!A:J,"select F, sum(E) where F is not null group by F label sum(E) 'Total'",1)
It groups spending by the category in column F. Useful categories include Lodging, Lifts, Rentals, Gas, Meals, Groceries, Parking, and Other.
Keep names, receipts, and permissions tidy
Use dropdowns for payer names, categories, and settlement status. Keep one spelling for each person. Alex, alex, and Alex M. can become three different names in a formula.
Format Amount and Share as currency, freeze the header row, and protect formula columns such as Allocated, Check, and Summary. Give the organizer edit access and let other participants view or comment unless they need to enter expenses themselves.
Receipts pile up fast. A photo, a link, a note about who ate what - it sounds fussy, and in a crowded rental kitchen it is a little fussy. Still, that small record is much easier to use than reconstructing Tuesday's dinner from memory.
Create a Drive folder for the trip with Receipts and Exports subfolders. Name files with the expense ID, such as SKI-001_gas.jpg, then paste the file link into the matching row. Google's file organization guidance for Drive also supports using folders and descriptive names. Test a receipt link with another participant before the trip.
Run the tracker during the trip
-
Before the trip. Create the tabs, add the participant names, choose the split rules, and assign one person to check the workbook.
-
When someone pays. Add the expense immediately. Include the date, payer, amount, category, and receipt link. Do not wait until the end of the weekend.
-
When you know the users. Add the matching rows in
Splits. Include a short basis such as4 passengers,2 ski days, orRoom 1, 3 nights. -
After each day. Review the
Checkcolumn and scan for missing receipts. Turns out, catching a $70 mistake at dinner is easier than finding it after everyone has driven home. -
If the group settles early. Add the payment to
Settlements. Do not create a second expense for the reimbursement. -
After the trip. Stop changing the original expenses, add any refunds, and review the
Summarybalances. A short payment request can say:I closed the ski trip sheet. You owe $75 for gas and meals to Jordan. Please send it through the payment method we agreed on, then reply with confirmation.
-
When money arrives. Change the settlement status to
Paid, add the date and method, and keep the receipt or confirmation in the note. Download a copy of the finished sheet for the group records.
Handle refunds, cancellations, and uneven use
Thing is, ski trips rarely follow the first plan exactly. Keep the original entry visible and record the change instead of quietly rewriting history.
| Situation | Practical way to record it |
|---|---|
| Someone skis fewer days | Assign that person only the agreed number of ski days or use a day-based share |
| A non-skier skips lift tickets | Leave that person out of the lift-ticket split |
| A vendor refunds a shared charge | Add a separate negative expense with the same category and a note |
| A refundable lodging deposit comes back | Record the returned amount as a negative expense when it is received |
| Someone pays back in cash | Add the cash payment to Settlements, just like any other reimbursement |
| A discount applies only to one person | Record the actual shared amount and explain the exception in Notes |
If a refund goes to someone other than the original payer, add a clear note or a settlement entry so the credit is not lost. Use version history if somebody overwrites a formula.
U.S. tax context
Friends splitting the cost of a personal ski trip generally are not creating wages simply because one person paid first. The sheet documents personal cost sharing; it does not decide whether a particular payment is taxable.
Employer-sponsored or business travel is different. Federal rules distinguish accountable and nonaccountable reimbursement plans, and substantiation and excess-payment rules can matter. Use the employer's policy and current IRS guidance, including Publication 15-B, rather than treating this informal workflow as a payroll process.
State rules and the structure of a club or organization can change the analysis. This is general U.S. information, not tax advice.
Create the tabs before the trip, enter one sample $400 gas expense, and confirm that four $100 shares make the Check cell say OK. Then replace the sample names with the real group and protect the formula columns.