In implementing the RD design pattern **on the same data for the same problem**, we have used: - [[Statistical modeling of RD|a statistical model]] - [[(Double) Machine learning using RD|machine learning]] - [[RD the Bayesian way|Bayesian estimation]] We motivated the problem using the same [[Data and conceptual model (RD)|data and conceptual model]] and solved it using both `R` and `Python` ([[Replication of RD in Python|here]]). What have we learned from this exercise? As long as the [[Local identification by a cutoff|continuity assumption]] holds and the running variable is not manipulated at the cutoff, the results are consistent across the board. The naïve comparison gave us \$2,101 — a number that bundles the true effect of Platinum Status with the inherent differences between high- and low-spending customers. The local polynomial estimate at the cutoff settled at \$1,567 (95% CI [\$1,497, \$1,668]), close to the ground truth of \$1,500 from the [[Synthetic data for the RDD|data generating process]]. The DoubleML estimates with `RDFlex` and linear covariate adjustment stayed close to the baseline, and the LGBM-adjusted estimate landed at \$1,561. The Bayesian posterior mean of \$1,574 (95% HDI [\$1,506, \$1,643]) settled in the same neighborhood. Once the design is right, the method choice barely moves the point estimate. Where the methods *do* differ is in what each one buys you on top of identification. [[(Double) Machine learning using RD|DoubleML in the RD pattern]] plays a narrower role than it did in the [[(Double) Machine learning using IV|IV pattern]]: identification already rests on continuity at the cutoff, so the ML step does not rescue a weak RD design or change the identifying assumption; it ideally absorbs residual variance to tighten the standard error. In our case, it did not because the running variable already explains most of the variation in `future_spending` and `rdrobust` already uses local polynomial regression around the cutoff. We discuss why the precision gain disappears in [[Oh my! DoubleML is worse for the RD design]]. [[RD the Bayesian way|Bayesian estimation]] adds what a confidence interval cannot: direct probability statements about the treatment effect, and a way to visualize heterogeneity through full posterior distributions across markets. The most important lesson from the [[patterns/iv/Key takeaways|IV chapter]] holds here as well: estimation methods matter less than the conceptual model, data, and assumptions. In RD, those assumptions take a specific form: continuity of potential outcomes at the cutoff and no precise manipulation of the running variable. There is also a lesson unique to RD: **the estimate is inherently local**. The IV design pattern delivers a [[Local Average Treatment Effect|LATE]] for compliers — those whose treatment status is moved by the instrument. The RD design pattern delivers a [[Local Average Treatment Effect|treatment effect at the cutoff]] — the effect for customers near the \$10,000 threshold. Both are local, but in different senses. IV-local is local in *population* (which units the effect applies to); RD-local is local in *covariate space* (where on the running variable the effect is identified). A \$1,567 jump at \$10,000 of past spending tells us nothing direct about the effect of Platinum Status for a customer who spent \$3,000 or \$25,000. External validity is the main limitation of the RD design pattern, and any business decision that extrapolates this cutoff-local estimate to customers far from the threshold is making an assumption the data do not support. > [!info]- Last updated: May 14, 2026