Referee 2 — Economic geography / regional science (adversarial)
WP38, paper/main.pdf (sources paper/sections/*.tex); outputs experiments_model/*.json, data/processed_model/*. All checks were read-only (.venv/bin/python -I) on published outputs; nothing was rerun. 2026-11-01.
Summary verdict
The paper is candid and the preregistered design is sound, but several headline interpretive claims outrun the outputs. The merchant-reshuffle null answers the "large merchant" threat only; regional-directory discovery is the real confounder of H1, and the variant advertised as its antidote does not remove it. The H2 "no association with scale" is an artefact of rarefying to 15 stores. The Estrie/Montérégie vintage problem the paper says it fixed is still in the data. The H5 "geographic structure" is one bulk-food retailer in Outaouais. The title says "Digital Production" in a paper whose own rules forbid the word.
1. Five most serious threats, with checks performed
T1. H1's merchant-level specialization is partly the geography of the discovery directories, and the null cannot absorb it (§3.6, §6.2, §7.4)
The merchant-reshuffle null permutes region labels across stores, so it absorbs catalogue-size luck, not which merchants were discovered. Discovery runs through region-specific directories (charlevoix = 36.5% of Capitale-Nationale stores and 0% elsewhere; createursdesaveurs = 36.8% of Estrie; zoneboreale, croquezoutaouais, gaspesiegourmande, laurentidesjenmange, mauriciemiam). A directory that lists artisans in one region and agri-food producers in another manufactures a region×category dependence that no label permutation removes.
Check (raa_matrix.csv, store_panel.parquet, first_source): of the 12 cells with RAA interval > 1 (Table raa_top), the three Capitale-Nationale cells are dominated by the Charlevoix directory — art 29/66 stores, "other" 15/36, outdoor 9/20; Estrie maple 18/47 from Créateurs de saveurs; Outaouais chocolate 4/15 from Croquez Outaouais. The "certification and association sources only" variant (§7.1, §7.4, 1,068 stores) does not address this: CERT_SOURCES in src/validation/robustness.py includes charlevoix, createursdesaveurs, zoneboreale, croquezoutaouais, gaspesiegourmande, laurentidesjenmange, mauriciemiam, goutcotenord. §4.6 says the variant re-estimates "on stores discovered through certification and association sources only"; it keeps every regional directory. A region-level Spearman between food-directory share and food-main-category share is only 0.16 (p=0.55, 16 regions): the confound is cell-specific, not a province-wide food tilt, which is why cell-level claims need a province-wide-source-only variant.
T2. H2's "no association with scale" is produced by rarefying to 15 stores; the all-merchant entropy shows the scaling the literature predicts (§6.3, §8.1, abstract)
Rarefaction to 15 stores (preregistered, research/preregistration.md l.36) removes the number-of-merchants channel. But Youn et al. (2016) and Hong et al. (2020), which the paper says "do not reproduce" (§8.1), are about how many distinct activity types a place sustains, which grows with the count of establishments. The paper tests per-merchant breadth, a different hypothesis, then reads the null as a failure of the urban-hierarchy result.
Check (h2_scale.json, h2_region_table.csv, my rarefaction at other depths, 300 draws): rarefied-15 ρ with log population = 0.00 (paper), 0.12 in my replication; at depth 30 (13 regions) 0.14; at depth 60 (9 regions) 0.20; all-store merchant-equal entropy ρ = 0.49 with log population, 0.52 with log business locations, 0.50 with income (CIs −0.10…0.89, −0.09…0.89, −0.03…0.83), all in h2_scale.json but never mentioned in §6.3. ρ(n_stores, H_norm_M) = 0.53; ρ(n_stores, H_rarefied15) = 0.08. The honest statement is "diversity scales with the number of located merchants, as in the scaling literature, and per-merchant breadth does not".
T3. The Estrie/Montérégie boundary vintage is not resolved; the platform label carries the pre-2021 map and the rule prefers it (§4.2, §3.1, A-001, Table region_summary)
§4.2 states the MRNF layer resolves the Brome-Missisquoi/Haute-Yamaska transfer and that the 30 residual conflicts are "rural FSAs whose centroids fall near a border". The platform's own region label (865 stores, kept second in the rule) was built from an FSA→region map of unknown vintage.
Check (store_panel lat/lng point-in-polygon against mrc_s_raw): 44 located stores have their FSA centroid inside Brome-Missisquoi or La Haute-Yamaska; 13 of them are assigned to Montérégie (all region_source = db, all region_conflict = False — e.g. cidreriefamilletremblay.ca, domaineamalgames.ca (alcohol), erableaufildutemps.ca, jardinsdeversailles.ca (maple)). Overall, 125 of 1,243 located stores with coordinates (10%) have region_final ≠ the MRNF region of their centroid, but only 15 of these carry the conflict flag, because region_conflict (src/clean/stores.py l.99) compares the platform label with region_final, not with the polygon; whenever the label is the final region the disagreement is invisible. The Estrie↔Montérégie pair alone accounts for 48 disagreements (35 Estrie-labelled stores in Montérégie polygons, 13 the reverse). The Montérégie alcohol cell (RAA 1.83, 35 stores) and the Estrie alcohol/maple cells sit exactly on this seam. The density covariate is also on 2021 ER boundaries (Estrie 33.1 vs 42.2 /km² current; Montérégie 143.2 vs 172.5, re-aggregating CD land areas from cd_to_region_concordance_2021.csv); immaterial here (ρ with rarefied diversity −0.197 → −0.191) but should be stated.
T4. H5-T1 "region effects are jointly significant" is one store, and the matched sample is the geography of natural-food resellers (§6.4, §7.2, abstract)
Check (h5_region_effects.csv, h5_groups.parquet): Outaouais effect +0.224 (SE 0.028, 5 stores) contributes t² = 65.6 of the 82.4 summed squared t-statistics across the 14 effects; the next largest is Saguenay (4.6). Outaouais's 110 matched listings are 84 from laboiteagrains.com. The joint Wald (164.4, p = 0.0045) is therefore a one-merchant result that the preregistered criterion ("≥ 8 regions with ≥ 5 matched stores") does not protect against. More fundamentally, 26% of matched listings are health/beauty, 24% grocery, 15% coffee/tea; three stores (cooplamanne.com, epipresto.ca, alimentationnaturelle.ca) hold 38% of listings; 11 reseller stores hold 31%, and 678 of 1,064 groups contain a reseller. "Regional price levels for identical goods" (§6.4) is the pricing of a handful of natural-food e-retailers; T2 (reseller) is the robust result. "Structured both by geography and by channel" (§8.1, abstract) overstates T1.
T5. Title, index name and construct naming violate the paper's own wording discipline (title, §1, §3.6, §6.6, keywords)
The paper's rule (D-004; §3.6 "it does not measure production") is violated by the title "The Economic Geography of Digital Production"; "production" appears nowhere in the abstract, intro or results. The index keeps "Complexity" in its name (QDACI) after the complexity component is withheld. "Revealed assortment advantage" under merchant-equal weights is a location quotient of merchants by category (under the "stores" scheme literally so); calling it a Balassa index hides the uncited small-area LQ literature on significance and instability. "Rarefied entropy" is an ecology construct (Sanders 1968; Hurlbert 1971), uncited. The intro (§1 ¶2) lists "coffee in Montréal, meat and fish in Bas-Saint-Laurent and Mauricie" as the readable pattern — those are rule-labelling cells; the primary classifier cells (§6.2) are pets in Montérégie, outdoor in Capitale-Nationale, chocolate in Outaouais.
2. Further checks and inconsistencies (lower severity)
- Listing-weighted H1 is significant under the platform-label-first assignment (S_R0, L: V 0.344 vs null 0.278, p = 0.0025, Table
h1_raarow 10) — the text (§6.2, §7.1) never mentions it. "Specialization is a property of merchants, not of listings" is therefore assignment-dependent and should be stated as "under the primary assignment". - MAUP is cited (Briant et al.) but never operationalised;
evidence_matrix.csvC26 promises "MRC-level sensitivity where feasible". 138 MRC polygons are in the gpkg; a sub-regional check (V across MRCs with ≥ 10 stores) is feasible and absent. - FSA centroids: 342 of 1,243 located stores (27%) sit in one of the 40 FSAs straddling a region boundary; 400 are in rural "x0x" FSAs; 483 share an FSA with ≥ 10 others, so Fig.
map(right) plots stacked points. The data README's own geographic-uncertainty variant was never run. - Complexity validation:
h7_complexity.jsonrecordsV2 pass: true; §6.5 calls V2 "mixed". The ECI puts Montréal at −1.19 (second-lowest) and Chaudière-Appalaches at +1.64: on a 17×20 matrix at 40% density it is a food/non-food Fiedler vector, as §6.5 implies. - Relatedness from 20 categories:
epicerieis a hub (mean proximity 0.64 vs 0.46 overall; 7 of 19 MST edges). 59% of the 104 H4 entries are within the same Louvain block (entry rate 0.62% same-block vs 0.33% cross-block; density 0.26 vs 0.25), so H4 is not merely "food merchants add food", but §6.7 should say the proximity matrix is close to two blocks plus a grocery hub. - Numerical inconsistencies: rarefied range "0.74–0.85" in §8.1 vs 0.73–0.89 (abstract, §6.3,
diversity.json0.731–0.887); unlocated stores "229" (§4.2, §8.3) vs "226" (Tableregion_summary, §7.4) — 229 live, 226 in the assortment sample; "1,064 matched products" (abstract) are groups. - Representativeness: the coverage denominator is employer locations only; online micro-merchants are largely non-employers, so "coverage" is a ratio, not a rate (the Table
externalnote says so; §4.6 text does not).
3. Unresolved limitations (not fixable with this snapshot)
- Discovery-source selection is region×category structured; no province-wide probability frame exists to weight it.
- One merchant = one region; no civic addresses; 19% of listings unlocated and they include the largest catalogues, so the L-scheme results describe a censored tail.
- 17 units: H2, H7-V3 and any MAUP check are power-limited whatever the method.
- Category labels rest on LLM annotation with no human adjudication (L-07).
- No price history; H5 is a one-day cross-section of posted minimum-variant prices.
4. Prioritised remediation
Must-fix
- Title: drop "Digital Production". Suggested: "The Economic Geography of Online Assortments: Merchant Specialization, Diversity and the Hidden Structure of Quebec's Online Retail Economy". Rename the index "Quebec Digital Assortment Index (QDAI) family" or state in §6.6 that "Complexity" in the name is retained only for continuity with the preregistration.
- §4.6 / §7.4: correct the description of the "certification-only" variant — it includes regional directories. Add a province-wide-sources-only variant (
alimentsduquebec_ent,lesproduitsduquebec_*,cartv_bio, sector associations; excludecharlevoix,createursdesaveurs,zoneboreale,croquezoutaouais,gaspesiegourmande,laurentidesjenmange,mauriciemiam,goutcotenord,arretsgourmands,goutezy,goutezat,gardemangerduquebec) and report V, p and the 12 cells under it. Add a sentence to §6.2 after the cell list: "Several of these cells coincide with a region-specific directory (Charlevoix for Capitale-Nationale, Créateurs de saveurs for Estrie); the merchant-reshuffle null does not absorb discovery selection." - §4.2 / A-001: redefine
region_conflictas label ≠ MRNF polygon of the centroid (125 stores, not 30), report the 13 Brome-Missisquoi stores labelled Montérégie, and either re-assign them to Estrie or merge Estrie+Montérégie in a sensitivity (asdata/external/README.mdalready recommends). Replace "the current MRNF layer … agrees for 89.1% of stores" with the polygon-based figure (90%; 1,118/1,243) and state that the platform label can carry the pre-2021 map. - §6.3, §8.1, abstract, conclusion: report the all-merchant entropy correlations (0.49–0.52) alongside the rarefied ones and rewrite: "Diversity rises with the number of located merchants, as in the urban-scaling literature; conditional on merchant count (rarefied to 15 stores) it shows no detectable association with scale." Delete "does not reproduce" in §8.1. Fix 0.74–0.85 → 0.73–0.89.
- §6.4, §7.2, abstract: state that the joint region test is driven by Outaouais (one bulk-food retailer, 84 of 110 listings; t² 65.6 of 82.4) and report the joint test excluding Outaouais; describe the matched sample's category and reseller composition (26% health/beauty, 24% grocery; 3 stores = 38% of listings). Change "structured both by geography and by channel" to "structured by channel; the geographic component rests on one region".
Should-fix
- §6.2 / §7.1: acknowledge the S_R0 listing-weighted result (p = 0.0025) and qualify "property of merchants, not of listings" as holding under the primary assignment and the trimmed scheme.
- §3.6 / §5.2: call RAA-M a location quotient of merchants and cite the LQ significance/small-area literature; cite Sanders (1968)/Hurlbert (1971) for rarefaction.
- MAUP: add an MRC-level (or CMA/non-CMA) dependence check using
mrc_s_raw, or state explicitly in §8.3 that none was run and why. - FSA uncertainty variant: drop the 342 stores in straddling FSAs (data README's own recommendation) and report H1-M.
- §1 ¶2: replace the rule-labelling cell list with the classifier cells, or label it as such.
- Make
h7_complexity.jsonV2 flag consistent with the "mixed" verdict; harmonise 226/229; "matched products" → "matched groups".
Nice-to-have
- Remark in Appendix
indicatorsthat Montréal ranks second-lowest on the ECI, as a worked illustration of why it is withheld. - Note in §4.6 that employer-location denominators understate the online micro-merchant base.
- One §8.2 paragraph on what the merchant-level LQ map says once directory effects are netted out.