Build a Seasonality Adjusted Forecast
This guide shows you how to build a seasonality adjusted forecast in Model Reef by using scheduling, drivers and timing rules to represent recurring seasonal patterns in revenue and costs.
Before you start
You should have:
A baseline model with non seasonal drivers.
Historical data that shows a clear seasonal pattern, if available.
An understanding of how drivers and schedules work.
If needed, review:
Drivers and Variables Overview
Build a Unit Economics Model
What you will build
Seasonality drivers that represent monthly or quarterly patterns.
Revenue and cost variables that apply these patterns to baseline assumptions.
A forecast that shows peaks and troughs aligned with the real business cycle.
A structure that can be re used across years and scenarios.
Identify seasonal patterns
Examine historical or market data to identify:
Which metrics are seasonal:
Revenue.
COGS.
Marketing spend.
Staff or overtime costs.
The pattern shape, for example:
Strong Q4 sales.
Slower summer months.
Seasonal spikes in certain product lines.
Quantify this as a set of multipliers if possible, such as percentage of annual volume by month.
Create seasonality drivers
In the Data Library, create Modifier drivers for seasonality, for example:
Seasonality - Revenue.Seasonality - COGS.Seasonality - Marketing.
For each driver:
Set values per period such that the average is one point zero (or that the sum for a year matches a chosen total).
For example, if December is twice as busy as June, the December multiplier may be around two while June is below one.
These drivers represent relative intensity by period rather than absolute levels.
Apply seasonality to baseline drivers
Identify baseline drivers for:
Units.
Revenue per unit.
Spend per period.
For each affected variable:
Modify the formula to multiply the baseline driver by the relevant seasonality driver, for example:
Seasonal Revenue = Baseline revenue driver × Seasonality - Revenue driverEnsure that the seasonality driver uses the same periodicity as the model.
Now the model applies higher or lower values in specific periods while preserving the overall level over a full cycle.
Use scheduling for irregular events
For large, irregular seasonal events that are not simply pattern based, such as:
Annual conferences.
Major product launches.
One off campaigns.
You can use scheduled variables:
Create Revenue or Opex variables with schedules that fire in specific periods.
Combine these with the seasonality adjusted baseline variables if needed.
This lets you blend regular seasonality with occasional spikes.
Review seasonality effects in outputs
Open:
P&L to see seasonal revenue and cost patterns.
Cash Waterfall to see cashflow impact of seasonality and working capital.
Charts that display metrics across months or quarters.
You should see:
Peaks in high season periods.
Troughs in low season periods.
Working capital swings where seasonal volume interacts with payment terms.
Adjust seasonality drivers if the size or shape of the pattern looks unrealistic.
Re use seasonality drivers across scenarios
Because seasonality is often structural rather than scenario specific, you can:
Keep similar patterns in multiple models.
Only adjust seasonality drivers when business structure changes materially.
When you duplicate models for scenarios, the seasonality patterns come along with them, simplifying scenario creation.
Check your work
Seasonality drivers average out to a sensible pattern over a year.
Revenue and cost variables show seasonal patterns consistent with history or strategy.
Working capital and cashflows show plausible seasonal strain or release.
Seasonal adjustments are clearly documented and easy to find in the model.
Troubleshooting
Related guides
Last updated