SPB Git

spb/wp37_uqo

Public
7.2 KB · 20 lines latex
1\section{Identification and preregistered methods}\label{sec:methods}23The hypotheses, samples, estimands, nulls, clustering and falsification tests were written down and hashed (\texttt{research/preregistration.md}) after the data audit and before any cross-banner gap, promotion statistic, index, response model or forecast was computed. The registration also lists what had been examined before freezing (table counts, coverage, the oscillation diagnostics, the distribution of current discount depth, matching validation). Three amendments were made during estimation and are logged with their rationale (\texttt{research/decisions.md}): a complete-block design for the basket problem (A-001), a unit-price screen on basket candidates (A-002), and a classification of low-price episodes into temporary sales and regular-price resets (A-003). None changes an estimand; all are reported with the preregistered version where it differs.45\paragraph{Common definitions.} Posted price $p_{irw}$ of listing $i$ (banner $r$) in week $w$ is the duration-weighted modal price. A \emph{matched group} is a connected component of tier A+B pairs; group-weeks with fewer than two banners posting, or with more than one simultaneously posted listing from the same banner-channel (``ambiguous'', 2.2\%), are dropped. The storefront channel is primary; circulars are added in sensitivity analyses. Standard errors are clustered by match group; a two-way group$\times$banner clustering is reported for banner effects (with 14 banners carrying matched storefront listings the banner dimension is small, which we flag).67\paragraph{Model A (H1).} We estimate $\log p_{irw}=\alpha_{iw}+\gamma_r+\varepsilon_{irw}$ with product-week and banner fixed effects on 67{,}732 listing-weeks. The $\gamma_r$ are relative posted-price levels for identical products in the same week; the residual standard deviation measures dispersion not explained by banner levels. Dispersion statistics per group-week (max--min log gap, coefficient of variation, interquartile range) are summarised overall, by company relation and by category. Persistence is the pooled AR(1) coefficient of banner-pair gaps $g_{i,rs,w}=\log p_{irw}-\log p_{isw}$ on their own one-week lag and the share of pairs ($\ge 4$ weeks) whose sign never flips; the placebo permutes banner labels within group-week (20 replications), which must drive the AR(1) to zero if persistence is a property of banners and not of the construction. The registered economic threshold is a median gap of at least 5\% and AR(1) of at least 0.5.89\paragraph{Model B (H2, H3).} For storefront listings observed in at least 8 of 11 weeks, the reference price in week $w$ is the modal price over the trailing eight weeks (ties resolved to the higher price); a week is \emph{promoted} if $p_w\le 0.90\,\bar p_w$. This is a posted-price version of the sales filters of \citet{nakamura2008} and \citet{kehoe2015}; it is validated against the current on-sale flag in the last week (agreement 0.90). H2 compares the standard deviation of weekly log changes of the posted price with that of the reference series, overall, by banner and by category, with a listing-level bootstrap (999 draws) for the ratio. Episodes are maximal runs of promoted weeks; censored episodes (touching the panel edges) are excluded from duration and post-episode statistics. Under amendment A-003 an episode is a \emph{return} if the first post-episode price is within $\pm$2\% of the pre-episode reference, a \emph{reset down} if it is lower, a \emph{reset up} if higher. H3 asks whether the reference after a return episode differs from the reference before it; the event study regresses $\log p$ on week-relative-to-start dummies ($-4\ldots+4$, reference $-1$) with listing and week fixed effects and tests the joint nullity of the pre-period dummies; a placebo draws pseudo-episode dates in never-promoted listings. The falsification registered for the store-mixture interpretation---single-store shops must not display multi-price weeks---is reported with the H2 results, and the event study is re-estimated separately for single-store and anti-bot feeds.1011\paragraph{Model C (H4).} Store geography does not exist, so the ``nearby stores'' part of H4 is untestable and is not tested. For the banner-level part we regress $\Delta\log p_{irw}$ on the mean change of the other banners in the group at lags 0--3 and leads 1--2, with banner and week fixed effects, separately for all rivals, same-company rivals and other-company rivals. Contemporaneous coefficients absorb common shocks and are not causal; lags are lead--lag associations; leads are a placebo. No instrument or quasi-experiment is available and none is used.1213\paragraph{Model D (H5).} On the grocery universe we compute, weekly, (a) the naive mean and median of posted prices, (b) a chained Jevons matched-model index (geometric mean of week-on-week ratios over listings present in both weeks), (c) fixed-basket Dutot, Carli and Jevons indices over listings present in all eleven weeks, with equal item weights, and (d) unit-price versions. No expenditure weights exist, so none of these is a consumer price index and we do not call them one. The gap between (a) and (b) is bootstrapped over listings. Because the package label is stored as current state only, within-listing size changes cannot be observed; the H5 test is therefore restricted to the composition (assortment) channel. Statistics Canada's CPI for food purchased from stores in Quebec (table 18-10-0004-01) is compared over the two months of overlap, August to September 2026, as a check of coherence, not of superiority.1415\paragraph{Model E (H6).} A 30-item basket with reference quantities was fixed before any basket cost was computed (\texttt{config/basket.yaml}). Items are mapped to listings by category and name rule; listings with a unit price outside one quarter to four times the item's cross-banner median are dropped (A-002). For each week, the item cost at a banner is the cheapest unit price times the reference quantity. Under A-001 the banner set is the $B$ widest-coverage storefront banners and the item set the items all of them carry that week ($B=5$ primary: Super~C, Metro, Giant Tiger, Walmart, Marché Nuvo or IGA depending on the week; $B=4,6,7$ in sensitivity), so that the single-banner problem is feasible without imputation. The mixed-integer program assigns each item to one banner, opens at most $K$ banners, and minimises cost; $K=1$ is the best single banner, $K=B$ the unconstrained optimum. Travel costs, store access, loyalty programmes and stock are unobserved; a fixed cost per banner visited of 5, 10 and 20~CAD is added as a labelled illustration. For the QGPAI trajectory a block that is constant over weeks (five banners, ten items) is used.1617\paragraph{Model F.} Next-week log posted price and next-week promotion state of storefront listings are forecast with strict rolling origins ($t=6,\dots,9$; train on weeks $\le t-1$, test on week $t$), lag-only features, and four model classes: last value, banner$\times$category drift, ridge regression, gradient-boosted trees; a logistic model and a persistence rule for the promotion target. Metrics are MAE/RMSE and Brier/AUC.1819\paragraph{Multiple testing.} The six families H1--H6 each carry one or two primary tests; Holm's correction is applied across them (Table~\ref{tab:holm}).20
Files · d30943f78eae7d22f8853c59eb510db6a876bb6b
Menu

Theme