DEBUG: Raw major_slug = ""
DEBUG: Initial offers_url = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json", major_slug = ""
DEBUG: After cleaning major_slug = ""
DEBUG: Before URL cleaning = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After TrimSuffix = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After HTTPS placeholder = "HTTPS_TEMP_PLACEHOLDERwww.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After slash cleaning = "HTTPS_TEMP_PLACEHOLDERwww.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After URL cleaning = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: offers_url = https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json
DEBUG: major_slug = ""
DEBUG: offers_url is valid, proceeding to fetch data
DEBUG: offers_data.offers found, count = 16
DEBUG: Specific major detected (cip4 = 44.05), keeping min_relevance at 0.8
DEBUG: Starting relevance filtering - min_relevance = 0.8, max_relevance = 1
DEBUG: Checking offer "Grad Cert - Health Policy (I Have a Bachelors)" with relevance 0.8
DEBUG: ✓ Offer "Grad Cert - Health Policy (I Have a Bachelors)" ACCEPTED (relevance 0.8)
DEBUG: Checking offer "BS in Business Administration - Public Administration" with relevance 0.8
DEBUG: ✓ Offer "BS in Business Administration - Public Administration" ACCEPTED (relevance 0.8)
DEBUG: Checking offer "MBA in Public Administration" with relevance 0.8
DEBUG: ✓ Offer "MBA in Public Administration" ACCEPTED (relevance 0.8)
DEBUG: Checking offer "Public Health (I Have a HS Diploma or Associate Degree)" with relevance 0.6
DEBUG: ✗ Offer "Public Health (I Have a HS Diploma or Associate Degree)" REJECTED (relevance 0.6)
DEBUG: Checking offer "MSN - Public Health (I Have a BSN)" with relevance 0.6
DEBUG: ✗ Offer "MSN - Public Health (I Have a BSN)" REJECTED (relevance 0.6)
DEBUG: Checking offer "Doctorate - Public Health (I Have a Masters)" with relevance 0.6
DEBUG: ✗ Offer "Doctorate - Public Health (I Have a Masters)" REJECTED (relevance 0.6)
DEBUG: Checking offer "Grad Cert - Public Health (I Have a Bachelors)" with relevance 0.6
DEBUG: ✗ Offer "Grad Cert - Public Health (I Have a Bachelors)" REJECTED (relevance 0.6)
DEBUG: Checking offer "MPH - Public Health (I Have a Bachelors)" with relevance 0.6
DEBUG: ✗ Offer "MPH - Public Health (I Have a Bachelors)" REJECTED (relevance 0.6)
DEBUG: Checking offer "MSN - Public Health (I Have an ADN, ASN, or RN Diploma)" with relevance 0.6
DEBUG: ✗ Offer "MSN - Public Health (I Have an ADN, ASN, or RN Diploma)" REJECTED (relevance 0.6)
DEBUG: Checking offer "BSW - Social Work (I Have a HS Diploma or Associate Degree)" with relevance 0.5
DEBUG: ✗ Offer "BSW - Social Work (I Have a HS Diploma or Associate Degree)" REJECTED (relevance 0.5)
DEBUG: Checking offer "DSW - Social Work (I Have a Masters)" with relevance 0.5
DEBUG: ✗ Offer "DSW - Social Work (I Have a Masters)" REJECTED (relevance 0.5)
DEBUG: Checking offer "MSW - Social Work (I Have a Bachelors)" with relevance 0.5
DEBUG: ✗ Offer "MSW - Social Work (I Have a Bachelors)" REJECTED (relevance 0.5)
DEBUG: Checking offer "PhD - Social Work (I Have a Masters)" with relevance 0.5
DEBUG: ✗ Offer "PhD - Social Work (I Have a Masters)" REJECTED (relevance 0.5)
DEBUG: Checking offer "Social Work & Social Sciences Bachelors Programs (I Have a HS Diploma or Associate Degree)" with relevance 0.5
DEBUG: ✗ Offer "Social Work & Social Sciences Bachelors Programs (I Have a HS Diploma or Associate Degree)" REJECTED (relevance 0.5)
DEBUG: Checking offer "Social Work & Social Sciences Doctorate Programs (I Have a Masters)" with relevance 0.5
DEBUG: ✗ Offer "Social Work & Social Sciences Doctorate Programs (I Have a Masters)" REJECTED (relevance 0.5)
DEBUG: Checking offer "Social Work & Social Sciences Masters Programs (I Have a Bachelors)" with relevance 0.5
DEBUG: ✗ Offer "Social Work & Social Sciences Masters Programs (I Have a Bachelors)" REJECTED (relevance 0.5)
DEBUG: relevant_offers count = 3
DEBUG: relevant_offers > 0, checking for ESYOH offers
DEBUG: ESYOH filtering - found 1 ESYOH offers with relevance >= 0.8
DEBUG: esyoh_offers count = 1
DEBUG: ESYOH offers found, rendering ESYOH widget
DEBUG: most_relevant_only = true, filtering for most relevant
DEBUG: Found 0 offers with relevance >= 1.0
DEBUG: Backfilling with 0 offers with relevance >= 0.9
DEBUG: Backfilling with 1 offers with relevance >= 0.8
Finding the Highest Paying Public Policy School for You
Where you study public policy affects what graduates go on to earn. That is why we built our Highest Paid Public Policy Graduates ranking. We rank each school on the early-career earnings of its public policy graduates to surface the highest-paying programs.
See how we build our rankings
One Size Does Not Fit All
Since the program you select can have a significant impact on your future, we offer several rankings, including this Highest Paid Public Policy Graduates list, to help you choose. More interested in schools in a specific area of the country? Filter this list by region or state.
Want to compare schools head to head? Try our College Combat tool to weigh the factors that matter most to you.
Learn more about our methodology
DEBUG: Raw major_slug = ""
DEBUG: Initial offers_url = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json", major_slug = ""
DEBUG: After cleaning major_slug = ""
DEBUG: Before URL cleaning = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After TrimSuffix = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After HTTPS placeholder = "HTTPS_TEMP_PLACEHOLDERwww.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After slash cleaning = "HTTPS_TEMP_PLACEHOLDERwww.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After URL cleaning = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: offers_url = https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json
DEBUG: major_slug = ""
DEBUG: offers_url is valid, proceeding to fetch data
DEBUG: offers_data.offers found, count = 16
DEBUG: Specific major detected (cip4 = 44.05), keeping min_relevance at 0.8
DEBUG: Starting relevance filtering - min_relevance = 0.8, max_relevance = 1
DEBUG: Checking offer "Grad Cert - Health Policy (I Have a Bachelors)" with relevance 0.8
DEBUG: ✓ Offer "Grad Cert - Health Policy (I Have a Bachelors)" ACCEPTED (relevance 0.8)
DEBUG: Checking offer "BS in Business Administration - Public Administration" with relevance 0.8
DEBUG: ✓ Offer "BS in Business Administration - Public Administration" ACCEPTED (relevance 0.8)
DEBUG: Checking offer "MBA in Public Administration" with relevance 0.8
DEBUG: ✓ Offer "MBA in Public Administration" ACCEPTED (relevance 0.8)
DEBUG: Checking offer "Public Health (I Have a HS Diploma or Associate Degree)" with relevance 0.6
DEBUG: ✗ Offer "Public Health (I Have a HS Diploma or Associate Degree)" REJECTED (relevance 0.6)
DEBUG: Checking offer "MSN - Public Health (I Have a BSN)" with relevance 0.6
DEBUG: ✗ Offer "MSN - Public Health (I Have a BSN)" REJECTED (relevance 0.6)
DEBUG: Checking offer "Doctorate - Public Health (I Have a Masters)" with relevance 0.6
DEBUG: ✗ Offer "Doctorate - Public Health (I Have a Masters)" REJECTED (relevance 0.6)
DEBUG: Checking offer "Grad Cert - Public Health (I Have a Bachelors)" with relevance 0.6
DEBUG: ✗ Offer "Grad Cert - Public Health (I Have a Bachelors)" REJECTED (relevance 0.6)
DEBUG: Checking offer "MPH - Public Health (I Have a Bachelors)" with relevance 0.6
DEBUG: ✗ Offer "MPH - Public Health (I Have a Bachelors)" REJECTED (relevance 0.6)
DEBUG: Checking offer "MSN - Public Health (I Have an ADN, ASN, or RN Diploma)" with relevance 0.6
DEBUG: ✗ Offer "MSN - Public Health (I Have an ADN, ASN, or RN Diploma)" REJECTED (relevance 0.6)
DEBUG: Checking offer "BSW - Social Work (I Have a HS Diploma or Associate Degree)" with relevance 0.5
DEBUG: ✗ Offer "BSW - Social Work (I Have a HS Diploma or Associate Degree)" REJECTED (relevance 0.5)
DEBUG: Checking offer "DSW - Social Work (I Have a Masters)" with relevance 0.5
DEBUG: ✗ Offer "DSW - Social Work (I Have a Masters)" REJECTED (relevance 0.5)
DEBUG: Checking offer "MSW - Social Work (I Have a Bachelors)" with relevance 0.5
DEBUG: ✗ Offer "MSW - Social Work (I Have a Bachelors)" REJECTED (relevance 0.5)
DEBUG: Checking offer "PhD - Social Work (I Have a Masters)" with relevance 0.5
DEBUG: ✗ Offer "PhD - Social Work (I Have a Masters)" REJECTED (relevance 0.5)
DEBUG: Checking offer "Social Work & Social Sciences Bachelors Programs (I Have a HS Diploma or Associate Degree)" with relevance 0.5
DEBUG: ✗ Offer "Social Work & Social Sciences Bachelors Programs (I Have a HS Diploma or Associate Degree)" REJECTED (relevance 0.5)
DEBUG: Checking offer "Social Work & Social Sciences Doctorate Programs (I Have a Masters)" with relevance 0.5
DEBUG: ✗ Offer "Social Work & Social Sciences Doctorate Programs (I Have a Masters)" REJECTED (relevance 0.5)
DEBUG: Checking offer "Social Work & Social Sciences Masters Programs (I Have a Bachelors)" with relevance 0.5
DEBUG: ✗ Offer "Social Work & Social Sciences Masters Programs (I Have a Bachelors)" REJECTED (relevance 0.5)
DEBUG: relevant_offers count = 3
DEBUG: relevant_offers > 0, checking for ESYOH offers
DEBUG: ESYOH filtering - found 1 ESYOH offers with relevance >= 0.8
DEBUG: esyoh_offers count = 1
DEBUG: ESYOH offers found, rendering ESYOH widget
DEBUG: most_relevant_only = true, filtering for most relevant
DEBUG: Found 0 offers with relevance >= 1.0
DEBUG: Backfilling with 0 offers with relevance >= 0.9
DEBUG: Backfilling with 1 offers with relevance >= 0.8
Pepperdine University placed #21 among the highest-paying schools for public policy. Located in the suburb of Malibu, Pepperdine University is a private not-for-profit institution. Public Policy graduates of Pepperdine University earn a median of about $90,495 a year early in their careers.
University Of Wisconsin Madison came in at #22 for public policy graduate earnings this year. Located in the city of Madison, University Of Wisconsin Madison is a public institution. Students who complete the public policy program here go on to a median salary of roughly $81,260.
Vanderbilt University placed #23 among the highest-paying schools for public policy. Vanderbilt University is a private not-for-profit school located in the city of Nashville. After graduating, public policy degree recipients from Vanderbilt University typically earn about $81,298 annually.
University Of Washington Bothell Campus came in at #24 for public policy graduate earnings this year. Set in the suburb of Bothell, University Of Washington Bothell Campus is a public institution. Public Policy graduates of University Of Washington Bothell Campus earn a median of about $81,743 a year early in their careers.
University Of Massachusetts Dartmouth ranked #25 on our 2026 list of the highest-paying public policy schools. University Of Massachusetts Dartmouth is a public school located in the suburb of North Dartmouth. Students who complete the public policy program here go on to a median salary of roughly $67,722.
Rest of the Top 47 Highest Paid Public Policy Schools
These schools also send public policy graduates into strong-paying careers this year:
DEBUG: Raw major_slug = ""
DEBUG: Initial offers_url = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json", major_slug = ""
DEBUG: After cleaning major_slug = ""
DEBUG: Before URL cleaning = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After TrimSuffix = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After HTTPS placeholder = "HTTPS_TEMP_PLACEHOLDERwww.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After slash cleaning = "HTTPS_TEMP_PLACEHOLDERwww.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: After URL cleaning = "https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json"
DEBUG: offers_url = https://www.collegefactual.com/majors/social-services-public-administration/public-policy/offers.json
DEBUG: major_slug = ""
DEBUG: offers_url is valid, proceeding to fetch data
DEBUG: offers_data.offers found, count = 16
DEBUG: Specific major detected (cip4 = 44.05), keeping min_relevance at 0.5
DEBUG: Starting relevance filtering - min_relevance = 0.5, max_relevance = 1
DEBUG: Checking offer "Public Health (I Have a HS Diploma or Associate Degree)" with relevance 0.6
DEBUG: ✓ Offer "Public Health (I Have a HS Diploma or Associate Degree)" ACCEPTED (relevance 0.6)
DEBUG: Checking offer "MSN - Public Health (I Have a BSN)" with relevance 0.6
DEBUG: ✓ Offer "MSN - Public Health (I Have a BSN)" ACCEPTED (relevance 0.6)
DEBUG: Checking offer "Doctorate - Public Health (I Have a Masters)" with relevance 0.6
DEBUG: ✓ Offer "Doctorate - Public Health (I Have a Masters)" ACCEPTED (relevance 0.6)
DEBUG: Checking offer "Grad Cert - Public Health (I Have a Bachelors)" with relevance 0.6
DEBUG: ✓ Offer "Grad Cert - Public Health (I Have a Bachelors)" ACCEPTED (relevance 0.6)
DEBUG: Checking offer "MPH - Public Health (I Have a Bachelors)" with relevance 0.6
DEBUG: ✓ Offer "MPH - Public Health (I Have a Bachelors)" ACCEPTED (relevance 0.6)
DEBUG: Checking offer "MSN - Public Health (I Have an ADN, ASN, or RN Diploma)" with relevance 0.6
DEBUG: ✓ Offer "MSN - Public Health (I Have an ADN, ASN, or RN Diploma)" ACCEPTED (relevance 0.6)
DEBUG: Checking offer "BSW - Social Work (I Have a HS Diploma or Associate Degree)" with relevance 0.5
DEBUG: ✓ Offer "BSW - Social Work (I Have a HS Diploma or Associate Degree)" ACCEPTED (relevance 0.5)
DEBUG: Checking offer "DSW - Social Work (I Have a Masters)" with relevance 0.5
DEBUG: ✓ Offer "DSW - Social Work (I Have a Masters)" ACCEPTED (relevance 0.5)
DEBUG: Checking offer "MSW - Social Work (I Have a Bachelors)" with relevance 0.5
DEBUG: ✓ Offer "MSW - Social Work (I Have a Bachelors)" ACCEPTED (relevance 0.5)
DEBUG: Checking offer "PhD - Social Work (I Have a Masters)" with relevance 0.5
DEBUG: ✓ Offer "PhD - Social Work (I Have a Masters)" ACCEPTED (relevance 0.5)
DEBUG: Checking offer "Social Work & Social Sciences Bachelors Programs (I Have a HS Diploma or Associate Degree)" with relevance 0.5
DEBUG: ✓ Offer "Social Work & Social Sciences Bachelors Programs (I Have a HS Diploma or Associate Degree)" ACCEPTED (relevance 0.5)
DEBUG: Checking offer "Social Work & Social Sciences Doctorate Programs (I Have a Masters)" with relevance 0.5
DEBUG: ✓ Offer "Social Work & Social Sciences Doctorate Programs (I Have a Masters)" ACCEPTED (relevance 0.5)
DEBUG: Checking offer "Social Work & Social Sciences Masters Programs (I Have a Bachelors)" with relevance 0.5
DEBUG: ✓ Offer "Social Work & Social Sciences Masters Programs (I Have a Bachelors)" ACCEPTED (relevance 0.5)
DEBUG: relevant_offers count = 13
DEBUG: relevant_offers > 0, checking for ESYOH offers
DEBUG: ESYOH filtering - found 13 ESYOH offers with relevance >= 0.5
DEBUG: esyoh_offers count = 13
DEBUG: ESYOH offers found, rendering ESYOH widget
DEBUG: most_relevant_only = true, filtering for most relevant
DEBUG: Found 0 offers with relevance >= 1.0
DEBUG: Backfilling with 0 offers with relevance >= 0.9
DEBUG: Backfilling with 0 offers with relevance >= 0.8
DEBUG: Backfilling with 0 offers with relevance >= 0.7
DEBUG: Backfilling with 6 offers with relevance >= 0.6
Narrow Public Policy Schools by Region