Skip to content

Commit 7f8dfd1

Browse files
authored
bench: publish 2026-07 refresh results - regenerated benchmarks page + committed artifacts (#673)
1 parent 1044044 commit 7f8dfd1

8 files changed

Lines changed: 8476 additions & 187 deletions

File tree

CHANGELOG.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3030
mislabeled cell can never publish; the legacy `--type twfe` no-op on the
3131
BasicDiD scripts now fails loudly (absorbed-FE TWFE has its own dedicated
3232
script pair, and the refresh benchmarks it separately from BasicDiD).
33-
Regenerated page numbers land together with the committed results
34-
artifact once the timed refresh run completes.
33+
The full gated run is committed (`results/refresh_results.json`) and
34+
`docs/benchmarks.rst` is regenerated from it: CallawaySantAnna is
35+
4.6-15.5x faster than R `did` with the advantage GROWING with scale
36+
(15.5x at 10k units / 150k observations, 14.8x at 20k units / 360k
37+
observations; the previously published numbers showed the advantage
38+
shrinking); SyntheticDiD's Rust backend is
39+
18-55x faster than R `synthdid` at matched 200-replication placebo
40+
variance (the previously published table - captured before the current
41+
Frank-Wolfe kernels and at unequal placebo-replication counts - showed Rust
42+
SLOWER than pure Python); MPDTA real-data validation is ~5x faster with
43+
exact ATT match. Honest regressions from the fairness fixes are
44+
published as-is: warmed-up fixest now beats the sub-35ms BasicDiD/TWFE
45+
interaction-OLS cells at 10k-20k (0.6-0.9x), and pure-Python
46+
SyntheticDiD at equal placebo-replication counts is 0.5-4.4x vs R (the old
47+
2.4-16.5x claim reflected a 50-vs-200 replication asymmetry). All
48+
20 cells pass every publication gate with zero flags.
3549

3650
### Fixed
3751
- **`docs/benchmarks.rst` SDID weight-parity claim now machine-verified (and

TODO.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,6 @@ generic sparse-FE, QR+SVD rank-detection redundancy, `check_finite` bypass — m
4545

4646
### Testing / docs
4747

48-
| Issue | Location | Origin | Effort | Priority |
49-
|-------|----------|--------|--------|----------|
50-
| Benchmark refresh phase 2 (same PR #672): run the gated timed refresh on an idle machine, commit `benchmarks/refresh_2026_07/results/refresh_results.json`, regenerate the marker-bounded regions of `docs/benchmarks.rst` via `gen_benchmark_tables.py`, and reconcile the remaining pre-refresh prose (protocol bullets "3 replications / mean ± std", combined BasicDiD/TWFE wording, SDID note under the perf table, Key Observations, "Reproducing Benchmarks" section, `llms.txt` speedup cross-references). Row removed by the phase-2 push itself. | `benchmarks/refresh_2026_07/`, `docs/benchmarks.rst` | #672 | Mid | Medium |
51-
52-
| Issue | Location | Origin | Effort | Priority |
53-
|-------|----------|--------|--------|----------|
54-
5548
---
5649

5750
## Deferred / Documented

0 commit comments

Comments
 (0)