Skip to content

Docs: Add guide for modeling secular/long-term trends in MMM #2523

@daimon-pymclabs

Description

@daimon-pymclabs

Issue generated by @drbenvincent from an EAP advisory call discussion.

Problem

The current MMM documentation and examples don't cover how to model secular (long-term) trends. Production teams frequently need to account for trends like market growth, product lifecycle decline, or gradual shifts that unfold on timescales longer than seasonal cycles. There is no guidance on approaches, trade-offs, or forecasting implications.

Suggested approach

This could be addressed by either a new example notebook or by extending an existing one (e.g., the MMM example) to include a long-term trend in the data simulation step and then demonstrate fitting it. Content should cover:

Approaches to compare

  1. Low-frequency Fourier terms — Same machinery as seasonal Fourier components but with periods >1 year. Easy to implement, familiar to existing users, but can produce unrealistic forecasts (eventual reversal).
  2. Gaussian processes — Using kernels like Matérn that allow mostly smooth variation but can capture sharper transitions. More flexible but higher computational cost.
  3. Parametric functions — Linear, exponential, logistic/sigmoid trends. Most parsimonious and interpretable; good for known dynamics (e.g., entering a new market → sigmoid growth, legacy product → decline). Requires domain knowledge to choose the right form.

Key trade-offs to document

  • Interpretability: Stakeholders ask "what's driving the trend?" — parametric functions are easiest to explain ("product lifecycle"), Fourier/GP trends are harder to attribute
  • Forecasting behavior: Fourier trends will reverse direction outside training data; polynomial trends can explode; GPs revert to the mean. This is critical for teams generating forward-looking projections
  • Scalability: For teams running many models (multiple geos/KPIs), non-parametric approaches (Fourier, GP) require less manual specification per model
  • Identifiability: Trend and seasonality components must operate on clearly separated timescales to avoid an over-specified model

Practical notes

  • Linear trends are almost always worth including as a baseline regardless of other choices
  • Warn against high-order polynomial trends (forecasting instability)
  • Show how to inspect the fitted trend component in decomposition plots

Context

This came up in discussion with a production team managing MMMs across multiple geographies and KPIs, some in growth markets and others in mature/declining ones. The team was looking for guidance on best practices and was not aware of the Fourier-for-trends approach.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions