Yes, a small Google Sheets workbook can handle shared cleaning supplies without turning every receipt into a debate. It tracks three things: who bought the item, who should share it, and whether anyone has actually repaid anyone else. That's the whole job. The useful version keeps all three answers on one screen.
You'll build it with separate tabs for purchases, calculated shares, payments, and balances. That separation keeps the formulas readable and the reimbursement history honest.
Build a tracker that separates inputs from results
Open a blank file in Google Sheets and make four tabs. Copy the layout below into them.
| Tab | Job | Keep here |
|---|---|---|
| Expenses | Original purchase log | Date, item, receipt total, payer, split method, and participant weights |
| Shares | Automatic calculation | Each roommate's assigned portion of every purchase |
| Payments | Money that actually moved | Date, sender, recipient, amount, and note |
| Balances | Net position | What each person paid, owes, sent, and received |
Turns out this little bit of separation prevents the most common mistake: treating whoever paid at checkout as the person who should bear the entire cost.
Choose the split rule before entering numbers
Pick the split method before anyone touches a number. The method describes your agreement. The participant columns hold the math.
| Method | Use it when | What to enter for each participant |
|---|---|---|
| Equal | Everyone shares the supplies | 1 for each participant |
| Usage-based | Only some roommates use the item | 1 for users and 0 for non-users |
| Percentage | Roommates agree to income-based or other percentages | Decimals such as 0.4 and 0.6 |
| Custom | A room, person, or special arrangement should carry more of the cost | Weights such as 2 and 1, or 1 for only one person |
The formula normalizes whatever weights it finds. So 1, 1, 1, 1 creates an equal split, and 1, 1, 0, 0 divides the charge between two people.
If roommates would rather keep income details private, leave them off the shared sheet. Only the agreed percentages need to appear there.
Create the Expenses tab
Make a new tab, name it Expenses, and put these headings in row 1:
Date | Description | Category | Total Cost | Paid By | Split Type | Alex | Jordan | Sam | Taylor | Receipt or Notes
Swap in your roommates' real names. They have to match everywhere, including the Paid By column and the payment log.
Follow this setup:
- Format
Dateas a date andTotal Costas currency. - Add a dropdown to
Split TypewithEqual,Usage-based,Percentage, andCustom. - Put the receipt total in
Total Cost, sales tax included for a shared purchase. - Fill each participant column with
1,0, or an agreed decimal. - Drop a receipt photo link or a short explanation into
Receipt or Notes. - Freeze the header with
View > Freeze > 1 row.
An example row could look like this:
2026-01-15 | Bleach and sponges | Cleaning | 24.50 | Alex | Equal | 1 | 1 | 1 | 1 | Receipt link
One warning: never type dollar amounts into the participant columns. Those cells hold weights, not final shares.
Add the share formulas
Make a tab called Shares with these headings:
Date | Description | Total Cost | Alex | Jordan | Sam | Taylor
In A2, start with:
=IF(Expenses!A2="","",Expenses!A2)
In B2, enter:
=IF(Expenses!B2="","",Expenses!B2)
In C2, enter:
=IF(Expenses!D2="","",Expenses!D2)
In D2, enter the share formula for Alex:
=IF(Expenses!$D2="","",IFERROR(Expenses!$D2*Expenses!G2/SUM(Expenses!$G2:$J2),""))
Copy that last formula across through G2, then drag all four down for future purchases. As the formula moves from Alex to Jordan, Expenses!G2 shifts to Expenses!H2. The total weight range stays fixed.
The math is just total cost times a person's weight, divided by all participant weights combined. When nobody has been selected, IFERROR blanks the cell instead of showing a division error.
A $24.00 purchase with four participants marked 1 gives everyone $6.00. At $24.50, the underlying value is $6.125 per person, and currency formatting will usually display $6.13. Keep the full precision in the calculation and adjust the final cent when people settle up.
Record reimbursements separately
Thing is, a reimbursement is money actually moving between people. Deciding who benefited from the purchase is a different question.
Create a Payments tab with these columns:
| Column | Heading |
|---|---|
| A | Date |
| B | From |
| C | To |
| D | Amount |
| E | Note |
Say Alex pays $24.00 for supplies all four roommates share. The Expenses row assigns $6.00 to each person. Alex fronted $24.00 but only owes $6.00, so Alex's initial credit is $18.00.
When Jordan sends Alex $6.00, add one row to Payments:
Date | From | To | Amount | Note
Jan 20 | Jordan | Alex | 6.00 | January cleaning supplies
Now suppose Alex buys an item that Jordan alone should cover. Jordan gets the 1 and everyone else gets 0, while Alex stays in Paid By. Jordan carries the assigned cost, and Alex holds a credit until the payment gets recorded.
Don't bump the buyer's weight to 1 just because the card was theirs. Paid By records who fronted the money. Participant weights record who should bear the cost.
Add a balance summary
Last tab: Balances. Put each participant's name across row 1, starting in B1:
A1 Metric | B1 Alex | C1 Jordan | D1 Sam | E1 Taylor
Put these labels in A2:A6:
Purchases paid
Assigned share
Payments sent
Payments received
Net balance
Enter these formulas in column B and copy them across.
| Row | Formula in column B |
|---|---|
| Purchases paid | =SUMIF(Expenses!$E:$E,B$1,Expenses!$D:$D) |
| Assigned share | =SUM(Shares!D:D) |
| Payments sent | =SUMIF(Payments!$B:$B,B$1,Payments!$D:$D) |
| Payments received | =SUMIF(Payments!$C:$C,B$1,Payments!$D:$D) |
| Net balance | =B2-B3-B4+B5 |
A positive net balance means the group owes that person. A negative one means the person owes the group.
Spell every name identically across tabs. To a formula, Alex and Alex R. are two different people.
Share the file without creating edit conflicts
Hit the Share button and add whoever needs access. Editing for people who enter purchases or payments. Commenting for anyone who only flags a receipt. Viewing for those who just check totals.
When the file contains payment notes or receipt links, named access is safer than a public edit link. Ask everyone to enter new rows only in Expenses and Payments. The Shares and Balances tabs are calculation areas.
A short message helps:
I added the cleaning tracker. Please add purchases in Expenses, record repayments in Payments, and leave the Shares and Balances formulas alone.
From there the sheet updates as people edit. That works well for a small household, provided everyone follows the same entry rule.
Review the sheet before settling up
Run this quick check before anyone sends money.
| Check | What to confirm |
|---|---|
| Receipt total | The amount matches the receipt and is entered only once |
| Paid By | The name exactly matches the participant heading |
| Split method | The row reflects the agreement for that item |
| Weights | Values are numbers, not text such as Yes or No |
| Formula range | Every participant is included in the denominator |
| Payment record | Each repayment appears once, with a sender and recipient |
To be honest, the sheet only works if people actually use it. A perfect formula won't rescue a receipt that sits in a text thread for three weeks, or a payment that gets made but never entered, and someone will eventually type over a formula if the input area isn't obvious.
For occasional purchases, add rows at least weekly and pick a regular settlement date. Link receipt photos in the notes column, then review the balances before requesting or sending money.
Common questions
What if only some roommates use the supplies?
Choose Usage-based. Users get a 1, everyone else a 0. So a $20 purchase with two users assigns $10 to each of them.
What if roommates want an income-based split?
Pick Percentage and enter the agreed decimals, like 0.4 and 0.6. The sheet needs those percentages, not anyone's salary.
Can I use checkboxes instead of 1 and 0?
The main formula expects numeric weights, so checkboxes need a small tweak. Use this version in Shares!D2:
=IF(Expenses!$D2="","",IFERROR(Expenses!$D2*N(Expenses!G2)/SUM(ARRAYFORMULA(N(Expenses!$G2:$J2))),""))
Copy it across and down as before. Checkbox values become 1 or 0 through N.
What changes when a fifth roommate moves in?
Insert a new participant column before Receipt or Notes, add that person's name to Shares and Balances, and stretch the formula range from Expenses!$G2:$J2 to Expenses!$G2:$K2. Copy the new share formula across the added column.
Do I need a separate app?
Not for occasional cleaning purchases. If roommates agree on the rules and enter receipts consistently, a spreadsheet is usually enough. A dedicated app only earns its keep when the group has frequent transactions or wants features such as receipt scanning or payment requests.
Start small: create the four tabs, enter your most recent cleaning receipts, and agree on two rules in writing. Who counts as a participant, and when a payment is considered settled. Then share the sheet with the roommates who need to edit it.