{"id":3641,"date":"2026-08-28T00:00:00","date_gmt":"2026-08-27T22:00:00","guid":{"rendered":"https:\/\/humes.pl\/seasonality-and-time-series-how-to-seasonally-adjust-data-to-distinguish-trends-from-fluctuations\/"},"modified":"2026-08-25T15:54:32","modified_gmt":"2026-08-25T13:54:32","slug":"seasonality-and-time-series-how-to-seasonally-adjust-data-to-distinguish-trends-from-fluctuations","status":"publish","type":"post","link":"https:\/\/humes.pl\/en\/seasonality-and-time-series-how-to-seasonally-adjust-data-to-distinguish-trends-from-fluctuations\/","title":{"rendered":"Seasonality and time series: how to seasonally adjust data to distinguish trends from fluctuations"},"content":{"rendered":"<p>Sales fell by more than a dozen percent quarter on quarter, and management wants to know what happened. Before arriving at an answer, it is worth checking one thing: whether the same decline did not occur a year earlier and two years earlier at the same point in the calendar. <strong>Sales seasonality analysis<\/strong> serves precisely this purpose &#8211; separating what is recurring and calendar-driven from what is actually changing the direction of the business.<\/p>\n<h2>What distinguishes a trend from seasonal fluctuations in sales data?<\/h2>\n<p>Any time series of sales, traffic, inquiry volumes, or market shares can be modeled as a combination of several layers. Classical decomposition used in time series analysis separates the trend (long-term direction), seasonality (regular fluctuations with a fixed frequency &#8211; monthly, quarterly, weekly), the cyclical component (fluctuations lasting longer than a year and unrelated to a fixed calendar), and the irregular component, meaning what the model does not explain.<\/p>\n<p>The interpretation problem arises because a raw chart shows the sum of all these layers at once. A manager looks at a single line and attributes it to one cause. Yet in highly seasonal categories &#8211; construction, gardening, tourism, pharmaceuticals, education, and FMCG with holiday exposure &#8211; the amplitude of calendar-driven fluctuations can exceed the annual trend growth rate. This means that in such data, the direction of change between consecutive months alone may provide little information about business performance.<\/p>\n<p>There are also effects that resemble seasonality but are not seasonality in the strict sense. The most common include:<\/p>\n<ul>\n<li><strong>Calendar effects<\/strong> &#8211; varying numbers of working days and weekends in a month, leap years, and the timing of holidays.<\/li>\n<li><strong>Moving holidays<\/strong> &#8211; Easter shifting between March and April can by itself generate a double-digit year-on-year difference for March.<\/li>\n<li><strong>One-off events<\/strong> &#8211; a promotion, system failure, regulatory change, or the entry of a major competitor. These are outliers, not seasonality.<\/li>\n<li><strong>Seasonality at multiple levels simultaneously<\/strong> &#8211; daily data may display both a weekly and an annual pattern at the same time.<\/li>\n<\/ul>\n<p>The distinction between <strong>trend and seasonal fluctuations<\/strong> has direct operational implications for inventory planning, media budgets, fieldwork schedules, and campaign effectiveness assessment. If a campaign launched during a period of natural category growth, its effect will be overestimated without seasonal adjustment of the data. If it launched during a trough, it will be underestimated.<\/p>\n<h2>How to conduct a sales seasonality analysis step by step?<\/h2>\n<p>Sales seasonality analysis begins long before the first model &#8211; with organizing the input data. In project work, the largest share of the effort goes into preparing the time series, not decomposing it.<\/p>\n<p>A typical process includes the following stages:<\/p>\n<ol>\n<li><strong>Defining the granularity and time horizon.<\/strong> Daily, weekly, monthly, or quarterly data &#8211; the choice depends on the pattern to be detected. Detecting annual seasonality requires at least several complete cycles; two years allow, at most, a preliminary hypothesis to be formulated.<\/li>\n<li><strong>Checking time series consistency.<\/strong> Changes in category definitions, sales channel mergers, system migrations, and changes in the measurement method &#8211; each such event creates an artificial jump that the model will interpret as a level shift.<\/li>\n<li><strong>Calendar adjustment.<\/strong> Recalculating sales per working day or including dummy variables for moving holidays and non-working days.<\/li>\n<li><strong>Identifying and handling outliers.<\/strong> Outliers should be flagged, and a decision should be made whether to correct them or model them as events. Leaving an unflagged promotion in the series distorts the entire seasonal profile.<\/li>\n<li><strong>Decomposition.<\/strong> Classical methods (additive or multiplicative), STL (Seasonal-Trend decomposition using Loess), often applied after logarithmic transformation when seasonality depends on the level, and X-13ARIMA-SEATS when full calendar adjustment and outlier handling are needed.<\/li>\n<li><strong>Validating the seasonal profile.<\/strong> Checking whether seasonal indices are stable across years and whether they are substantively justified by category dynamics.<\/li>\n<li><strong>Drawing conclusions from the seasonally adjusted series.<\/strong> Only at this stage should levels be compared and direction assessed.<\/li>\n<\/ol>\n<p>The choice between an additive and multiplicative model is not a formality. An additive model assumes that seasonal fluctuation has a constant absolute magnitude regardless of the level of sales. A multiplicative model assumes that the fluctuation is proportional to the level &#8211; the December peak grows along with the business. The multiplicative variant is appropriate when the amplitude of fluctuations on the chart expands as the trend rises.<\/p>\n<p>It is also worth remembering that <strong>seasonal adjustment of data<\/strong> is not the only way to interpret a signal. An alternative is a year-on-year comparison for the same period, which neutralizes seasonality that is stable over time, but at the cost of delayed signals and sensitivity to one-off events in the comparison base. A seasonally adjusted series provides a more current reading, but requires awareness that the latest values are revised as new observations become available.<\/p>\n<p>In practice, many alarming quarterly declines turn out, after decomposition, to be ordinary seasonality &#8211; the difference being that someone compared the result with the wrong reference period. Comparing the fourth quarter with the first quarter in a category with strong holiday exposure will usually generate a decline, regardless of whether the business is growing or contracting.<\/p>\n<p>The seasonal profile itself can be a valuable research finding, regardless of forecasting. Stable seasonal indices make it possible to schedule measurement dates so that tracking study waves do not fall at extremely different points in the cycle, which would make their results more difficult to compare.<\/p>\n<h2>What errors most often undermine time series analysis?<\/h2>\n<p>Sales seasonality analysis leads to incorrect conclusions more often than the complexity of the method itself would suggest. The pitfalls are mainly interpretive and related to input data, rather than computational.<\/p>\n<p>The most common include:<\/p>\n<ul>\n<li><strong>Comparing periods at different points in the cycle.<\/strong> Quarter-on-quarter or month-on-month comparisons without adjustment are a fundamental source of false alarms.<\/li>\n<li><strong>Inferring a trend change from a single point in the seasonally adjusted series.<\/strong> The latest observations in a decomposition are the least stable because the model has a one-sided data window. The signal should be confirmed after two or three subsequent readings.<\/li>\n<li><strong>Treating a one-off event as a pattern.<\/strong> A single unusual season incorporated into a seasonal profile distorts forecasts for years.<\/li>\n<li><strong>Ignoring changes in the profile over time.<\/strong> Seasonality is not constant &#8211; sale dates shift, shopping habits change, and e-commerce has a different profile from traditional channels. Methods that allow the seasonal component to vary, such as STL, may describe such a series better than classical decomposition.<\/li>\n<li><strong>Seasonally adjusting aggregated data rather than segments.<\/strong> The sum of two categories with opposing seasonal profiles may appear to be a non-seasonal series, even though each component is highly seasonal.<\/li>\n<li><strong>Confusing seasonality with the business cycle.<\/strong> Fluctuations with a frequency longer than one year will not be removed by seasonal adjustment and may remain in the trend-cycle component.<\/li>\n<li><strong>Using too short a series.<\/strong> With two years of data, assessment of the seasonal profile is highly uncertain.<\/li>\n<\/ul>\n<p>A separate limitation is what the method does not do by definition: time series analysis describes the structure of variation but does not explain its causes. Identifying that a decline was seasonal means that it is not, in itself, evidence of a deteriorating trend or an automatic need for intervention. However, it does not explain why the seasonal amplitude was higher this year. Answering this question requires supplementing the series with contextual data (prices, distribution, competitor activity, weather) or with a qualitative layer.<\/p>\n<h2>When is seasonal adjustment sufficient, and when is a forecasting model needed?<\/h2>\n<p>Not every business question requires building a model. Distinguishing between diagnosis and forecasting makes it possible to match the level of effort to the objective.<\/p>\n<p>The following overview shows which approach corresponds to typical questions:<\/p>\n<ul>\n<li><strong>&#8220;Is this decline a problem?&#8221;<\/strong> &#8211; decomposition and an analysis of the seasonally adjusted series, together with comparison against the seasonal index for the given period, are sufficient.<\/li>\n<li><strong>&#8220;How should we allocate the annual plan across months?&#8221;<\/strong> &#8211; stable seasonal indices from several years are needed, without a predictive model.<\/li>\n<li><strong>&#8220;How much will we sell next quarter?&#8221;<\/strong> &#8211; this is already <strong>short-term forecasting<\/strong>: SARIMA models, exponential smoothing with a seasonal component (ETS), Prophet, or regression models with calendar variables.<\/li>\n<li><strong>&#8220;Did the campaign work?&#8221;<\/strong> &#8211; a credible counterfactual scenario is needed, meaning an estimate of what would have happened without the intervention, preferably also based on an appropriate control group or control series.<\/li>\n<li><strong>&#8220;Why did the seasonal profile change?&#8221;<\/strong> &#8211; time series analysis usually needs to be supplemented with market data and, where necessary, research involving the target audience.<\/li>\n<\/ul>\n<p>In short-term forecasting, validation on historical data using a rolling-window approach is crucial, rather than a random split of the dataset &#8211; the order of observations in a time series carries information that must not be disrupted. A sound forecast should always be presented with an uncertainty interval, not as a single number; the width of that interval is as important an outcome as the central value.<\/p>\n<h2>Frequently asked questions<\/h2>\n<h3>How can seasonality be extracted from sales data?<\/h3>\n<p>First, the series should be standardized and calendar effects adjusted for (the number of working days and moving holidays), followed by decomposition &#8211; classical, STL, or X-13ARIMA-SEATS. The outcome is a seasonal component or seasonal indices showing how much a given month or week deviates from the average level. A profile is considered reliable only when it recurs in subsequent years and can be explained by category dynamics.<\/p>\n<h3>What is seasonal adjustment of data?<\/h3>\n<p>It is the removal of the seasonal component from a series, leaving the trend, cycle, and irregular component. This makes consecutive periods directly comparable, even if they relate to different points in the calendar. Seasonally adjusted values are revised as new observations become available, so the latest points in the series should be treated as preliminary.<\/p>\n<h3>How much historical data is needed for seasonality analysis?<\/h3>\n<p>The practical minimum is three complete seasonal cycles, meaning three years for annual seasonality; with two years, only preliminary hypotheses about the pattern can be formulated cautiously. Four to five years allow for a better assessment of profile stability and the detection of drift. For daily data with weekly seasonality, the requirements are lower because many more cycles occur over the same period.<\/p>\n<h2>Ask about seasonality analysis and forecasting for your category<\/h2>\n<p>If the data show movement whose origin cannot be clearly attributed, Hume&#8217;s Institute will conduct a time series decomposition and prepare a seasonal profile together with a short-term forecast. <a href=\"https:\/\/humes.pl\/en\/contact\/\">Contact us<\/a> to discuss the data scope and analysis horizon.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sales fell by more than a dozen percent quarter on quarter, and management wants to know what happened. Before arriving at an answer, it is worth checking one thing: whether the same decline did not occur a year earlier and two years earlier at the same point in the calendar. Sales seasonality analysis serves precisely [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":3649,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[912],"tags":[],"slowa_kluczowe":[],"class_list":["post-3641","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-badania-i-analizy"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"wpml_media_processed":null,"_wpml_media_usage_in_posts":null,"_wp_attachment_context":null,"_oembed_35c905c64c03156f243b94f18c4eb80f":null,"_wp_attachment_image_alt":null,"rank_math_description":"Learn how to seasonally adjust data to separate trend from calendar effects, moving holidays and one-off events in a sales time series.","rank_math_focus_keyword":"seasonally adjust data","rank_math_contentai_score":null,"_wpml_post_translation_editor_native":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_wp_page_template":null,"rank_math_og_content_image":null,"_wp_trash_meta_status":null,"_wp_trash_meta_time":null,"_wp_desired_post_slug":null,"rank_math_primary_category":910,"_acf_changed":null,"wp_pattern_sync_status":null,"_form":null,"_mail":null,"_mail_2":null,"_messages":null,"_additional_settings":null,"_locale":null,"_hash":null,"_config_validation":null,"_wp_old_slug":null,"rank_math_internal_links_processed":"1","_top_nav_excluded":null,"_cms_nav_minihome":null,"_thumbnail_id":"3649","_last_translation_edit_mode":null,"_wpml_word_count":"1961","_dp_original":null,"_edit_last":null,"_edit_lock":null,"rank_math_seo_score":null,"_wpml_location_migration_done":null,"_wpml_media_duplicate":null,"_wpml_media_featured":null,"_wp_old_date":"2026-08-25","copied_media_ids":[],"referenced_media_ids":[],"rank_math_title":"How to seasonally adjust data in sales | Hume's Institute","job_department":null,"_job_department":null,"job_location":null,"_job_location":null,"job_offer_external_link":null,"_job_offer_external_link":null,"footnotes":null,"inline_featured_image":null,"blog_podtytul":null,"_blog_podtytul":null,"blog_czas_czytania":null,"_blog_czas_czytania":null,"blog_dalsza_lektura":null,"_blog_dalsza_lektura":null,"slownik_krotka_definicja":null,"_slownik_krotka_definicja":null,"slownik_cytat":null,"_slownik_cytat":null,"slownik_na_stronie_glownej":"1","_slownik_na_stronie_glownej":null,"slownik_slowa_kluczowe":null,"_slownik_slowa_kluczowe":null,"slownik_w_praktyce":null,"_slownik_w_praktyce":null,"slownik_powiazane":null,"_slownik_powiazane":null,"slownik_kluczowe_punkty":null,"_slownik_kluczowe_punkty":null,"lang":"en","translations":{"en":3641},"pll_sync_post":{},"_links":{"self":[{"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/posts\/3641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/comments?post=3641"}],"version-history":[{"count":1,"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/posts\/3641\/revisions"}],"predecessor-version":[{"id":3642,"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/posts\/3641\/revisions\/3642"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/media\/3649"}],"wp:attachment":[{"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/media?parent=3641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/categories?post=3641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/tags?post=3641"},{"taxonomy":"slowa_kluczowe","embeddable":true,"href":"https:\/\/humes.pl\/en\/wp-json\/wp\/v2\/slowa_kluczowe?post=3641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}