Skip to main content
Glama

Analyze lift

analyze_lift
Read-only

Estimates absolute and relative lift with confidence intervals from offer IDs or control/treatment arrays, supporting bootstrap intervals and optional CUPED adjustment.

Instructions

Estimate absolute and relative lift with a confidence interval.

    Pass offer_id to read the bundled synthetic exposures, or pass control
    and treatment arrays. Bootstrap intervals report progress and stop
    between batches if the client cancels. CUPED uses a pre-period
    covariate when one is available. Reported arm means stay on the
    original scale; the lift uses adjusted outcomes when CUPED is on.
    

Input Schema

NameRequiredDescriptionDefault
seedNo
alphaNo
controlNoControl outcomes.
outcomeNoredeemed or post_spend for an offer. Any label for raw arrays.redeemed
offer_idNoOffer id in the bundled dataset.
ci_methodNonormal
treatmentNoTreatment outcomes.
use_cupedNoAdjust both arms with a pooled CUPED theta.
control_armNocontrol
treatment_armNotreatment
control_covariateNoControl CUPED covariate.
treatment_covariateNoTreatment CUPED covariate.
bootstrap_iterationsNo

Output Schema

NameRequiredDescriptionDefault
alphaYes
controlYes
outcomeYes
cancelledNo
ci_methodYes
treatmentYes
use_cupedYes
cuped_thetaNo
absolute_liftYes
relative_liftNo
absolute_ci_lowYes
relative_ci_lowNo
absolute_ci_highYes
relative_ci_highNo
bootstrap_iterationsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered and the description adds genuine behavioral detail beyond them: bootstrap reports progress and halts between batches on client cancellation, and with CUPED the arm means stay on the original scale while lift uses adjusted outcomes. That scale-semantics note is non-obvious and prevents misreading results. It does not mention error behavior when neither offer_id nor arrays are supplied.

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?

Front-loaded with the purpose, then input modes, then behavioral caveats — a sensible order with no filler sentences. It is dense but every sentence carries information; a short lead-in labeling the CUPED sentences would improve scannability slightly.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the primary call pattern is covered. However, for a 13-parameter statistical tool with only 54% schema coverage, the description leaves the no-argument default path and the arm-label parameters unexplained, which an agent would need to select correctly.

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

Parameters3/5

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

Schema description coverage is 54% across 13 parameters, and the description compensates for some: offer_id vs control/treatment arrays, the CUPED covariate, and bootstrap ci_method. It says nothing about seed, bootstrap_iterations, alpha, outcome labels, or the control_arm/treatment_arm selectors, leaving several parameters meaningful only via their schema titles.

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

Purpose4/5

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

The opening sentence names a specific verb and output ('Estimate absolute and relative lift with a confidence interval'), which is unambiguous against siblings like power_calc or check_srm. It does not explicitly contrast itself with those siblings, so an agent must infer the boundary rather than being routed.

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?

The description clearly states the two invocation modes: 'Pass offer_id to read the bundled synthetic exposures, or pass control and treatment arrays.' That is a real either/or routing instruction. It stops short of saying when to prefer this tool over power_calc or draft_readout, and gives no exclusion conditions.

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