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
Horseshoe prior No Yes (prior_type='horseshoe') No 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
Horseshoe prior Extended Continuous shrinkage alternative to spike-and-slab (Kohns & Bhattacharjee 2022)
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)
Horseshoe prior ModelOptions(prior_type='horseshoe') Continuous shrinkage alternative to spike-and-slab for dense DGP Kohns & Bhattacharjee (2022), arXiv:2011.00938

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"
prior_type "spike_slab" "spike_slab" or "horseshoe" (continuous shrinkage for dense DGP)
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 (spike-and-slab only)
posterior_shrinkage ndarray | None Mean shrinkage factor per covariate (horseshoe only)
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.7.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.7.0-cp313-cp313-win_amd64.whl (321.4 kB view details)

Uploaded CPython 3.13Windows x86-64

bsts_causalimpact-1.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (459.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

bsts_causalimpact-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (446.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

bsts_causalimpact-1.7.0-cp313-cp313-macosx_11_0_arm64.whl (412.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

bsts_causalimpact-1.7.0-cp313-cp313-macosx_10_12_x86_64.whl (419.4 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

bsts_causalimpact-1.7.0-cp312-cp312-win_amd64.whl (321.6 kB view details)

Uploaded CPython 3.12Windows x86-64

bsts_causalimpact-1.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (459.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

bsts_causalimpact-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (447.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

bsts_causalimpact-1.7.0-cp312-cp312-macosx_11_0_arm64.whl (412.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

bsts_causalimpact-1.7.0-cp312-cp312-macosx_10_12_x86_64.whl (419.7 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

bsts_causalimpact-1.7.0-cp311-cp311-win_amd64.whl (324.1 kB view details)

Uploaded CPython 3.11Windows x86-64

bsts_causalimpact-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (459.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

bsts_causalimpact-1.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (447.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

bsts_causalimpact-1.7.0-cp311-cp311-macosx_11_0_arm64.whl (413.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

bsts_causalimpact-1.7.0-cp311-cp311-macosx_10_12_x86_64.whl (419.7 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

bsts_causalimpact-1.7.0-cp310-cp310-win_amd64.whl (324.1 kB view details)

Uploaded CPython 3.10Windows x86-64

bsts_causalimpact-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (459.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

bsts_causalimpact-1.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (447.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

bsts_causalimpact-1.7.0-cp310-cp310-macosx_11_0_arm64.whl (413.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

bsts_causalimpact-1.7.0-cp310-cp310-macosx_10_12_x86_64.whl (420.0 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: bsts_causalimpact-1.7.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.7.0.tar.gz
Algorithm Hash digest
SHA256 7646fb96879d133a06de5b8fff834831a50b78a2439bd8a6d7e8d9a11d591192
MD5 b33b1eee43ae7e171454cc0b4165c475
BLAKE2b-256 a402fdf70b608dc2795f6e414f1db255c06fe1646aa2b485e8c768e5c084b959

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 10926c7699786c0a7daf3e81985a8a16bdc174af91483d56da69abd2c14dc269
MD5 8d1083abf9e12df44633e08c2a06c59c
BLAKE2b-256 97ffa10df938328c36960e89096d48ff89f512d7ee9afd20d74c80e3bbeb1847

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cdc7c3fc4c6b94f3928d28ba0efac37bf90be6d5c87cb316c1359eb73c7fb42f
MD5 3f18546db54b636515004c33f19ad85e
BLAKE2b-256 376bdb0a8f9646f6576f3c1611f75bb35a757788fedd38b43cf7d72a021f6254

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5ac5b3849c179b4a4823fd94d233be5e7a10e7fbc4b7992bfe19866eb49c8267
MD5 0bb329736e51f14fd3e865d5c827f1d6
BLAKE2b-256 9d29db5225ce650c6847ea941dcce543241bc6cdcfdefe2467635ebd0e9b31fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41efda5d0b7edde629658b6e01033a2e3ee59087ec4b4d04e20b08d5dd4bef19
MD5 743282246ffd5f5ffc56f34e2add8876
BLAKE2b-256 89583bcd2751225399a441ca19cff0e9df38c0d3bef457a4a78e5947b282be83

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b5265a4fde57312927edc1a54d9a518c146413e271fe5849abb27ab4b5cb445e
MD5 62a0a5fe71dce4d5ba6fed9054cf1d10
BLAKE2b-256 628a67048f0263d548620f2504333dde490f0b57cc5e57071539e291842f9e07

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 00f7f6c00baea0f561e22f53a7f77e22ffd1af22a483d164d09414ad201dbcfd
MD5 c683d0d7dbdf2ac8b8b969f0b942ce16
BLAKE2b-256 be71692ddc3147c821c80e3f7e431d4c5ceabb5eaff1f062cfab8c1367fb01d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 27a636c4ede27fda9e160651ff6d18d2e6283ffc5e4398be7c4304a967c3c900
MD5 facba26e26e2554993fa916d3ed21333
BLAKE2b-256 e9dc736daf7424dc3fff7886e59f80b60abd0b8e58229725db182cc8a6b519ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9c09539c95935c531d40b982df081cdc2dfbc5eb4473f47ed34014079f4ab0f9
MD5 3d9ed07f81eae19ff4ed0a184e347f34
BLAKE2b-256 92eff83d7a7f994b928952af5dac15af4ad237bb3aab89a2db94d1c1e26769a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 277ad23462538673dfde86de13868a57841a999825822fa3ee5d7d8ffcb0d9a7
MD5 7fa94cd4166b7bc7b9c7b994a265b3dc
BLAKE2b-256 fc28bbce25dabaa64e2b400c4813e560f13f05a4559d84ebbffa1d5d1234817f

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fff89d526901dbd5e04f9b9b1dbe1a719977f571198eb37d892c3f7ac9ba095e
MD5 66f38e49930614a7e9ba927d390950dc
BLAKE2b-256 e9f474e388ccc8b2a4c9ecb7b13dd11da82c38bb27ebf68f4a4636d40bb9b1c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 30b8e09e627b9ee08e804d6b257e1b20936dd700ed43d9449ee036481c6c9f8c
MD5 8052e6b960b325b4ebe5e299f80112ce
BLAKE2b-256 6327df51acde36d88b366b51cdeaa1fd895a18a297d86d809add39a94458c48a

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 42abe85ad54ab6fe0c37b171e0b8804ef21c11fae5446e9679f0054dc76cff78
MD5 570be2d510bf63ebeeefda21bf06d1ae
BLAKE2b-256 2708671f9c7c16ccf4bbc83b631915ce7dffe23db1be5baf08880a3d2e489dde

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a746ddf30ea04752612bf19928e03a51eb85ddbc1c9f7d6e4c399279c757f0b1
MD5 dfc6c8bb55d643ef08a1e74972926a78
BLAKE2b-256 eebb07759cf347683fe62026c724529228d2fa7515350488b17afea2ffb18c15

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d277195c1e545db86950d790f57b6c7f7abd0a60bc59b7501018e51f9c652b7e
MD5 1131b5b80ea64ca9d31e3a745dfba1db
BLAKE2b-256 068afdaaaa37b200d36349b8538ca5db3873a8a2845184c8afa85273ced99756

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c6fec1c46fa7ab15b57dd6965a7411a65814ccfaa7288d139f766ca10d5b5889
MD5 3c9e7dbafabbf7ffdd1ec51a40f54298
BLAKE2b-256 785f3d25655201b9063d682e0336c51e7c64c0587ec0fd47b84214754428264b

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a0ccb853076796d62fd797d9883bc42cacf65dba89562672fe5b393587097a82
MD5 25d835097b8a8eefd57afd2996ef3fc6
BLAKE2b-256 da8dd8baca3e9476a0728aa6b264cb40f998fe31c1c9e1c07cffd0667225a787

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d9851b91a8d23bdebedb582259184c180a945a7854f90cf4accca2c050ec1d71
MD5 62468a696dc6db40af87f55fd12296e3
BLAKE2b-256 4b63e4078963b7105e534623070ef22dfc9474dc9092ae423c2d373cd27cee61

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 606d8342eb5b91ba25ce712953f713abbfed8cc0e592fbdf113cecaaafe51db2
MD5 4f88af51f5a8e53926a0aea9b0f24081
BLAKE2b-256 c87cddcb3b6bd4c63836a95ce2b013e48335d25e4b29fd4c46d2ab62dedfc8ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5b7596e30514082b72ee76f819faa03b93414a68e1b452f75b788277631b9192
MD5 b5dc1f6cefd9b415da6ae128db29b0e8
BLAKE2b-256 5f48e0a585f664c0335f2f1db3e2640048361a8b3bbc130b4f9ec76fdcb2dc31

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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.7.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bsts_causalimpact-1.7.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 75a733e362658343e628e27cdad3531ed70172a113014381c7d137ab481c38fa
MD5 e72afa37c16613c464b269dbfc375ac7
BLAKE2b-256 307dea39eb55a29b90e0cda7d080bd15749dd66ec0669c7dd7793fccf33a72b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for bsts_causalimpact-1.7.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