How to use covariates that the treatment itself may change in difference‑in‑differences studies
This paper looks at a practical problem in difference‑in‑differences studies. Researchers often compare groups over time and adjust for other variables (covariates) to make the comparison fairer. But some covariates—like a worker’s occupation, industry, or union status—can themselves be changed by the treatment. These are called “bad controls.” Including them directly can bias results. Simply dropping them can also be problematic because it changes the original comparison the researcher intended.
The authors develop two alternative ways to make bad controls useful rather than harmful. The first gives clear conditions under which it is enough to control only for the pre‑treatment value of the covariate (for example, a worker’s occupation before a job loss). That idea lines up with an existing estimator from Callaway and Sant’Anna (2021) if you use the pre‑treatment covariate as the control. The second approach assumes an extra condition called covariate unconfoundedness and then uses imputation and doubly robust or double/debiased machine‑learning methods to recover the average treatment effect on the treated (ATT). At a high level, both new approaches first treat the bad control as if it were an outcome and estimate how the treatment would change it. They then use that estimate to reconstruct what the covariate would have been without treatment and plug that into the usual parallel‑trends logic.
Why this matters: many applied studies either include bad controls and risk bias, or drop them and change the identifying assumption. The paper shows those common choices can be wrong and gives practical alternatives. The authors also extend their methods to cases where treatment is adopted at different times by different units (staggered adoption), provide pre‑tests for the assumptions, and supply an R package (badcontrols) and supplementary appendix so others can try the methods.