Yes, this setup works for roommates, travel groups, and friends who only need a shared ledger. Google Sheets calculates each person's share, while Cash App records a transfer after someone settles. Keep those jobs separate.
Use one row for the original expense and one row for each actual payment. A $60 grocery run stays $60 even if Bob sends Alice $20 later. The structure stays clear when a reimbursement is partial, delayed, or split across several transfers.
Decide what the tracker should calculate
Start with the accounting rule, not the formatting. For every expense, record who paid, the total cost, and each person's share.
The payer field and share fields answer different questions:
| Field | What it records | Example |
|---|---|---|
| Paid by | The person who fronted the money | Alice |
| Total | The full cost of the expense | $60.00 |
| Member share | What each person owes toward that expense | Alice $20, Bob $20, Charlie $20 |
| Current balance | The person's net position after confirmed payments | Alice +$40 before repayments |
A positive balance means the group owes that person. A negative balance means that person still owes the group.
This avoids a common reimbursement error. The person who paid is often owed money, so they should not automatically receive a 100% share.
Build the Google Sheets workbook
Create one shared file rather than several copies with names such as IOU_Tracker_v2_final.xlsx. One file gives everyone the same numbers and leaves a usable edit history.
-
Open a blank Google Sheet and name it something like
Group IOU Tracker - TriporGroup IOU Tracker - Apartment. -
Rename the first tab
Expenses. Add two more tabs namedPaymentsandSummary. -
On
Expenses, use these row 1 headers:Date,Description,Category,Paid by,Total,Split type,Notes or receipt, followed by one column for each member. If the members are Alice, Bob, and Charlie, put those names inH1,I1, andJ1. -
Enter dollar shares in the member columns. These are the amounts each person owes for that row, not the amounts they paid.
-
Add a
Share checkcolumn after the last member column. It will confirm that the member shares equal the total expense. -
On
Payments, use these headers:Date,From,To,Amount,Method,Transaction ID or note, andStatus. -
On
Summary, use these headers:Member,Paid,Share,Net before payments,Sent,Received, andCurrent balance. -
Add dropdowns for
Category,Split type,Paid by, andStatusif consistent entries will help. Useful status values includePending,Confirmed, andVoided. -
Share the file with specific people when possible. Give Editor access only to people who should change the ledger, and use Commenter access for people who only need to review it.
Enter a test row before adding real expenses. Use today's date, Groceries, Alice as the payer, $60 as the total, and $20 in each of the three member columns.
Enter fair splits without losing cents
The safest input is usually a dollar share. Percentages can work, but dollar amounts make rounding and reimbursements easier to inspect.
| Split type | How to enter it | When it fits |
|---|---|---|
| Equal | Divide the total evenly among the people included | Shared groceries or an equal dinner split |
| Usage-based | Enter each person's agreed amount based on use | Gas, utilities, or nights in a rental |
| Room-size or income-based | Apply the rule the group agreed to before the expense | Household costs with different rooms or contributions |
| Reimbursement | Enter $0 for the payer's own share and assign the covered amount to the person who benefited | Alice buys a $30 item only for Bob |
Turns out, the final cent matters. If $100 is split three ways, enter $33.33, $33.33, and $33.34 rather than leaving the row one cent short.
For three equal members, you can use this pattern:
H2: =ROUND($E2/3,2)
I2: =ROUND($E2/3,2)
J2: =$E2-SUM(H2:I2)
Change the divisor and the final-column range for a different group size. For a custom split, type the dollar amounts directly.
In the Share check cell for row 2, enter =E2-SUM(H2:J2). A result of 0 means the row is fully allocated. A nonzero result needs attention before anyone settles.
Write the rule in Notes or receipt when a split might be questioned later. A note such as 4 of 10 rental nights is more useful than a vague label such as custom.
Calculate balances in the Summary tab
These formulas assume the member names are in Expenses!H1:J1, the first Summary name is in A2, and the Payments status is in column G. Extend the ranges if your workbook uses more member columns or rows.
| Summary cell | Formula | Meaning |
|---|---|---|
B2 |
=SUMIF(Expenses!$D$2:$D$500,A2,Expenses!$E$2:$E$500) |
Total paid by the member |
C2 |
=IFERROR(SUM(FILTER(Expenses!$H$2:$J$500,Expenses!$H$1:$J$1=A2)),0) |
Total share assigned to the member |
D2 |
=B2-C2 |
Net position before payments |
E2 |
=SUMIFS(Payments!$D$2:$D$500,Payments!$B$2:$B$500,A2,Payments!$G$2:$G$500,"Confirmed") |
Confirmed payments sent |
F2 |
=SUMIFS(Payments!$D$2:$D$500,Payments!$C$2:$C$500,A2,Payments!$G$2:$G$500,"Confirmed") |
Confirmed payments received |
G2 |
=D2+E2-F2 |
Current balance |
Copy the formulas down for every member. Match names exactly. Alice, alice, and Alice may be treated as different text values.
With the $60 example, Alice's net position is positive $40 because she paid $60 but owes only $20 of the expense. Bob and Charlie each show negative $20. If Bob sends Alice $20 and the payment is marked Confirmed, Bob reaches zero and Alice drops to positive $20 because Charlie still owes $20.
The Summary tab shows net positions. It does not decide which person must send money first. The group still needs to agree on the actual settlement transfers.
For a simple category report, place this formula in an empty area:
=QUERY(Expenses!A1:E500,"select C, sum(E) where C is not null group by C label sum(E) 'Total'",1)
That report groups expense totals by the Category column.
Reconcile Cash App payments with the ledger
Cash App is the payment record in this workflow, not the split calculator. A $20 transfer should reduce an IOU, but it should not rewrite the original $60 expense.
-
Add the expense to
Expensesbefore requesting or sending money. Make sure the shares add up to the total. -
When someone sends money, add a row to
Payments. Enter the sender inFrom, the recipient inTo, the amount,Cash Appas the method, andPendingas the status. -
Review the payment details in Cash App's Activity area. An individual transaction may show information such as the recipient, date, time, note, status, and payment method.
-
For a broader record, check the Activity or Statements area on Cash App's website if that option is available to your account. A third-party walkthrough of Cash App history describes selecting a month or custom date range and downloading a CSV or PDF.
-
Match the export to the Payments row using the sender, recipient, amount, and transaction details. Do not rely on the date alone, because the expense date and payment date can differ.
-
Change the status to
Confirmedonly after the transfer matches. If the payment is canceled, missing, or disputed, leave it pending or mark itVoidedinstead.
This workbook has no live connection to Cash App. Keep the original export in a restricted folder, then copy only the relevant payment details into Payments. That preserves the source file without pasting over formulas or exposing unrelated transactions to the whole group.
Set sharing and review rules
Thing is, live editing helps only when the group has one source of truth. Decide who can enter expenses, who reviews them, and when the group settles balances.
| Control | Practical setting |
|---|---|
| File access | Share with named people instead of an unrestricted edit link |
| Formula cells | Protect them if members often overwrite calculations |
| Receipts | Add a Drive link in Notes or receipt |
| Questions | Use cell comments rather than changing the original amount |
| Review timing | Enter expenses as they happen and reconcile after each event or review period |
| Payment evidence | Keep exports and screenshots separate from the main editable ledger |
If you use link sharing, remember that every editor can change the file. A Commenter role is better for someone who needs to inspect the records without altering them.
Check these errors before settling
| Common problem | Fix |
|---|---|
| The payer is entered as owing 100% | Keep Paid by separate from the person's actual share |
| Member shares do not equal the total | Check the Share check result and assign any rounding remainder |
| One person appears twice | Standardize the name in every tab |
| A payment was entered as another expense | Move it to Payments; it is a transfer, not new spending |
| A pending payment changes the balance | Use Confirmed status in the payment formulas |
| An export replaced formulas | Restore the workbook version and paste only relevant rows |
| A receipt cannot be found | Add a stable Drive link or note the storage location |
To be honest, a written split rule can prevent more arguments than another formula. Agree in advance on equal, usage-based, room-size, income-based, or reimbursement rules.
Know when this workflow stops fitting
This approach works well for small, informal groups with occasional shared costs and one person willing to reconcile the records. It can become tedious when a group needs frequent reminders, receipt scanning, many simultaneous ledgers, or automatic payment matching.
A dedicated split-bill tool may reduce manual work in those situations. Compare its handling of custom shares, exports, privacy, and payment records before moving the group. Cash App can show that money moved, but it cannot establish whether the original split was fair.
FAQ
Can I use percentages instead of dollar shares?
Yes. Convert each percentage into a dollar amount for the expense row, then check that the amounts equal the total. Dollar shares make rounding visible and are easier to audit.
How should I log a reimbursement?
If Alice buys a $30 item only for Bob, enter Alice as Paid by, set the total to $30, enter $0 for Alice's share, and $30 for Bob's share. When Bob pays Alice, record that transfer in Payments rather than creating a second $30 expense.
What if a Cash App payment does not appear in the history?
Leave the Payments row as Pending. Check the Activity or Statements view, ask the sender for the transaction details, and mark it Confirmed only when the amount and participants match.
Can this spreadsheet serve as a tax record?
It can preserve your own shared-expense history, but it does not determine whether an expense is deductible or establish a tax position. Keep receipts and seek situation-specific advice from a qualified tax professional.
Can everyone edit the workbook at the same time?
They can if their permissions allow it, but simultaneous edits can still create mistakes. Use one canonical file, comments for disputes, and protected formula cells where needed.
Create the three tabs and enter the $60 grocery test row first. Confirm that the shares total $60, the Summary shows Alice at positive $40 and the other two members at negative $20, then add a confirmed $20 payment from Bob to Alice before replacing the test data with real expenses.