Occupancy Forecaster

Upload your daily rooms sold, or use the built-in sample, and see how full the hotel is likely to be over the next 30, 60 or 90 days. Every forecast comes with a realistic range and an honest score of how accurate it has been on your own recent data.

Saves automatically in your browserNo sign-upFreeAccuracy tested on your own data

1Your daily history

One row per night with the rooms you sold. Rooms available and room revenue are optional. Export it from your PMS (property management system) as CSV. Two years gives the best result; eight weeks is the minimum.

Columns: date, rooms_sold, rooms_available, room_revenue. Names can differ (for example "Stay date" or "Occ rooms"). Dates like 2025-07-01, 07/01/2025, 1/7/2025 or 1-Jul-2025 all work. Missing nights are filled in for you.

2Forecast settings

How far ahead to look and a few facts about your hotel.

Used when your file has no rooms_available column, and for future nights
Only used when you enter rooms on the books (Step 4)
Learns the holiday lift from your data
The forecast updates as you change anything.

Forecast

History, forecast and range

Rooms sold per night. The shaded band is the 80% range: on 8 nights out of 10 the real figure should land inside it. The dashed line is the backtest: what the method would have forecast for the last 8 weeks.

Weekday pattern

How busy each night of the week is compared with an average night (100%), learned from your last 52 weeks.

How accurate is it?

Month by month

Forecast nights in each month, compared with the same nights last year.

4Day by day, with rooms on the books

Optional: type or paste the rooms already reserved for each night (OTB, rooms on the books). The forecast then blends your model with real bookings, leaning more on bookings as the night gets closer. Paste a column from Excel into the first box to fill many nights at once.

NightModel forecast80% rangeOn the booksFinal forecastOccupancyLast year
How it's calculated

Cleaning. Rows are sorted, repeated dates are combined, rooms sold are capped at rooms available, and missing nights are filled with the same weekday a week earlier (or the average of the nights either side). The page tells you how many were filled.

Model (with at least 60 weeks of history). A multiplicative seasonal model you can check by hand:

forecast = last year's level for the same week × growth vs last year × weekday index × holiday lift

Shorter history. With less than 60 weeks there is no last year to copy, so the forecast is the damped Holt level and trend of the 7-night average times the weekday index. The page says when this happens; expect it to miss seasonal turns.

Range and accuracy. The method is re-run from up to 8 past starting points using only the data available at that time, and its forecasts are compared with what actually happened. The 10th and 90th percentiles of those errors, grouped by how far ahead (1 to 14, 15 to 30, 31 to 60, 61 to 90 days), give the 80% range. MAPE (mean absolute percentage error) is the average size of the miss as a percentage of actual rooms sold, measured on the last 8 weeks.

Rooms on the books. A typical booking curve says what share of final rooms is usually booked by a given number of days out (your 30-day setting, rising to 100% on the night). OTB ÷ that share gives a bookings-based estimate. The final forecast is share × bookings estimate + (1 − share) × model, never below OTB and never above rooms available.

Limits. The model cannot know about new events, renovations, big group blocks or a pandemic unless they show up in the data or in your OTB. It forecasts rooms, not price. Your data stays in this browser; nothing is uploaded anywhere.