class: center, middle, inverse, title-slide # Module 3: Medicare Advantage Quality and Regression Discontinuity ## Part 1: MA Data and Quality Measurement ### Ian McCarthy | Emory University ### Econ 470 & HLTH 470 --- <!-- Adjust some CSS code for font size and maintain R code font size --> <style type="text/css"> .remark-slide-content { font-size: 30px; padding: 1em 2em 1em 2em; } .remark-code { font-size: 15px; } .remark-inline-code { font-size: 20px; } </style> <!-- Set R options for how code chunks are displayed and load packages --> # What is Medicare Advantage - Private provision of health insurance for Medicare beneficiaries - Medicare "replacement" plans <br> -- - It's just private insurance for those eligible for Medicare --- # Medicare Advantage History - Existed since 1980s, formalized in the 1990s, expanded in 2000s - Medicare+Choice as part of Balanced Budget Act in 1997 - Largest expansion: Medicare Modernization Act in 2003 (also brought Medicare Part D) --- # Medicare Advantage Details In its current form... - Insurers submit plan details and a price needed to cover traditional Medicare ("bid") - If approved, Medicare pays risk-adjusted bid *or* benchmark - Bid `\(<\)` benchmark, insurer gets a rebate - Bid `\(>\)` benchmark, insurer charges premium - Seperate bidding for Part D --- # Medicare Advantage in Real Life Let's take a look at the Medicare Advantage plan options... -- <br> [Medicare Plan Finder](https://www.medicare.gov/plan-compare/) --- # Medicare Advantage Quality Ratings - Initial MA Star Ratings (2007) - Overall rating introduced in 2009 - Complicated formula... -- - **key point:** ratings from several domains are averaged and then rounded - More details available [here](https://www.cms.gov/Medicare/Prescription-Drug-Coverage/PrescriptionDrugCovGenIn/PerformanceData) --- # Role of Quality Ratings - Potentially affect plan choice - Quality bonus program in 2012 - Demonstration program at first (2012 through 2015) - ACA quality bonus payments begin 2015 --- # Details of QBP Eligible plans may receive two bonuses: 1. Benchmark bonus: Increased benchmark payment of up to 5\% 2. Rebate bonus: Share of bid-benchmark differential going back to insurer (from 50% up to 70%) -- - Applied to plans with 3-stars and above from 2012-2015 (demonstration period) - Applied to plans with 4-stars and above beginning 2015 --- # Some good primers - [KFF Bonus Payment Illustration](pics/kff-illustration.pdf) - [2021 Star Ratings and Bonus Payments](https://www.kff.org/medicare/issue-brief/medicare-advantage-in-2021-star-ratings-and-bonuses/) --- # Medicare Advantage Data - Recall the Medicare Advantage repository, [Medicare Advantage GitHub repository](https://github.com/imccart-test/ma) -- - Now we need to work with the **final** dataset --- # Final MA Data ```r ma.data <- read_rds(here("data/final_ma_data.rds")) ``` --- # Summary stats Focus on enrollments and star ratings: ```r stargazer(as.data.frame(ma.data %>% select(avg_enrollment, avg_eligibles, Star_Rating)), type="html") ``` <table style="text-align:center"><tr><td colspan="8" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Statistic</td><td>N</td><td>Mean</td><td>St. Dev.</td><td>Min</td><td>Pctl(25)</td><td>Pctl(75)</td><td>Max</td></tr> <tr><td colspan="8" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">planid</td><td>895,495</td><td>35.849</td><td>69.789</td><td>1</td><td>4</td><td>41</td><td>999</td></tr> <tr><td style="text-align:left">avg_enrollment</td><td>204,173</td><td>397.404</td><td>1,578.641</td><td>11.000</td><td>31.250</td><td>231.667</td><td>63,234.080</td></tr> <tr><td style="text-align:left">avg_eligibles</td><td>749,267</td><td>42,587.920</td><td>98,741.840</td><td>11.571</td><td>3,798.000</td><td>37,116.570</td><td>1,355,734.000</td></tr> <tr><td style="text-align:left">Star_Rating</td><td>448,793</td><td>3.307</td><td>0.783</td><td>1.500</td><td>2.500</td><td>4.000</td><td>5.000</td></tr> <tr><td colspan="8" style="border-bottom: 1px solid black"></td></tr></table> --- # Clean the data Limit to plans with: - Observed enrollments, `\(>\)` 10 - First year of star rating (2009) - Observed star rating -- <br> ```r ma.data.clean <- ma.data %>% * filter(!is.na(avg_enrollment) & year==2009 & !is.na(partc_score)) ``` --- # Calculate raw average rating ```r ma.data.clean <- ma.data.clean %>% mutate(raw_rating=rowMeans( cbind(breastcancer_screen,rectalcancer_screen,cv_cholscreen,diabetes_cholscreen, glaucoma_test,monitoring,flu_vaccine,pn_vaccine,physical_health, mental_health,osteo_test,physical_monitor,primaryaccess, hospital_followup,depression_followup,nodelays,carequickly, overallrating_care,overallrating_plan,calltime, doctor_communicate,customer_service,osteo_manage, diabetes_eye,diabetes_kidney,diabetes_bloodsugar, diabetes_chol,antidepressant,bloodpressure,ra_manage, copd_test,betablocker,bladder,falling,appeals_timely, appeals_review), na.rm=T)) %>% select(contractid, planid, fips, avg_enrollment, first_enrollment, last_enrollment, state, county, raw_rating, partc_score, avg_eligibles, avg_enrolled, premium_partc, risk_ab, Star_Rating, bid, avg_ffscost, ma_rate) ``` --- # Distribution of star ratings ```r ma.data.clean %>% ggplot(aes(x=as.factor(Star_Rating))) + geom_bar() + labs( x="Star Rating", y="Count of Plans", title="Frequency Distribution of Star Ratings" ) + theme_bw() ``` .plot-callout[ <img src="03-ma-quality1_files/figure-html/rating-count-callout-1.png" style="display: block; margin: auto;" /> ] --- # Distribution of star ratings <img src="03-ma-quality1_files/figure-html/rating-count-output-1.png" style="display: block; margin: auto;" /> --- # Enrollments and star ratings ``` ## ## Call: ## lm(formula = avg_enrollment ~ factor(Star_Rating), data = ma.data.clean) ## ## Residuals: ## Min 1Q Median 3Q Max ## -627 -388 -214 -51 41908 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 87.31 43.32 2.016 0.04387 * ## factor(Star_Rating)2 32.75 50.62 0.647 0.51758 ## factor(Star_Rating)2.5 194.65 47.15 4.128 3.67e-05 *** ## factor(Star_Rating)3 433.95 49.84 8.707 < 2e-16 *** ## factor(Star_Rating)3.5 470.91 53.47 8.808 < 2e-16 *** ## factor(Star_Rating)4 552.30 57.91 9.538 < 2e-16 *** ## factor(Star_Rating)4.5 272.36 82.68 3.294 0.00099 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 1440 on 17451 degrees of freedom ## Multiple R-squared: 0.01559, Adjusted R-squared: 0.01526 ## F-statistic: 46.07 on 6 and 17451 DF, p-value: < 2.2e-16 ```