Referee report 2 — WP37 (internal, skeptical: data provenance, integrity, reproducibility, citations)
Role: data and integrity referee. Checks whether every statement in the manuscript is traceable to an authorised, logged artefact and whether the integrity rules of the mandate were respected.
Provenance and authorisation
- Raw data: owner export (
.backupthrough a read-only connection) of a database owned by the PI; SHA-256 recorded and re-verified at every ingestion (src/common.verify_snapshot). Production untouched (no write path exists in the pipeline). Pass. robots.txtdisallows/api/; the public API was hit exactly once (homepage cross-check), logged inreports/phase0_feasibility.md. Pass.- No credentials in logs:
logs/phase0_api_credentials.txtshows only key length/prefix..envis git-ignored. Pass. - External data: Statistics Canada WDS, public, raw JSON kept with timestamps. Pass.
Integrity rules of the mandate
| Rule | Check |
|---|---|
| No fabricated observations | all tables generated by code from the snapshot; tests/test_outputs.py ties counts to source |
| Listed ≠ paid prices; disappearance ≠ sale; tag ≠ discount | stated in §1, §3, §9; promotions "inferred" throughout |
| Do not assume history/stores/IDs/API | Phase 0 report documents each; stores: unavailable; IDs: UPC for 2 feeds only |
| 54 banners ≠ 54 chains | retailers table: 61 feeds → 52 banners → 37 companies; channel split; same-company flag |
| Matched counted separately | attrition table: 13 088 matched of 124 579 |
| Exploratory vs causal | Model C explicitly descriptive; lead placebo reported as failed |
| Preregistration before results | research/preregistration.md hashed; three amendments logged with rationale |
| Null results reported | H5 market-level null; H3 economically null; Model F naive beats ML on MAE |
| No production change | prospective design described, not implemented |
Reproducibility
- Full pipeline re-run from the raw snapshot after the manuscript was written (
logs/rerun/full_rerun.log); JSON summaries compared by hash before/after — seereports/reproducibility.mdfor the outcome. - Independent recomputation of the weekly modal price, H1 median gap, AR(1), banner effects (pairwise within-estimator), promotion share, volatility ratio and chained Jevons with a different code path (DuckDB SQL + statsmodels) —
reports/audit_recompute.json. - Seeds fixed; LLM annotation stored so the pipeline is API-independent.
Citations
- 75 references; 73 resolved through Crossref DOIs, 2 (Varian 1980, Feenstra 1994) documented as DOI-less with JSTOR stable URLs, 1 report (Competition Bureau 2023) with URL. Three references first resolved to SSRN preprints were re-resolved to the journal versions (Chevalier–Kashyap–Rossi 2003 AER; Hottman–Redding–Weinstein 2016 QJE) or marked as a working paper (Gourville–Koehler 2004).
references.bibis generated from the verified CSV; no hand-typed entries. Pass. - Every claim in the literature section is linked to a verified key in
literature/evidence_matrix.csv.
Concerns
- The LLM annotator and the reviewer share the same prompt context in effect (the operator read the pairs after seeing the LLM labels); independence is not established. The manuscript now says "PI adjudication pending".
- Company attributions for affiliated banners (Richelieu, Marché Ami, Axep, Inter-Marché, Club Entrepôt, Rachelle-Béry) come from the Food-Ka registry text; they affect only the same-/cross-company split and are marked
ownership_basis = registry. Should be verified against corporate sources before publication. - Three post-registration amendments were needed. Each is defensible and logged, but A-001 changes the basket sample materially (7 → 15–18 items); the preregistered version's result (7 items) is not reported in the paper — it should be mentioned in §8. (The decision log has it.)
- The
Autrescategory (19 % of active listings) is a residual bucket; category-level results exclude it implicitly where n < 50 but the index results include it.
Recommendation
Provenance, integrity and citation gates pass. Reproducibility gate conditional on the re-run comparison in reports/reproducibility.md.