What it is
Direct booking share = direct-channel revenue ÷ total revenue. Direct means the booking did not come through an OTA such as Airbnb, Vrbo, or Booking.com.
The definition of direct needs care. Bookings from a partner distribution channel, a metasearch ad, or a travel agent may or may not count.
Why operators track it
- Margin. Direct bookings avoid OTA commissions, though they carry marketing and payment costs.
- Guest relationship. Direct guests can be contacted for repeat stays.
- Dependence. A low share means more exposure to OTA ranking and policy changes.
- Hotel owners often ask for the direct share of their property.
How it is calculated
Direct booking share = direct-channel revenue ÷ total revenue
- Use rent revenue or GBV, consistent with other reports.
- Define direct: own website, phone, email, repeat guest, owner referral.
- Put partner and metasearch channels in their own group.
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.
The four example homes earned $29,150 of rent in October, of which $5,500 came from direct bookings. Direct share = 18.9% by revenue. By stays, 4 of 22 = 18.2%.
How to read it
- Revenue and stays can differ. Direct guests may book longer or shorter stays.
- Direct is not free. Compare against marketing and payment cost.
- Trend matters more than level.
- We do not publish a benchmark. Levels vary by market, season, and property type.
Definitional choices and common pitfalls
- Revenue or bookings. Revenue is usual. Show both.
- What is direct. Decide for partner channels, metasearch, and travel agents.
- Basis. Rent or GBV, matching channel cost.
- Attribution. Where a guest came from first vs where they booked.
How different roles use it
| Role | How they use it |
|---|---|
| Revenue manager | Watches channel mix and the cost of each channel. |
| Owner relations | Explains to home and hotel owners how their bookings are sourced. |
| Finance / trust accounting | Ties channel to fees and payouts. |
| Product / engineering lead | Normalizes channel codes from the PMS and channel manager. |
Questions it answers
- What share of revenue is direct this year vs last?
- Do direct guests stay longer or pay more?
- Which homes rely most on one OTA?
How to present it in a report
- Share by month, by revenue and by stays.
- Channel mix stacked bar.
- ADR and length of stay by channel.
| Channel | Stays | Rent | Share of rent |
|---|---|---|---|
| OTA A | 10 | $13,000 | 44.6% |
| OTA B | 5 | $8,150 | 28.0% |
| OTA C | 3 | $2,500 | 8.6% |
| Direct | 4 | $5,500 | 18.9% |
Data you need
Fields
| Field | What it means | Example value |
|---|---|---|
| Channel | Normalized booking source | Direct |
| Sub-source | Website, phone, repeat | website |
| Rent | Per reservation | $1,600 |
What the raw data looks like
Example data A few rows as they might come out of the source system.
| Reservation | Channel (raw) | Channel (normalized) | Rent |
|---|---|---|---|
| R-88412 | airbnb2 | Airbnb | $1,600 |
| R-88533 | website | Direct | $450 |
| R-88590 | phone | Direct | $1,600 |
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.
- Channel managers sync rates, availability, and reservations to booking channels. Many PMS products include one.
- 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.
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
- Raw channel codes vary. Each PMS and channel manager labels sources differently. Map them.
- Repeat guests booked by staff may be coded as manual.
- Partner channels have no consistent label.
Related metrics
FAQ
- Is a repeat guest who books by phone direct?
- Usually yes.
- Is a booking from a partner distribution site direct?
- Usually not. Treat it as its own channel unless there is no commission.
- Is there a target direct share?
- We do not publish a benchmark. Levels vary by market, season, and property type.
For your data teamFormula variants, tables, SQL sketch, and dashboard spec
Formula details
direct_share_rev = SUM(rent WHERE channel_group='direct') / SUM(rent)
direct_share_count = COUNT(res WHERE channel_group='direct') / COUNT(res)
Worked example detail
| Channel | Stays | Rent | Share |
|---|---|---|---|
| OTA A | 10 | $13,000 | 44.6% |
| OTA B | 5 | $8,150 | 28.0% |
| OTA C | 3 | $2,500 | 8.6% |
| Direct | 4 | $5,500 | 18.9% |
Tables and fields
| Table | Fields | Notes |
|---|---|---|
reservations |
reservation_id, channel_raw, rent_total, status | |
channel_map |
channel_raw, channel_group | Maintained per customer. |
SQL sketch
SELECT SUM(r.rent_total) FILTER (WHERE m.channel_group='direct') / SUM(r.rent_total) AS direct_share
FROM reservations r JOIN channel_map m USING (channel_raw)
WHERE r.status='confirmed';
Build spec
Copy this into a ticket. It lists the grain, inputs, logic, and edge cases.
metric: hospitality.direct_booking_share
grain: one row per reservation
inputs:
- channel raw code
- channel map
- rent or GBV
logic:
- share = direct revenue / total revenue
- also share by count
edge_cases:
- unmapped channel: report as unmapped
- cancelled: exclude
As a dashboard card
- KPI for direct share with a channel mix stacked bar by month.
Common mistakes
- Counting partner channels as direct.
- No channel map, so new codes fall into other.
- Mixing GBV and rent bases.