Seasonality & Schedules

This article explains how seasonality and schedules work in the timing engine.

You will learn:

  • The difference between seasonality patterns and schedules.

  • How to model recurring events such as payroll, rent and subscriptions.

  • How to capture seasonal peaks and troughs in revenue and costs.

Seasonality and schedules let you move beyond flat monthly assumptions to more realistic timing patterns.

1

Schedules: when something happens

A schedule tells the timing engine exactly when a variable accrues within the model timeline.

Examples of schedules:

  • Every month.

  • Every quarter.

  • Specific days such as the 15th of every month.

  • Every second month.

  • Every X weeks in weekly models.

Schedules are conceptually similar to calendar recurrence rules. They are used for variables such as:

  • Payroll runs.

  • Rent and lease payments.

  • Regular subscription billings.

  • Repeating supplier invoices.

The schedule determines which periods contain accruals. Amounts can still be flat or driven by formulas.

2

Seasonality: how values change across the year

Seasonality describes relative strength or weakness across periods within a cycle, for example within a year.

Examples:

  • Retail sales stronger in November and December.

  • Hospitality revenue higher in summer and lower in winter.

  • Utility usage varying by season.

Seasonality is usually represented as an index driver such as:

  • Seasonality - Retail - Monthly Index.

  • Values might be centred around 1.0, with higher values in peak months and lower values in troughs.

Seasonality does not create events. It scales the magnitude of events that already exist via schedules and frequency.

3

Using both schedules and seasonality together

You can combine schedules and seasonality by:

  • Defining when the variable accrues using a schedule.

  • Applying a seasonality index via a formula or modifier driver.

For example:

Example formula
Revenue = BaseTrend * SeasonalityIndex

Where:

  • BaseTrend gives the overall level of revenue per period.

  • SeasonalityIndex boosts peak months and suppresses quiet months.

The timing engine uses the schedule to place accruals on the timeline and the seasonality driver to adjust their size.

4

Modelling irregular events

For irregular events that do not fit simple schedules, you can:

  • Enter values directly for the periods they occur.

  • Use a one off schedule with explicit dates.

  • Combine a base schedule with manual overrides if only a few periods differ.

The goal is to keep the timing logic as simple as possible while still matching the real pattern.

5

Seasonality and scenarios

Seasonality is often scenario dependent, for example:

  • Base Case: normal seasonal pattern.

  • Downside: lower overall level but same shape.

  • Upside: stronger peaks or faster recovery from weak periods.

You can implement this by:

  • Keeping the same seasonality index shape in each scenario.

  • Scaling the base trend or seasonality index differently per scenario.

  • Or, if required, adjusting the index shape itself in extreme scenarios.

Because each scenario is a separate model, each can have its own seasonality driver paths.


Last updated