How to calculate a seasonality index for a hotel: setting season periods from your own months
Calculate a seasonality index from your own monthly room nights to define peak, shoulder and low periods. Compare your shape against provincial data to separate market season from contractual anomalies.
Contents
Key takeaways
- The index is a shape, not a level: 100 means an average month, not a good month, so a hotel with a weak year and a strong year can carry the same index.
- Three normal years is the working default; a year with a long closure, a one-off group contract or incomplete records is excluded, and the reason is written next to the table.
- Cut points between peak, shoulder and low are a management choice, not a published standard, and they should be few enough for the rate sheet and the front desk to operate.
- Comparing your index with your province's index separates a season set by the market from a season set by your own contracts.
- In Ministry-certified (İşletme and Basit) facilities, the 2025 monthly occupancy rate ran from 26.79% in March to 71.15% in August, against 49.54% for the year. Source: Ministry of Culture and Tourism, 2025 Yılı Bakanlık Belgeli Konaklama İstatistikleri Yıllık Bülten (2025-12).
A seasonality index expresses each month's room nights as a percentage of the average month: divide the month by the 12-month average and multiply by 100. An index of 150 means that month runs half again above the average. Build it from three normal years, then set cut points to define peak, shoulder and low periods.
Most hotels did not choose their season boundaries. They inherited them from a price list written years ago, and every rate period, staffing plan and opening date since has been built on that inheritance. This article shows how to calculate a seasonality index from your own monthly figures, which years belong in it, where to draw the cut points, and how to check your season against your province's. By the end you will have a four-column spreadsheet and a defensible set of season periods.
What is a seasonality index, and how do you calculate it?
The seasonality index is each month's volume divided by the average month, multiplied by 100. It turns twelve raw monthly figures into one comparable shape.
Choose one unit and keep it for the whole calculation: room nights, guest nights or rooms sold. Mixing units between years is the most common way the index quietly becomes wrong. Add the twelve monthly figures, divide by twelve to get the average month, then divide each month by that average and multiply by 100. Round to whole numbers; the decimals suggest a precision the data does not have.
With three years of data you can either average each month across the three years first and then index, or index all 36 months and average the indices. The two give slightly different answers when a month has fewer observations; write down which one you used.
Read the result as shape, not level. An index of 100 is an average month for this hotel, not a target and not a good month. A hotel that filled 60 percent of its rooms and a hotel that filled 90 percent can carry nearly the same index if their monthly curves bend the same way.
In a spreadsheet, the whole file is four columns wide: one column of months, one column of nights, an AVERAGE over the twelve cells, then each cell divided by that average and formatted as a whole number. Keep the raw monthly table. The index is derived and can be recomputed in a minute; the raw table is the asset that takes a year to rebuild.
For example, a 40-room hotel selling 13,000 room nights across the year has an average month of 1,083 nights. The table below shows what its index looks like. Figures are illustrative only.
| Month | Room nights | Index |
|---|---|---|
| January | 400 | 37 |
| February | 450 | 42 |
| March | 600 | 55 |
| April | 900 | 83 |
| May | 1,300 | 120 |
| June | 1,600 | 148 |
| July | 2,000 | 185 |
| August | 2,100 | 194 |
| September | 1,500 | 138 |
| October | 1,100 | 102 |
| November | 600 | 55 |
| December | 450 | 42 |
Which years should go into the index?
Use three normal years, and leave out any year that was not normal for a reason you can name. The index describes a pattern, so an abnormal year does not add information, it blurs the pattern.
Three years, 36 months, is long enough to absorb one strange month and short enough that the demand mix still resembles today's. Exclude a year with a long closure, a renovation, a change of ownership or a management handover, because the months are missing or the selling policy changed mid-year. Exclude a year dominated by a single event: one group contract that filled three months, one charter series that stopped, one corporate account that arrived or left.
Exclude a year where your own records are incomplete, even if the market year was normal. A reconstructed month is worse than a missing one. If your demand is driven by foreign source markets, a year of extreme exchange-rate movement can distort the shape; treat it as a judgement call and say so in your notes.
If you changed room count, either index occupancy of available rooms instead of raw nights, or index each year separately and average the indices, so a bigger hotel does not read as a busier season. Whatever you exclude, write the exclusion and its reason in a note under the table. The next person to read the index needs to know what is not in it.
ChecklistBefore you average, check each year
- twelve months of complete records
- no closure longer than two weeks
- room count unchanged, or normalised
- no single contract above roughly a fifth of the year's nights
- no mid-year change in selling policy or channel mix
- the year's total nights plausible against the two neighbouring years
Should you index nights, revenue or both?
Build both. The nights index tells you about workload and capacity; the revenue index tells you about money. The gap between them is where pricing decisions live.
The nights index drives housekeeping load, breakfast covers, linen, front-desk shifts and the number of seasonal contracts you sign. The revenue index drives cash flow, payment terms with suppliers, the hiring budget and how much you can spend on maintenance in the low months. Each index answers a different question, and a hotel that only builds one of them is half-planning.
Divide the revenue index by the nights index and multiply by 100 to get an average-rate index. If that number falls in your peak months, you are discounting exactly when demand is strongest. A flat revenue index beside a sharp nights index usually means cheap peak selling; a sharp revenue index beside a flat nights index usually means rate discipline or a shift toward higher-category rooms.
For the shape, use average room rate rather than nominal revenue if inflation is high, otherwise the revenue index mostly measures prices in the economy rather than your season. Put both indices on one chart with a line at 100. Two lines and one reference line is the whole picture; anything more is decoration.
TipSort the average-rate index
Compute the average-rate index (revenue index divided by nights index, times 100) for every month and sort it. The three highest months are where you have pricing room; the three lowest are where a discount costs you least in absolute money.
Where do you draw the cut points between peak, shoulder and low?
Cut points are a management choice. No authority publishes an official definition of peak, shoulder and low season, so the only test is whether the boundaries support the decisions you make with them.
A workable starting rule, purely as an illustration: an index of 120 and above is peak, 90 to 120 is shoulder, below 90 is low. Then adjust it to what you can actually operate. Keep the number of periods small. A rate sheet with six seasons confuses the front desk, the channel manager and the guest, and the boundaries get overridden manually within a month.
Tie each boundary to a decision: minimum-stay rules and deposit terms in peak, cancellation flexibility in shoulder, maintenance windows and training in low. Check the cut against the calendar before you commit. A month with an index of 105 that contains a nine-day holiday week is peak for those nine days, whatever the monthly average says.
Record the cut points with the date they were set and the data they were set from, and review them once a year after the season closes. The boundaries feed the rate sheet directly, so build the two together rather than translating one into the other afterwards. For the rate sheet itself, see building a rate sheet with seasonal prices, supplements and reductions, and for selling the quieter periods, see how a seasonal hotel prices and sells the shoulder and low season.
Watch outCut points are not transferable
Do not copy another hotel's cut points, and do not present yours as a standard. A city hotel with a corporate January and a resort with a closed January can both be right with completely different numbers.
How does your hotel's index compare with your province's?
Convert the province's published monthly occupancy rates into an index the same way you did your own, then compare shapes. Where the shapes match, your season is the market's; where they differ, the difference is usually contractual.
The Ministry of Culture and Tourism publishes monthly occupancy rates for Ministry-certified accommodation in its accommodation bulletins. Take the province's twelve monthly rates and divide each by the year's average rate, times 100. Do not compare a rate with an index. A rate is a percentage of capacity; an index is a number around 100. This is the most common error in this comparison and it makes every conclusion wrong.
The published rate is based on bed capacity across Ministry-certified (İşletme and Basit) facilities. It is not a room occupancy rate and should never be written as hotel occupancy. For scale, in 2025 the monthly rate in Ministry-certified (İşletme and Basit) facilities ran from 26.79% in March to 71.15% in August, against 49.54% for the year, according to the Ministry of Culture and Tourism's 2025 yearly accommodation bulletin (opens in a new tab) (2025-12). Public data. No endorsement implied.
If your shape matches the province, your season comes from weather, flight schedules and source-market holidays, and you can plan against the market calendar, which Türkiye's tourism season month by month draws from the official data. If your shape differs, look for the contract: an allotment that ends in September, a corporate account that fills January, a charter series that starts late. That is a commercial decision you can renegotiate, not a fact of geography.
NoteThe province index is a shape, not a benchmark
The Ministry's monthly bulletin gives a rate per month, not a count of nights, and the definition behind the rate is not published in detail. Treat the province index as a shape to compare against, not as a benchmark to beat.
How do you turn the index into rate periods and staffing?
The index sets the boundaries; the decisions set the content. Each boundary should trigger a specific change in price, contract or rota, or it is only a label.
Rate periods come first: the index gives the dates, the rate sheet gives the prices and the rules that go with them, including minimum stay and deposit terms. Staffing follows the same bands. Recruit and train before the index crosses your peak threshold, not on the first busy week. Seasonal contracts written against index bands are easier to defend than ones written against a feeling.
Opening and closing is the one decision the index alone does not settle. For a hotel that shuts for part of the year, a week-by-week contribution test does, because a month with a low index can still cover its own variable cost. Maintenance and training go in the lowest-index months, planned a year ahead so contractors are booked before the low season starts. Purchasing follows the nights index: order linen, amenities and food month by month, not against last year's single peak week.
After the season, put the actual months beside the index. The difference between the two is the most useful page in the file, because it shows where the pattern moved.
Why does a moving bayram break a month-level index?
Because a religious holiday moves roughly eleven days earlier each year, a monthly index averages a moving week with a fixed month. The month looks strong or weak for a reason that will not repeat in the same month next year.
Two effects run at once: the month that contains the holiday reads above its underlying demand, and the same month next year may contain no holiday at all. The same applies to Easter, source-market school holidays and long weekends, which is why a hotel selling to several source markets can have several small seasons inside one month.
The fix is cheap. Keep a daily or weekly calendar beside the monthly index and mark every movable event. Read the month's index with the event noted, not instead of it. Do not over-read a single month: one month is one observation, and the shape across twelve months is the signal. A month that is odd for a known reason is not a signal.
National monthly figures carry the same limitation, so a province index built from them also smears a moving holiday across a month. If a movable event matters commercially, plan it as an event with its own dates and its own rules, and let the monthly index describe the ordinary weeks around it.
What to do next
Build the 36-month table this week: three normal years, one unit, one average, twelve indices. Then put your index beside your province's index, and only after that set the cut points and carry them into the rate sheet. The order matters, because a boundary chosen before the comparison is usually just the old price list with new dates.
When the table is done, the monthly reporting has to hold it. AI Otel's hotel operating system is built and working, ahead of launch: reservations, front desk, housekeeping, billing, restaurant sales, reports and compliance in one place, with 150+ built-in reports (June 2026). If you want to see how it handles seasonal reporting, request a briefing.
Frequently asked questions
What is a good seasonality index?
There is no good or bad value. The index describes the past shape of your own demand, so a hotel with a very sharp curve and one with a flat curve can both be correct. What matters is whether the cut points derived from it support decisions you can actually run.
Can I calculate a seasonality index in Excel?
Yes, in four columns: month, nights, the average of the twelve months, and each month divided by that average times 100. The only real decisions are which years to include and which unit to use, and both must stay the same across the whole table.
Should I use three years or five years of data?
Three normal years is a workable default: enough months to absorb one strange month, recent enough to reflect today's demand mix. Five years smooths more but raises the chance of including a year that was abnormal for a reason you have forgotten.
Does the seasonality index predict next season?
No. It describes months that have already happened. It is a baseline for setting periods, rotas and purchasing, and it should be compared with actual results after the season rather than treated as a forecast.
How do I build an index for a hotel that opened two years ago?
Use the months you have, compute the index on those months, and mark it as provisional in your own file. Rebuild it when a third normal year is complete, and note in the file which months were missing.
Sources
- 2025 Yılı Bakanlık Belgeli Konaklama İstatistikleri Yıllık Bülten (sheet 'Ay': İşletme ve Basit Belgeli Konaklama Tesislerinde … Doluluk Oranlarının Aylara Göre Dağılımı (2025); sheet 'Yıllara Göre Dağılım') (opens in a new tab)T.C. Kültür ve Turizm Bakanlığı, Yatırım ve İşletmeler Genel Müdürlüğüyigm.ktb.gov.tr