What does a simple reimbursement tracker actually need to show? Just three details: who paid, who owes, and when it is due. In Google Sheets, give each person their own row. From there, let formulas calculate the status using the due date and the paid date.
Turns out that simple row-level structure stops almost every common group argument. It works equally well for shared groceries, split utility bills, rental cabins, club events, or dinner tabs.
Keep the money movement off the sheet. A spreadsheet tracks what everyone agreed on. It cannot move cash or force someone to pay you back.
Use one row for each reimbursement
Set up your sheet with nine basic columns. The main rule here is simple: never mix up the day the bill got paid with the day you get reimbursed.
| Column | What to enter | Example |
|---|---|---|
| Expense date | When the bill or purchase was paid | 5/1/2026 |
| Paid by | Person who fronted the money | Alex |
| Owed by | Person who must reimburse the payer | Jordan |
| Amount owed | That person's share, not the entire bill | $60.00 |
| Due date | The deadline your group agreed on | 5/15/2026 |
| Status | Pending, Paid, Overdue, or Needs due date | Pending |
| Paid date | Date the payer confirms receiving money | Blank until paid |
| Category | Utilities, groceries, travel, or another label | Utilities |
| Receipt or split note | Receipt link and the reason for the amount | Receipt link; two-person split |
Take a standard situation. Alex covers a $120 electric bill, and Jordan owes half. You log a single row showing Jordan owes Alex $60. If three roommates owe Alex for that same bill, you build three separate rows. Everyone gets their own share, their own deadline, and their own status check.
Do not collapse these into a single date column. The expense date shows when cash left the payer. The paid date tracks when it came back.
Build the Google Sheets tracker
-
Open a blank Google Sheet and name the tab
Reimbursements. -
Put the nine headers in row 1, matching the exact order above. Skip merged headers. Plain rows let filters and formulas run without unexpected errors.
-
Set
Expense date,Due date, andPaid dateto the Date format. FormatAmount owedas currency. Click row 1 and select View > Freeze > 1 row so your labels stay put while you scroll. -
In cell
F2, paste this formula to automate status updates, leaving the rest of column F blank:=ARRAYFORMULA(IF(A2:A="","",IF(G2:G<>"","Paid",IF(E2:E="","Needs due date",IF(E2:E<TODAY(),"Overdue","Pending")))))Any entry in
Paid datemarks that row Paid. When that cell is empty, the formula checks the deadline. A row due today stays Pending until tomorrow. -
Add two quick sample rows to verify the setup:
| Expense date | Paid by | Owed by | Amount owed | Due date | Status | Paid date | Category | Receipt or split note |
|---|---|---|---|---|---|---|---|---|
| 5/1/2026 | Alex | Jordan | $60.00 | 5/15/2026 | Pending | Utilities | Receipt link; two-person split | |
| 5/3/2026 | Jordan | Alex | $22.50 | 5/17/2026 | Pending | Groceries | Receipt link; shared items only |
Status tags update as time passes. To check whether Overdue triggers correctly, temporarily set an older due date, then switch it back.
-
If your group prefers marking items manually, skip the formula entirely. Highlight
F2:F, go to Data > Data validation, and add a dropdown with options like Pending, Paid, Overdue, and Disputed. Pick one approach. Mixing manual picks and array formulas in one column creates a mess. -
Set sharing permissions carefully. Give Editor access only to folks who enter expenses or log settlements. Make everyone else a Viewer. If others have edit rights, lock column F so nobody wipes out the formula.
This setup feels slightly fussy at the start. Once you finish it, logging receipts takes seconds.
Make overdue rows easy to spot
Highlight your main data range, like A2:I, and open Format > Conditional formatting. Add three custom formula rules:
| Condition | Custom formula | Suggested appearance |
|---|---|---|
| Payment is overdue | =$F2="Overdue" |
Red or orange background |
| Payment is still pending | =$F2="Pending" |
Light yellow background |
| Payment has been received | =$F2="Paid" |
Light green background |
Locking column F with the dollar sign applies the tint across the whole row. That way, the payer, the debtor, and the amount highlight together.
Thing is, colors are just visual reminders. Never let cell shading replace clear status text, because sorting and filtering rely on actual values.
When someone skips entering a due date, the formula returns Needs due date. Fix those promptly so rows do not get lost in limbo.
Add a summary tab with formulas
Create another tab and call it Summary.
These formulas look at your first tab. They assume your columns sit in the order described above. Give the FILTER and QUERY functions empty rows below them so they have room to expand.
| Summary item | Formula | What it shows |
|---|---|---|
| Total logged | =SUM(D2:D) |
All reimbursement amounts, including Paid rows |
| Outstanding total | =SUMIFS(D2:D,F2:F,"<>Paid") |
Amounts not marked Paid |
| Overdue total | =SUMIFS(D2:D,E2:E,"<"&TODAY(),E2:E,">0",F2:F,"<>Paid") |
Unpaid amounts past their due dates |
| Jordan's outstanding amount | =SUMIFS(D2:D,C2:C,"Jordan",F2:F,"<>Paid") |
Unpaid rows where Jordan is Owed by |
| Overdue rows | =IFERROR(FILTER(A2:I,A2:A<>"",E2:E<TODAY(),E2:E>0,F2:F<>"Paid"),"No overdue rows") |
A filtered list of unpaid past-due rows |
| Outstanding by category | =QUERY(A2:I,"select H, sum(D) where F <> 'Paid' group by H label H 'Category', sum(D) 'Outstanding'",0) |
Unpaid totals grouped by category |
The TODAY() function refreshes on its own whenever you load the workbook. It will not ping anyone on its own, so check the numbers weekly.
Watch your spelling if you picked manual dropdowns. To Google Sheets, Paid, paid, and PAID work, but something like Received will break your SUMIFS filter.
Agree on the split before entering amounts
A spreadsheet handles the math, but your group decides what feels fair. Put the split logic in the note column so nobody has to guess later how you reached a number.
| Split method | Works better when | What to record |
|---|---|---|
| Equal split | People use the purchase or bill about the same | $120 / 3 = $40 each |
| Usage-based | People consume different amounts of utilities, groceries, or gas | The quantity, meter reading, or agreed share |
| Room, bed, or nights stayed | A rental has different rooms or attendance periods | Nights, room assignment, or attendance dates |
| Income-based | Partners agree to contribute different amounts to household costs | The agreed percentage or dollar amount |
| Reimbursement after proof | A club, team, or committee requires approval before repayment | Receipt link and approval note |
Pick a firm rule for repeating costs. You might agree that shared utility payments come due five days after the statement lands, or on the first of the month. Write that exact target date into the cell. Vague phrases like "by next Friday" break the formulas.
Run a small weekly payment workflow
Enter receipts as soon as purchases happen. Put in the payer, the borrower, their dollar share, the target due date, and a receipt link before paper slips fade or get lost.
Send reminders using your normal group chat. A short note works:
Your $60 utility share is due May 15. Please reply after payment so I can update the Paid Date field.
Once money arrives, drop the date into Paid date. That single edit flips the row status to Paid.
If somebody questions a dollar figure, do not rewrite the row in secret. Keep the existing numbers and note the disagreement in the comment cell. Quietly altering past entries causes friction faster than almost anything else in shared households.
Store your receipt images in a shared drive folder with open link permissions for the group. Keep card numbers, bank logins, and sensitive identity details out of the sheet.
Keep tax and legal limits in mind. This tracker is an informal record, not an accountable plan or formal business ledger. If you handle deductible business expenses or nonprofit reimbursements, follow the specific accounting standards required for your situation.
Check these common mistakes
Most broken reimbursement sheets fail for the same few reasons.
| Mistake | Better practice |
|---|---|
| Recording one group bill as one reimbursement row | Create one row for each person who owes money |
| Using the expense date as the reimbursement date | Keep Expense date, Due date, and Paid date separate |
| Typing dates as plain text | Format the columns as dates and check that formulas recognize them |
| Overwriting the automatic status formula | Protect column F or use a manual dropdown instead |
| Marking a row Paid without a paid date | Enter the date the reimbursement was confirmed |
| Leaving the deadline only in a chat message | Put the exact due date and rule in the sheet |
| Using color without readable status text | Keep the status value visible and filterable |
| Giving every collaborator full edit access | Use specific sharing permissions and protect formula cells |
Know what the spreadsheet cannot do
A spreadsheet is a passive ledger. It works well for friends, roommates, and small clubs who communicate well and split things occasionally. It cannot pull cash from an account, verify a bank wire, settle an argument, or chase down someone who ignores your texts.
Handle payments through whatever app or bank method your group already uses. Once the transfer settles, copy that date back into the sheet.
To be honest, two roommates splitting three monthly bills only need this sheet and a shared receipt folder. If your group handles dozens of weekly purchases, complex approvals, or constant disputes, you probably need dedicated software instead.
FAQ
How many rows should one split bill use?
Use one row for every person who owes money. If the payer also covered their own share of the bill, leave that person's portion out of the reimbursement list.
Can the due date calculate automatically?
Yes, if you follow a fixed timeline. Entering =A2+14 calculates a deadline exactly two weeks after the expense date in A2. Adjust that number to match your group rule.
How should I handle a disputed reimbursement?
Add a Dispute note column so disagreements stay visible without breaking the status column. Keep the bill, the split math, and the explanation together in that row.
Does this replace a payment app?
No. The sheet tracks amounts, receipts, and deadlines. Your group still transfers cash through your preferred payment app and logs the settlement date.
Set up the Reimbursements tab, paste the headers, add the two test rows, and verify that an older due date flags Overdue. Once that formula works, share the sheet with one group member before typing in your full backlog of receipts.