Repair verification record
This historical record predates release-candidate preparation. See the current release verification for subsequent changes.
This record covers the approved methodological corrections in the working tree. The package version remains 0.3.0 until a separate release is prepared. No commit, push or publication forms part of this implementation task.
Changes covered
Review finding |
Repair |
|---|---|
Unidentified CRT effect |
Full-rank, residual-df and finite-inference checks |
Stale cached analysis |
No result cache in concrete analysers |
Stratification bias and singleton allocations |
Fixed-count allocation, minimum supported stratum size, population-weighted contrasts |
Bootstrap multiplicity |
Independent arm/stratum summary resampling and distinct IDs for repeated CRT cluster draws |
Empty or incorrect balance pass |
Preserve covariates, reject changing summaries, report unavailable checks, handle constant differences |
Invalid Rosenbaum bounds |
Withdrawn with an explicit error |
Invalid power windows and estimand mismatch |
Calendar windows, actual parallel analyser, retained failures and Monte Carlo intervals |
Small-cluster reference distributions |
Welch-Satterthwaite for parallel summaries; explicitly approximate CRV1/t(G-1) for CRT |
Invalid permutation distribution |
Within-stratum fixed-count allocations, exact enumeration and corrected Monte Carlo counting |
Incorrect units |
Explicit normalised-change versus outcome-unit reporting |
Uncontrolled windows and zero baselines |
Shared parallel preparation and strict input gates |
Lost numerical precision |
Float64 statistical outcomes |
Ignored confidence and seeds |
Resolved settings, seed zero, constructor bootstrap counts |
Missing actual-geo staircase allocation |
Explicit randomisation to retained sequences |
Unsupported documentation claims |
Replaced with implemented estimands, assumptions and capability boundaries |
Parallel CRT bootstrap preserves treatment arms. Rollout bootstrap requires recorded sequences. Stratified CRT inference is rejected because it has no implemented contract; stratified parallel trials use Lift or DiD.
Executed checks
Full suite:
PYTHONPATH=src OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 python -m pytest -q --disable-warnings --tb=short. Result: 160 passed. Seven warnings remain, including constant-data diagnostic warnings and existing library deprecations. No tests were skipped.Ruff checks passed for the rewritten analysers, inference, designers, diagnostics, power and reporting modules, the simulation script, changed statistical tests, runner and example script. This is not a claim of whole-tree lint cleanliness.
Black checks passed for those same twelve files.
git diff --checkpassed.The complete synthetic example in
documentation/getting_started.mdran.Tests executed all three CLI analysers and inspected their saved JSON, including confidence level, units, input hash, warning fields and balance assessment.
PYTHONPATH=src python -m sphinx -b html -W --keep-going documentation /tmp/geostep-methodology-docsbuilt the documentation with warnings treated as errors.python -m build --wheel --no-isolation --outdir /tmp/geostep-methodology-distbuilt a wheel. This uses the existing environment, not an isolated dependency compatibility matrix. Existing package metadata still emits a setuptools licence-classifier deprecation warning.A fresh Python process imported GeoStep directly from the built wheel and completed a public DiD analysis using the existing dependency environment.
Every source hash in the retained simulation JSON matches the final source tree.
The parallel simulation ran 1600 analyses with zero failures. The JSON evidence records assumptions, metrics, Monte Carlo intervals, dependency versions and source hashes.
Evidence limits
The statistical simulation covers the analytic parallel DiD procedure under its specified DGPs. It does not validate all marketing datasets, CRT coverage, bootstrap coverage, heterogeneous effects, missingness, non-adherence or interference. Exact randomisation reference examples and software tests are separate evidence from simulation calibration.
Preserve existing trial assignments when adopting these corrections. Seeds and some estimates intentionally change. The user’s existing documentation URL edit and removal of the two old documentation-build scripts were preserved.