SPB Git

spb/wp38_uqo

Public
6.7 KB

# Referee responses — WP38 (2026-11-01)

Three independent adversarial reviews were run on the first compiled draft (v1.0-draft, 48 p.): referee_1_econometrics.md, referee_2_geography.md, referee_3_data_engineering.md. Every must-fix item was implemented and the full pipeline was re-run under both labellings (decision D-009). Items are listed with the action taken and the effect on the conclusions.

# Referee 1 — econometrics

# Finding Action Effect
1 Wild cluster bootstrap for H5 never re-projected the bootstrap disturbance e_r·w off the 1 064 match-group fixed effects (clusters = stores cut across groups) src/models/h5_hedonic.py: disturbance group-demeaned before refitting (gdemean); leave-one-region-out Wald and per-region Wald contributions added H5-T1 p: 0.0045 → 0.0975 (not supported); Outaouais contributes 65.5 of 164.2; without it Wald 51.4 (13 df). H5-T2 unchanged (p 0.0041, Holm 0.016)
2 H3 "power law favoured" used untruncated log-normal moments src/models/h3_longtail.py: truncated discrete log-normal by MLE on the same tail; Vuong on same support z = −1.98 with a degenerate log-normal (σ ≈ 6): families not meaningfully distinguishable; the claim is withdrawn in text; Gini/top-share thresholds unchanged → H3 still supported
3 Cell-level RAA "significant" counts are bootstrap artefacts without multiplicity control src/models/h1_raa.py: expected counts under 20 merchant reshuffles × 300 bootstraps added (null_cells_sig_*) observed 12 cells > 1 vs null mean 2.9 (max 8); observed 66 cells < 1 vs null mean 55.5 (max 69) → "absences are more robust" sentence inverted and corrected
4 "Partially supported" is not a preregistered status; abstract's "every variant / 2 000 reshuffles" inaccurate; L/T null is a power statement; S_R0-L significant; confusion matrix mismatch under model labels summary.py: status follows the preregistered rule only (H1 not supported); text rewritten (power, 1 000 permutations for variants, S_R0-L p = 0.024 acknowledged); robustness.py uses the classifier's audit confusion under WP38_LABEL=model H1 reported as not supported by the joint criterion; merchant-equal dependence reported descriptively
5 H2 CI ignored rarefaction draws; power claim loose; unrarefied ρ ≈ 0.5 omitted; Table 2 note wrong diversity.py saves the 2 000 draws, h2_scale.py combines them; power statement ( ρ

# Referee 2 — economic geography

# Finding Action Effect
1 Specialization cells coincide with region-specific directories (Charlevoix, Créateurs de saveurs); the "certification-only" variant included those directories robustness.py: province_wide_sources_only variant (1 012 stores) added; cell-directory overlap stated in §6.2 merchant-equal V 0.120 vs null 0.098, p 0.001 → aggregate dependence survives; individual cells flagged
2 H2 "no association" manufactured by rarefaction; unrarefied entropy scales with size §6.3 rewritten as two questions (per-merchant breadth vs total variety); abstract/conclusion/§8.1 reworded; "does not reproduce" deleted —
3 Estrie/Montérégie 2021 transfer unresolved; region_conflict compared label with final, not polygon clean/stores.py: MRC point-in-polygon (mrc_s_raw), platform labels "Montérégie" with centroid in Brome-Missisquoi / La Haute-Yamaska overridden to Estrie (16 stores, source pip_transfer2021); region_conflict = label ≠ polygon (124); region_final_vs_polygon flag (112); explicit MERN-only layer (no silent fallback) Montérégie 179, Estrie 167 stores; H1/H2 numbers moved marginally
4 H5-T1 joint test is one store (Outaouais, laboiteagrains.com); matched-sample composition LOO decomposition and composition (26 % beauty, 24 % grocery, 15 % coffee; 64 % of groups with a reseller; 3 stores = 38 %) reported in §6.4; wording "structured by channel, not demonstrably by geography" consistent with referee 1
5 Title says "Production"; QDACI keeps "Complexity"; LQ and rarefaction uncited; intro listed rule-label cells; number inconsistencies Title → "Digital Retail Supply" (D-008; the mandate's title was provisional); QDACI name kept with an explicit statement; Isserman (1977) and Hurlbert (1971) verified via Crossref and cited; intro lists classifier cells; 0.73–0.89, 226/229 fixed —
6–9 S_R0-L acknowledgement; MRC-level MAUP check; straddling-FSA variant; S_R0 misnomer all added: MRC-level V 0.185 vs 0.156 (p < 0.001, 56 MRCs); excl_straddling_fsa_stores (924 stores, p 0.001); S_R0_platform_label_only and pip_first_regions variants —

# Referee 3 — data engineering and reproducibility

# Finding Action Effect
1 Match-validation precision divided "yes" by all pairs, not consensus pairs match_validation.py: shares among consensus pairs + lower bounds A 0.98, B 1.00, C 0.89, D 0.21 (lower bounds 0.92/0.90/0.77/0.17); text, abstract, phase-2 audit, limitations updated
2 Audit sample drawn before the sibling rule (1 uid outside the assortment sample); label CSVs not hashed; no merchant holdout disclosed in L-17; label CSVs committed and registered in logs/manifest.json —
3 H4 built on surviving listings only h4_dynamics.py: all published listings from listings_raw (461 011 incl. 71 722 inactive) model: coef 0.102 (SE 0.031), placebo p 0.005; rule: 0.093 (0.054), p 0.055 — still exploratory
4 Text/repo inconsistencies (reproducibility statement, README numbers, .gitignore asymmetry, Makefile targets, stale dictionary/source audit) reproducibility statement rewritten; README numbers regenerated; data/processed_model/ ignored, ledger/manifest/label CSVs committed; categories target and summary added to Makefile; dictionary regenerated; source audit updated —
5 region_dbfirst misnomer (was PIP-first); silent layer fallback; ledger without label renamed region_pipfirst; S_R0 = platform-label-only; MERN layer only; ledger() records WP38_LABEL —

# Net effect on the conclusions

  • H1: "partially supported" → not supported by the preregistered joint criterion; the merchant-equal dependence is robust (all variants, MRC level, province-wide sources) and reported descriptively.
  • H3: supported; the power-law-vs-log-normal claim withdrawn.
  • H5-T1: supported → not supported; H5-T2 unchanged (supported).
  • H2, H4, H6, H7, QDACI: statuses unchanged; H2 text now distinguishes per-merchant breadth from total variety.
  • Matching precision revised upward (0.98–1.00); H4 re-estimated on the complete listing history.
Files · 2789bf667fc532fd5c04f52650ccc62606fd212e
Menu

Theme