Medicare GLP-1 Spending by Prescriber State — 2024 CMS Data
By the WPG Research Team · Weight Loss Provider Guide Research
Weight Loss Provider Guide Research is the self-funded, independent research and reference section of Weight Loss Provider Guide. This page has no affiliate links, product recommendations, advertisements, calls to action, forms, or commercial widgets.
Last verified: August 1, 2026 · Dataset version 1.0.0 · Primary data years: 2024, with a 2023 comparison layer
This page reports CMS Medicare Part D gross drug costs for included standalone GLP-1 receptor agonist products and tirzepatide, grouped by the state where the prescribing provider is located. It is a reproducible 2024 data reference with a 2023 comparison layer, not an estimate of net Medicare payments or obesity-treatment spending.
Headline findings
- Included products generated $27,503,414,515.35 in CMS-reported gross Medicare Part D drug costs nationally in 2024.
- The included products accounted for 21,825,833 claims and 29,286,812.4 standardized 30-day fills.
- Gross cost increased 23.8666% from 2023 to 2024; claims increased 34.4844%; standardized 30-day fills increased 28.7122%.
- Average gross cost per claim fell 7.8952%, from $1,368.15 to $1,260.13. Average gross cost per standardized 30-day fill fell 3.7647%, from $975.84 to $939.11. These are arithmetic ratios, not net-price measures.
- The 50 states and District of Columbia accounted for $27,365,405,390.12, or 99.4982% of the national total.
- Texas recorded the highest state total at $2,389,558,046.92, followed by California, New York, and Florida.
- Ozempic was the largest included product nationally at $12,965,808,790.00, or 47.1425% of the included national total, and was largest in every state and D.C.
Source: Weight Loss Provider Guide Research calculations from CMS 2023 and 2024 Geography and Drug files; see the primary sources below.
What “spending by state” means
The state field is prescriber geography, not beneficiary residence. CMS defines Prscrbr_Geo_Desc as the state where the provider is located, as reported in NPPES. A state total therefore means gross Part D drug costs attached to prescriptions attributed to prescribers located in that state.
The Tot_Drug_Cst field is gross total drug cost, not a direct measure of Medicare Trust Fund payments and not net spending after rebates. CMS says it includes ingredient cost, dispensing fees, sales tax, applicable administration fees, and amounts paid by the Part D plan, the beneficiary, government subsidies, and other third-party payers. Manufacturer rebates are not reflected.
Included product scope
The headline scope includes standalone GLP-1 receptor agonist products and tirzepatide, which FDA describes as a GIP and GLP-1 receptor agonist. The build uses the CMS brand rows present in each data year.
2024 included CMS rows
Trulicity; Byetta; Bydureon Bcise; Liraglutide; Victoza 2-Pak; Victoza 3-Pak; Ozempic; Rybelsus; Wegovy; Mounjaro; Zepbound.
2023 included CMS rows
Trulicity; Byetta; Bydureon Bcise; Bydureon Pen; Saxenda; Victoza 2-Pak; Victoza 3-Pak; Ozempic; Rybelsus; Wegovy; Mounjaro.
Excluded from the headline total
Xultophy 100-3.6 and Soliqua 100-33 are fixed-ratio insulin/GLP-1 combination products. They are excluded so the entire combination-product cost is not labeled as GLP-1-only spending. Including those two rows would add $391,312,777.27 and produce a broader 2024 total of $27,894,727,292.62.
Saxenda and Adlyxin did not have reportable national rows in the 2024 CMS geography file. Their absence should not be described as a confirmed zero.
2024 Medicare GLP-1 spending by state and D.C.
This table contains all 50 states and the District of Columbia, ranked by included 2024 gross drug cost. The 2023 comparison column is represented by the year-over-year change percentage. Age-65-plus shares marked “lower bound” are incomplete because CMS suppressed one or more product-level age fields.
| Rank | State | 2024 gross cost | 2024 vs. 2023 | Claims | 30-day fills | Cost / claim | National share | Largest product | Age 65+ note |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Texas (TX) | $2,389,558,046.92 | 22.14% | 1,811,427 | 2,526,911.3 | $1,319.16 | 8.69% | No lower-bound flag | |
| 2 | California (CA) | $2,166,712,452.09 | 22.68% | 1,865,079 | 2,425,412.7 | $1,161.73 | 7.88% | Reported share is a lower bound | |
| 3 | New York (NY) | $1,914,123,603.22 | 17.82% | 1,473,609 | 2,042,335.7 | $1,298.94 | 6.96% | Reported share is a lower bound | |
| 4 | Florida (FL) | $1,852,634,060.05 | 32.07% | 1,448,671 | 1,968,327.6 | $1,278.85 | 6.74% | No lower-bound flag | |
| 5 | Pennsylvania (PA) | $1,252,118,339.84 | 24.52% | 1,020,975 | 1,343,482.0 | $1,226.39 | 4.55% | Reported share is a lower bound | |
| 6 | Ohio (OH) | $1,064,825,842.14 | 21.74% | 851,928 | 1,131,707.2 | $1,249.90 | 3.87% | No lower-bound flag | |
| 7 | North Carolina (NC) | $1,051,442,919.48 | 20.17% | 836,270 | 1,110,413.1 | $1,257.30 | 3.82% | No lower-bound flag | |
| 8 | Michigan (MI) | $1,003,501,060.52 | 24.50% | 768,388 | 1,071,658.6 | $1,305.98 | 3.65% | No lower-bound flag | |
| 9 | Georgia (GA) | $970,231,671.33 | 27.66% | 755,901 | 1,017,984.0 | $1,283.54 | 3.53% | No lower-bound flag | |
| 10 | Illinois (IL) | $909,477,717.94 | 24.73% | 702,606 | 968,687.1 | $1,294.43 | 3.31% | No lower-bound flag | |
| 11 | Indiana (IN) | $734,609,050.11 | 24.57% | 559,402 | 766,713.8 | $1,313.20 | 2.67% | Reported share is a lower bound | |
| 12 | Tennessee (TN) | $722,394,133.60 | 20.14% | 577,179 | 764,515.6 | $1,251.59 | 2.63% | No lower-bound flag | |
| 13 | New Jersey (NJ) | $679,214,643.74 | 26.27% | 503,609 | 722,973.4 | $1,348.69 | 2.47% | Reported share is a lower bound | |
| 14 | Massachusetts (MA) | $645,766,913.74 | 18.69% | 525,777 | 679,244.9 | $1,228.21 | 2.35% | Reported share is a lower bound | |
| 15 | Alabama (AL) | $628,421,429.18 | 22.85% | 514,398 | 654,334.3 | $1,221.66 | 2.28% | No lower-bound flag | |
| 16 | Louisiana (LA) | $601,299,230.53 | 24.70% | 498,804 | 625,114.6 | $1,205.48 | 2.19% | No lower-bound flag | |
| 17 | Missouri (MO) | $596,277,123.67 | 21.93% | 481,113 | 624,450.2 | $1,239.37 | 2.17% | No lower-bound flag | |
| 18 | Virginia (VA) | $569,763,663.48 | 29.11% | 443,694 | 613,192.6 | $1,284.14 | 2.07% | No lower-bound flag | |
| 19 | South Carolina (SC) | $555,486,402.88 | 31.21% | 427,181 | 585,047.2 | $1,300.35 | 2.02% | No lower-bound flag | |
| 20 | Kentucky (KY) | $525,185,536.41 | 21.09% | 436,402 | 561,445.2 | $1,203.44 | 1.91% | No lower-bound flag | |
| 21 | Arizona (AZ) | $490,115,749.04 | 26.52% | 366,689 | 520,637.9 | $1,336.60 | 1.78% | No lower-bound flag | |
| 22 | Wisconsin (WI) | $460,743,019.69 | 21.03% | 371,741 | 486,138.3 | $1,239.42 | 1.68% | No lower-bound flag | |
| 23 | Washington (WA) | $426,808,649.55 | 25.21% | 336,462 | 457,543.1 | $1,268.52 | 1.55% | No lower-bound flag | |
| 24 | Oklahoma (OK) | $415,918,220.95 | 23.68% | 349,885 | 435,723.1 | $1,188.73 | 1.51% | Reported share is a lower bound | |
| 25 | Maryland (MD) | $407,214,396.70 | 31.32% | 289,814 | 437,802.1 | $1,405.09 | 1.48% | Reported share is a lower bound | |
| 26 | Minnesota (MN) | $388,948,962.69 | 23.11% | 307,550 | 416,034.5 | $1,264.67 | 1.41% | Reported share is a lower bound | |
| 27 | Connecticut (CT) | $355,719,928.98 | 21.73% | 265,056 | 367,928.6 | $1,342.06 | 1.29% | No lower-bound flag | |
| 28 | Mississippi (MS) | $310,337,401.65 | 20.82% | 249,278 | 330,166.6 | $1,244.95 | 1.13% | Reported share is a lower bound | |
| 29 | Colorado (CO) | $297,018,432.29 | 30.42% | 232,148 | 315,376.1 | $1,279.44 | 1.08% | No lower-bound flag | |
| 30 | Arkansas (AR) | $290,620,912.56 | 25.48% | 253,572 | 308,195.3 | $1,146.11 | 1.06% | No lower-bound flag | |
| 31 | Iowa (IA) | $268,489,998.14 | 23.22% | 231,196 | 288,580.4 | $1,161.31 | 0.98% | No lower-bound flag | |
| 32 | West Virginia (WV) | $254,329,563.68 | 17.85% | 195,091 | 269,339.9 | $1,303.65 | 0.92% | No lower-bound flag | |
| 33 | Oregon (OR) | $248,008,906.71 | 24.70% | 203,289 | 269,218.7 | $1,219.98 | 0.90% | No lower-bound flag | |
| 34 | Kansas (KS) | $238,404,828.19 | 19.80% | 204,187 | 252,928.6 | $1,167.58 | 0.87% | No lower-bound flag | |
| 35 | Nevada (NV) | $212,188,803.41 | 30.12% | 154,929 | 223,568.8 | $1,369.59 | 0.77% | Reported share is a lower bound | |
| 36 | Utah (UT) | $158,975,004.92 | 38.73% | 129,608 | 165,152.6 | $1,226.58 | 0.58% | Reported share is a lower bound | |
| 37 | New Mexico (NM) | $146,977,521.13 | 22.31% | 118,562 | 157,331.0 | $1,239.67 | 0.53% | Reported share is a lower bound | |
| 38 | Nebraska (NE) | $143,249,620.34 | 26.74% | 127,225 | 152,686.3 | $1,125.95 | 0.52% | Reported share is a lower bound | |
| 39 | Idaho (ID) | $139,963,423.30 | 20.22% | 118,560 | 149,140.2 | $1,180.53 | 0.51% | Reported share is a lower bound | |
| 40 | Maine (ME) | $131,435,516.02 | 21.73% | 104,905 | 141,539.9 | $1,252.90 | 0.48% | No lower-bound flag | |
| 41 | New Hampshire (NH) | $106,803,416.49 | 23.68% | 82,446 | 113,077.5 | $1,295.43 | 0.39% | Reported share is a lower bound | |
| 42 | Delaware (DE) | $100,712,258.64 | 21.83% | 67,256 | 106,953.2 | $1,497.45 | 0.37% | Reported share is a lower bound | |
| 43 | Hawaii (HI) | $99,573,068.61 | 27.93% | 65,437 | 106,111.4 | $1,521.66 | 0.36% | No lower-bound flag | |
| 44 | Rhode Island (RI) | $74,809,355.03 | 28.47% | 67,017 | 79,653.1 | $1,116.27 | 0.27% | Reported share is a lower bound | |
| 45 | Montana (MT) | $68,199,384.44 | 18.39% | 58,251 | 74,515.0 | $1,170.78 | 0.25% | Reported share is a lower bound | |
| 46 | South Dakota (SD) | $64,404,898.82 | 23.18% | 56,047 | 68,493.7 | $1,149.12 | 0.23% | No lower-bound flag | |
| 47 | North Dakota (ND) | $61,477,698.34 | 24.23% | 53,339 | 65,117.5 | $1,152.58 | 0.22% | No lower-bound flag | |
| 48 | Vermont (VT) | $50,141,046.25 | 9.92% | 41,065 | 54,067.9 | $1,221.02 | 0.18% | Reported share is a lower bound | |
| 49 | District of Columbia (DC) | $45,120,025.45 | 30.11% | 34,054 | 47,826.7 | $1,324.96 | 0.16% | Reported share is a lower bound | |
| 50 | Alaska (AK) | $44,309,338.74 | 16.13% | 33,832 | 47,423.9 | $1,309.69 | 0.16% | No lower-bound flag | |
| 51 | Wyoming (WY) | $31,342,198.50 | 24.09% | 27,116 | 33,672.6 | $1,155.86 | 0.11% | No lower-bound flag |
Source: medicare_glp1_spending_by_state_2024.csv, generated from CMS 2024 and 2023 Geography and Drug files. State attribution is prescriber location, not beneficiary residence; costs are gross Part D drug costs before rebates.
National product totals
Ozempic, Mounjaro, and Trulicity together represented the large majority of the included national gross cost. Product-specific beneficiary counts must not be summed into a unique class-wide user count.
| Rank | Product | Generic name | Gross cost | National share | Claims | 30-day fills | Cost / fill |
|---|---|---|---|---|---|---|---|
| 1 | Ozempic | Semaglutide | $12,965,808,790.00 | 47.1425% | 10,413,554 | 14,353,450.6 | $903.32 |
| 2 | Mounjaro | Tirzepatide | $6,334,739,184.50 | 23.0326% | 5,103,556 | 6,093,348.5 | $1,039.62 |
| 3 | Trulicity | Dulaglutide | $5,452,031,863.50 | 19.8231% | 4,303,409 | 5,748,807.1 | $948.38 |
| 4 | Rybelsus | Semaglutide | $1,889,261,890.80 | 6.8692% | 1,251,182 | 2,063,083.7 | $915.75 |
| 5 | Wegovy | Semaglutide | $301,160,733.76 | 1.0950% | 211,490 | 226,122.8 | $1,331.85 |
| 6 | Bydureon Bcise | Exenatide Microspheres | $215,268,333.69 | 0.7827% | 178,845 | 266,630.5 | $807.37 |
| 7 | Victoza 3-Pak | Liraglutide | $203,005,402.52 | 0.7381% | 181,011 | 289,491.9 | $701.25 |
| 8 | Victoza 2-Pak | Liraglutide | $77,803,678.74 | 0.2829% | 108,485 | 140,000.3 | $555.74 |
| 9 | Liraglutide | Liraglutide | $48,084,632.40 | 0.1748% | 62,242 | 85,916.3 | $559.67 |
| 10 | Byetta | Exenatide | $15,862,661.99 | 0.0577% | 11,706 | 19,580.0 | $810.15 |
| 11 | Zepbound | Tirzepatide | $387,343.45 | 0.0014% | 353 | 380.7 | $1,017.45 |
Source: medicare_glp1_spending_national_product_2024.csv, generated from CMS 2024 Geography and Drug data.
Other reported prescriber geographies
Territories, Armed Forces geographies, foreign country, and unknown geography are retained separately rather than included in the 50-state/DC ledger.
| Prescriber geography | Gross cost | Claims | 30-day fills | Reported product cells |
|---|---|---|---|---|
| Puerto Rico | $131,136,194.50 | 122,251 | 133,919.3 | 9 |
| Virgin Islands | $2,624,046.17 | 2,052 | 2,418.0 | 5 |
| Armed Forces Pacific | $1,892,000.71 | 1,375 | 1,989.6 | 7 |
| Guam | $732,639.34 | 672 | 760.9 | 4 |
| Foreign Country | $462,813.90 | 418 | 520.1 | 5 |
| Unknown | $408,002.68 | 346 | 485.9 | 5 |
| Northern Mariana Islands | $273,411.90 | 283 | 291.0 | 2 |
| Armed Forces Europe | $240,008.88 | 210 | 270.1 | 3 |
Source: medicare_glp1_spending_other_geographies_2024.csv, generated from CMS 2024 Geography and Drug data.
Build method
- Read the CMS Geography and Drug CSV for each year.
- Select national and state rows whose
Brnd_Namematches the year-specific inclusion list. - Sum
Tot_Drug_Cst,Tot_Clms, andTot_30day_Fillsacross included products. - Group state rows by
Prscrbr_Geo_Descfor the 50 states and District of Columbia. - Calculate state order, year-over-year change, national share, gross cost per claim, gross cost per standardized 30-day fill, the sum of reported age-65-plus cost fields, and the leading product.
- Build a complete 51-jurisdiction × 11-product matrix. When CMS has no reportable state-product row, leave the values blank and set
cms_row_reported=false; do not convert the missing row to a confirmed zero. - Preserve CMS age-field suppression explicitly. When a reported state-product row has blank age-65-plus utilization or beneficiary fields, the matrix records boolean suppression fields and the original CMS suppression flags.
- Treat affected state-level age-65-plus totals and shares as reported lower bounds, not complete values.
- Keep territories, Armed Forces geographies, foreign country, and unknown geography in a separate file.
- Assert fixed national and state totals before writing outputs, then hash every generated data file.
Product scope crosswalk
| Product | 2023 | 2024 | Headline scope | Reason |
|---|---|---|---|---|
| Bydureon Bcise | Included | Included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Bydureon Pen | Included | Not included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Byetta | Included | Included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Liraglutide | Not included | Included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Mounjaro | Included | Included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Ozempic | Included | Included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Rybelsus | Included | Included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Saxenda | Included | Not included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Soliqua 100-33 | Not included | Not included | excluded | Fixed-ratio insulin/GLP-1 combination; reported separately in sensitivity analysis |
| Trulicity | Included | Included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Victoza 2-Pak | Included | Included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Victoza 3-Pak | Included | Included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Wegovy | Included | Included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
| Xultophy 100-3.6 | Not included | Not included | excluded | Fixed-ratio insulin/GLP-1 combination; reported separately in sensitivity analysis |
| Zepbound | Not included | Included | included when present in that year's CMS file | Standalone GLP-1 product or tirzepatide (dual GIP/GLP-1) |
Source: medicare_glp1_product_scope_2023_2024.csv, package version 1.0.0.
Suppression and reconciliation
Missing state-product rows
- The 2024 state-product grid has 561 possible cells (51 jurisdictions × 11 products).
- CMS reported 518 state-product rows; 43 combinations had no reportable row — 41 Zepbound combinations and 2 Byetta combinations.
- A missing row is not a confirmed zero.
Age-65-plus field suppression
Among the 518 reported state-product rows, 23 age-65-plus utilization/cost fields were suppressed across 21 jurisdictions: California, Delaware, District of Columbia, Idaho, Indiana, Maryland, Massachusetts, Minnesota, Mississippi, Montana, Nebraska, Nevada, New Hampshire, New Jersey, New Mexico, New York, Oklahoma, Pennsylvania, Rhode Island, Utah, and Vermont.
In the state summary, fields beginning with reported_age_65_plus_ are sums of values CMS actually reported. age_65_plus_share_is_lower_bound=true means the displayed state share is incomplete because at least one product-level age field was suppressed. The matrix preserves separate flags for suppressed age-65-plus utilization fields and the age-65-plus beneficiary field. Blank suppressed values must not be treated as zero.
CMS suppressed 56 age-65-plus beneficiary fields in the reported state-product rows. Those product-specific beneficiary counts are not used to calculate the state cost shares.
National-to-geography reconciliation
- The 50 states and District of Columbia sum to $27,365,405,390.12, or 99.4982% of the national total.
- Reported non-state prescriber geographies sum to $137,769,118.08.
- All reported geography rows sum to $27,503,174,508.20, which is $240,007.15 below the national row — less than 0.001% of the national total.
- The public source does not allocate that residual, so this package does not assign it to a specific cause.
Critical limitations
- These are gross Part D drug costs before manufacturer rebates, not net program spending.
- State attribution follows prescriber location, not beneficiary residence.
- The files do not identify the diagnosis or indication for which a product was prescribed. Do not label the full total as obesity-treatment spending.
- Product-level beneficiary counts are unique only within a single state-product row. They cannot be summed across products to produce a unique class-wide user count because one beneficiary may have claims for more than one product.
- Missing state-product rows are not confirmed zeros.
- State age-65-plus totals and shares are lower bounds when the corresponding suppression flag is true.
- Gross cost per standardized 30-day fill is a gross-cost utilization ratio, not a transaction price or net price.
- CMS bottom-codes standardized-fill values below 1.0 and top-codes values above 12.0 before aggregation.
- The data cover Medicare Part D prescription drug events represented in CMS's source data; they do not represent all prescriptions in the United States.
- The 2024 data predate the July 2026 Medicare GLP-1 Bridge. CMS says Bridge coverage operates outside the standard Part D coverage and payment flow, so future Bridge utilization should not be assumed to appear in the same way in this dataset.
Files and reproducibility
The package publishes the 51-state/DC summary, complete state-product matrix, national product totals, other geographies, product-scope crosswalk, summary and manifest JSON, and the dependency-free build script.
- 51-state/DC summary CSV
- Complete 51 × 11 state-product CSV
- National product totals CSV
- Other CMS prescriber geographies CSV
- 2023–2024 product scope crosswalk CSV
- Summary JSON
- Generated-output manifest JSON
- Dependency-free reproduction script
Reproduction
Place the two CMS source CSVs and the Python script in the same directory, then run:
python build_medicare_glp1_spending_by_state.pyThe script requires Python 3.9+ and no third-party packages. It writes the five CSV files, summary JSON, and manifest. The README and script are maintained separately from the generated-output manifest.
Primary sources
- CMS 2024 Geography and Drug CSV
- CMS 2023 Geography and Drug CSV
- CMS dataset landing page
- CMS methodology
- CMS data dictionary
- FDA GLP-1 product table and tirzepatide classification
Source links are primary CMS and FDA references. They are followed editorial citations; this non-commercial page has no affiliate or sponsored links.
Frequently asked questions
How much did the included GLP-1 products cost Medicare Part D in 2024?
The included standalone GLP-1 receptor agonist and tirzepatide products generated $27,503,414,515.35 in CMS-reported gross Medicare Part D drug costs nationally in 2024.
Which state had the highest Medicare GLP-1 spending in 2024?
Texas had the highest included total among the 50 states and the District of Columbia, at $2,389,558,046.92, followed by California, New York, and Florida.
Does spending by state mean where the beneficiary lives?
No. The state field is prescriber geography: the state where the provider is located as reported in NPPES. It is not beneficiary residence.
Are these Medicare GLP-1 spending figures net prices or rebates-adjusted payments?
No. CMS Tot_Drug_Cst is gross total drug cost before manufacturer rebates. It includes ingredient cost, dispensing fees, sales tax, applicable administration fees, and amounts paid by plans, beneficiaries, subsidies, and other third-party payers.
Does the total represent obesity-treatment spending?
No. The CMS files do not identify diagnosis or indication. The full included total must not be labeled as obesity-treatment spending.
How to cite this page
WPG Research Team. “Medicare GLP-1 Spending by Prescriber State — 2024 CMS Data.” Weight Loss Provider Guide Research. Dataset version 1.0.0. Last verified August 1, 2026. https://weightlossproviderguide.com/research/medicare-glp1-spending-by-state
- Publication
- Weight Loss Provider Guide Research
- Title
- Medicare GLP-1 Spending by Prescriber State — 2024 CMS Data
- URL
- https://weightlossproviderguide.com/research/medicare-glp1-spending-by-state
- Last updated/verified
- August 1, 2026