How to track expenses paid by different people in Google Sheets

This is a joint log for roommates, partners, families, travel groups, and casual clubs. It is not a way to send cash. Start with a single tab called Expenses. Drop headers in row 1. Lock that row via View > Freeze > 1 row. Log every buy one time. List date, description, total, who paid, each person's cut, split method, and if it is settled. Keep it plain so everyone can edit it. Worth noting once: don't overthink the layout. Tracking, asking for cash, and actually paying are distinct steps. Do not lump them. Note the cost first. Then send any payment ask on its own. Pay through the method you already picked. Wait to mark settled until after payment lands, not just after you sent a request.

Build the ledger so Paid By is not the same as who owes

Keep the roles separate. Use Date, Description, Paid By, Amount, Split Method (Equal, Percentage, or Custom), one share column per person, and a Settled? or reimbursement-status field. Paid By identifies who covered the expense, not who owes the full amount. The payer can owe a share too, yes, their own share.

In HippoSplit's model, each person's balance compares what they paid with the sum of their share column. Subtract their total shares from their total paid: a positive balance means reimbursement is due; a negative balance means they owe. Check that each row's shares add up to its Amount, and use the status field to track reimbursement progress.

SpreadsheetDaddy's 1/0 participation flags are an optional layout for marking who participates in an expense, not a required template structure.

Examples of equal, room-size, custom, 40/60, and payback rows

The cash figures below aren't ordinary household numbers. These are training samples. Don't omit who paid, either, since even cuts don't mean even payments. HippoSplit's three-person even-split sample has five costs totaling $465, so it's a $155 cut for each person. Sam's net due.

A training-sample $90 meal can instead use custom cuts of $40/$25/$25. For a room-size split, punch in training-sample rent of $2,400 as $960/$720/$720. That's agreed cuts of 40/30/30 rather than even thirds. Still not bad. For joinspark's 40%/60% sample, with the sum in B2, you'll apply =ROUND(B2*40%,2) and =ROUND(B2*60%,2). Confirm that rounded cuts match the sum.

Not a fresh shared cost (it's not another shared bill). For the Expense Sorted / joinspark 100%/0% reimbursement or owner-pays row, log a training-sample $40 payback as settlement.

Formulas that turn shares into balances and status

Type 3 in G2. That's a headcount-style equal split (E2's got the expense amount). You'll enter =$E2/$G2 in each participating share cell; use zero for nonparticipants. You'll keep participant names on Summary in the same order as the Expenses share headers.

It's HippoSplit's share-column SUM pattern, so use =SUM(Expenses!H2:H1000) to total one participant's shares. Subtract that total from their total paid: you're ahead if positive, behind if negative. For joinspark's status totals you'll use =SUMIFS(Expenses!H2:H1000,Expenses!F2:F1000,"Pending"), since F holds reimbursement status. Repeat with "Disputed" so you don't mix disputed shares.

Check the headers, yes, check them: match column letters to Expenses, don't leave open or mis-pointed ranges, and treat row 1000 as a template assumption, not a product limit.

Share, protect, and decide when a spreadsheet is enough

Choose "Anyone with the link" through Google's sharing settings. Ask roommates in by Google email. Assign Editor to people who run it and Commenter to folks proposing changes. Viewer goes to anyone who just has to read (don't share it further).

Leave status, notes, and assignee cells open for roommates with Editor access. Put protected ranges on headers and formula cells.

Keep it plain enough you'll refresh it often. Honestly, that's the trick. The sheet works better when one person runs it. Your rules can cover 60/40 splits, uneven subscriptions, or usage-based costs. Think about a special split app if built-in requests and reminders count more for the group. Look at those extras before you pick; tracking a balance and actually paying it aren't the same job.

FAQ

How do we log reimbursements and personal costs? Keep private costs apart. Assign a not-shared charge fully to its owner. It stays out of group totals even if somebody else paid (yes, even then). Don't record reimbursements as fresh spend. They're settle-ups that tweak running totals. You'll tally the original cost once, just once. Still not bad.

How do we prevent formula edits? Leave entry cells open for people adding data. Use Google Sheets' protected ranges to lock formula changes to named editors. Protection curbs changes. It doesn't hide shared info.

A Google Sheet works better than a split-bill app if your crew cares about custom split rules and open math over in-app payment asks. You'll settle money outside the sheet.

Keep the tracker honest after the first week

And mark each expense. Shared or personal before it's in the settle-up balance. You'll want a short joint review of the sheet to catch missing entries and unclear charges. Keep it readable. Refresh receipt links and status flags, such as pending or settled, when something's changed (yes, even the small stuff).

Equal splits are simple but they can overlook uneven use. Usage-based splits reflect consumption but they'll require more tracking. Income-based splits account for ability to contribute but they require financial disclosure. Owner-pays rules simplify reimbursement but they'll leave the designated owner covering that cost. You'll need to agree on the tradeoffs together. A written rule and a simple ledger can be enough; you don't need an app.

This isn't tax, landlord-tenant, or payment advice; it's educational recordkeeping guidance, and legal requirements vary by jurisdiction.