Seasonality Mistaken for Improvement
Seasonal variation is the most common source of false improvement signals in healthcare data. A programme launched in winter looks successful by spring — not because anything changed, but because spring always looks better than winter. This page explains how to recognise seasonal patterns, why standard charts miss them, and what to do.
☰ Contents
What seasonal variation is
Seasonal variation is predictable, recurring fluctuation caused by the time of year — not by any change in the underlying system. It is common cause variation: the normal noise of a stable process that happens to follow a calendar pattern.
In healthcare, seasonal patterns are pervasive. NHS A&E attendance peaks in winter and is lower in summer. Infection rates follow seasonal cycles. Referral volumes vary by month. Mental health presentations peak at predictable times of year. Respiratory admissions rise in cold weather. These patterns have been present for decades. They are features of the system, not signals that the system has changed.
Seasonal variation passes the same-time-last-year test: compare this January to last January, not this January to last October. If the difference disappears when you compare like-for-like months, you are looking at seasonal variation, not structural change.
The seasonal trap in improvement work
The seasonal trap is one of the most common and most damaging measurement errors in healthcare improvement. It works like this:
A programme launches in autumn or winter
Most NHS improvement programmes launch at the start of a financial year (April) or after a winter crisis (January–March). Both are near-seasonal lows for many metrics.
The metric improves over the following months
Of course it does — because spring and summer follow winter. The metric was always going to improve. The improvement is entirely seasonal.
The improvement is attributed to the programme
A before-and-after comparison between winter and summer shows a statistically significant improvement. The programme is declared a success. Resources are committed to scaling it up.
The following winter, performance deteriorates again
The team concludes that implementation has slipped, or that the programme needs reinforcing. More effort is applied. The seasonal cycle repeats. The programme is never properly evaluated because the measurement tool cannot separate the programme's effect from the season.
Programmes declared successful on seasonal data continue to receive investment long after they should have been evaluated honestly. Programmes that genuinely work are credited for seasonal gains they did not produce, making their actual effect invisible. And the seasonal trap compounds: once a false success is on record, the organisation has a vested interest in the narrative — making honest re-evaluation politically difficult. See False Alarms in Performance Charts for the broader pattern.
NHS examples
NHS A&E four-hour performance
NHS A&E four-hour performance follows a strong seasonal pattern: performance is consistently lower in winter (December–February) and higher in summer (June–August). The difference between a winter low and a summer high can be 5–10 percentage points. Any improvement programme launched in January and evaluated in June will appear successful purely from this seasonal recovery — regardless of whether anything structurally changed. The Bootstrap CUSUM analysis of 15 years of A&E data on this site finds no upward change point across 184 monthly observations despite multiple interventions — precisely because the seasonal appearance of improvement was never genuine structural change. See Why Nothing Has Worked: NHS A&E.
Infection rates
Healthcare-associated infection rates tend to be lower in summer and higher in winter, partly reflecting seasonal variation in respiratory and gastrointestinal pathogens circulating in the community. An infection control programme launched in spring and evaluated after three months will almost always show improvement. Whether that improvement represents genuine structural change — or the seasonal decline that was already happening — can only be answered by comparing to the same period in previous years, or by running Bootstrap CUSUM on the full annual series.
Referral volumes and waiting times
GP referral volumes and outpatient waiting times vary substantially by month, with predictable dips around August (junior doctor changeover, holiday period) and peaks in autumn and early spring. A waiting list reduction programme evaluated across the August dip will show improvement that reverses in September regardless of the programme's actual effect.
Quick checks — is this seasonal or structural?
Before drawing any conclusions from an improvement in your data, run these checks:
Compare this month to the same month last year — not to last month.
If performance in April this year is better than April last year — that is potentially genuine. If performance in April this year is better than February this year — that may simply be April being better than February, as it always is.
- Does the pattern repeat each year? Plot three or more years of monthly data. If the peaks and troughs occur at the same time each year, you are looking at seasonality. A genuine structural improvement shifts the whole curve up or down permanently — it does not just move one season's result.
- Does the change point date coincide with a season rather than an intervention? If Bootstrap CUSUM places a change point in January or February — and your programme launched in October — the change point may be the start of a seasonal recovery, not the effect of your programme. Check whether the same pattern appears in earlier years without any intervention.
- Does the improvement reverse the following year at the same time? If performance improves from January to June, then deteriorates from October to December, and this pattern repeats year after year — you are inside a seasonal cycle, not a structural improvement.
- Is the series long enough to show multiple cycles? You need at least two full annual cycles (24 monthly observations) to reliably distinguish seasonal variation from structural change. With fewer observations, Bootstrap CUSUM may detect a seasonal high as a change point.
How Bootstrap CUSUM handles seasonality
Bootstrap CUSUM is more robust to seasonality than visual inspection or before-and-after comparison — but it is not immune. Understanding how it interacts with seasonal data prevents misinterpretation.
On a short series with strong seasonality, Bootstrap CUSUM may detect the seasonal peak as a change point. This is not a bug — it is the algorithm doing its job correctly on data that contains a sustained deviation from the process mean. The seasonal peak genuinely is a sustained deviation. The question is whether it is a recurring seasonal deviation or a new structural level.
The practical check: run Bootstrap CUSUM on the full available series — not just the recent period. If the algorithm finds change points at the same time each year (e.g. every November and every May), those are seasonal boundaries, not structural ones. If a change point appears once and the new level is sustained across subsequent seasons — including the winter that follows — it is likely structural.
The best approach for highly seasonal series is one of these three options:
Run Bootstrap CUSUM on annual totals or annual averages rather than monthly data. This removes seasonal variation entirely — the annual mean is the same regardless of which month you are in. A genuine structural improvement will shift the annual mean. Seasonal variation cancels out within each year.
Run Bootstrap CUSUM separately on January data across multiple years, February data across multiple years, and so on. Each month-series removes the seasonal effect and shows whether that month is genuinely improving year-on-year. This requires more years of data but gives the most precise picture.
If you have access to seasonally adjusted figures (NHS England publishes these for some metrics), use those as your Bootstrap CUSUM input. Seasonally adjusted data removes the predictable seasonal component, leaving only the underlying trend and any structural changes.
What to do with seasonal data
- Set a same-season review date. If you launch an intervention in January, do not evaluate it in June. Evaluate it next January — the same season, one year on. That comparison removes the seasonal confound entirely.
- Pre-specify the comparison. Before implementation, write down exactly what comparison you will make to declare success. Same month, same season, or full-year average? Writing it down before the data arrives prevents cherry-picking the period that looks best.
- Do not launch and evaluate in the same season. A programme that launches in winter and is evaluated the following summer is almost guaranteed to show improvement. This is not evidence — it is the calendar.
- Use at least two full years of post-intervention data. A genuine structural improvement should be visible in year two as well as year one. If the improvement is present in year one but absent in year two at the same season, it was either seasonal or a one-off event.
- Run Bootstrap CUSUM on annual data first. If the annual series shows a change point, investigate whether the monthly series confirms it. If the monthly series shows a change point but the annual series does not, suspect seasonality.