← All studies · askamerica.ai

Highest overdose-death / treatment-supply mismatch: Mason Co WA, Scioto Co OH, Cecil Co MD lead among mid-to-large counties

CDC VSRR county overdose deaths (12 months ending Dec 2025) vs. CMS behavioral-health facility counts, counties ≥65,000 population

Overdose deaths vs. treatment-facility supply, worst-mismatch count… Counties pop. 65k+, ranked by (overdose-death percentile − facility-supply percentile) Overdose deaths per 100k residents (top 10 mismatch counties) 0 10 20 30 40 50 60 70 County Deaths/100k Mason Co, WA Scioto Co, OH Cecil Co, MD Roanoke city, VA Marion Co, OH Howard Co, IN Washington DC Allegany Co, MD Madison Co, KY McKinley Co, NM Counties (pop. 65k+) with zero CMS behavioral-health facilities 265 of 844 (31%) vs. 35.1% nationally lacking any SAMHSA-listed OUD facility in the peer-reviewed 2024 benchmark study Top mismatch county: Mason County, WA 61.2 deaths/100k 0 CMS-listed behavioral-health facilities in county National reference threshold (Rizk et al. 2024, SAMHSA locator basis) 20.67 deaths/100k, 4.72 facilities/100k Published national averages used to define "mismatch" county status Facility counts here are a CMS Provider-of-Services proxy (psychiatric/behavioral residential + community mental health centers), not the SAMHSA Behavioral Health Treatment Locator the peer-reviewed literature uses -- likely undercounts true OUD treatment supply (methadone-only OTPs, office-based buprenorphine prescribers). See caveats in report. AskAmerica · askamerica.ai
SVG

Summary

Using CDC provisional county overdose-death data (12 months ending December 2025) and a CMS facility-count proxy for behavioral-health/addiction treatment capacity, the counties with the largest gap between overdose burden and treatment supply — among counties with population 65,000+ — are Mason County, WA (61.2 deaths/100k, 0 listed facilities), Scioto County, OH (49.2/100k, 0 facilities), Cecil County, MD (45.0/100k, 0 facilities), Roanoke city, VA (43.6/100k, 0 facilities), and Marion County, OH (43.0/100k, 0 facilities). Every county in the top 15 by this mismatch score has zero facilities in our proxy category despite death rates roughly 2-3x the concurrent national average. This pattern — rural and small-metro counties with high overdose mortality and near-zero visible treatment infrastructure — closely matches the peer-reviewed "risk-availability mismatch" finding of Rizk et al. (PLOS ONE, 2024), which used the actual SAMHSA Behavioral Health Treatment Locator and found 35.1% of U.S. counties had no listed opioid treatment facility in 2019.

Important limitation: This corpus (AskAmerica/govdata) does not carry the SAMHSA Behavioral Health Treatment Locator or the N-SSATS/N-MHSS facility census that the published literature on this exact question uses — confirmed by a catalog search returning no match for "SAMHSA," "licensed," or "locator." The facility count used here is a proxy: CMS Provider-of-Services (POS) categories 06 (psychiatric/behavioral residential treatment) and 19 (community mental health center), which is narrower than SAMHSA's facility count (2,716 facilities nationally here vs. 11,111 in the SAMHSA-sourced 2019 academic study) and omits standalone methadone clinics (opioid treatment programs) and office-based buprenorphine prescribers entirely. The ranking below should be read as directionally consistent with — but not a replacement for — the SAMHSA-based literature.

Method and exclusion disclosure

Overdose deaths: health.cdc_county_overdose_deaths (CDC VSRR, provisional, 12-month-ending window), year=2025, month-ending 2025-12-31.

Exclusion disclosure (provisional_drug_overdose IS NOT NULL): the filter provisional_drug_overdose IS NOT NULL was applied because CDC suppresses (sets to NULL) any county's 12-month death count under 10, for privacy. Of the 3,144 county rows in the 2025-12-31 window, this predicate excludes 1,630 rows (52%) — these are the smaller-death-count, generally lower-population counties. Without this filter, no death rate is computable for those rows at all (NULL, not zero), so they could not be included in either the headline ranking or the '265 of 844' zero-facility statistic below; both are therefore computed only over the 1,514 counties (3,144 minus the 1,630 excluded) that report a non-suppressed count. This exclusion is not a random sample: it disproportionately removes the smallest, most rural counties, which independent rural-access literature (cited below) identifies as the places most likely to be severe treatment deserts — meaning the true worst-mismatch counties nationally are plausibly smaller places this analysis cannot see at all.

Exclusion disclosure (county_fips IS NOT NULL, applied twice, on two different tables): on health.cms_pos_facilities (filtered to provider_category_code IN ('06','19')), this predicate excludes 1 facility record nationally (out of 2,717 in that category) that lacks a resolvable state/county FIPS code; that 1 excluded facility is simply absent from whichever county it should have counted toward, which can only understate a facility count, never overstate one, and with n=1 nationally has no material effect on any ranking here. On census.acs_population (year=2023, geography='county'), the same-named predicate excludes 0 rows — every county row in that vintage already carries a non-null county_fips, so this filter changed nothing on the population side.

Treatment-facility proxy: health.cms_pos_facilities, provider_category_code IN ('06','19') (psychiatric/behavioral residential treatment facilities and community mental health centers), counted per county.

Population: census.acs_population, 2023 5-year ACS vintage (most recent available; the overdose-death data is 2025, so there is a ~2-year vintage gap between numerator and denominator years — a real limitation, though county population changes slowly enough that this does not materially change rankings).

Mismatch score: for each county with population ≥65,000, computed the percentile rank of its overdose-death rate per 100k minus the percentile rank of its facility rate per 100k, following the same directional logic as the SAMHSA-locator-based "risk-availability mismatch" definition in Rizk et al. (2024) (national thresholds: 20.67 deaths/100k, 4.72 facilities/100k; this analysis uses within-sample percentile ranks rather than those exact thresholds, since our facility base is a different, narrower census). Restricting to population ≥65,000 avoids small-county rate instability but means true rural "treatment deserts" are further undercounted here; see Limitations.

Cross-checked against the literature: of 844 counties with population ≥65,000 in this corpus, 265 (31%) have zero facilities in our narrower proxy category — comparable in direction, if not in exact magnitude, to the 35.1% of all 3,130 U.S. counties found to have zero SAMHSA-listed OUD facilities in the peer-reviewed study.

Top 15 mismatch counties (population 65,000+)

1Mason CountyWA4166,96861.20
2Scioto CountyOH3673,11849.20
3Cecil CountyMD47104,36645.00
4Roanoke cityVA4398,67743.60
5Marion CountyOH2865,14543.00
6Howard CountyIN3483,61040.70
7District of ColumbiaDC272672,07940.50
8Allegany CountyMD2667,76238.40
9Madison CountyKY3694,06438.30
10McKinley CountyNM2771,17237.90
11Aroostook CountyME2567,22737.20
12Columbiana CountyOH36101,20335.60
13Carbon CountyPA2365,19135.30
14Richmond cityVA80227,59535.20
15Kent CountyDE65185,04335.10
15Kent CountyDE65185,04335.10
14Richmond cityVA80227,59535.20
13Carbon CountyPA2365,19135.30
12Columbiana CountyOH36101,20335.60
11Aroostook CountyME2567,22737.20
10McKinley CountyNM2771,17237.90
9Madison CountyKY3694,06438.30
8Allegany CountyMD2667,76238.40
7District of ColumbiaDC272672,07940.50
6Howard CountyIN3483,61040.70
5Marion CountyOH2865,14543.00
4Roanoke cityVA4398,67743.60
3Cecil CountyMD47104,36645.00
2Scioto CountyOH3673,11849.20
1Mason CountyWA4166,96861.20
8Allegany CountyMD2667,76238.40
11Aroostook CountyME2567,22737.20
13Carbon CountyPA2365,19135.30
3Cecil CountyMD47104,36645.00
12Columbiana CountyOH36101,20335.60
7District of ColumbiaDC272672,07940.50
6Howard CountyIN3483,61040.70
15Kent CountyDE65185,04335.10
9Madison CountyKY3694,06438.30
5Marion CountyOH2865,14543.00
1Mason CountyWA4166,96861.20
10McKinley CountyNM2771,17237.90
14Richmond cityVA80227,59535.20
4Roanoke cityVA4398,67743.60
2Scioto CountyOH3673,11849.20
7District of ColumbiaDC272672,07940.50
15Kent CountyDE65185,04335.10
6Howard CountyIN3483,61040.70
9Madison CountyKY3694,06438.30
3Cecil CountyMD47104,36645.00
8Allegany CountyMD2667,76238.40
11Aroostook CountyME2567,22737.20
10McKinley CountyNM2771,17237.90
2Scioto CountyOH3673,11849.20
5Marion CountyOH2865,14543.00
12Columbiana CountyOH36101,20335.60
13Carbon CountyPA2365,19135.30
4Roanoke cityVA4398,67743.60
14Richmond cityVA80227,59535.20
1Mason CountyWA4166,96861.20
7District of ColumbiaDC272672,07940.50
14Richmond cityVA80227,59535.20
15Kent CountyDE65185,04335.10
3Cecil CountyMD47104,36645.00
4Roanoke cityVA4398,67743.60
1Mason CountyWA4166,96861.20
2Scioto CountyOH3673,11849.20
9Madison CountyKY3694,06438.30
12Columbiana CountyOH36101,20335.60
6Howard CountyIN3483,61040.70
5Marion CountyOH2865,14543.00
10McKinley CountyNM2771,17237.90
8Allegany CountyMD2667,76238.40
11Aroostook CountyME2567,22737.20
13Carbon CountyPA2365,19135.30
7District of ColumbiaDC272672,07940.50
14Richmond cityVA80227,59535.20
15Kent CountyDE65185,04335.10
3Cecil CountyMD47104,36645.00
12Columbiana CountyOH36101,20335.60
4Roanoke cityVA4398,67743.60
9Madison CountyKY3694,06438.30
6Howard CountyIN3483,61040.70
2Scioto CountyOH3673,11849.20
10McKinley CountyNM2771,17237.90
8Allegany CountyMD2667,76238.40
11Aroostook CountyME2567,22737.20
1Mason CountyWA4166,96861.20
13Carbon CountyPA2365,19135.30
5Marion CountyOH2865,14543.00
1Mason CountyWA4166,96861.20
2Scioto CountyOH3673,11849.20
3Cecil CountyMD47104,36645.00
4Roanoke cityVA4398,67743.60
5Marion CountyOH2865,14543.00
6Howard CountyIN3483,61040.70
7District of ColumbiaDC272672,07940.50
8Allegany CountyMD2667,76238.40
9Madison CountyKY3694,06438.30
10McKinley CountyNM2771,17237.90
11Aroostook CountyME2567,22737.20
12Columbiana CountyOH36101,20335.60
13Carbon CountyPA2365,19135.30
14Richmond cityVA80227,59535.20
15Kent CountyDE65185,04335.10
1Mason CountyWA4166,96861.20
2Scioto CountyOH3673,11849.20
3Cecil CountyMD47104,36645.00
4Roanoke cityVA4398,67743.60
5Marion CountyOH2865,14543.00
6Howard CountyIN3483,61040.70
7District of ColumbiaDC272672,07940.50
8Allegany CountyMD2667,76238.40
9Madison CountyKY3694,06438.30
10McKinley CountyNM2771,17237.90
11Aroostook CountyME2567,22737.20
12Columbiana CountyOH36101,20335.60
13Carbon CountyPA2365,19135.30
14Richmond cityVA80227,59535.20
15Kent CountyDE65185,04335.10

All 15 counties have zero facilities in the narrower CMS proxy category, which is why the ranking above them is ordered purely by death rate — the mismatch score saturates at zero facilities. Note that even large, urban-adjacent counties (DC, Richmond city VA) surface here, underscoring that this specific CMS category (psychiatric/behavioral residential + CMHC) is a genuinely thin proxy and likely misses real treatment capacity (hospital-based programs, office-based buprenorphine, standalone OTPs) that exists in these places but isn't captured by provider_category_code 06/19.

What the published literature adds

The closest matching peer-reviewed study — Rizk, Saini, Kim, Pathan & Qato, "County-level factors associated with a mismatch between opioid overdose mortality and availability of opioid treatment facilities," PLOS ONE, April 2024 — asks essentially this question directly, using SAMHSA's own Behavioral Health Treatment Services Locator (11,111 facilities providing or allowing medications for opioid use disorder, 2018-2019) against CDC NVSS county overdose mortality. Their national thresholds: mean overdose mortality of 20.67/100k and mean facility rate of 4.72/100k in 2018-2019; 1,203 of 3,130 counties (38.4%) had above-average mortality, and 1,098 (35.1%) had zero facilities. Their adjusted regression found metropolitan counties, not rural ones, had higher odds of being "mismatch" counties (OR 1.85) after controlling for other factors — counter to the simple rural-desert narrative — along with higher shares of white residents, unemployment, and uninsured residents.

Separately, rural-access research (PMC9019866) and the American Institutes for Research review report that roughly 88.6% of large rural counties lack sufficient opioid treatment programs, 30% of rural residents (vs. 2% of urban residents) lack a buprenorphine provider within reasonable reach, and methadone clinics in rural counties studied averaged a 49-minute drive versus 17 minutes for primary care — a distance/access dimension this connector's facility count (which has no location/drive-time data joined) cannot capture at all.

A companion operations-research paper (Sun et al., Manufacturing & Service Operations Management, 2025) models optimal statewide allocation of new treatment centers specifically to minimize this same county-level mismatch, reinforcing that mismatch, not aggregate national capacity, is the actionable policy lever.

Limitations

What This Report Does Not Answer

Every query behind this report

13 warehouse calls ran in this session, in order. Each is reproducible against the same snapshot.

query — 1 rows — 1389 ms
SELECT max(monthendingdate) FROM health.cdc_county_overdose_deaths WHERE year='2025'
query — 5 rows — 3885 ms
SELECT provider_category_code, count(*) FROM health.cms_pos_facilities GROUP BY provider_category_code ORDER BY 2 DESC
query — 2 rows — 6084 ms
SELECT DISTINCT geography FROM census.acs_population LIMIT 10
query — 4272 ms

WITH od AS (
  SELECT fips, countyname, state_name, CAST(provisional_drug_overdose AS DOUBLE) AS deaths
  FROM health.cdc_county_overdose_deaths
  WHERE year='2025' AND monthendingdate='2025-12-31' AND provisional_drug_overdose IS NOT NULL
),
pop AS (
  SELECT county_fips, total_population AS population
  FROM census.acs_population
  WHERE "year"='2023' AND county_fips IS NOT NULL AND geography = 'county'
),
fac AS (
  SELECT county_fips, count(*) AS n_facilities
  FROM health.cms_pos_facilities
  WHERE provider_category_code IN ('06','19') AND county_fips IS NOT NULL
  GROUP BY county_fips
)
SELECT od.fips, od.countyname, od.state_name, od.deaths, p.population,
       COALESCE(f.n_facilities,0) AS n_facilities,
       od.deaths / (p.population/100000.0) AS deaths_per_100k,
       COALESCE(f.n_facilities,0) / (p.population/100000.0) AS facilities_per_100k,
       od.deaths / (COALESCE(f.n_facilities,0)+0.5) AS deaths_per_facility
FROM od
JOIN pop p ON p.county_fips = od.fips
LEFT JOIN fac f ON f.county_fips = od.fips
WHERE p.population >= 50000
ORDER BY deaths_per_facility DESC
FETCH FIRST 20 ROWS ONLY
query — 1686 ms
SELECT fips, countyname FROM health.cdc_county_overdose_deaths WHERE year='2025' AND monthendingdate='2025-12-31' AND provisional_drug_overdose IS NOT NULL FETCH FIRST 5 ROWS ONLY
query — 5 rows — 1136 ms
SELECT county_fips FROM census.acs_population WHERE "year"='2023' AND geography='county' FETCH FIRST 5 ROWS ONLY
query — 5 rows — 1204 ms
SELECT fips, countyname, provisional_drug_overdose, monthendingdate FROM health.cdc_county_overdose_deaths WHERE year='2025' FETCH FIRST 5 ROWS ONLY
query — 20 rows — 4664 ms

WITH od AS (
  SELECT LPAD(fips,5,'0') AS fips, countyname, state_name, CAST(provisional_drug_overdose AS DOUBLE) AS deaths
  FROM health.cdc_county_overdose_deaths
  WHERE year='2025' AND monthendingdate = TIMESTAMP '2025-12-31 00:00:00' AND provisional_drug_overdose IS NOT NULL
),
pop AS (
  SELECT county_fips, total_population AS population
  FROM census.acs_population
  WHERE "year"='2023' AND county_fips IS NOT NULL AND geography = 'county'
),
fac AS (
  SELECT county_fips, count(*) AS n_facilities
  FROM health.cms_pos_facilities
  WHERE provider_category_code IN ('06','19') AND county_fips IS NOT NULL
  GROUP BY county_fips
)
SELECT od.fips, od.countyname, od.state_name, od.deaths, p.population,
       COALESCE(f.n_facilities,0) AS n_facilities,
       od.deaths / (p.population/100000.0) AS deaths_per_100k,
       COALESCE(f.n_facilities,0) / (p.population/100000.0) AS facilities_per_100k,
       od.deaths / (COALESCE(f.n_facilities,0)+0.5) AS deaths_per_facility
FROM od
JOIN pop p ON p.county_fips = od.fips
LEFT JOIN fac f ON f.county_fips = od.fips
WHERE p.population >= 50000
ORDER BY deaths_per_facility DESC
FETCH FIRST 20 ROWS ONLY
query — 15 rows — 4503 ms

WITH od AS (
  SELECT LPAD(fips,5,'0') AS fips, countyname, state_name, CAST(provisional_drug_overdose AS DOUBLE) AS deaths
  FROM health.cdc_county_overdose_deaths
  WHERE year='2025' AND monthendingdate = TIMESTAMP '2025-12-31 00:00:00' AND provisional_drug_overdose IS NOT NULL
),
pop AS (
  SELECT county_fips, total_population AS population
  FROM census.acs_population
  WHERE "year"='2023' AND county_fips IS NOT NULL AND geography = 'county'
),
fac AS (
  SELECT county_fips, count(*) AS n_facilities
  FROM health.cms_pos_facilities
  WHERE provider_category_code IN ('06','19') AND county_fips IS NOT NULL
  GROUP BY county_fips
),
base AS (
  SELECT od.fips, od.countyname, od.state_name, od.deaths, p.population,
         COALESCE(f.n_facilities,0) AS n_facilities,
         od.deaths / (p.population/100000.0) AS deaths_per_100k,
         COALESCE(f.n_facilities,0) / (p.population/100000.0) AS facilities_per_100k
  FROM od
  JOIN pop p ON p.county_fips = od.fips
  LEFT JOIN fac f ON f.county_fips = od.fips
  WHERE p.population >= 65000
)
SELECT fips, countyname, state_name, deaths, population, n_facilities, deaths_per_100k, facilities_per_100k,
       percent_rank() OVER (ORDER BY deaths_per_100k) AS death_pctl,
       percent_rank() OVER (ORDER BY facilities_per_100k) AS fac_pctl,
       percent_rank() OVER (ORDER BY deaths_per_100k) - percent_rank() OVER (ORDER BY facilities_per_100k) AS mismatch_score
FROM base
ORDER BY mismatch_score DESC
FETCH FIRST 15 ROWS ONLY
query — 1 rows — 2968 ms

WITH pop AS (
  SELECT county_fips, total_population AS population
  FROM census.acs_population
  WHERE "year"='2023' AND county_fips IS NOT NULL AND geography = 'county' AND total_population >= 65000
),
fac AS (
  SELECT county_fips, count(*) AS n_facilities
  FROM health.cms_pos_facilities
  WHERE provider_category_code IN ('06','19') AND county_fips IS NOT NULL
  GROUP BY county_fips
)
SELECT count(*) AS n_counties,
       sum(CASE WHEN COALESCE(f.n_facilities,0)=0 THEN 1 ELSE 0 END) AS zero_facility_counties
FROM pop p LEFT JOIN fac f ON f.county_fips=p.county_fips
query — 1 rows — 1709 ms

SELECT
  sum(CASE WHEN provisional_drug_overdose IS NULL THEN 1 ELSE 0 END) AS suppressed_rows,
  count(*) AS total_rows
FROM health.cdc_county_overdose_deaths
WHERE year='2025' AND monthendingdate = TIMESTAMP '2025-12-31 00:00:00'
query — 1 rows — 2359 ms
SELECT count(*) FROM health.cms_pos_facilities WHERE county_fips IS NULL AND provider_category_code IN ('06','19')
query — 1 rows — 1193 ms
SELECT count(*) FROM census.acs_population WHERE "year"='2023' AND geography='county' AND county_fips IS NULL

Sources

  1. CDC county overdose deaths, 12mo ending 2025-12-31 — CDC VSRR provisional 12-month-ending county overdose mortality
    Show tool call
    query(sql="SELECT ... FROM health.cdc_county_overdose_deaths WHERE year='2025' AND monthendingdate=TIMESTAMP '2025-12-31 00:00:00'")
  2. CMS Provider of Services facilities, categories 06/19 — Proxy for behavioral-health/addiction treatment facility count, current 2026-Q snapshot
  3. Census ACS 5-year county population, 2023 — Population denominator
  4. Rizk JG, Saini J, Kim K, Pathan U, Qato DM. County-level factors associated with a mismatch between opioid overdose mortality and availability of opioid treatment facilities. PLOS ONE 2024;19(4):e0301863.
  5. Improving Rural Access to Opioid Treatment Programs
  6. Exploring Urban-Rural Disparities in Accessing Treatment for Opioid Use Disorder — American Institutes for Research
  7. Sun et al., Reducing Overdose Deaths and Mitigating County Disparities: Optimal Allocation of Substance Use Treatment Centers. M&SOM 2025.