↖︎ Vishal Singh

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

0 liters

Orders stopped. The three consistently traded Russian-produced SKUs record no wholesale liters in the twelve weeks after the event.

−86%

The relative estimate is large. The 95% interval runs from −93% to −74% against 44 imported-vodka control SKUs.

Not demand

The state removed supply. Retailers could sell inventory already on hand, which the wholesale table cannot observe.

Identification decision

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
Figure 1. The other imported-vodka and Latvian Stoli series remain active while the listed Russian-produced series goes to zero. Indexing makes trajectories comparable; it does not imply equal market size.

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
Figure 2. The pre-event gaps warn against treating a single before/after date as frictionless. The regression averages 26 weeks on each side and includes SKU and calendar-week fixed effects.

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

−86.4%estimated relative change
95% CI: −93.0% to −73.6%
CRV1 standard errors clustered by SKU
termlog coef.SE

Primary estimate and validation checks

Transformed percent effects with 95% intervals · vertical line = zero

Figure 3. The placebo centered six months earlier is imprecise and includes zero. Restricting treatment to the two SKUs active closest to the event yields a similar −85% point estimate.

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
Figure 4. Wide intervals reflect a small treated set and lumpy SKU orders. This is an important contrast with the sharp raw zero: deterministic policy compliance can coexist with weak evidence about counterfactual demand.
Scale check. The Gazette reported roughly $95,000 of Russian vodka sales in the prior twelve months versus more than $93 million for all vodka—about one-tenth of one percent. The policy was symbolically visible but economically tiny in Iowa.

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

  1. Name the estimand.

    Does β capture consumer sentiment, delisting compliance, availability, or the combined regime? Which wording is defensible?

  2. Choose the event date.

    Would you use February 24, February 28, the last observed order, or a distributed anticipation window? What assumption changes?

  3. Assess the controls.

    Are all imported-vodka SKUs credible counterfactuals? How would matching on pre-volume, price, or distribution alter the design?

  4. 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?

  5. 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.