
Seasonality index is a numerical measure that quantifies how demand for short-term rentals varies across different months in a specific market. Expressed relative to a baseline of 100 (the annual average), the index converts raw occupancy or revenue figures into a comparable scale — a month scoring 130 runs 30% above the annual average, while a month at 70 runs 30% below — making it the most precise tool for aligning pricing and operations with predictable demand cycles.
The formula normalizes each month's performance against the annual average:
Seasonality Index = (Month's Metric ÷ Annual Average Metric) × 100
Occupancy is the most common input because it strips away rate decisions and measures pure demand. Revenue or RevPAR can also serve as the input when you want to capture the combined effect of demand and pricing.
Example — Miami, FL (occupancy-based, annual average 49.2%):
| Month | Occupancy | Seasonality Index | Season |
|---|---|---|---|
| May | 46% | 93 | Shoulder |
| Jun | 50% | 102 | Moderate |
| Jul | 49% | 99 | Moderate |
| Aug | 48% | 97 | Moderate |
| Sep | 41% | 83 | Off-season low |
| Oct | 45% | 91 | Shoulder |
| Nov | 48% | 97 | Building |
| Dec | 52% | 106 | Peak approaching |
| Jan | 53% | 108 | Peak season |
| Feb | 58% | 118 | Peak season |
| Mar | 58% | 118 | Peak season |
| Apr | 43% | 87 | Rapid drop-off |
Source: AirROI, 9,718 active listings in Miami, FL, May 2025 – April 2026.
Miami's pattern reflects its inverted-season structure: winter warmth drives a Feb–Mar peak (index 118) while the September end-of-hurricane-season trough bottoms out at 83. A host setting a flat rate year-round leaves meaningful revenue on the table during the 35-point spread between those two periods.
The index range is the primary differentiator between market archetypes — not just the level of demand, but the volatility of that demand across months.

In AirROI's analysis of 13,717 active listings across Miami, FL and Gatlinburg, TN, the two markets illustrate opposite seasonal structures:
A Gatlinburg host who prices January the same as October leaves over 50% of peak-month demand on the table — the index spread between those two months is wider than many markets' entire annual range.
The contrast matters most for investors: Gatlinburg's higher ADR ($376.50 vs. $291.00 for Miami) co-exists with a more volatile demand curve, which means cash reserves, minimum-stay rules, and rate strategies must account for genuine slow months in a way a Miami property does not require.
Pricing calibration. Dynamic pricing tools (and hosts doing it manually) use the index as the underlying demand signal. A platform that knows October in Gatlinburg indexes at 133 will push rates 33% above baseline; one without that signal sets rates based on trailing averages and misses the peak. See how top operators use demand data to build disciplined ADR strategies.
Revenue forecasting. Applying the seasonality index to your annual ADR and occupancy rate baseline produces monthly forecasts that account for natural demand cycles — far more accurate than dividing annual revenue by 12.
Booking pace context. A 40% occupancy rate for July measured in March is strong for some markets and alarming for others. The index tells you what your market's July historically looks like relative to the annual baseline — without it, mid-year booking pace is uninterpretable.
Investment screening. Comparing two markets' index ranges reveals cash-flow stability. A market ranging 85–115 generates steadier monthly income than one ranging 64–133, even if their annual revenue totals are identical. That stability premium matters for debt service on a DSCR-financed property.
Operations planning. The lowest-index months are the right time for renovations, deep cleans, and professional photography — work that would displace revenue during peak months.
| Market Type | Typical Index Range | Dominant Peak | Off-Peak Driver |
|---|---|---|---|
| Winter-peak beach | 75–120 | Dec–Mar (warmth migration) | Sep–Oct (hurricane season) |
| Summer beach | 55–155 | Jun–Aug | Nov–Feb |
| Mountain/cabin | 60–135 | Jul–Aug + Oct foliage | Jan–Feb post-holiday |
| Ski resort | 55–150 | Dec–Mar snow season | Apr–May, Oct–Nov shoulder |
| Urban business | 85–115 | Weekdays year-round | Holiday weekends |
| Event-driven | 65–180+ | Around major events | Between-event gaps |
For markets driven by specific events rather than seasons, the event-and-festival demand effect can spike the index well above 150 on a single weekend, which is why weekly granularity matters as much as monthly averages.
A high-seasonality market has large swings between peak and off-peak periods. AirROI data shows Gatlinburg, TN ranging from an index of 64 in January to 133 in October — a 69-point spread. A low-seasonality market stays relatively flat year-round; Miami's index spans just 35 points (83 in September to 118 in February and March), reflecting its year-round tourism base.
Your nightly rates should mirror your market's seasonality index. During months with an index above 100, price above your annual average ADR. During months below 100, lower rates help maintain occupancy. The magnitude of your adjustments should roughly correspond to the index deviation — a market with an October index of 133 warrants rates roughly 33% above baseline that month.
Yes — and it is one of the most valuable uses. Two markets can have similar annual revenue but very different risk profiles. A market with an index range of 64–133 requires more active management, tighter cash reserves for off-peak months, and more aggressive peak pricing than one with a 83–118 range. The index quantifies that operational complexity before you invest.
Seasonality troughs depend on market type. Mountain and cabin markets like Gatlinburg see their lowest index in January and February (post-holiday winter). Beach markets like Miami hit their trough in September at the end of hurricane season. Urban markets experience their deepest lows around major holiday weekends when business travel stops. Always measure the index for your specific submarket, not a national average.