How to Run Causal Inference
This guide explains how to measure lift (the actual causal effect) post-experiment using SparseSC.
Running Inference via CLI
Packaged-install example:
Source-checkout example with the shipped demo config:
Key Flags
--data: (Optional) Override the CSV path specified in the YAML.--create-plots/--no-create-plots: Toggle generation of visualization artifacts.
Built wheel and sdist installs do not include data-config/, so packaged users
should provide their own YAML path.
Expected Outputs
geolift_results.json: Top-level statistical results including status, ATT, p-value, and confidence interval metadata.geolift_diagnostics.json: Schema-shaped diagnostic metrics for the synthetic control fit. Raw synthetic-control frames and raw weight matrices are not persisted.data_validation.json: Input contract report covering duplicate rows, raw outcome value checks, input/model panel missingness, finite-value checks, and any explicit handling policy.assumption_validation.json: Parallel-trends and spillover check report, or a skipped-status artifact when checks are disabled.uplift_timeseries.png: Visual comparison of the treatment unit vs. the synthetic control over time.
Check status before interpreting lift. A partial result means the estimator
returned some core quantities but uncertainty fields are incomplete. A failed
result causes the CLI to exit non-zero.
Also check assumption_status: skipped means interpretability checks were not
run; fail or error means the causal interpretation needs review even if the
effect estimate exists.
Example Plot
The source-checkout demo workflow ships an uplift time-series plot that works well as documentation context:
