How to calculate the true profit of each booking across Airbnb, Booking.com, Vrbo and direct

Disclosure: Porchlight Ledger wrote this with AI assistance, checking facts against the official sources linked below. We make a spreadsheet for this job, and it's mentioned at the end. Everything before that works with any spreadsheet or notebook. This isn't tax or accounting advice.

If you list a holiday rental on more than one platform, each one tells you a different story about your money. Airbnb shows a payout. Booking.com shows a reservation amount and later sends a commission invoice. Vrbo shows a payment breakdown. A direct booking shows whatever your card processor deposits. None of these is "profit", and the gaps between them are exactly where your margin goes missing.

This guide gives you one method to put every booking on the same footing, so you can answer two questions with your own numbers: what did this stay actually earn? and which channel is really worth it?

Step 1: Record what the guest paid (gross)

For each reservation, start with the total the guest paid for the stay itself: nightly rate × nights, plus any cleaning fee or other fees you charged. Record it once, against the stay's real check-in and check-out dates.

Don't start from the payout. A payout is gross minus fees, minus adjustments, sometimes minus taxes, and it often covers several bookings or lands in a different month. If you start from payouts you can never work back to what each booking really cost you.

Step 2: Record everything the channel kept (platform cost)

This is where channels differ most. We describe the structures here rather than quoting rates, because rates depend on your market, your contract, your listing settings and when you signed up. Always use the figures from your own statements.

Airbnb. Airbnb has two fee structures: a split fee, where the host pays a smaller service fee and the guest pays a separate guest fee, and a single host-paid fee, where the host pays one larger fee and the guest pays no service fee. Airbnb has been moving hosts toward the single fee. Which one applies to you changes what "gross" means, so check your setting and Airbnb's explanation: https://www.airbnb.com/help/article/1857. The transaction history CSV shows the exact host fee taken on every reservation, and it's the most reliable source.

Booking.com. You pay a commission set in your agreement, usually invoiced or deducted per stay. If you use Payments by Booking.com, there may also be payment charges, which depend on the payout method and your property's location: https://partner.booking.com/en-us/help/payments-payouts-invoices/payments-bookingcom/joining-payments-bookingcom. Add commission and payment charges together for each booking. Your monthly invoice and payout statements are the source.

Vrbo. Vrbo's current model for hosts is pay-per-booking: a commission on the rental amount plus payment processing, with no upfront listing fee. Older annual subscriptions are being phased out: https://help.vrbo.com/articles/How-is-the-booking-fee-calculated. If you're still on a subscription, spread its cost over the bookings it produced in that year, so it doesn't look free.

Direct bookings. These aren't free either. Count card processing fees, plus a share of any booking-engine, website or channel-manager subscription.

Add these up into one number per booking: platform cost.

Step 3: Take out money that isn't yours (pass-through)

Tourist tax (city tax, occupancy tax) and VAT, if you're registered, pass through your hands, but they belong to the council or the tax office. Leave them in your "revenue" and your profit looks better than it is.

Two traps:

Step 4: Subtract costs that scale with stays (per-stay costs)

Cleaning, laundry, guest consumables (coffee, toiletries) and any per-check-in costs belong to the booking. These scale with the number of stays, not nights, which is why short stays often look better on revenue than they really are.

Step 5: The formula

Net per booking = Gross − Platform cost − Pass-through − Per-stay costs

Then divide by the nights in that booking to get net per occupied night. This is the number that makes a 2-night Airbnb stay comparable with a 7-night direct booking.

Fixed monthly costs (mortgage or rent, utilities, internet, insurance, software, maintenance) don't belong to any one booking. Subtract them at month level: monthly profit = sum of net per booking − fixed costs. If you run several properties, give each property its own fixed costs and split shared ones (one software subscription for three flats, say) by a rule you choose and keep using: equally, by nights, or by revenue.

Step 6: Compare channels on effective fee %

For each channel over the same period:

Effective fee % = total platform cost ÷ total gross booking value

This turns different fee models into one comparable number. Look at it alongside net per occupied night per channel. A channel with a higher fee % can still win if its guests stay longer, because longer stays mean fewer cleans per night sold.

Step 7: Split stays that cross a month (or year) end

A stay from 29 March to 3 April usually pays out as one lump, but it covers three nights in March and two in April. Book it all in one month and both months come out wrong, and so does your year if the stay spans 31 December. Split gross, fees and pass-through by nights (how to split cross-month stays). A common approach is to split per-stay costs the same way, or assign them to the check-in month, and keep whichever rule you choose.

Step 8: Record cancellations correctly

A monthly checklist

  1. Export the transaction or payout files from every channel.
  2. One row per reservation: dates, channel, gross, platform cost, tourist tax, VAT, per-stay costs.
  3. Split cross-month stays by nights.
  4. Add fixed and shared costs at month level.
  5. Review net per booking, net per occupied night by channel, effective fee % by channel, and occupancy that excludes paid cancellations.
  6. Treat the payout as cash arriving, not as income. Reconcile it separately.

If you'd rather not build this yourself

We made a spreadsheet that does these steps: the Holiday Rental Profit Dashboard (Excel 2016+, Google Sheets, LibreOffice; no macros, no subscription). You paste in Airbnb and Booking.com CSV exports, and it splits cross-month stays, handles tourist tax per guest per night and VAT per property, and produces owner statements for co-hosts. It's available now at the $14 early-access price (regular $19), emailed to you as an attachment within a few hours: get it here.

Holiday Rental Profit Dashboard

Spreadsheet for Airbnb, Booking.com, Vrbo & direct. Excel 2016+, Google Sheets, LibreOffice. No macros, no subscription. Available now, emailed to you as an attachment within a few hours (overnight orders by 08:00 Lisbon time).

Buy now - $14 early access