Upload a CSV with a date column and a metric. Get an STL decomposition with a seasonal strength score, the peak and trough seasons named with their size vs trend, and an honest noise share. Free.
Free analyses run on up to 10,000 rows. Larger files are randomly sampled to that size — sign up to analyze your full dataset.
Decomposing trend, seasonality, and noise...
Sent to — actual-vs-trend chart, seasonal index by season, full decomposition table, seasonal strength verdict, R code, and AI insights.
Analyze another fileThe analysis parses your dates, aggregates duplicates by sum, infers the cadence (daily, weekly, monthly) from the median date gap, and fills small gaps by linear interpolation — every adjustment stated in the report. It then runs an STL decomposition (seasonal-trend decomposition using loess with a periodic seasonal window), splitting the series into trend, seasonal, and remainder. Seasonal strength is max(0, 1 minus Var(remainder) divided by Var(seasonal plus remainder)), banded weak below 0.30, moderate below 0.60, strong at 0.60 or above. Each season gets an index — its percentage above or below the trend level — reported in calendar order, with the peak and trough named.
Use it when you have a dated history of one metric and want to know whether a seasonal cycle is real, how big it is, and which seasons peak and dip — before setting targets, staffing, or stock levels around a calendar.
Not for projecting future values (use the forecast tool), for series shorter than two full cycles, or for irregular event-driven spikes that do not repeat on a calendar.
Built for: Operators, planners, and analysts deciding whether a metric's calendar pattern is real enough to plan around
Typical data source: Any CSV or spreadsheet with a date column and a numeric metric — sales by month, orders by day, signups by week
A dated history of one metric. For example, monthly revenue:
Minimum 10 rows · Best with 2-6 years of monthly or weekly history, or 3+ months of daily history
Standard-library analysis: find out whether a metric has a real seasonal pattern and how big it is. Maps a date column and a numeric column, infers the data's cadence (daily, weekly, monthly) from the date spacing, and runs an STL decomposition to split the series into trend, seasonal, and noise. Reports a 0-to-1 seasonal strength score with a plain-language band, names the peak and trough seasons in calendar terms with their percentage above and below trend, gives the trend direction over the window, and states honestly how much of the variation is just noise.
Your metric against its deseasonalized trend — recurring gaps between the lines are the seasonal pattern; wandering gaps are noise.
One bar per season in calendar order: how far above or below the trend that season typically runs, as a percentage.
The full per-season breakdown — average effect, percentage index vs trend, and each season's share of the seasonal deviation.
The decomposition method, the strength formula and its thresholds, and the assumptions the seasonal read rests on.
Plain-English interpretation — what the numbers mean, what's significant, and what to do next.
Is this metric actually seasonal, or does it just look that way?
Map your date column and the metric. The STL decomposition separates the repeating seasonal pattern from trend and noise, scores its strength on a 0-to-1 scale, and names the peak and trough seasons with their size — so you know whether the pattern is real enough to plan around.
See our FAQ for details on pricing, data privacy, and how the analysis works. Every report includes a Methodology section showing the statistical test, assumptions checked, and diagnostics run.
Run any analysis on your own data — validated R analyses, interactive reports, AI insights, and PDF export.
Try Free — No Credit CardTell us what went wrong, in your own words. We capture the page you're on automatically, so no need to describe where you are.