One roommate covers the trash bill in January. Fine. But paying first shouldn't turn them into the household bank for the rest of the year. A simple Google Sheets workbook can show the bill, each person's agreed share, and the repayments that actually happened, and the whole setup only works if you keep those records separate. That separation is what prevents double-counting.
The same structure handles water, internet, or any other recurring household bill.
Start with three tabs
Create three tabs: Expenses, Payments, and Summary. Bills go in Expenses. Money people send to settle those bills goes in Payments. Summary turns the rows into a current balance.
The split matters because the person who fronted the cash isn't always the person who ends up carrying the cost. Once a repayment row can pass for an expense, the math stops meaning anything.
Set up the Expenses tab
Row 1 holds the headers, and participant names start in column F. This example uses four roommates.
| Column | Header | What to enter |
|---|---|---|
| A | Date | When the bill was paid or recorded |
| B | Description | Something like Trash bill - January |
| C | Payer | The person who actually paid |
| D | Amount | The full bill amount |
| E | Split method | Equal or Custom |
| F to I | Participant names | Each person's share in dollars |
| J | Share check | A formula confirming the shares equal the bill |
| K | Note | Optional context, such as a billing period |
Put dollar shares in the working columns, not percentages. For four equal shares of a $50 bill, that's $12.50 under each name. For a custom split, enter the agreed dollar amounts instead. Either way, the row has to total the bill.
Add this formula in J2, then copy it down:
=IF(ROUND(SUM(F2:I2),2)=ROUND(D2,2),"OK","Check shares")
Format column D and the participant columns as currency. If you have fewer or more participants, change F2:I2 so it covers the full participant range.
If your current sheet has a Split Type column, you might be labeling an upfront situation Reimbursement. In this layout, though, the amount owed comes from the share cells and the repayment belongs in Payments. A row showing a 100% payer and 0% for everyone else records who fronted the cash. It isn't the final four-way split.
Build and test the sample bill
Open Google Sheets and start a blank workbook. Add the three tabs, then enter this test data:
- In row 2 of
Expenses, enter January 15,Trash bill - January,Alex, and50. - Set the split method to
Equal. - Type
12.50in each of the Alex, Jordan, Sam, and Taylor share columns. - The share check should now say
OK. - Add a second row for the $60 February bill paid by Jordan, with
$15.00in each share column.
One expense row per billing cycle. Don't replace January with February. The history is what explains a balance later.
Why the simple /4 formula can mislead
A shortcut formula often floats around that looks like this:
=SUMIF(Expenses!D:D,"Alex",Expenses!C:C)-(SUM(Expenses!C:C)/4)
It's fine only when every listed row is an expense with the same four-way split and the range holds expenses and nothing else. Room-size shares, an excluded participant, partial payments, a changed household. None of that registers.
Thing is, a repayment row sitting in that amount range looks like just another expense to the formula. Explicit share columns plus a separate payment ledger sidestep the whole problem.
Log repayments in a Payments tab
Set the Payments headers as follows:
A1 Date | B1 From | C1 To | D1 Amount | E1 Status | F1 Note
Say Jordan sends Alex $12.50 for the January trash bill. That's one row:
2026-01-20 | Jordan | Alex | 12.50 | Paid | January trash
Mark it Pending until the repayment is actually made and confirmed. The balance formula below ignores pending rows. If someone pays only part of what they owe, record the actual partial payment and the remaining balance stays open.
If you settle through a payment app or bank transfer, update the sheet once you can confirm the transfer went through. The spreadsheet records the agreement and the status. It doesn't send money.
Put the balance formula on Summary
On Summary, type Metric in A1, then place the participant names in B1:E1, in the same order as their share columns on Expenses. Label A2 Net balance and paste this into B2:
=SUMIF(Expenses!$C:$C,B$1,Expenses!$D:$D)-SUM(Expenses!F:F)+SUMIFS(Payments!$D:$D,Payments!$B:$B,B$1,Payments!$E:$E,"Paid")-SUMIFS(Payments!$D:$D,Payments!$C:$C,B$1,Payments!$E:$E,"Paid")
Drag the formula across to E2. As it moves right, Expenses!F:F shifts to the next participant share column on its own.
The formula adds the bills that person paid, subtracts their own share, adds completed repayments they sent, and subtracts completed repayments they received. A positive balance means the person should receive money. A negative one means they still owe.
Run it against the $50 January bill alone and Alex shows +$37.50, while each other roommate shows -$12.50. Add Jordan's $60 February bill and it becomes +$22.50 for Alex, +$32.50 for Jordan, and -$27.50 apiece for Sam and Taylor.
Add a check beneath the balances. Put Total check in A3 and this formula in B3:
=ROUND(SUM(B2:E2),2)
When every bill has been allocated correctly and every payment has both a sender and a recipient, you'll see 0.00.
Handle uneven shares without changing the formula
Equal splits are easy to explain. Usage-based, room-size, nights-stayed, or occupancy splits can match the household agreement better.
Whatever the rule, enter each person's final dollar amount on every bill row. Every row, even the boring ones. An income-based split also needs the roommates to agree on it first; the spreadsheet can record that decision, but it can't decide whether the rule feels fair.
Write the rule in the Note column or a separate household agreement. When someone moves out, leave the old rows untouched and use the new participant list for future bills.
Share the workbook with the right access
Roommates who'll add bills or repayments get Editor access. Anyone who only needs to read the balances gets Viewer. You set both from the Share control in Google Sheets, and Tiller's sharing and permissions guidance is a practical reference for choosing between the two.
Agree on two rules before you send the invite. One person posts each bill. And nobody marks a repayment Paid until the group can confirm it.
Troubleshoot the numbers
| Problem | Correction |
|---|---|
The share check says Check shares |
Make the participant dollar shares add up to the bill amount. |
| A balance is too high | Look for a repayment entered on Expenses instead of Payments. |
| A payment doesn't change the balance | Check that its status is exactly Paid. |
| A roommate's balance is missing | Match the Summary name with the payer, From, To, and share headers. |
| A new bill uses the wrong household members | Enter the current participants for that row without rewriting older bills. |
| The total check is not zero | Look for missing shares, a payment sent to an unlisted person, or a misspelled name. |
When a spreadsheet is enough
A sheet handles a small household with recurring bills and an agreed splitting rule just fine. The calculations stay visible, and the monthly record is easy to review.
Turns out, a split-bill app earns its keep when receipts must be divided item by item, many one-off expenses pile up, or people need frequent reminders. Compare tracking, requesting, paying, and recordkeeping as four separate jobs rather than assuming one tool handles them all.
Create the three tabs before the next bill arrives. Enter one real bill, run the share check, and ask each roommate to confirm the row before you record the first reimbursement.