Skip to main content

Causal Inference Library for Lift Measurement

Project description

RealLift

RealLift Logo

Causal Inference Framework for Geo Experiments & Marketing Science

RealLift is an advanced Python library engineered to measure the true incremental impact (Lift) of marketing interventions through rigorous Causal Inference, Synthetic Control methodologies, and Robust Significance Testing.


Framework Pillars

RealLift is built upon three layers of defense against noise and volatility:

  1. Auditable Planning (Design of Experiments): Algorithmically identifies the optimal geographic clusters and projects statistical power (MDE) prior to any campaign investment.
  2. Causal Inference (Synthetic Control): Formulates robust counterfactuals via Convex Optimization with Intercept, ensuring behavioral alignment even across differing baseline levels.
  3. Confidence Validation (Placebo & Significance): Defends analytical conclusions through permutation tests based on the MSPE Ratio and non-parametric Bootstrap confidence intervals.

Installation

pip install reallift

Quick Start Guide

This end-to-end example demonstrates how to simulate geographic data, plan the optimal experiment design, inject a simulated marketing effect, and precisely measure the impact.

1. Generate Historical Data

Simulate daily performance for 27 candidate geos over a 90-day baseline.

from reallift import generate_geo_data

geo_data = generate_geo_data(
    start_date="2025-01-01",
    end_date="2025-03-31",
    n_geos=27,
    pre_only=True,
    trend_slope=0.01,
    seasonality_amplitude=3,
    seasonality_period=7,
    noise_std=[1, 1.5],
    base_value=[50, 100],
    random_seed=42,
    save_csv=True,
    pre_file_name="demo_geodata_pre_test.csv"
)

2. Design the Experiment (Pre-Test Phase)

Use the DoE pipeline to rigorously select the best treatment and control geometries based on historical correlations.

from reallift import design_of_experiments

doe = design_of_experiments(
    filepath="demo_geodata_pre_test.csv",
    date_col="date",
    start_date="2025-01-01",
    end_date="2025-03-31",
    pct_treatment=None,
    fixed_treatment=None,
    experiment_days=[21, 28, 30, 35, 60]
)

3. Inject Simulated Marketing Campaign

Simulate a 21-day campaign with an artificial lift applied strictly to the optimal treatment geos assigned in the DoE.

from reallift import generate_simulated_intervention

geo_data_intervention = generate_simulated_intervention(
    filepath="demo_geodata_pre_test.csv",
    days=21,
    treatment_geos=doe['scenarios'][1]['treatment_pool'],
    lift=[0.05, 0.10],
    trend_slope=0.01,
    seasonality_amplitude=3,
    seasonality_period=7,
    noise_std=[1, 1.5],
    random_seed=42,
    save_csv=True,
    as_integer=True,
    file_name="demo_geodata_post_test.csv"
)

4. Evaluate Incremental Impact (Post-Test Phase)

Measure the precise financial and percentual lift utilizing the Causal Inference engine against the final dataset.

from reallift import run_geo_experiment

results = run_geo_experiment(
    filepath="demo_geodata_post_test.csv",
    date_col="date",
    treatment_start_date="2025-04-01",
    treatment_end_date="2025-04-22",
    doe=doe, 
    scenario=1,
    plot=False
)

Technical Differentiators

  • SER Engine (Synthetic Error Ratio): Proactive volatility filtering during the design phase to eliminate "Zombie Controls."
  • Convex Intercept: Intelligent baseline shift absorption that preserves the interpretability of synthetic weights ($\sum w = 1$).
  • MSPE Ratio Strategy: A placebo methodology resilient to the natural variance of high-frequency volatile markets.
  • Operational Freedom: Aggressive donor curatorship via ElasticNet that often frees up to 50% of geographic regions for other commercial operations.

Systems & Dependencies

  • Mathematics: cvxpy, scipy, numpy
  • Data Engineering: pandas, scikit-learn
  • Visualization: matplotlib

Developed by Roberto Junior.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reallift-0.3.1.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reallift-0.3.1-py3-none-any.whl (44.3 kB view details)

Uploaded Python 3

File details

Details for the file reallift-0.3.1.tar.gz.

File metadata

  • Download URL: reallift-0.3.1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for reallift-0.3.1.tar.gz
Algorithm Hash digest
SHA256 df8ed47749a3d6445133635b805d9842a8cd2956cfb7cb79eb3bcdc4d3fa1be4
MD5 2ee8233c574060253bfaf5fc735d9091
BLAKE2b-256 e84d68876c0bf31c12acfa2cbe6b66c8fa7ab821b3170c6dbfb03b1e1de9a504

See more details on using hashes here.

Provenance

The following attestation bundles were made for reallift-0.3.1.tar.gz:

Publisher: publish.yml on RobertoJuniorWXYZ/RealLift

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file reallift-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: reallift-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 44.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for reallift-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b158d0797ccfa108b881fd8cfaac4c92ab8321eeb7543b4cc2e0355edfd7494e
MD5 c1f43e9170a58ea1b8704b3ef7bada34
BLAKE2b-256 5f70c80b0ea1a6fcfd6d517bfb1857ce9b077253f7a307a70f7ab63969d102d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for reallift-0.3.1-py3-none-any.whl:

Publisher: publish.yml on RobertoJuniorWXYZ/RealLift

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page