Skip to main content
Glama
getsimba-ai

Simba MCP Server

Official
by getsimba-ai

Design Incrementality Test

design_incrementality_test
Idempotent

Queue 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

TableJSON Schema
NameRequiredDescriptionDefault
geoNo
channelYes
inferenceNo
model_hashYes
design_typeYes
interventionYesWhat 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_keyYesCaller-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

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.17.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already covering idempotency and safety, the description still adds substantial behavior: 202 vs 200 response semantics, submission_key replay rules, the 409 submission_key_conflict, refusal codes (404, 422, 503 queue_unavailable with nothing left behind), and the permission model (create:models to submit, read:results to poll). It also enumerates result states (available/unsupported/insufficient_evidence/no_feasible_design) and clarifies none are errors. No annotation is contradicted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The return shape and the queue/poll model are front-loaded, and almost every sentence carries operational content. It is dense and long, with error and permission details packed into trailing run-ons, so it is information-rich but not maximally scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a 7-parameter nested schema with low coverage, an output schema, and mutation-adjacent semantics, the description covers return body, status lifecycle, result states, defaults, error codes, and auth requirements. An agent has everything needed to submit, poll, and handle failures.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%, so the description must carry the load, and it does: channel must be a nonlinear media channel (400 unknown_channel), design_type semantics for time_holdout vs geo_split, the full intervention contract (start_date window, 1-8 durations, spend_change modes, baseline requirement), and inference defaults that are echoed. This adds meaning well beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: ask a saved, complete MMM what an incrementality test on one of its media channels could detect, and immediately frames it as a bounded queued calculation. It is clearly distinguished from siblings like get_incrementality_test_design (polling) and save_incrementality_test_design (persisting), so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the follow-up tool (get_incrementality_test_design) and the persistence path (save_incrementality_test_design), plus the explicit constraint that nothing is saved or launched and no budget changes. Usage context is strong but it never explicitly contrasts this with the sibling create_incrementality_test, leaving the design-vs-launch boundary inferential.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools