Quick answer
Seasonality is a regular, predictable pattern in time-series data that repeats over a fixed calendar period, such as the hour of the day, the day of the week or the month of the year.
Formula: Seasonal index = value in a period ÷ average across the full cycle
What is seasonality?
Seasonality is a pattern that repeats on a fixed calendar cycle. Traffic dips every weekend, sales peak every December, sign-ups rise every January. It is predictable, which is what makes it useful: once you know the pattern, you can stop mistaking it for a change.
Time-series data is often described as trend + seasonality + noise. The trend is the long-term direction; seasonality is the repeating swing around it; noise is everything else.
Four cycles in web data
| Cycle | Typical pattern |
|---|---|
| Daily | Work-hour peaks for B2B; evening peaks for consumer and media |
| Weekly | B2B drops at weekends; many consumer sites rise |
| Annual | Holiday shopping, summer slowdown, back to school, tax season |
| Event-driven | Black Friday, product launches, sports events, moving holidays |
B2B vs B2C: a sample weekly profile
Average daily visitors by weekday, as an index (1.00 = weekly average, sample numbers):
| Day | B2B software site | Consumer store |
|---|---|---|
| Mon | 1.20 | 0.90 |
| Tue | 1.22 | 0.88 |
| Wed | 1.20 | 0.92 |
| Thu | 1.16 | 0.95 |
| Fri | 1.12 | 1.00 |
| Sat | 0.52 | 1.20 |
| Sun | 0.58 | 1.15 |
For the B2B site, a Saturday at half of Tuesday is completely normal. For the store, a quiet Saturday is a real warning.
Measuring a seasonal index
seasonal index = value in a period ÷ average across the full cycle
Average several cycles (for weekly patterns, at least 4–8 weeks; for annual, two or more years) so one unusual week does not set the pattern. Divide a raw value by its index to get a seasonally adjusted value.
Adjusting for seasonality
- Compare like with like. Same weekday last week, same month last year (year over year once enough history exists).
- Smooth with the cycle length. A 7-day moving average removes the weekly cycle completely.
- Use seasonal baselines in alerts. A rule that compares Sunday with recent Sundays will not fire every weekend.
- Handle moving holidays as events. Compare the event window, not calendar dates.
- Annotate. Mark campaigns and holidays so next year's comparison has context.
Seasonality in TapCub
Set the comparison to same period last week to compare each day with the same weekday a week earlier; the previous-period option is better for multi-week ranges. Monitors are built for weekly cycles: the forecast band compares with the last 7 days and the same weekday, and the anomaly condition uses the mean and spread of the same weekday over 28 days. Add annotations for holidays and campaigns, and switch the chart grain to weekly to remove the weekday pattern. See also anomaly detection.
Was this explanation clear?
We use your answers to fix and expand this page.
Couldn’t send. Please try again in a minute.
Thanks for the feedback. We’ll use it to improve this page.You’ve already sent feedback on this page. Thanks.

Data Analyst
Explores traffic sources, conversion funnels, and retention, using clear metric definitions and concrete examples to explain what the numbers mean.