December's report lands and sign-ups are down 40 percent from November. Somebody asks what went wrong. Somebody else has a theory about the new pricing page. A meeting gets booked.
Maybe nothing went wrong in December. If December is low every year, the drop is the calendar. The question nobody asked is the one that matters: once you take the calendar out, is the business actually growing or shrinking?
Month-over-month is the number everyone looks at first, and for anything with a season it is often the least useful number you have. Here is why, and what to look at instead.
Your best month and your worst month may be the calendar
Most businesses have a rhythm that repeats every year. Retail has the holidays. B2B software has budget season and a dead December. Restaurants have summer. Services have the January rush. The rhythm can be large, and when it is, it shows up in every monthly number you report.
When you compare this month to last month, you are comparing two different points in that rhythm. The change you see is part rhythm, part noise, and (somewhere in there) the thing you actually care about: whether the business got better or worse.
The problem is the size of those three parts. When the rhythm is large, it can bury the part you care about. In the example below, it was about nine times bigger.
A worked example: four years of monthly sign-ups
To show how big the gap can be, we built an example dataset: 48 months of sign-ups for a B2B company, January 2022 to December 2025. The data is simulated, built to a stated structure (a trend, a repeating yearly pattern, and noise) rather than to a result. The full analysis, with the code, is in our seasonality worked example.
Here is what the months look like when you split them into the three parts.
The yearly pattern. September runs about 39 percent above the underlying trend. December runs about 32 percent below it. From the best month to the worst, the swing is about 72 points. The pattern is so regular that it accounts for most of the movement in the file. The leftover wiggle, once trend and season are taken out, holds only about 6 percent of the variance.
December, every year. December falls by roughly a third from November in all four years: 30, 32, 28 and 40 percent. Those four Decembers are the four biggest month-over-month drops in the entire file. If you had held a meeting about each one, you would have held four meetings about the calendar.
The trend. Underneath the pattern, sign-ups rose for three years, then the trend peaked in March 2025 and has fallen about 7.8 percent since. That is the real news in this file, and it is the one thing a month-over-month chart never shows you.
Why month-over-month hides the news
Put the numbers side by side. The seasonal swing is about 72 points. The decline that matters is about 8. The swing is roughly nine times larger than the signal you needed to see.
So in this example, a month-over-month chart spends four years telling you December is a disaster and September is a triumph. Neither is true. Meanwhile the trend has been falling since spring, and from month to month that decline is hidden under the swing.
"Compare to the same month last year" gets closer, and is still wrong
The usual fix is to compare December to last December. It does take out the season, and it is a real improvement. But it compares one noisy month to another noisy month.
In the example, December 2025 against December 2024 reads down about 20 percent. The underlying trend is down about 8 percent since its March 2025 peak. The two disagree by more than a factor of two, and they are not two estimates of one thing: the first compares two single months, each with its own random bump; the second is the change in the smoothed trend. Read alone, the same-month figure tells a different story from the trend.
Same-month-last-year is better than last month. It is not the same as looking at the trend.
What to look at instead
Split the series into its three parts and judge each one on its own:
- The trend: the slow direction the business is moving. This is the number to report up.
- The season: the pattern that repeats every year. Learn its shape once, then stop reacting to it.
- The remainder: what is left. A month that lands far outside the usual wiggle is worth a question. A month that lands inside it is not.
This is called seasonal decomposition. It does not need a data team. It needs a date column, a number column, and enough history.
How much history you need
At least two full years of monthly data. A yearly pattern cannot be separated from a trend until it has repeated at least once. With less than that, any tool will still hand you a "seasonal" line, and it will be a guess. Four years, as in the example, gives a much steadier read.
The dates also need to be evenly spaced, because the rhythm is read from the spacing. The free tool adds up duplicate dates, fills small gaps, and says in the report what it adjusted. Read those notes: a file with many gaps gives a weaker read than one with none.
What the split does not tell you
A decomposition tells you when the pattern peaks and how big it is. It does not tell you why. In the example, September is the strong month, but nothing in the numbers says whether that is budget season, a conference, or a campaign. If you want to know whether a specific change caused a lift, that is a different question, and it needs a before-and-after comparison against what would have happened anyway, or an experiment.
It also does not predict. The trend line is a smoothed view of where the business has been. Its last few months are the least certain part of it, because there is no later data yet to steady them. Treat a recent turn as something to watch, not a forecast.
Try it on your own numbers
Export a monthly series you already report: sign-ups, orders, revenue, tickets. Two columns are enough: the month and the number. Drop it into the free seasonality tool and you get back the trend against your actual numbers, the yearly pattern month by month, how much of the movement is noise, and the peak and trough months named with their size against the trend.
Then ask the only question that matters for your next report: with the season taken out, which way is the trend going?
Frequently asked questions
Is month-over-month ever the right comparison?
For a number with no yearly pattern, yes. For anything with a season, it mostly reports the season. Check first: if the same months are high or low every year, take the season out before comparing.
Isn't year-over-year enough?
It removes the season, but it compares two single months, each with its own noise. In the worked example, the December comparison and the trend disagreed by more than a factor of two. The trend is the steadier read.
How do I know the pattern is real and not noise?
Look at whether it repeats. In the example, the same four Decembers were the four largest drops in four years. A pattern that shows up in the same month every year is likely the calendar. A drop that lands in different months each year is more often noise, but some real events move on the calendar (Easter, a conference that changes dates), so check those months before you call them noise.
What if my business is too new for two years of data?
Use weekly data if your rhythm is weekly, or wait. A yearly pattern estimated from one year is a guess, and a guess presented as a chart is easy to over-trust.