Arte SheetsLearn. Try. Understand.

Econometrics & Causal Inference

Sharp and Fuzzy Regression Discontinuity (RDD) Local Jump Formula

Estimate local linear Regression Discontinuity cutoff intercepts INTERCEPT(Y, X - c) from both sides of threshold c and compute the Fuzzy RDD jump ratio tau_FRD.

Never compare raw bin averages across a running-variable cutoff without detrending!

When scholarship, credit-limit, or clinical-statin eligibility triggers at score cutoff c = 70, comparing the raw average of scores [70, 75] against [65, 69] confounds the treatment jump with the natural upward slope of outcome Y on running variable X! Local linear Regression Discontinuity (Hahn, Todd, & Van der Klaauw, 2001) centers X_tilde = X - c and fits separate linear regressions on [c - h, c) and [c, c + h]: their intercepts alpha_+ = INTERCEPT(Y_+, X_+ - c) and alpha_- = INTERCEPT(Y_-, X_- - c) extrapolate cleanly to X = c, giving Sharp RDD jump tau_SRD = alpha_+ - alpha_-!

Check by hand around cutoff c = 70 (H2 = 70) with slope 2.0 on both sides: Left bandwidth X_- = {66, 67, 68, 69} (A2:A5) has outcomes Y_- = {52, 54, 56, 58} (B2:B5) and uptake D_- = {0.10, 0.10, 0.10, 0.10} (C2:C5); Right bandwidth X_+ = {70, 71, 72, 73} (A6:A9) has outcomes Y_+ = {66, 68, 70, 72} (B6:B9) and uptake D_+ = {0.90, 0.90, 0.90, 0.90} (C6:C9). Naive difference of means is 69 - 55 = +14.00 (overstated by +8.00 slope bias!), whereas centered left intercept at X = 70 is alpha_- = 60.00 and right intercept is alpha_+ = 66.00 -> Sharp jump tau_SRD = +6.00, and Fuzzy RDD scales by uptake jump (0.90 - 0.10 = 0.80) to tau_FRD = 6.00 / 0.80 = +7.5000!

RDD Estimator at Cutoff c = 70Formula ExpressionSample Output
Naive Bin-Mean Difference (Bug)AVERAGE(Y_+) - AVERAGE(Y_-)+14.0000 (Slope-biased by +8.00!)
Left & Right Cutoff LimitsINTERCEPT(Y_-, X_- - c) vs INTERCEPT(Y_+, X_+ - c)60.0000 vs 66.0000
Sharp RDD Intent Jump tau_SRDalpha_+ - alpha_-+6.0000
Fuzzy RDD Local Wald Jump tau_FRD(alpha_{Y,+} - alpha_{Y,-}) / (alpha_{D,+} - alpha_{D,-})+7.5000 (Jump_D = 0.80)

Local Linear Sharp RDD Cutoff Discontinuity tau_SRD Formula

Center running variable X_i - c in column D so INTERCEPT(B6:B9, D6:D9) minus INTERCEPT(B2:B5, D2:D5) evaluates the exact jump at X = c.

=ROUND(INTERCEPT(B6:B9, D6:D9) - INTERCEPT(B2:B5, D2:D5), 4)

Fuzzy RDD Local Wald Ratio tau_FRD Formula

Divide the local linear outcome jump by the local linear treatment-probability jump at X = c. Verify that under deterministic Sharp assignment (set C2:C5 = 0 and C6:C9 = 1), Jump_D = 1.0000 and Fuzzy RDD equals Sharp RDD (+6.0000) identically!

=LET(jmp_y, INTERCEPT(B6:B9, D6:D9) - INTERCEPT(B2:B5, D2:D5), jmp_d, INTERCEPT(C6:C9, D6:D9) - INTERCEPT(C2:C5, D2:D5), IF(jmp_d <= 0.05, "No Cutoff Uptake Jump", ROUND(jmp_y / jmp_d, 4)))

Try the example

Use the original values or change them to test your understanding.

Further reading