Gross bookings on the books at each weekly point (before later cancellations), for stays in the whole season. Aligned on the season opening date (2025: 24 May · 2026: 27 May · 2027: 24 May assumed), so the same x-position means the same time-to-season across years.
Scope: web-direct bookings through Net Affinity; each row of the export is one room of a booking, so room-nights = nights per row and revenue is net value per room. Rate plans are grouped into Flexible, Multi-night, Non-refundable (together "transient") and named conference / summer-school packages ("group").
Forecast A for each stay night and market (US, Canada, UK, Ireland, Germany, France, Italy, Rest of World) = the larger of (a) rooms already on the books, and (b) a blend of two estimates: the pace estimate (rooms on the books, net of expected cancellations, divided by the historical share of final rooms booked by this lead time) and the shape prior (last two seasons' daily profile on days-since-opening with day-of-week effects, scaled to last season's level × the growth assumption). The blend weight is the share already booked, so far out the prior dominates and as the stay date nears the pace estimate takes over. Revenue = net revenue on the books + expected pickup × last season's net ADR for that market × price uplift. Group business is a labelled assumption (default: average of the last two seasons, spread by month), not a statistical forecast.
Cancellations are expected from a table of eventual-cancellation probability by rate plan family and days-to-arrival at observation (Flexible far out ≈ 19–34%, Non-refundable ≈ 1%). Booking curves are pooled across markets by stay month; beyond 120 days only the latest season's curve is used because the sales window has opened earlier each year (2025 → Jan; 2026 → autumn 2025; 2027 → Aug 2026). Likely range is ±4% (≤20 days out), ±6% (≤45), ±11% (≤90), ±13% (≤150), ±15% (further out), the 80th percentile of back-test errors.
Target 2026 trained on 2024–25 with a 13% growth prior (half of the 2024→25 growth); target 2025 trained on 2024 only with the same 13% prior. Errors converge to ±5% by June and ±1% by July. Far-out error is dominated by the growth assumption, which is why it is exposed as an editable input.
Daily: the otb_snapshots scheduled query archives what is on the books. To drive this page automatically, publish the latest snapshot (columns stay_night, market, rate_family, room_nights, net_value) as a CSV and set ACTUALS_URL in the page; the forecast is then recomputed in the browser from the live books. Re-fit the prior, curves and cancellation table (Python pipeline) at season end or when the rate structure changes.