Objective: To analyze the utilization patterns and associated costs of GLP-1 Agonists within the US Medicare Part D program over the last decade (2014-2023).
Background: GLP-1 agonists are a rapidly evolving class of medications for type 2 diabetes and obesity. As a Pharmacist, I utilized my domain expertise to interpret prescribing trends, focusing on the shift in market share due to new market entrants (Ozempic, Mounjaro) and dosage frequency preferences.
Key Questions:
- How have utilization and costs changed over the last 10 years?
- Which specific agents (Trulicity, Ozempic, Mounjaro) are driving growth?
- Is there a correlation between dosage frequency (Weekly vs. Daily) and market share?
Source: CMS Medicare Part D Prescribers - by Geography and Drug
Source (Alternative): Data.gov Medicare Part D Prescribers - by Geography and Drug
⚠️ Note on Data Access: Due to the large file size, the raw CSV files are not included in this repository. To run the notebook:
- Download the csv datasets (2014-2023) from the CMS link above.
- Create a folder named
Raw Data CSVin the root directory.- Place the downloaded CSV files into that folder.
The analysis reveals a dramatic market shift from daily injections (e.g., Victoza, Byetta) to once-weekly formulations (e.g., Trulicity, Ozempic).
- Insight: Convenience drives adherence. The data shows a clear preference among Medicare beneficiaries for weekly regimens.
Ozempic (Semaglutide) and Mounjaro (Tirzepatide) have shown the most significant growth rates since their launch, rapidly capturing market share in Georgia and nationwide.
Despite being a weekly formulation, Bydureon (Exenatide ER) has not seen comparable growth.
- Clinical Interpretation: This likely reflects clinical guidelines favoring newer agents (Semaglutide/Tirzepatide) due to their superior efficacy in A1C reduction and weight loss compared to Exenatide. This demonstrates that while convenience (frequency) is important, clinical efficacy remains the primary driver of prescribing habits.
- Language: Python
- Libraries: Pandas (Data Cleaning & Aggregation), Matplotlib & Seaborn (Visualization)
- Key Techniques:
- Batch Processing: Implemented a loop with Regex to dynamically identify and load 10 years of CSV data, handling inconsistent file naming conventions.
- Data Cleaning: Handled CMS suppression codes (Null values) by statistically safe imputation (filling with 0) rather than mean imputation.
- Domain Mapping: Created a dictionary mapping Brand Names to Dosage Frequencies based on pharmacological knowledge.
- Data Period: Covers up to 2023; 2024 data was unavailable at the time of analysis (April 2025).
- Population: Specific to Medicare Part D beneficiaries; trends may differ in commercial insurance populations (e.g., younger demographics using GLP-1s for weight loss).
- Data Granularity: The dataset is aggregated by drug/state, lacking patient-level details (e.g., specific indication for Diabetes vs. Obesity).
- Clone this repository.
- Install dependencies:
pip install -r requirements.txt - Download raw data from CMS and place it in
Raw Data CSV/. - Run the Jupyter Notebook
GLP1_Medicare_Analysis.ipynb.

