You don't need a dedicated app to split parking costs by mileage. A Google Sheet handles it with two tabs. One is the log, where trips and parking charges get entered. The other is a Summary tab that turns each person's miles into a share of the bill.

One habit matters more than any formula here. Enter each parking charge once. Then label it Proportional, Equal, or Reimbursement, and let the sheet do the rest.

Choose the split rule first

Mileage works well as a weighting for shared driving, but it isn't automatically fair in every situation. Someone might drive extra miles as a favor. A passenger might get just as much value from the parking spot as the driver did. The sheet can't judge that. You can.

Rule Use this when Sheet value
Proportional Parking supports a shared drive and driving participation is your agreed measure Proportional
Equal Everyone benefits similarly, regardless of who drove Equal
Reimbursement One person paid a cost that belongs directly to another person Reimbursement

Thing is, the spreadsheet will calculate whatever rule you feed it, and it will calculate a rule your group dislikes just as smoothly as one you agreed on. Pick the method before anyone starts paying anyone back.

A sheet fits a one-off trip or a small recurring car share when everyone will enter receipts and review the totals. A payment app can make requests easier to send. It won't decide whether mileage or an equal split is the better standard. That part is a conversation.

Create the Trip Log tab

Open a blank Google Sheet and rename the first tab Trip Log. One row per driving segment or per stop. That's it.

Use these headers in row 1:

Column Header What to record
A Date Date of the drive or parking charge
B Trip or Group ID A label such as Chicago Weekend
C Start Location Where the segment began
D End Location Where the segment ended
E Purpose Group travel, errand, event, or another reason
F Odometer Start Beginning reading for the same vehicle
G Odometer End Ending reading for the same vehicle
H Distance (miles) Calculated driving distance
I Person Who Drove Driver for that segment
J Parking Cost Actual parking charge, entered once
K Paid By Person who paid the parking charge
L Parking Location Garage, hotel lot, street meter, or other location
M Split Type Proportional, Equal, or Reimbursement
N Reimbursement? (Yes/No) Whether a direct settlement is expected
O Owed To Person responsible for a reimbursement row
P Notes Receipt details or an explanation

The Trip or Group ID column pays off later. It gives every row context, and if you keep several trips in one file, it's what lets you pull the summaries apart without rebuilding everything.

Enter a parking charge exactly once. If Alex pays a $30 hotel garage fee, the $30 goes on one row. Not on every driver's row.

Add the distance formula

In H2, enter:

=IF(OR(F2="",G2=""),"",G2-F2)

Copy the formula down the column. The cell stays blank until both odometer readings exist, so a half-filled row can't produce a garbage number.

Watch the odometers closely. Use readings from the same vehicle, and if drivers switch cars, add a Vehicle column and keep each vehicle's records separate. An end reading lower than the start reading needs review before you trust that row.

While you're in there, freeze the header row with View > Freeze > 1 row, and format column A as a date, column J as currency, and any percentage cells on the Summary tab as percentages.

A dropdown on column M cuts down spelling mistakes, and spelling matters here because the Summary formulas match these exact strings (one stray Proportinal and that charge drops out of the totals). Use these three values and nothing else:

Proportional
Equal
Reimbursement

For a reimbursement row, enter the full cost once, name the payer in column K, and put the person who owes it in column O. This option is for a direct expense only. If one person paid a charge the whole group shares, mark it Proportional or Equal instead.

Build the Summary tab

Add a second tab named Summary. Column A lists every person in the settlement, and that includes people who never drove but still split parking equally. Don't leave anyone off, because the Equal split divides by these exact names.

Use these headers in row 1:

Column Header
A Person
B Miles Driven
C Mileage Share
D Proportional Parking Owed
E Equal Parking Owed
F Reimbursement Owed
G Total Owed
H Paid
I Net Balance
J Status

Put names in A2:A100, each name once. Then place these formulas in row 2 and copy them down:

B2: =IF($A2="","",SUMIF('Trip Log'!$I$2:$I$1000,$A2,'Trip Log'!$H$2:$H$1000))
C2: =IF($A2="","",IFERROR($B2/SUM($B$2:$B$100),0))
D2: =IF($A2="","",$C2*SUMIF('Trip Log'!$M$2:$M$1000,"Proportional",'Trip Log'!$J$2:$J$1000))
E2: =IF($A2="","",IFERROR(SUMIF('Trip Log'!$M$2:$M$1000,"Equal",'Trip Log'!$J$2:$J$1000)/COUNTA($A$2:$A$100),0))
F2: =IF($A2="","",SUMIFS('Trip Log'!$J$2:$J$1000,'Trip Log'!$M$2:$M$1000,"Reimbursement",'Trip Log'!$O$2:$O$1000,$A2))
G2: =IF($A2="","",SUM(D2:F2))
H2: =IF($A2="","",SUMIF('Trip Log'!$K$2:$K$1000,$A2,'Trip Log'!$J$2:$J$1000))
I2: =IF($A2="","",H2-G2)
J2: =IF($A2="","",IF(ROUND(I2,2)>0,"Receives",IF(ROUND(I2,2)=0,"Settled","Pays")))

Format column C as a percentage and columns D through I as currency.

What each column does:

Column What it does
Miles Driven Adds every distance row assigned to that person.
Mileage Share Divides that person's miles by the group total.
Proportional Parking Owed Applies that share to all rows marked Proportional.
Equal Parking Owed Divides all Equal charges among the names on the Summary tab.
Reimbursement Owed Assigns direct reimbursement rows to the person in Owed To.
Paid Totals every parking charge entered under that person's name in Paid By.
Net Balance Subtracts what the person owes from what they paid.

A positive net balance means the person should receive money. A negative balance means the person needs to pay.

Why the mileage formula belongs on the Summary tab

A tempting shortcut is to calculate a row's share right inside the log:

=IFERROR(H2/SUM($H$2:$H$100),0)

The problem is that this only works when each driver has exactly one distance row, because if Alex drove three separate segments you get three separate row shares, each one small, instead of a single share that reflects all of Alex's driving.

The Summary version fixes that by adding all of Alex's miles first, then taking the share:

=IFERROR(B2/SUM($B$2:$B$100),0)

That distinction matters on multi-stop trips. It also keeps the parking pool separate from the driving log, so when a total looks wrong you only have one place to check.

Worked example

Picture three people and one $50 proportional parking pool that Alex paid in full:

Person Miles Mileage share Parking owed Paid Net balance
Alex 120 48% $24 $50 $26
Jordan 80 32% $16 $0 -$16
Sam 50 20% $10 $0 -$10

The shares total 100%, and the parking owed totals $50. Alex's own share is $24, so the $50 payment nets out to $26 received. Jordan sends $16 and Sam sends $10.

Turns out the math is the easy part. The discussion worth having is whether the miles represent the contribution your group actually wants to count.

Keep separate trips from blending together

Everything above pools all rows in Trip Log. That's the right behavior when the workbook covers one trip or one recurring car-share period.

Multiple trips in the same file blur together. Alex's miles from June start inflating the shares for a July weekend. Either give each Trip or Group ID its own Summary tab, or filter the formulas by ID. If the selected trip name sits in L1, the miles formula becomes:

=IF($A2="","",SUMIFS('Trip Log'!$H$2:$H$1000,'Trip Log'!$I$2:$I$1000,$A2,'Trip Log'!$B$2:$B$1000,$L$1))

Use the same trip condition in the parking and payment formulas. The simplest option is often just a duplicate Summary tab with a clear trip name.

One more trap to avoid. If parking applies only to some participants, don't push it through the whole group's mileage pool. Create a separate trip group for that charge, or use an equal split and keep the ineligible names off that Summary tab.

Review the sheet before settling up

Run this check before sending any payment requests:

Check What to confirm
Parking charge Each receipt appears once
Distance Start and end readings belong to the same vehicle
Driver name Names match the Summary tab exactly
Split Type Every row uses one of the three approved values
Reimbursement row Paid By and Owed To are both filled in
Equal split Only eligible participants appear on the Summary tab
Total Parking owed and parking paid reconcile

To be honest, most spreadsheet errors come from small entry problems: a misspelled name, the same receipt entered twice, a charge sitting in the wrong split category. Fix those before you touch a formula.

Share the sheet with Editor access only for people who need to enter data. If several people will edit the file, protect the formula columns and keep receipts in a shared folder, or attach the receipt details in the Notes column. Version history can help if someone overwrites a formula.

Log expenses during the trip, while the receipt is still easy to identify. For a recurring arrangement, agree on a regular review date and settle from the Summary tab rather than recalculating each charge by hand.

Frequently asked questions

Is a mileage-based parking split always fair?

No. It's fair only if the group agrees that driving distance represents each person's share of the parking benefit or burden. Equal splitting often fits better when everyone attends the same event. A custom split may fit when some people leave early or never use the car at all.

What if one person paid a shared parking charge?

Enter that person in Paid By, then mark the row Proportional or Equal. The Summary tab assigns each person's share and shows the payer's net amount.

Save Reimbursement for charges that belong entirely to one person listed in Owed To.

Can I use this sheet for tax records?

Treat it as an organizing record, not a decision about whether an expense is deductible. For U.S. business driving, IRS Topic 510 discusses the standard mileage and actual expense methods, and IRS Publication 463 covers travel, car expenses, and reimbursement rules.

Keep your receipts, and check the rules that apply to your specific situation.

What if a driver has several rows?

That's the design working, not a problem. The Summary tab adds all of a person's rows before it calculates the mileage share. Only switch to a row-level percentage if every driver has exactly one row.

Set both tabs up before the trip starts, add the participant names, and run one parking charge through the whole flow. Then add a second row with a different driver and watch the Summary shares change. If they change the way you expect, the sheet is ready for real money.