Design Incrementality Test
design_incrementality_testQueue a calculation that asks a saved marketing mix model what an incrementality test on a media channel could detect, then poll until complete.
Instructions
Ask a saved, complete MMM what an incrementality test on one of its media channels could detect: queues a bounded calculation that replays the saved posterior and returns {calculation_id, model_hash, status: "queued", submitted_at} at once (202; 200 with the same body when submission_key repeats identical inputs). Poll get_incrementality_test_design until status is complete, failed or cancelled. A complete calculation carries a result whose own state is available, unsupported (e.g. a log-link model), insufficient_evidence or no_feasible_design; none of these is an error, and only available carries numbers (candidates are also returned for no_feasible_design so you can see why nothing met the target). channel is one of the model's nonlinear media channels (400 unknown_channel otherwise). design_type time_holdout pauses or changes the channel's spend for a window and contrasts the outcome with the model's forecast; geo_split needs geo and splits a market panel into treatment and control. intervention gives the start date, candidate durations, spend change and baseline; inference the alpha, target power and an optional named effect; the backend fills and echoes every default. Reuse the same submission_key after a lost response; a new key queues another calculation and the same key with different inputs is refused (409 submission_key_conflict). Refusals: 404 model not found or not readable, 422 model_not_complete, 503 queue_unavailable (nothing is left behind). Nothing is saved or launched and no budget changes; save an available result with save_incrementality_test_design. Requires create:models to submit; polling needs read:results as well, so a key with only create:models can submit but not read.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | ||
| channel | Yes | ||
| inference | No | ||
| model_hash | Yes | ||
| design_type | Yes | ||
| intervention | Yes | What changes in the channel's spend and when. start_date (YYYY-MM-DD) is on or after the model's last training period plus one, at most 13 weekly, 91 daily or 3 monthly periods ahead. durations lists 1-8 distinct candidate lengths in the model's cadence (1-52 periods); the backend evaluates each and selects one. spend_change is {mode: pause} (spend to zero), {mode: percent, pct} (pct in [-100, 500], not 0) or {mode: schedule, baseline: [...], intervention: [...]} (equal-length currency arrays covering the longest duration). baseline is {mode: recent_average, periods} (mean spend over the last 4-52 training periods) or {mode: schedule}; required for pause and percent. | |
| submission_key | Yes | Caller-generated 8-128 character identity for one intentional attempt. Reuse identical key and inputs after a lost response; a new key may consume another attempt. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||