Use Google Sheets for the math and the recordkeeping. Use Apple Cash only to move the money. For an income-based split, each person's percentage is their agreed income divided by the group's combined income, and that percentage gets applied to every shared bill.
Roommates, couples, travel groups, any small group, really. The setup holds. The sheet tells you who owes what, and Apple Cash just settles it.
So what do the numbers look like? With agreed incomes of $60,000 and $40,000, a $500 bill splits into $300 and $200. The income figures can be monthly or annual. Everyone just has to use the same period and the same definition of income.
Agree on the split rule first
To be honest, income-based splits fall apart when people quietly disagree about what counts as income. Settle that first. Choose gross income, take-home income, or another agreed figure, then keep the choice consistent for the period.
| Split rule | Works better when | Main tradeoff |
|---|---|---|
| Income-based | People have noticeably different incomes and want contributions tied to ability to pay | Requires sharing income information and updating it |
| Equal | Incomes are similar or the group values simple dollar amounts | May place a heavier burden on the lower earner |
| Usage-based or custom | Costs depend on utility usage, room size, nights stayed, or personal items | Needs more records and discussion |
Write the rule in the Settings tab. A short note such as "Shared household bills use agreed monthly income percentages" can head off arguments months later.
Create the Google Sheets tabs
Create three tabs named Settings, Expenses, and Settlements.
The Settings tab holds the current assumptions:
| Cell | Value |
|---|---|
| A1 | Person |
| B1 | Agreed income |
| A2 | Person 1 |
| B2 | 60000 |
| A3 | Person 2 |
| B3 | 40000 |
| A4 | Combined income |
| B4 | =SUM(B2:B3) |
| A6 | Income period |
| B6 | Your agreed period and income definition |
Format the income cells as currency. Whatever period you pick, both incomes need to use it.
The Expenses tab needs one row for each shared bill:
| Column | What to enter |
|---|---|
| A: Date | Date of the expense |
| B: Description | Clear name such as Rent - January |
| C: Split type | Shared, Personal, or Custom |
| D: Total amount | Full bill amount |
| E: Person 1 income snapshot | Income used for this row |
| F: Person 2 income snapshot | Income used for this row |
| G: Total income | Combined income |
| H: Person 1 percentage | Calculated share |
| I: Person 1 share | Amount owed |
| J: Person 2 percentage | Calculated share |
| K: Person 2 share | Amount owed |
| L: Paid by | Person who covered the bill |
| M: Amount due from Person 1 | Calculated reimbursement |
| N: Amount due from Person 2 | Calculated reimbursement |
| O: Status | Open, Sent, Partial, or Settled |
Use Shared for an ordinary joint expense. If someone bought something personal, don't force it through the income formula. Mark it Personal or Custom.
Add the income-based formulas
On row 2 of the Expenses tab, enter these formulas:
| Cell | Formula |
|---|---|
| E2 | =Settings!$B$2 |
| F2 | =Settings!$B$3 |
| G2 | =SUM(E2:F2) |
| H2 | =IF($G2=0,"",$E2/$G2) |
| I2 | =IF(OR($D2="",$G2=0),"",$D2*$E2/$G2) |
| J2 | =IF($G2=0,"",$F2/$G2) |
| K2 | =IF(OR($D2="",$G2=0),"",$D2*$F2/$G2) |
| M2 | =IF($L2="Person 2",$I2,0) |
| N2 | =IF($L2="Person 1",$K2,0) |
Copy the formulas down as you add expenses. Format H and J as percentages, and I, K, M, and N as currency.
The Paid by column is what drives M and N. If Person 1 paid the entire bill, Person 2's reimbursement shows up in N; if Person 2 paid, Person 1's amount appears in M. The formulas look for exact matches, so type the names in the Paid by column exactly as written.
Linking the snapshot cells to Settings makes new rows quick to enter. It also means every old row updates when you change Settings, which may not be what you want. For a stable history, paste the income values into E and F as values only once a period closes, or just type the snapshot amounts in directly.
Personal purchases shouldn't touch the income ratio at all. For a one-person charge, enter that person's share as 100% and the other person's share as 0%, or build a custom split that matches your agreement.
Extend the sheet for more people
For three people, place the income snapshots in E2:G2 and put the combined income in H2 with =SUM(E2:G2). Each person's share follows the same pattern as before: bill amount times that person's income, divided by total income.
Every additional person needs one percentage column and one share column. If several people paid one bill, use separate expense rows or enter custom amounts. That keeps the payer and reimbursement trail readable.
Check the result before sending money
Turns out, the arithmetic is the easy part. The check that matters is whether every person's share adds back to the bill.
For the $500 example, the row should show:
| Item | Result |
|---|---|
| Person 1 income | $60,000 |
| Person 2 income | $40,000 |
| Combined income | $100,000 |
| Person 1 percentage | 60% |
| Person 1 share | $300 |
| Person 2 percentage | 40% |
| Person 2 share | $200 |
You can add a check column with =IF(ROUND($I2+$K2,2)=ROUND($D2,2),"OK","Check"). Keep full precision in the formulas and let number formatting display the cents. Round the percentages before calculating and you'll get small mismatches, which is exactly the kind of thing that starts a dispute.
Record payments in a separate Settlements tab
Don't turn an Apple Cash payment into a new expense. The bill belongs on Expenses, the reimbursement belongs on Settlements. Keep them apart and both records stay clean.
| Column | What to enter |
|---|---|
| A: Date sent | Date the payment was sent |
| B: Expense reference | Matching description or row ID |
| C: Sender | Person who sent the money |
| D: Recipient | Person who paid the original bill |
| E: Amount sent | Actual amount sent |
| F: Method | Apple Cash or another method |
| G: Status | Sent, Accepted, Partial, or Settled |
| H: Note or receipt link | Optional reference |
Log each installment as its own row. The Amount sent column gets only money that actually moved, never what should have moved.
A small summary can show what remains owed to each person. If Settlements contains one row per payment, the balance still owed to Person 1 is:
=MAX(0,SUM(Expenses!$N:$N)-SUMIF(Settlements!$D:$D,"Person 1",Settlements!$E:$E))
For Person 2, use:
=MAX(0,SUM(Expenses!$M:$M)-SUMIF(Settlements!$D:$D,"Person 2",Settlements!$E:$E))
Both formulas assume one payer per expense row and that every actual payment gets logged exactly once.
Use Apple Cash for the reimbursement step
By this point the sheet has done its job. Apple Cash is the payment method here, not the split calculator. Keep the workflow simple:
- Review the bill, the shares, and the payer in Expenses.
- Confirm the amount and expense reference with the sender.
- Send the reimbursement through Apple Cash.
- Add a Settlements row with the date, sender, recipient, amount, and method.
- Change the status only after the payment is accepted or otherwise confirmed.
Apple says a recipient has seven days to accept an Apple Cash payment. A transfer you just sent isn't settled yet, not until the recipient actually confirms it. See Apple's instructions for sending and receiving Apple Cash.
A payment note such as "January rent share - $200" makes the transfer easy to match against the sheet. Keep the full calculation and the receipt record in Google Sheets.
Check Apple Cash eligibility and limits
Not every group can use it. Apple says Apple Cash is available in the 50 United States, the District of Columbia, and Puerto Rico. Sending and receiving generally requires a person to be at least 18 and a U.S. resident, and Apple may request identity verification for full functionality.
Under-18 family members can be included through Apple Cash Family, which requires an organizer to set up. Apple lists a $2,000 maximum for sending or receiving within a rolling seven-day period on Apple Cash Family, and Tap to Cash carries the same rolling seven-day amount. Those limits aren't a universal cap for every adult Apple Cash account, so check Apple's current transfer limits before sending a large reimbursement.
If one person can't use Apple Cash, don't rebuild anything. Keep the spreadsheet structure as is, pick another agreed method in the Settlements tab, and run the same receipt and status process.
Share the sheet without exposing more than necessary
Editor access goes only to people who need to add bills or settlements. Someone reviewing the record can be a viewer or commenter.
Protect the formula columns, G through N, with Google Sheets range protection. That stops accidental edits. Thing is, protection doesn't hide income values from anyone who can view the sheet.
If the income details feel too sensitive to share, keep the raw assumptions in a restricted document and place only the agreed percentages or calculated shares in the shared ledger. Skip screenshots that show unrelated bank or card information, too.
Use clear receipt links and descriptions. Version history works as a backup, or make a periodic copy of the workbook.
Fix the mistakes that cause most disputes
| Common problem | Better practice |
|---|---|
| Updating current income changes old bills | Save income snapshots on closed rows |
| A personal purchase runs through the shared formula | Mark it Custom or Personal |
| Amount owed gets replaced by amount sent | Keep the share on Expenses and payment on Settlements |
| A transfer is marked settled immediately | Use Sent until the recipient confirms it |
| Formula cells are overwritten | Protect calculation ranges |
| Descriptions say only "miscellaneous" | Name the item and link the receipt |
Start small. Create the three tabs, enter one $500 test bill, and confirm the shares total exactly $500. Then add one settlement row and verify that the remaining balance changes. Once that passes, copy the setup over to your recurring expenses.