Skip to main content

CausalImpact for Python with Rust Gibbs sampler (R-compatible)

Project description

bsts-causalimpact

PyPI version Python License: MIT R Numerical Equivalence

Bayesian structural time series for causal inference in Python. A faithful port of Google's CausalImpact R package. No TensorFlow required.

The Gibbs sampler is implemented in Rust (via PyO3), reproducing the same algorithm as R's bsts package while achieving 10-30x speedup.

When to Use (and When Not to)

This method is valid only when all of the following hold:

  • Control series are not contaminated by the intervention
  • The relationship between treated and control series is stable across the pre- and post-intervention periods
  • The pre-intervention period is sufficiently long (rule of thumb: at least 3x the post-intervention period)

If any of these assumptions are violated, the causal estimate will be unreliable. Consider a difference-in-differences or synthetic control approach instead.

Installation

Requires Python 3.10+. Binary wheels are intended for supported platforms, so Rust is only required when building from source.

pip install bsts-causalimpact

For development (builds Rust extension locally):

git clone https://github.com/YuminosukeSato/bsts-causalimpact.git
cd bsts-causalimpact

# Install with uv (recommended)
uv sync --all-extras

# Or install with pip (builds Rust extension via maturin)
pip install -e ".[dev]"

Quick Start

import pandas as pd
from causal_impact import CausalImpact

# Prepare your data: first column = response, remaining columns = covariates
data = pd.read_csv("your_data.csv", index_col="date", parse_dates=True)

# Define pre- and post-intervention periods
pre_period = ["2020-01-01", "2020-03-14"]
post_period = ["2020-03-15", "2020-04-14"]

# Run the analysis
ci = CausalImpact(data, pre_period, post_period)

# Print a summary table
print(ci.summary())

# Print a narrative report
print(ci.report())

# Plot the results
fig = ci.plot()
fig.savefig("causal_impact.png")

Example Output

CausalImpact plot example

Posterior inference {CausalImpact}

                         Average        Cumulative
Actual                   136.32          3953.19
Prediction (s.d.)        125.42 (0.66)   3637.07 (19.08)
95% CI                   [124.18, 126.71]  [3601.33, 3674.59]

Absolute effect (s.d.)   10.90 (0.66)    316.13 (19.08)
95% CI                   [9.61, 12.13]   [278.60, 351.86]

Relative effect (s.d.)   8.69% (0.57%) 8.69% (0.57%)
95% CI                   [7.58%, 9.77%] [7.58%, 9.77%]

Posterior tail-area probability p: 0.001
Posterior prob. of a causal effect: 99.90%

Comparison with Alternatives

R CausalImpact bsts-causalimpact (this) tfp-causalimpact tfcausalimpact pycausalimpact
Maintainer Google OSS Google WillianFuks dafiti (stale)
Algorithm Gibbs (bsts/C++) Gibbs (Rust) TFP-based VI default / HMC MLE (statsmodels)
Dependencies R, bsts numpy, pandas, matplotlib TF, TFP (3 GB+) TF, TFP (3 GB+) statsmodels
Spike-and-slab Yes Yes Unknown No No
Seasonal component Yes Yes (nseasons, season_duration) Unknown Yes (TFP STS) No
Dynamic regression Yes Yes (dynamic_regression=True) Unknown No No
R numerical test Reference ±1% CI-enforced + TOST/ROPE Not published Visual comparison (~8% diff) Not tested
Speed (T=1000) 2.1 s 0.07 s (30x) Seconds Minutes (HMC: hours) Sub-second
Python version N/A (R) 3.10+ 3.8+ 3.7-3.11 3.6-3.8 (stale)
Last release Active Active 2023 2025-01 2020-05

Why this library exists

Existing Python ports have fundamental limitations:

  • pycausalimpact uses MLE (not MCMC), producing results that diverge substantially from R
  • tfcausalimpact uses variational inference by default (not Gibbs sampling), and requires TensorFlow (3 GB+)
  • tfp-causalimpact (Google's own Python port) does not publish numerical equivalence tests with R
  • None of the above implement spike-and-slab variable selection matching R's bsts

This library reproduces the core Gibbs-sampler workflow from R's bsts package in Rust, with CI-enforced numerical equivalence tests on every commit.

Numerical Equivalence with R

R Numerical Equivalence

Verified against R CausalImpact 1.4.1 (bsts 0.9.10, R 4.5) across 5 scenarios. Enforced on every commit via CI.

Test Matrix

Scenario point_effect cum_effect ci_lower ci_upper rel_effect p_value
basic ±1% ±1% ±1% ±1% ±1% alpha=0.05
covariates ±1% ±1% ±1% ±1% ±1% alpha=0.05
strong_effect ±1% ±1% ±1% ±1% ±1% alpha=0.05
no_effect abs<0.5 abs<0.5 abs<0.5 abs<0.5 abs<0.5 alpha=0.05
seasonal ±1% ±1% ±1% ±1% ±1% alpha=0.05

Three-Layer Equivalence Verification

No other Python CausalImpact implementation has statistical equivalence tests. This library provides three layers of verification, exceeding even Google's own Python port.

Layer Method What it proves Reference
1. Deterministic Seed-fixed ±1% threshold Same seed, same result, every commit Regression testing
2. FDA TOST 90% CI upper < delta (N=30 seeds) Mean error is statistically below delta Schuirmann (1987), FDA Guidance (2001)
3. Bayesian ROPE 95% HDI within [0, delta] (N=30 seeds) Posterior of error is practically equivalent Kruschke (2018) AMPPS

Layer 1 runs on every commit (CI-blocking). Layers 2-3 run with --runslow flag.

# Layer 1: deterministic (runs in CI)
uv run pytest tests/test_numerical_equivalence.py -v

# Layers 2+3: TOST + ROPE (30 seeds x 4 scenarios, ~80s)
uv run pytest tests/test_equivalence_tost_rope.py -v --runslow

CI Enforcement

Two-layer CI enforcement:

  1. Fixture-based (ci.yml): Compares Python output against committed R reference data. Blocking on every PR/push.
  2. Live R comparison (numerical-equivalence.yml): Installs R, regenerates fixtures from scratch, and compares. Blocking when R is available. Weekly auto-regeneration.

How to Reproduce

  1. Install R 4.5+ and packages: install.packages(c("CausalImpact", "jsonlite"))
  2. Generate R reference: Rscript scripts/generate_r_reference.R
  3. Run equivalence tests: .venv/bin/pytest tests/test_numerical_equivalence.py -v

Equivalence Verification: Comparison with Other Implementations

R CausalImpact bsts-causalimpact (this) tfp-causalimpact (Google) tfcausalimpact pycausalimpact (dafiti)
R reference fixtures N/A (is reference) 5 scenarios, CI-enforced None None None
Deterministic R test N/A ±1% all metrics (seed=42) None README demo only (~8% diff) None
FDA TOST (Schuirmann 1987) N/A 30-seed, delta=1-2% None None None
Bayesian ROPE (Kruschke 2018) N/A 30-seed, 95% HDI in ROPE None None None
Self-consistency tolerance tolerance=0.01 N/A rtol=0.2 (20%) assert_almost_equal assert_array_equal
CI-blocking R check N/A Every commit + weekly live R None None None

Evidence per implementation (all verified from source code, not documentation claims):

  • tfp-causalimpact (Google official Python port): 47 tests across 7 files. No R reference fixtures. Self-consistency checks use rtol=0.2 (±20%) and atol=0.01. No R output comparison exists in the test suite. README states "designed to produce results close to the R package" but this is not verified by any automated test. (source)
  • tfcausalimpact (WillianFuks): 64 tests across 7 files. tests/fixtures/comparison_data.csv exists but is only used in README demo, not in automated tests. The README demo itself shows ~8% difference in AbsEffect (R: -657 vs Python: -708.51). (source)
  • pycausalimpact (dafiti): 62 tests across 5 files. Uses MLE (not MCMC), fundamentally different algorithm. No R comparison of any kind. Repository archived. (source)
  • causalimpact (jamalsenouci): 54 tests across 4 files. No R comparison. Open issue #7 reports "significantly different results from R". (source)

What is matching R and what is not

R feature Status Detail
Local level model (Gibbs sampler) Matching Same algorithm as bsts: Kalman filter + simulation smoother
SdPrior(sample.size=32) for sigma2_level Matching InvGamma(16, 16 * sigma_guess^2)
Post-period Random Walk propagation Matching Forward simulation from last pre-period state
Data standardization (standardize.data=TRUE) Matching (y - mean) / sd using pre-period moments
prior.level.sd = 0.01 Matching Same default, same semantics
Spike-and-slab variable selection Matching Coordinate-wise sampling with StudentSpikeSlabPrior defaults (expected.r2=0.8, prior.df=50, prior.information.weight=0.01, diagonal.shrinkage=0.5)
expected.model.size Matching Unified default 2 in CausalImpact and ModelOptions
expected.r2 = 0.8, prior.df = 50 Matching Same documented residual variance prior defaults as BoomSpikeSlab / bsts
Seasonal component (nseasons, season_duration) Matching State-space model matching R bsts AddSeasonal() (±1% CI parity)
Dynamic regression Supported Time-varying coefficients via random-walk FFBS; dynamic_regression=True
Local linear trend Supported Opt in with state_model="local_linear_trend"
DATE decomposition Extended Decomposes effects into spot/persistent/trend (arXiv:2602.00836)
Retrospective mode Extended Treatment indicators as covariates; effects from beta posteriors (arXiv:2602.00836)
Placebo test Extended Null distribution from pre-period splits
Conformal inference Extended Distribution-free prediction intervals
DTW control selection Extended Automatic covariate selection via Dynamic Time Warping

Matching = CI-enforced numerical equivalence with R bsts (±1% or tighter). Supported = Feature implemented, no R parity fixture yet. Extended = Python-only feature with no R equivalent.

Beyond R: Python-Only Extensions

Features that go beyond R's CausalImpact. These have no R equivalent.

Feature Method What it does Reference
DATE decomposition ci.decompose() Decomposes causal effect into spot, persistent, and trend Schaffe-Odeleye et al. (2026), arXiv:2602.00836
Retrospective mode mode="retrospective" Treatment indicators as covariates; effects extracted from beta posteriors Schaffe-Odeleye et al. (2026), arXiv:2602.00836
Placebo test ci.run_placebo_test() Validates effect against null distribution from pre-period splits
Conformal inference ci.run_conformal_analysis() Distribution-free prediction intervals Vovk et al. (2005)
DTW control selection select_controls() Automatic covariate selection via Dynamic Time Warping Sakoe & Chiba (1978)

API

CausalImpact(data, pre_period, post_period, model_args=None, alpha=0.05)

Parameter Type Description
data DataFrame or ndarray First column is the response variable, remaining columns are covariates
pre_period list[str | int] [start, end] of the pre-intervention period
post_period list[str | int] [start, end] of the post-intervention period
model_args dict or ModelOptions MCMC parameters (see below)
alpha float Significance level for credible intervals (default: 0.05)

Model Arguments

Key Default Description
niter 1000 Total MCMC iterations
nwarmup 500 Burn-in iterations to discard
nchains 1 Number of MCMC chains
seed 0 Random seed for reproducibility
prior_level_sd 0.01 Prior standard deviation for the local level
standardize_data True Standardize data before fitting
expected_model_size 2 Expected number of active covariates (spike-and-slab prior)
nseasons None Optional seasonal cycle count (R-compatible API)
season_duration None Optional duration of each seasonal block; defaults to 1 when nseasons is set
dynamic_regression False Enable time-varying regression coefficients (random-walk beta)
state_model "local_level" "local_level" or "local_linear_trend"
mode "forward" "forward" (counterfactual prediction) or "retrospective" (treatment indicators as covariates)

Methods and Properties

Name Returns Description
summary(output="summary") str Tabular summary of causal effects
report() str Narrative interpretation of results
plot(metrics=None) Figure Matplotlib figure with original/pointwise/cumulative panels
inferences DataFrame Per-timestep actuals, predictions, prediction s.d., and effect intervals
summary_stats dict Aggregate statistics (effect mean, CI, p-value, etc.)
posterior_inclusion_probs ndarray | None Posterior inclusion probability per covariate
decompose(alpha=None) DateDecomposition DATE decomposition into spot/persistent/trend components
run_placebo_test(...) PlaceboTestResults Placebo test for effect validation
run_conformal_analysis(...) ConformalResults Distribution-free conformal prediction intervals

Benchmark Results

T k niter This (Rust) R (bsts) vs R
100 0 1000 0.008s 0.213s 26x
500 0 1000 0.033s 0.997s 30x
1000 0 1000 0.069s 2.108s 31x
1000 5 1000 0.197s 2.171s 11x
5000 0 1000 0.330s 10.264s 31x

Median of 3 runs. Reproduce: python benchmarks/benchmark.py

Architecture

python/causal_impact/
    __init__.py          # Public API: CausalImpact, ModelOptions, __version__
    data.py              # DataProcessor: validation, standardization, period parsing
    main.py              # CausalImpact facade class
    options.py           # ModelOptions: typed MCMC configuration
    analysis.py          # CausalAnalysis: effect computation, CI, p-values
    summary.py           # SummaryFormatter: tabular and narrative reports
    plot.py              # Plotter: matplotlib visualization
    decomposition.py     # DATE decomposition (spot/persistent/trend)
    retrospective.py     # Retrospective attribution mode

src/ (Rust)
    lib.rs               # PyO3 entry point: run_gibbs_sampler()
    sampler.rs           # Gibbs sampler (R bsts-compatible algorithm)
    kalman.rs            # Kalman filter and simulation smoother
    state_space.rs       # State space model representation
    distributions.rs     # Posterior sampling distributions

Development

git config core.hooksPath .githooks

Running Tests

# All tests
uv run pytest tests/ -v

# Numerical equivalence only
uv run pytest tests/test_numerical_equivalence.py -v

# Rust tests
cargo test

Contributing

See CONTRIBUTING.md for development setup, PR workflow, and test requirements.

License

MIT

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

bsts_causalimpact-1.6.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

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

bsts_causalimpact-1.6.0-cp313-cp313-win_amd64.whl (313.9 kB view details)

Uploaded CPython 3.13Windows x86-64

bsts_causalimpact-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (453.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

bsts_causalimpact-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (441.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

bsts_causalimpact-1.6.0-cp313-cp313-macosx_11_0_arm64.whl (405.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

bsts_causalimpact-1.6.0-cp313-cp313-macosx_10_12_x86_64.whl (412.7 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

bsts_causalimpact-1.6.0-cp312-cp312-win_amd64.whl (314.2 kB view details)

Uploaded CPython 3.12Windows x86-64

bsts_causalimpact-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (453.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

bsts_causalimpact-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (441.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

bsts_causalimpact-1.6.0-cp312-cp312-macosx_11_0_arm64.whl (406.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

bsts_causalimpact-1.6.0-cp312-cp312-macosx_10_12_x86_64.whl (412.9 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

bsts_causalimpact-1.6.0-cp311-cp311-win_amd64.whl (316.8 kB view details)

Uploaded CPython 3.11Windows x86-64

bsts_causalimpact-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (453.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

bsts_causalimpact-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (442.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

bsts_causalimpact-1.6.0-cp311-cp311-macosx_11_0_arm64.whl (406.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

bsts_causalimpact-1.6.0-cp311-cp311-macosx_10_12_x86_64.whl (413.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

bsts_causalimpact-1.6.0-cp310-cp310-win_amd64.whl (316.7 kB view details)

Uploaded CPython 3.10Windows x86-64

bsts_causalimpact-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (453.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

bsts_causalimpact-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (442.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

bsts_causalimpact-1.6.0-cp310-cp310-macosx_11_0_arm64.whl (406.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

bsts_causalimpact-1.6.0-cp310-cp310-macosx_10_12_x86_64.whl (413.4 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file bsts_causalimpact-1.6.0.tar.gz.

File metadata

  • Download URL: bsts_causalimpact-1.6.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bsts_causalimpact-1.6.0.tar.gz
Algorithm Hash digest
SHA256 c031a11c6e1b97c6e138b82e679fa66e705bdd030551c042013aec1bb4eae4dc
MD5 28cbb409b934038f48a004fd16185fe2
BLAKE2b-256 5e0ce53c59416b8893db1c0923eca4e489153e5123024dcf02c6a5361ca56b64

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0.tar.gz:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9b73dea92208d31880c23ffbd868f8972328242a7b9ed155c4d0b897e1e27d00
MD5 6b8fb98414ab266d91b1f99a23f6db8f
BLAKE2b-256 ba2f2074ad53e26325a7c37def20b236d44694e2cb4169b80060fadd67a63995

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 55134764de8822d4fba120c8ae00dcd9ff78a99d862615ed310c2c7f4e60769d
MD5 73728c133336d293ed3f7d1f0b9b8e75
BLAKE2b-256 e559705cbc486b1558bfd5360410f0d560047bc3d5a3519364ec43b9d6a056cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cb8ef92d2461493ac9ce70220b8ae96b6d5641a150dfe501289094906fcda498
MD5 e96c43dde1f7ccbd6a49c93c380c3030
BLAKE2b-256 119657a30759bd3320b93e3fed7b446648d6993af4539be3af86d23e113f1d0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1e57e739259130358f071a1dcd4e7a21251e7dbda78d4fe6b02a343a5deaea24
MD5 b2912f87886b6549a8d9afa5e11818ab
BLAKE2b-256 56abde76703e959f6ad5f38b62e63be089790e8703f79546f17b6f1e65225bfc

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8bfa412a865b90f24d76852f9883356b5edaae3e14b9cf979e05e481e690a6d5
MD5 2dcbb9fb7ae39cf8f80ded582de4db5a
BLAKE2b-256 b4ea3dc44c5bc3dbe1855f053fcf6b955157d188361c848bb9d10d899693b00d

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 af339f2b812d7d13c8b0435ed8122791a663f64161ce56cce08d120f28ec6973
MD5 4c4d8cefdb5bfee012a6887536a0c762
BLAKE2b-256 269d524e533d1f23ff892bfddf1d7131d7289960ab9b98089947da5c8457b960

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cd2f9e5bb14ef69d72a4668ec12b2441c44d419a01024a17322ccb8d7a67a7ed
MD5 7748a56c1c6350c3393d4ace4f7a0bab
BLAKE2b-256 cd0666203dc4b03c37e6b89e1ff95ea894d45360146b928b9114b763abb01951

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 138fbf7bea46a045086100f5d5f7b83624f2948b67f6c4f3b8d7304a36abfe72
MD5 ce94b1102cb8e4e9e50302664d65d086
BLAKE2b-256 a17c33bc49f2d7e22ab7554071910adb0dbf5002e0ce068129e035da13bc6ab9

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a9f2683e6c57ad79226f6952b104e80f7448308d0872c98e2a57077e55d42914
MD5 29a1d08a24876ee21272b2636388ca0d
BLAKE2b-256 48e15113b0de145ccc034932c2d13024c5ecd1157c68fc9851b12934482e9e12

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ed09fa516e07c66ecf302995a2c8fef23d09f328cb7b0eb1c1a2111ffdb8bb7e
MD5 a647fb6d2d6ed208729c702ff46d4d16
BLAKE2b-256 d478d0eb0a0e8bb1cbd16e9a4c070121b53f9d6d9f4f8ca33796c5f404433701

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 00bb6b7d3ab1e87a2c3fdebcd9ed73f36d85c4465d1011c40e5b63d3236f6c02
MD5 abfd6008007a6703ce444f0730620eb1
BLAKE2b-256 136cd692321d9aea5ca82fef9264b58e9002551c089ca320357f21bf1d1bacab

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81a22e292ed4938527aeee432a7de2ecb5ec2dc709d72792f20ecab3e404320d
MD5 5a83a28fdda7c99ea987b5890fe6f96b
BLAKE2b-256 a8ea4b2477521bcffc0c8895a621656c943b59c57c8bbf9a65e25c0f30e38d08

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8fbcd1d40535f45cbe72876897c987192d8db93360d99a230c11699f69fb622f
MD5 d2d8ebfdf8ed4312becc6e6d10814997
BLAKE2b-256 f929afcc775d54adb29d0ab252a189725a0e92b96115ab21d1995daf1f060988

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1330acc7d5e47712fd3ceef3c7b8658d9cd475b44275757c13d8dcc2250c515
MD5 b6dd32fbac5e331300d82d146dad8848
BLAKE2b-256 80351865f7e9e9dc7c4b59d8c266180856ab6e74bc8037a928fe2145daef274a

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6cf864d3621c4f5d039eaec113968795fe87e215d2744faf2638f56f3d2ed614
MD5 ed7d440b01911eeef6a7624ced879917
BLAKE2b-256 30b39f14e40e66166a5d48e405213577c4abe1ccb0a283b8f5b4421abeb3666c

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bcd53ca06fffb4ccd5840aa4636228f8ae5c3782bd62a8e3ce80e99fe1ac2ee4
MD5 5b764455c9e578f90916a419050557f6
BLAKE2b-256 c60430fb780b020e47451e8128442a39b86c1be536e052b677518881737f2934

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fbfd6e1ebfb1366c2bf6d2ec4c0873221d65034cf23b02dc67ec51c91780d46c
MD5 6ac19000fa3956fa0ed955bf4b00e2f6
BLAKE2b-256 8bfd65ecd3da954849574a16c292b5a5a69a88d94893b02e841d5bbaa12d295b

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d421b5962a72ce8bd648ca8f73b293c652863696f20fb63a822d72366fb0c748
MD5 168bcdd001214f655a6406f50680e88e
BLAKE2b-256 e6f2f254f2581c4a8b910d11ae84bc61fe310ad88ed28b539f93731dd7426de0

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1377f59594605806375183918a1c21e2b376672aece23d9b5143e70f8c724d0d
MD5 a108854255b0c5153b11cee748ef7121
BLAKE2b-256 959cb4b79b3f688d3142f8c1e9753860466af5302ffcec5761de04a8bc28f915

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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

File details

Details for the file bsts_causalimpact-1.6.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.6.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f16c31e108a4cea4eb91db93e973f140220ba9c26b8be6317515d483173becb4
MD5 aa0d1cda1dd98e1d1e24cdf00aa4ef4d
BLAKE2b-256 15f15f6f430e2b6cfa01e1292a711380321bca5d88d156797150e8879078c9c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.6.0-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: release.yml on YuminosukeSato/bsts-causalimpact

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