Data Teaching Case · Difference in Differences
The week Russian vodka vanished
Iowa’s 2022 delisting creates a stronger comparison than COVID—but the regression measures wholesale availability, not patriotism, preferences, or harm to Russia.
Executive Summary
Orders stopped. The three consistently traded Russian-produced SKUs record no wholesale liters in the twelve weeks after the event.
The relative estimate is large. The 95% interval runs from −93% to −74% against 44 imported-vodka control SKUs.
The state removed supply. Retailers could sell inventory already on hand, which the wholesale table cannot observe.
What exactly did the boycott cause?
Russia invaded Ukraine on February 24, 2022. Four days later, Iowa ordered Russian-produced liquor off its wholesale purchase list. The treated series collapses. Decide whether that identifies consumer rejection, government compliance, supply removal, anticipatory retailer behavior—or some combination.
The shock had unusually clear timing and an explicit product list. Iowa identified 17 Russian-produced brands for delisting, while allowing bars, restaurants, and retailers to sell existing inventory. The public data sits at the state-to-retailer wholesale link, exactly where the policy operated. That makes the outcome unusually well aligned with the intervention—and unusually easy to mislabel as consumer demand.
The policy date, 17-brand list, and sell-through rule are documented by Iowa Capital Dispatch and The Gazette.
1 · A treated series with a plausible comparison
The three treated SKUs are Russian Standard Original, Russian Standard Platinum, and Quadro. The control pool contains 44 imported-vodka SKUs with at least 40 positive pre-event weeks and recent activity. Stoli is separated in the chart because its Russian-sounding name created brand confusion even though the product was made in Latvia and not on Iowa’s delisting list.
Imported-vodka orders around the invasion and Iowa delisting
Four-week rolling liters indexed to the 13-week pre-event average · event week starts Feb. 21, 2022
Open weekly group table
This is a clean effect on the state’s wholesale channel precisely because the state controlled that channel.
2 · The timing contains anticipation
The last recorded orders for Russian Standard Original and Quadro occur in the week of February 14, before the invasion. Platinum’s last order is earlier still. Wholesale orders are lumpy, so a missing week is not decisive—but the intervention is not a perfectly unanticipated switch at midnight on February 28.
For the main regression, week 0 contains the February 24 invasion. “Post” begins the following week, when Iowa’s February 28 order took effect. The design therefore estimates the combined invasion, boycott, and delisting regime rather than a pure policy coefficient.
Last observed wholesale order for treated SKUs
Weeks relative to the invasion week · policy announced one week later
Open treated SKU table
3 · The fixed-effects estimate
Each observation is a SKU-week, including explicit zeros when an eligible SKU has no order. SKU fixed effects absorb permanent differences in scale; week fixed effects absorb market-wide shocks common to imported vodka. The coefficient asks whether treated SKUs changed more after the event than control SKUs did in the same weeks.
log(1 + litersit) = αSKU + λweek + β(treatedi × postt) + εit
95% CI: −93.0% to −73.6%
CRV1 standard errors clustered by SKU
| term | log coef. | SE |
|---|
Primary estimate and validation checks
Transformed percent effects with 95% intervals · vertical line = zero
4 · Event-study dynamics expose the weakness
Four-week bins show consistently negative post-event coefficients, but the pre-event estimates are noisy. Only three treated SKUs support the main model, and one had already stopped ordering several weeks before the invasion. The pooled post coefficient is clear; fine-grained timing and pretrend evidence are not.
Four-week event-study coefficients
Log(1 + liters) points relative to weeks −4 through −1 · 95% intervals · SKU and week fixed effects
Open event coefficient table
5 · The Stoli counterexample
Stolichnaya sounded Russian but was produced in Latvia. It continued to appear in Iowa wholesale orders and rebranded as Stoli in March 2022 to distance itself from Russia. This is a useful classification lesson: country associations, ownership, production origin, and policy treatment are different variables.
Stoli’s production and rebrand rationale are described in the company’s March 2022 statement.
Teaching questions
- Name the estimand.
Does β capture consumer sentiment, delisting compliance, availability, or the combined regime? Which wording is defensible?
- Choose the event date.
Would you use February 24, February 28, the last observed order, or a distributed anticipation window? What assumption changes?
- Assess the controls.
Are all imported-vodka SKUs credible counterfactuals? How would matching on pre-volume, price, or distribution alter the design?
- Handle few treated clusters.
With only three treated SKUs, how much confidence should conventional cluster-robust intervals carry? What randomization or permutation test could help?
- Separate symbolism from magnitude.
How should a manager or policymaker evaluate an intervention that produces nearly perfect channel compliance but affects only 0.1% of category dollars?
Data & methods
- Source. `bigquery-public-data.iowa_liquor_sales.sales`, extracted July 10, 2026. Rows are wholesale orders by Iowa Class E licensees.
- Panel. Monday-starting weeks, January 2020 through December 2022. Main window is 26 weeks before through 26 weeks after the February 21 invasion week.
- Treated SKUs. Russian Standard Original (35109), Russian Standard Platinum (35427), and Quadro (934678). Other listed products were too sparse for the balanced panel.
- Controls. Forty-four imported-vodka SKUs with at least 40 positive pre-event weeks, first observed by June 2020, and active no earlier than four weeks before the event cutoff.
- Outcome. `log(1 + weekly liters)`. Missing SKU-weeks are zero-filled after constructing the eligible panel.
- Model. PyFixest OLS with SKU and calendar-week fixed effects; CRV1 standard errors clustered by SKU. The main post period begins February 28.
- Checks. A placebo event on August 23, 2021 and a sensitivity model excluding Platinum, the treated SKU with the earliest last order.
- Caveats. Three treated clusters; lumpy wholesale cadence; possible anticipation; product delisting mechanically constrains the outcome; no observation of retail sell-through or consumer inventory.
- Reproducibility. Executed notebook: `data/iowa-liquor-events/iowa_event_studies.ipynb`; generated payload and regression tables: `scripts/iowa_event_studies_analyze.py`.
External context: Iowa Capital Dispatch; The Gazette; PyFixest documentation.