Hospitality · Revenue and yield

Gross booking value (GBV)

Gross booking value is the total guests paid for stays, including rent and guest fees, before channel commissions and management fees.

Plan your metrics

What it is

GBV is the top line of a rental business. It adds up what guests paid: rent plus guest fees such as cleaning and pet fees. It is measured before OTA commissions, payment fees, and the management fee.

Taxes and refundable deposits are usually excluded because they are not revenue for the owner or the manager.

Why operators track it

  • Top line. A common way managers size their business and growth.
  • Channel comparison. Needed as the denominator for channel cost.
  • Reconciliation. GBV minus channel fees should match OTA payouts. Differences point to missing adjustments.
  • Owner trust. Owners have complained online about seeing net-only numbers with no gross figure (Reddit).

How it is calculated

GBV = rent + guest fees (before channel commissions, payment fees, and management fees)

  • Rent: after guest discounts.
  • Guest fees: cleaning, pet, early check-in, and similar.
  • Excluded: taxes, refundable damage deposits.
  • Date basis: by stay date for monthly reporting. Booking date is used for sales views. Do not mix them.

Worked example

Example data The same made-up portfolio is used on every hospitality page: a manager with 120 homes, four of them shown in detail.

In October, the four example homes had $29,150 of rent, $4,150 of cleaning fees, and $300 of other guest fees. GBV = $33,600.

Gross booking value by channelRentGuest feesOTA Arent$15,000OTA Brent$9,250OTA Crent$2,950Directrent$6,400Total GBV = $29,150 rent + $4,150 cleaning fees + $300 other fees = $33,600. Taxes are excluded here.Channel commissions have not been taken off. That happens in channel cost and net owner revenue.
Example data GBV is the top line before anyone takes a cut.

How to read it

  • State the date basis. Booked in October and stayed in October are different numbers.
  • Compare GBV to payouts. The gap is channel fees, refunds, and adjustments.
  • Do not compare to someone else's GBV without the definition. Some include taxes.
  • We do not publish a benchmark. Levels vary by market, season, and property type.

Definitional choices and common pitfalls

  • Date basis. Stay date, booking date, or cash date. Mixing them is a common owner statement error (VR Goals).
  • Taxes. Usually excluded. Some platforms show totals with tax.
  • Damage protection and insurance fees. Decide whether they count as guest fees.
  • Cancellations. Exclude cancelled stays; include any kept cancellation fees as revenue.

How different roles use it

Role How they use it
Finance / trust accounting Reconciles GBV to channel payouts and deposits.
Revenue manager Tracks GBV by channel and month.
Owner relations Shows owners the gross figure behind their net payout.
Product / engineering lead Keeps rent, fees, and taxes as separate fields.

Questions it answers

  • How much did guests spend this month, by channel?
  • How much of GBV reaches the owner?
  • Is growth coming from more nights, higher rates, or higher fees?

How to present it in a report

  • GBV by month with rent and fees stacked.
  • By channel, with channel cost beside it.
  • A note on date basis and tax treatment.
Customer report mockupExample data
Gross booking valueOctober 2026 · by stay date
GBV$33,600rent and guest fees
Rent$29,150
Guest fees$4,450cleaning and other
ChannelStaysRentGuest feesGBV
OTA A10$13,000$2,000$15,000
OTA B5$8,150$1,100$9,250
OTA C3$2,500$450$2,950
Direct4$5,500$900$6,400

Taxes excluded. Before channel commissions.

Data you need

Fields

Field What it means Example value
Rent After discounts $1,600
Guest fees by type Cleaning, pet, other $250
Taxes Kept separate $148
Channel Source of booking Vrbo
Status Confirmed, cancelled confirmed

What the raw data looks like

Example data A few rows as they might come out of the source system.

Reservation Channel Stay month Rent Cleaning Other fees Taxes
R-88412 Airbnb 2026-10 $1,600 $250 $0 $148
R-88470 Vrbo 2026-10 $2,000 $250 $75 $185
R-88533 Direct 2026-10 $450 $100 $0 $42

Where this data usually lives

  • Property management system (PMS) holds units, the calendar with block types, reservations, rates, fees, and often owner statements and trust accounting. For example: Guesty, Hostaway, OwnerRez, Track, Streamline, and Escapia. Some larger managers run their own in-house PMS.
  • OTAs and booking channels (Airbnb, Vrbo, Booking.com, and partner distribution sites) hold payout reports, host fees, reviews, and cancellations. Payouts are usually net of host fees.
  • Accounting software holds the general ledger, AP, and bank reconciliation.

The same field can live in more than one system. Agree with the customer which one is the source of truth.

Common data gaps and traps

  • Payout files are net. OTA payouts often show only what was paid out. Rebuild gross from reservation detail.
  • Fees lumped together with rent.
  • Mid-stay changes (extensions, early departures) not reflected in the totals.

FAQ

Is GBV the same as revenue?
Not for the manager. GBV includes money that goes to channels, cleaners, and owners. Manager revenue is usually the management fee plus any fees it keeps.
Should taxes be in GBV?
Usually not. They are collected and remitted. If you include them, label it.
Booking date or stay date?
Stay date for monthly performance and owner statements. Booking date for sales and pace.
For your data teamFormula variants, tables, SQL sketch, and dashboard spec

Formula details

gbv = SUM(rent) + SUM(guest_fees)   -- confirmed stays, by stay night
excluded: taxes, refundable deposits

Worked example detail

Channel Rent Guest fees GBV
OTA A $13,000 $2,000 $15,000
OTA B $8,150 $1,100 $9,250
OTA C $2,500 $450 $2,950
Direct $5,500 $900 $6,400
Total $29,150 $4,450 $33,600

Tables and fields

Table Fields Notes
reservations reservation_id, unit_id, channel, status, check_in, check_out
reservation_lines reservation_id, line_type, amount line_type: rent, cleaning_fee, pet_fee, tax, deposit

SQL sketch

SELECT r.channel,
       SUM(l.amount) FILTER (WHERE l.line_type NOT IN ('tax','deposit')) AS gbv
FROM reservations r JOIN reservation_lines l USING (reservation_id)
WHERE r.status='confirmed' AND r.check_in >= '2026-10-01' AND r.check_in < '2026-11-01'
GROUP BY r.channel;  -- split cross-month stays by night in production

Build spec

Copy this into a ticket. It lists the grain, inputs, logic, and edge cases.

metric: hospitality.gross_booking_value
grain: one row per reservation line, aggregated by stay month and channel
inputs:
  - rent
  - guest fee lines
  - reservation status
  - channel
logic:
  - gbv = rent + guest fees
  - exclude taxes and deposits
edge_cases:
  - cancelled with kept fee: include fee
  - cross-month stay: allocate by night
  - currency: convert at a stated rate

As a dashboard card

  • Stacked column of GBV by month (rent and fees), with a channel filter.

Common mistakes

  • Mixing booking-date and stay-date totals.
  • Using OTA payouts as GBV.
  • Including taxes.

Version 1.0 · Last reviewed 2026-10-20 · Machine-readable definition