Skip to content
Development documentation. The PyPI package predates these APIs. Install from GitHub instead: pip install 'increment @ git+https://github.com/kylejcaron/increment.git' Keep any extras requested by the guide, such as increment[dashboard].

Analysis and reporting

Analysis.allocation_history() returns a PyArrow table with experiment_id, ds, group_id, n_daily, and n_cumulative, ordered by date and arm. It counts first-assignment enrollments independently of metric maturity, respecting the experiment’s day boundary and mixed-assignment policy. This unit-level history requires a native definitions-backed analysis; non-native and clustered sources raise a coded CapabilityError.

Metric

No docstring.

Method

An estimation configuration: named method with optional adjustments.

name is a free-form label stamped onto every LiftEstimate this Method produces, except it must not contradict its own configuration: name="cuped" without variance_reduction="cuped", or an unregistered variance_reduction, are both refused at construction. The reserved observational names ("iptw"/"dml"/"aipw") are valid here - estimate_ate dispatches on them - but refused per-call by _validate_methods on the randomized path.

propensity_learner/outcome_learner/folds are the pluggable-nuisance seam for estimate_ate’s adjustments (ignored by the randomized estimate_lift):

  • "dml"/"aipw": both factories pass straight through, each cross-fitting a propensity model plus the method’s own outcome model(s).
  • "iptw": fits one propensity model with no cross-fitting; outcome_learner/folds are refused since IPTW has neither.
  • AdjustmentSet(missing="allow") requires explicitly supplied NaN-native learner(s) here, since the package defaults silently emit non-finite predictions under NaN input.
Normal

Normal distribution: scalar parameters (no array support needed; estimates are scalar per metric x method x arm).