Model-implied incrementality

PanelMMM.compute_incrementality(...) evaluates a fitted historical spend intervention from paired retained posterior draws. It returns factual media contribution minus counterfactual media contribution in the target units supplied to AMMM3.

result = mmm.compute_incrementality(
    spend_factor=0.0,
    start_date="2025-01-06",
    end_date="2025-03-31",
    channels=["tv", "search"],
    carry_out="complete",
)

unilateral_increment contains a separate intervention for each requested channel. joint_increment always applies the intervention to all fitted media channels. unilateral_window_total and joint_window_total sum their own per-date paired draws. The joint result is independently evaluated; it is not constructed by summing unilateral totals.

The date coordinate is the outcome date. intervened_date is true only for an outcome date inside the inclusive spend window. With carry_out="complete", later returned dates represent finite adstock carry-out and have intervened_date=False.

The first release accepts historical contiguous fitted-date windows, finite non-negative scalar factors, and the released time-series, fixed-effects (FE) and correlated-random-effects (CRE) estimators. It supports NoAdstock, GeometricAdstock, and DelayedAdstock in trailing mode, with NoSaturation or LogisticSaturation. It rejects time-varying parameters, additive effects, unsupported transforms, named RE, future dates and incomplete carry-out tails.

The result is conditional on the fitted model and preserves its fitted-history boundary, retained sample labels and FE/CRE unit conditioning. It neither refits the model nor samples outcome noise. It does not establish causal identification: that requires a credible intervention, adjustment or design assumptions, valid measurement and suitable identifying variation.

The result metadata records additive_channel_response: True. Each channel’s contribution depends only on its own spend, so a joint intervention equals the sum of the corresponding unilateral interventions. This is a property of the additive specification, not evidence that channels have no effect on one another. For cross-channel questions, see Halo effects between revenue channels.