Do you actually know what you owe your partner right now, down to the dollar?
A single shared Google Sheet handles the whole mess. It logs who paid upfront, what the other person owes, and whether the debt is cleared. Crucially, you must keep the reimbursement amount separate from the full charge. A $150 grocery run split 50/50 creates a $75 IOU. It is not a $150 debt.
Turns out, a practical two-person system needs only three parts: a clean expense log, a basic summary tab, and a regular settlement routine. Manual logging easily covers two partners or a small crew under 10 people with simple habits. If you need receipt scanning or automated pinging, specialized apps save time. Still, the spreadsheet remains your single source of truth.
Decide what one row means
Lock in your row rules before touching any formulas. For couples, sticking to one row per shared expense gives the cleanest setup. The total charge gets typed once, making the other partner's exact share painless to verify.
| Situation | What the row captures | Example |
|---|---|---|
| One partner pays a 50/50 bill | Full bill and the other partner's share | $150 total, $75 owed |
| One partner pays a 60/40 bill | Full bill and the agreed 40% share | $200 total, $80 owed |
| A bill has already been settled | Original expense plus settlement status | Reimbursed: Yes |
| Several people owe one payer | One reimbursement row per payer and person who owes | Add an expense ID so totals do not get duplicated |
Managing a bigger household? Use separate Expenses and Splits tabs. Repeating the entire bill on multiple lines will inflate your category totals before you catch it.
Add columns that show the actual IOU
Type these ten headers across row 1. Column E is the critical guardrail that typical expense templates omit:
| Column | What to record |
|---|---|
| Date | Date the expense happened, such as 01/15/2026 |
| Payer | Partner who paid upfront |
| Total amount | Full cost of the bill |
| Owed by | Partner who must reimburse the payer |
| Amount owed | Only that partner's agreed share |
| Description | Specific detail, such as February rent |
| Category | Rent, groceries, utilities, travel, or another label |
| Reimbursed | Use Yes or No |
| Reimbursed date | Date the payment was completed |
| Receipt or notes | Receipt link, split method, or settlement note |
Here is how a real row looks:
| Date | Payer | Total amount | Owed by | Amount owed | Description | Category | Reimbursed | Reimbursed date | Receipt or notes |
|---|---|---|---|---|---|---|---|---|---|
| 01/15/2026 | Partner A | $150 | Partner B | $75 | February rent | Rent | No | Equal split |
Keep your notes boring. Seriously. Boring notes save relationships. A quick link to a receipt, the agreed split percentage, or the billing period will settle misunderstandings before they turn into dinner-table arguments.
Build the tracker in Google Sheets
Setting this up takes eight quick steps.
- Head to
sheets.google.com, make a blank sheet, and name it something obvious likePartner Reimbursements. - Change the name of
Sheet1toExpenses. - Paste the 10 headers into
A1:J1. Pin row 1 usingView > Freeze > 1 row. - Type a sample row to test layout, then swap it for your own actual bills.
- Set currency formatting on columns
C:CandE:E, and format your date fields as standard dates. - Put dropdown validation on
Payer,Owed by, andReimbursed. Put both partner names in the first two andYesandNoin the last. - Open a new tab called
Summaryto display individual open balances and the net difference. - Populate five to ten sample bills, resolve at least one, and verify the summary math before inviting anyone.
Oddball expense? Just override Amount owed by typing a hard number. You do not have to write custom spreadsheet formulas for every one-off split.
Add formulas for open balances
Every reimbursement calculation must pull from column E. Never point them at column C. Column C tracks the gross invoice, whereas column E holds what the other person must pay back. Pointing at column C doubles the apparent debt instantly.
For straight 50/50 splits, put =C2/2 into E2 and drag it down. If Partner A takes 60% of a $200 utility bill, Partner B's owed share is =C2*40%.
Drop these formulas directly into your Summary tab:
| Summary item | Formula |
|---|---|
| Amount Partner B owes on open rows | =SUMIFS(Expenses!$E:$E,Expenses!$D:$D,"Partner B",Expenses!$H:$H,"No") |
| Amount Partner A owes on open rows | =SUMIFS(Expenses!$E:$E,Expenses!$D:$D,"Partner A",Expenses!$H:$H,"No") |
| Amount currently due to Partner A | =SUMIFS(Expenses!$E:$E,Expenses!$B:$B,"Partner A",Expenses!$H:$H,"No") |
| Total open IOUs | =SUMIF(Expenses!$H:$H,"No",Expenses!$E:$E) |
| Net amount Partner B owes Partner A | =SUMIFS(Expenses!$E:$E,Expenses!$B:$B,"Partner A",Expenses!$H:$H,"No")-SUMIFS(Expenses!$E:$E,Expenses!$B:$B,"Partner B",Expenses!$H:$H,"No") |
| List of unpaid rows | =IFERROR(FILTER(Expenses!A:J,Expenses!H:H="No"),"No open IOUs") |
That net formula deducts what Partner A owes back to Partner B. When the number comes out positive, Partner B owes Partner A money.
If you prefer automatic grouping by person, use =QUERY(Expenses!A:J,"select D, sum(E) where H = 'No' group by D label sum(E) 'Open amount'",1). It ignores row sorting and keeps the calculation reliable.
Agree on the split before the bill arrives
Splitting everything down the middle is convenient. It is not always equitable.
| Split method | Useful when | What to record |
|---|---|---|
| Equal split | Both partners receive similar value | Equal split |
| Usage-based | One person uses more of a service | Usage details or agreed percentage |
| Income-based | Partners have agreed to contribute different proportions | Each person's percentage |
| Room-size or nights-stayed | Rent or lodging benefits are unequal | Room, nights, or other calculation basis |
Record your logic in the notes column as soon as an invoice lands. Do not wait three weeks, because neither of you will recall why an electric bill was 60/40. If you revise your split arrangement later on, leave your existing rows untouched and enforce the new ratio strictly on future purchases. That way, historical numbers stay clean.
Share the sheet without losing the formulas
Hit Share and send an email invite. Give Editor access if your partner logs their own charges. Give Viewer status if they only want to check the balance. The Tiller Help Center's notes on sharing and permissions outline how these roles work in daily practice.
Direct email invitations protect your privacy far better than open web links. If you rely on link access, make sure random editors cannot alter sharing rights or invite outside people.
Lock down your calculations once the sheet functions properly. Highlight your summary formula cells, open Data > Protect sheets and ranges, and select Restrict who can edit this range. Grant edit rights only to whoever maintains the sheet architecture. This Google Sheets protection walkthrough details the exact setup.
Keep entry cells completely open. If you use formulas inside column E, protect those specific cells, but keep manual override rows unlocked so anyone can adjust weird line items.
Thing is, range protection prevents accidental edits, not viewing. Anyone who can open your spreadsheet can read every tab. Never treat hidden tabs as private vaults for personal banking numbers, and never share account credentials.
Keep settlement simple
Pick a steady settlement schedule and stick to it. Enter transactions when they occur, then review open balances every Sunday or at the end of the month.
Here is a smooth clearing process:
- Log the purchase right after paying.
- Paste a receipt link or note the split ratio under
Receipt or notes. - Filter column H to
Noto see active unpaid balances. - Check the net figure together before sending funds.
- Send money via your normal bank or payment app, set the row status to
Yes, and enter the date.
Leave settled items in the sheet. They give you a clean audit trail and explain past bank transfers whenever memory fails.
To make pending bills jump out visually, select A2:J and apply a conditional formatting rule with =$H2="No". A soft pastel background highlights unsettled expenses immediately without altering cell contents. Whenever you want an archive copy, click File > Download and grab a CSV or PDF.
Keep spending totals separate from reimbursements
Reimbursements track debts. Budgets track spending. Mixing these two ideas up creates messy math.
To track both, create a dedicated Budget tab with these headers:
| Category | Budget | Actual | Remaining | Percent used |
|---|---|---|---|---|
| Rent | ||||
| Groceries | ||||
| Utilities |
Put the category name in A2, your planned cap in B2, and the actual spending in C2. Calculate Actual using =SUMIF(Expenses!$G:$G,A2,Expenses!$C:$C). For Remaining, use =B2-C2. For Percent used, add =IFERROR(C2/B2,"") and format the cell as a percentage.
Remember this golden rule: pull from column C for household budget totals, and pull from column E for repayments. This keeps a $150 grocery trip from registering as an inaccurate $75 cost just because the reimbursement was $75.
Avoid the formulas that cause trouble
Do not tally unpaid IOUs by adding up the full charges in column C. That doubles what your partner actually owes every single time.
Building a row-by-row running balance is another common trap. The second someone inserts a forgotten dinner or deletes an entry, those row-offset formulas break. Standard SUMIFS formulas work far better because they evaluate cell properties instead of relying on the row directly above.
Your tracker works only when records remain intact. Leave settled entries alone, log clear notes, and correct errors openly instead of deleting rows.
When Sheets is enough and when to consider another tool
| Situation | Google Sheets fit | Another tool may help when |
|---|---|---|
| Two partners, occasional bills, simple splits | Strong fit for manual entry and shared review | No extra tool is necessary |
| Small group under 10 people with occasional expenses | Works if everyone follows the same row rules | Receipt scanning or reminders matter |
| Recurring household bills | Works with a calendar reminder and a standing review | You want more built-in requests or alerts |
| Many payees or frequent disputes | Possible, but requires careful row and split design | Manual entry becomes the source of repeated errors |
To be honest, the app you use to transfer cash does not need to match your tracking sheet. Use Zelle, Venmo, or your checking account to transfer the actual money. Let the spreadsheet log the details, the reason for the split, and the settlement date.
Handle the common edge cases
Both partners paid bills
Give every single invoice its own separate line. The net formula automatically settles what each person owes without you needing to fabricate artificial payment rows beforehand.
One expense has several payees
Assign an expense ID and create one line per debtor. Do not duplicate the gross bill across rows, or your monthly totals will look inflated. Alternatively, track shares on a dedicated Splits tab.
The split was uneven
Enter the specific dollar figure into Amount owed, then explain the rationale in Receipt or notes. Formulas should mirror your real agreement, not try to guess it.
The payment happened outside the sheet
Update the row to Yes, log the completion date, and leave the note intact. Never purge an IOU just because it is cleared.
Grab three recent receipts today. Plug in the payer, the total invoice, the split amount, and a brief note, then review the net formula before you hand the link to your partner.