Hospitality · Demand and distribution

Booking pace (on the books)

Booking pace compares revenue or nights already booked for a future period with what was booked for the same period at the same point last year. It is the main forward demand signal.

Plan your metrics

What it is

On the books (OTB) is what is already reserved for a future period. Pace compares OTB today to OTB at the same point last year, often called same time last year (STLY).

Pace needs history: either saved snapshots or reservation created and cancelled dates so past OTB can be rebuilt.

Why operators track it

  • Forward signal. Shows a soft month while there is still time to change price or minimum stay.
  • Pricing. Revenue managers and pricing tools react to pace.
  • Owner conversations. Explains expected revenue before the month happens.
  • Hotel owners commonly read pace alongside RevPAR.

How it is calculated

Pace = OTB for target period as of date X ÷ OTB for the same period last year as of the same point − 1

  • OTB = confirmed reservations for stay nights in the target period, as of the snapshot date. Bookings cancelled before the snapshot are excluded.
  • Same time last year aligns by days before arrival, or by the same calendar date. Pick one.
  • Measure in revenue and in nights. They can tell different stories.

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.

As of October 20, 2026, the four example homes had $21,400 and 52 nights on the books for December 2026. On October 20, 2025, they had $17,600 and 44 nights for December 2025. Revenue pace is +21.6% and nights pace is +18.2%.

December revenue on the books, by snapshot date ($ thousands)2026 (Dec 2026 stays)Same date last year (Dec 2025 stays)$10k$14k$18k$22kSep 22Sep 29Oct 6Oct 13Oct 20$21.4k$17.6kAs of Oct 20: $21,400 and 52 nights on the books for December, vs $17,600 and 44 nights at the same date last year.Revenue pace +21.6%, nights pace +18.2%. Last December finished at $26,500, so most of the gap to final is still to come.
Example data Pace compares what is on the books now to what was on the books at the same point last year.

How to read it

  • Ahead is not always good. If pace is ahead because rates are too low, revenue may finish behind.
  • Watch the gap to last year's final. It shows how much booking is still expected.
  • Cancellations can make pace drop. Read with cancellation rate.
  • Holidays move. Align on events when a holiday shifts dates.
  • We do not publish a benchmark. Levels vary by market, season, and property type.

Definitional choices and common pitfalls

  • Alignment. Same calendar date or same days before arrival.
  • Revenue or nights. Show both.
  • Portfolio changes. New homes inflate pace. Use same-store homes, or show both.
  • Cancellations. OTB as it stood then, or as it stands now after later cancellations.

How different roles use it

Role How they use it
Revenue manager Reviews pace weekly by market and month and adjusts pricing.
Owner relations Gives owners a forward view of their home.
Finance / trust accounting Uses OTB for cash forecasts.
Product / engineering lead Stores snapshots or event dates so pace can be rebuilt.

Questions it answers

  • Which future months are behind last year?
  • Is pace ahead because of more nights or higher rates?
  • Which markets need price changes now?

How to present it in a report

  • A pace line per target month: this year vs last year by snapshot date.
  • A table of the next few months: OTB, STLY, pace %, last year's final.
  • A same-store toggle.
Customer report mockupExample data
Pace reportAs of Oct 20, 2026 · four example homes
December OTB$21,40052 nights
Revenue pace+21.6%vs same date last year
Last Dec final$26,500for reference
Target monthNights OTBRevenue OTBSTLY revenuePace
Nov 202661$22,900$21,300+7.5%
Dec 202652$21,400$17,600+21.6%
Jan 202724$8,100$9,000−10.0%

Data you need

Fields

Field What it means Example value
Reservation created date When booked 2026-09-02
Cancelled date When cancelled, if ever null
Stay nights With rent by night as booked Dec 18 to Dec 22
Snapshot date If OTB is saved 2026-10-20

What the raw data looks like

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

Snapshot Target month Nights OTB Revenue OTB
2025-10-20 2025-12 44 $17,600
2026-10-13 2026-12 47 $19,000
2026-10-20 2026-12 52 $21,400

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.
  • Dynamic pricing tools hold recommended rates, final rates, minimum stay rules, and comparable sets. For example: PriceLabs and Wheelhouse. Some managers build their own.
  • Market data providers estimate market occupancy, ADR, and pace. For example: AirDNA, which uses listing data plus partner data (AirDNA), and Key Data, which works with property manager data (Key Data). Their definitions may differ from yours.

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

  • Cancelled reservations deleted rather than marked. OTB history cannot be rebuilt.
  • Rate changes overwrite. Revenue OTB at an old date needs the price at that time.
  • Homes added since last year. Needs management dates.

FAQ

What does STLY mean?
Same time last year: the comparison point for pace.
Can pace be calculated without snapshots?
Yes, if reservations keep created and cancelled dates and the rent as booked. Snapshots are simpler.
Do pricing tools show pace?
Many pricing and market data tools show pace views. Confirm how they align dates before comparing to your own.
For your data teamFormula variants, tables, SQL sketch, and dashboard spec

Formula details

otb(target, asof) = SUM(rent) for nights in target
                    WHERE created_at <= asof AND (cancelled_at IS NULL OR cancelled_at > asof)
pace = otb(target, asof) / otb(target - 1y, asof - 1y) - 1

Worked example detail

Snapshot 2026 OTB Same date 2025 Pace
Sep 22 $12.1k $11.0k +10.0%
Sep 29 $14.0k $12.6k +11.1%
Oct 6 $16.8k $14.2k +18.3%
Oct 13 $19.0k $15.9k +19.5%
Oct 20 $21.4k $17.6k +21.6%

Tables and fields

Table Fields Notes
reservations reservation_id, unit_id, created_at, cancelled_at, status
reservation_nights reservation_id, night_date, rent_amount Rent as booked.
otb_snapshots snapshot_date, unit_id, target_month, nights, revenue Optional, simplest.

SQL sketch

WITH otb AS (
  SELECT SUM(n.rent_amount) rev, COUNT(*) nights
  FROM reservations r JOIN reservation_nights n USING (reservation_id)
  WHERE n.night_date >= '2026-12-01' AND n.night_date < '2027-01-01'
    AND r.created_at <= '2026-10-20' AND (r.cancelled_at IS NULL OR r.cancelled_at > '2026-10-20')
), stly AS (
  SELECT SUM(n.rent_amount) rev, COUNT(*) nights
  FROM reservations r JOIN reservation_nights n USING (reservation_id)
  WHERE n.night_date >= '2025-12-01' AND n.night_date < '2026-01-01'
    AND r.created_at <= '2025-10-20' AND (r.cancelled_at IS NULL OR r.cancelled_at > '2025-10-20')
)
SELECT otb.rev / stly.rev - 1 AS revenue_pace, otb.nights::numeric / stly.nights - 1 AS nights_pace FROM otb, stly;

Build spec

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

metric: hospitality.booking_pace
grain: one row per snapshot date per target month (per unit optional)
inputs:
  - reservation created and cancelled dates
  - rent by night as booked
  - management dates
logic:
  - otb as of date
  - stly = otb for target minus 1 year as of date minus 1 year
  - pace = otb / stly - 1, revenue and nights
edge_cases:
  - stly = 0: null
  - same-store filter
  - holiday alignment setting

As a dashboard card

  • Pace line chart this year vs last year, with an OTB table for the coming months.

Common mistakes

  • Comparing OTB now to last year's final.
  • Including homes not managed last year without saying so.
  • Using current rates for past OTB.

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