Skip to content
Well & TapHome Water Treatment Database

PFAS in Missouri drinking water

EPA's final UCMR 5 data covers 232 public water systems in Missouri, serving about 5.0 million people. PFAS turned up in 73 of them (31%). 6 averaged above at least one EPA limit at a sampling point, affecting about 73,399 people.

Highest PFOA and PFOS averages among systems serving 1,000 or more: St Robert Pws (0.0 / 11.0 ppt), Camdenton Pws (0.0 / 10.1 ppt), Ralls County Pwsd 1 (5.3 / 0.0 ppt), St James Pws (0.0 / 5.0 ppt) and St Peters Pws (4.8 / 0.0 ppt).

Every tested system in Missouri

Largest first. PFOA and PFOS columns show the average at each system's worst sampling point; EPA's limit for each is 4 ppt. Filter by name:

Water system People PFOA PFOS PFAS found Result
Mo American St Louis St Charles Counties · Chesterfield 1,111,000 - - 1 Below limits
Kansas City Pws · Kansas City 553,295 - - 1 Below limits
St Louis City Pws · St Louis 304,709 - - 0 None found
Springfield Pws · Springfield 210,898 - 1.1 2 Sample at limit
Columbia Pws · Columbia 126,254 - - 0 None found
Independence Pws · Independence 120,000 - - 0 None found
St Charles County Pwsd 2 · O'fallon 100,587 - - 1 Below limits
Lees Summit Pws · Lees Summit 99,400 - - 1 Below limits
Mo American St Joseph · St Joseph 89,171 - - 0 None found
St Charles Pws · St Charles 78,961 - - 0 None found
Mo American Joplin · Joplin 73,728 - - 0 None found
Blue Springs Pws · Blue Springs 61,084 - - 0 None found
St Peters Pws · St Peters 52,575 4.8 - 4 Above limit
Wentzville · Wentzville 41,784 - - 0 None found
University of Missouri Columbia · Columbia 40,000 - - 0 None found
Cape Girardeau Pws · Cape Girardeau 39,941 - - 1 Below limits
Jefferson County Cons Pwsd C 1 · Barnhart 37,000 - - 0 None found
Fort Leonard Wood · Fort Leonard Wood 34,000 - - 1 Below limits
Ofallon Pws · O Fallon 32,515 - - 2 Below limits
Liberty Pws · Liberty 30,800 - - 0 None found
Mo American Jefferson City District · Jefferson City 30,075 - - 1 Below limits
Kirkwood Pws · Kirkwood 28,000 - - 0 None found
Gladstone Pws · Gladstone 27,000 - - 0 None found
Boone County Cons Pwsd 1 · Columbia 24,700 - - 0 None found
Nixa Pws · Nixa 24,532 - - 0 None found
Jackson County Pwsd 1 · Grandview 24,500 - - 0 None found
Belton Pws · Belton 23,598 - - 1 Below limits
Ozark Pws · Ozark 22,000 - - 1 Below limits
Sedalia Pws · Sedalia 21,725 - - 0 None found
Raymore Pws · Raymore 21,517 - - 0 None found
Jefferson County Pwsd 1 · Arnold 21,113 - - 0 None found
Rolla Pws · Rolla 20,800 - - 0 None found
Mo American Warrensburg · Joplin 18,500 - - 0 None found
Farmington Pws · Farmington 18,217 - - 2 Below limits
Kirksville Pws · Kirksville 17,566 - - 1 Below limits
Hannibal Pws · Hannibal 17,108 - - 1 Below limits
Raytown Water Company · Raytown 17,066 - - 0 None found
Poplar Bluff Pws · Poplar Bluff 17,043 - - 0 None found
Jefferson County Pwsd 3 · Arnold 17,000 - - 0 None found
Mo American Platte County · St Joseph 16,645 - - 0 None found
Cole County Pwsd 1 · Jefferson City 16,548 2.9 - 1 Sample at limit
Jefferson County Pwsd 2 · Eureka 16,548 - - 0 None found
Jackson County Pwsd 2 · Raytown 16,440 - - 0 None found
Sikeston Pws · Sikeston 16,291 - - 2 Below limits
Republic Pws · Republic 16,100 - - 0 None found
Grain Valley Pws · Grain Valley 16,000 - - 0 None found
Lebanon Pws · Lebanon 15,442 - - 0 None found
Boone County Pwsd 9 · Columbia 15,035 - - 0 None found
Jackson Pws · Jackson 15,000 - - 0 None found
Troy Pws · Troy 15,000 - - 0 None found
Carthage Pws · Carthage 14,600 - - 0 None found
Washington Pws · Washington 14,068 - - 0 None found
Lincoln County Pwsd 1 · Winfield 14,000 - - 0 None found
Moberly Pws · Moberly 13,783 - - 1 Below limits
Webb City Pws · Webb City 13,404 - - 0 None found
Cole County Pwsd 2 · Jefferson City 13,107 - - 0 None found
Callaway 2 Water District · Fulton 13,080 - - 0 None found
Mo American Mexico · Cottleville 13,000 - - 0 None found
Festus Pws · Festus 13,000 - - 1 Below limits
Marshall Pws · Marshall 12,934 - - 0 None found
Macon CO Pwsd 1 · Macon 12,865 - - 1 Below limits
West Plains Pws · West Plains 12,864 - - 1 Below limits
Branson Pws · Branson 12,640 - - 0 None found
Fulton Pws · Fulton 12,600 - - 0 None found
Johnson County Pwsd 2 · Holden 12,490 - - 0 None found
Union Pws · Union 12,348 - - 0 None found
Neosho Pws · Neosho 12,157 - - 0 None found
Butler County Pwsd 1 · Poplar Bluff 12,000 - - 0 None found
Cameron Pws · Cameron 11,963 - - 0 None found
Kearney Pws · Kearney 11,500 - - 1 Below limits
Henry County Water Company · Clinton 11,373 - - 1 Below limits
Thomas Hill Pwsd 1 · Moberly 11,250 - - 1 Below limits
Excelsior Springs Pws · Excelsior Springs 11,084 - - 0 None found
Bolivar Pws · Aurora 11,000 - - 0 None found
Smithville Pws · Smithville 10,885 - - 1 Below limits
Maryville Pws · Maryville 10,775 - - 1 Below limits
Kennett Pws · Kennett 10,200 - - 1 Below limits
Chillicothe Municipal Utilities Pws · Chillicothe 10,187 - - 0 None found
Whiteman Air Base · Whiteman Afb 10,106 - - 0 None found
Harrisonville Pws · Harrisonville 10,019 - - 0 None found
Jefferson County Pwsd 10 · Imperial 10,000 - - 0 None found
Callaway County Pwsd 1 · Holts Summit 9,840 - - 0 None found
Monett Pws · Monett 9,789 - - 1 Below limits
Jackson County Pwsd 13 · Lake Lotawana 9,700 - - 0 None found
Vernon County Cons Pwsd 1 · Nevada 9,615 - - 0 None found
Platte CO Pwsd 4 · Platte City 9,552 - - 2 Below limits
Barton Dade Cedar Jasp Countycons Pwsd 1 · Lamar 9,523 - - 0 None found
Ray County Cons Pwsd 2 · Richmond 9,360 - - 0 None found
Greene County Pwsd 1 · Battlefield 9,168 - - 0 None found
Jackson County Pwsd 15 · Lees Summit 8,772 - - 0 None found
Mo American Tri State · Joplin 8,680 - - 0 None found
Park Hills Pws · Park Hills 8,587 - - 0 None found
Perryville Pws · Perryville 8,555 - - 0 None found
Laclede County Pwsd 1 · Lebanon 8,550 - - 0 None found
Cape Perry County Pwsd 1 South · Jackson 8,545 - - 0 None found
Aurora Verona · Aurora 8,529 - - 0 None found
Silver Dollar City Marvel Cave · Branson 8,501 - - 0 None found
Willard Pws · Willard 8,400 - - 0 None found
Oak Grove Pws · Oak Grove 8,289 - - 0 None found
Pleasant Hill Pws · Pleasant Hill 8,262 - - 1 Below limits
Lafayette County Pwsd 1 · Odessa 8,250 - - 0 None found
Franklin County Pwsd 3 · Villa Ridge 8,250 - - 0 None found
Warrenton Pws · Warrenton 8,208 - - 0 None found
Dexter Pws · Dexter 8,200 - - 0 None found
Nevada Pws · Nevada 8,198 - - 0 None found
Carl Junction Pws · Carl Junction 8,142 - - 0 None found
Pulaski County Pwsd 2 · Waynesville 8,038 - - 0 None found
Jefferson County Pwsd 5 · De Soto 8,000 - - 0 None found
Boonville Pws · Boonville 7,964 - - 2 Below limits
Camden County Pwsd 4 Horseshoe Bend · Lake Ozark 7,912 - - 0 None found
Ralls County Pwsd 1 · Hannibal 7,662 5.3 - 4 Above limit
Dekalb County Pwsd 1 · Clarksdale 7,635 - - 0 None found
Pike County Pwsd 1 · Bowling Green 7,590 - - 2 Below limits
Cole County Pwsd 4 · Jefferson City 7,568 - - 0 None found
Adair County Pwsd 1 · Kirksville 7,500 - - 1 Below limits
Jefferson County Pwsd 6 · House Springs 7,500 - - 1 Below limits
Marshfield Pws · Marshfield 7,425 - - 0 None found
Laf Jo Saline County Cons Pwsd 2 · Higginsville 7,180 - - 1 Below limits
Clark County Cons Pwsd 1 · Williamstown 7,140 - - 0 None found
Sullivan Pws · Sullivan 7,081 - - 0 None found
Platte County Cons Pwsd 1 · Kansas City 7,074 - - 1 Below limits
Monroe County Pwsd 2 · Laddonia 6,700 - - 1 Below limits
Cannon Pwsd 1 · Perry 6,482 - - 1 Below limits
Boone County Pwsd 4 · Hallsville 6,455 - - 0 None found
Nodaway County Pwsd 1 · Maryville 6,428 - - 1 Below limits
Desoto Pws · Desoto 6,400 - - 0 None found
Taney County Pwsd 2 · Powersite 6,250 - - 0 None found
Peculiar Pws · Peculiar 6,226 - - 1 Below limits
Jefferson County Pwsd 7 · Hillsboro 6,100 - - 0 None found
Laclede County Pwsd 3 · Lebanon 6,075 - - 0 None found
Cass County Pwsd 9 · Harrisonville 6,063 - - 0 None found
Andrew County Pwsd 1 · Savannah 6,042 - - 0 None found
Pemiscot County Con Pwsd 1 · Hayti 6,042 - - 0 None found
Taney County Pwsd 3 · Branson 6,000 - - 0 None found
Pacific Pws · Pacific 6,000 - - 0 None found
Charleston Pws · Charleston 5,900 - - 0 None found
Richmond Pws · Richmond 5,797 - - 0 None found
Jackson County Pwsd 12 · Greenwood 5,705 - - 1 Below limits
Trenton Municipal Utilities Pws · Trenton 5,600 - - 0 None found
Pevely Pws · Pevely 5,600 - - 0 None found
Caruthersville Pws · Caruthersville 5,518 - - 0 None found
Jasper County Pwsd 1 · Carl Junction 5,500 - - 0 None found
Macon Pws · Macon 5,489 - - 1 Below limits
Waynesville Pws · Waynesville 5,460 - - 0 None found
Savannah Pws · Savannah 5,249 - - 0 None found
Odessa Pws · Odessa 5,202 - - 0 None found
Chariton Linn County Pwsd 3 · Brookfield 5,200 - - 1 Below limits
St Robert Pws · St Robert 5,192 - 11.0 1 Above limit
Desloge Pws · Desloge 5,034 - - 0 None found
Herculaneum Pws · Herculaneum 5,000 - - 1 Below limits
Ashland Pws · Ashland 4,999 - - 0 None found
Ste Genevieve Pws · Ste Genevieve 4,999 - - 0 None found
Clinton CO Pwsd 4 Sys 1 · Lathrop 4,968 - - 1 Below limits
Boone County Pwsd 10 · Centralia 4,963 - - 0 None found
Clay County Pwsd 6 · Kearney 4,912 - - 1 Below limits
Marion County Pwsd 1 · Philadelphia 4,900 - - 1 Below limits
Eldon Pws · Eldon 4,895 - - 0 None found
Higginsville Pws · Higginsville 4,800 - - 1 Below limits
Mountain Grove Pws · Mountain Grove 4,789 - - 0 None found
Salem Pws · Salem 4,736 - - 0 None found
Crystal City Pws · Crystal City 4,733 - - 1 Below limits
Jefferson CO Pwsd 8 · Cedar Hill 4,733 - - 0 None found
Lexington Pws · Lexington 4,729 - - 0 None found
Johnson County Pwsd 3 · Warrensburg 4,700 - - 0 None found
St Clair Pws · St Clair 4,700 - - 1 Below limits
Platte City Pws · Platte City 4,691 - - 1 Below limits
Scott City Pws · Scott City 4,653 - - 1 Below limits
Cass County Pwsd 2 · Belton 4,650 - - 1 Below limits
Mount Vernon Pws · Mt Vernon 4,575 - - 0 None found
North Kansas City Pws · North Kansas City 4,500 - - 3 Below limits
Lamar Pws · Lamar 4,500 1.6 - 1 Sample at limit
Fredericktown Pws · Fredricktown 4,429 - - 0 None found
Hollister Pws · Hollister 4,426 - - 0 None found
California Pws · California 4,423 - - 0 None found
Sullivan County Pwsd 1 · Milan 4,412 - - 0 None found
Dunklin County Pwsd 1 · Campbell 4,307 - - 0 None found
Butler Pws · Butler 4,219 - - 1 Below limits
Bowling Green Pws · Bowling Green 4,195 - - 1 Below limits
Cass County Pwsd 7 · Freeman 4,143 - - 1 Below limits
Brookfield Pws · Brookfield 4,111 - - 1 Below limits
Jackson County Pwsd 16 · Sibley 4,075 - - 0 None found
Centralia Pws · Centralia 4,027 - - 0 None found
Pulaski County Pwsd 1 · Laquey 4,000 - - 0 None found
Camdenton Pws · Camdenton 3,960 - 10.1 2 Above limit
Knox County Public Water & Sewer Dist 1 · Knox City 3,947 - - 1 Below limits
St James Pws · St James 3,935 - 5.0 7 Above limit
Grundy County Pwsd 1 · Trenton 3,900 - - 0 None found
Montgomery CO Pwsd 1 · Warrenton 3,850 - - 0 None found
Harrison County Pwsd 2 · Bethany 3,740 - - 0 None found
Johnson County Pwsd 1 · Warrensburg 3,730 - - 0 None found
Clinton County Pwsd 3 · Cameron 3,722 - - 1 Below limits
Ste Genevieve County Pwsd 1 Sc · Ste Genevieve 3,718 - - 0 None found
Malden Pws · Malden 3,706 - - 0 None found
Palmyra Pws · Palmyra 3,595 - - 0 None found
El Dorado Springs Pws · El Dorado Springs 3,593 - - 0 None found
Andrew County Pwsd 2 · Cosby 3,580 - - 0 None found
St Charles CO Pwsd #2 Wright City · O'fallon 3,550 - - 0 None found
Bonne Terre Pws · Bonne Terre 3,537 - - 0 None found
Carrollton Pws · Carrollton 3,514 - - 0 None found
Bonne Terre Prison · Bonne Terre 3,500 - - 0 None found
Farmington Correctional Center · Farmington 3,500 - - 0 None found
Franklin County Pwsd 1 · Washington 3,500 - - 0 None found
Schuyler County Consolidated Pwsd 1 · Queen City 3,482 - - 1 Below limits
Clay County Pwsd 3 · Holt 3,447 - - 0 None found
Scotland County Cons Pwsd 1 · Memphis 3,360 - - 1 Below limits
Cuba Pws · Cuba 3,292 - - 0 None found
Louisiana Pws · Louisiana 3,244 - - 1 Below limits
Mercer County Pwsd 1 · Mercer 3,200 - - 1 Below limits
Stoddard County Pwsd 1 · Dexter 3,000 - - 0 None found
Tipton Pws · Tipton 2,861 - - 0 None found
Monroe City Pws · Monroe 2,500 - - 1 Below limits
Clay County Pwsd 8 · Excelsior Springs 2,243 - - 1 Below limits
Holiday Hills Resort · Aurora 2,065 - - 0 None found
Anderson Pws · Anderson 1,961 - - 0 None found
Campbell Pws · Campbell 1,562 - - 0 None found
Howard County Pwsd 2 · Glasgow 1,165 - - 0 None found
Mound City Pws · Mound City 1,159 - - 0 None found
Cole Camp Pws · Cole Camp 1,150 - - 0 None found
Petro Stopping Center · Joplin 900 - - 0 None found
Ellington Pws · Ellington 790 - - 0 None found
Pilot Grove Pws · Pilot Grove 768 - - 0 None found
S K & M Water and Sewer Company · Perryville 750 - - 0 None found
Gainesville Pws · Gainesville 742 - - 0 None found
Lake Forest Estates · Ste Genevieve 650 - - 0 None found
Shelbyville Pws · Shelbville 552 - - 1 Below limits
Park Place Master Assn · Camdenton 545 - - 0 None found
Treehouse Condominiums · Branson 445 - - 0 None found
Northwood Elementary School · Salem 180 - - 0 None found
Westmier Subdivision · Troy 90 - - 0 None found
Circle C Mhp · Beaufort 75 - 5.0 2 Above limit
Sunshine Acres Subd - - 0 None found
Eureka Pws - - 0 None found

On a private well in Missouri?

EPA's program only covers public systems. Private wells are never part of UCMR 5, so the only way to know is to test. Our well testing guide covers which lab tests to order, and the best well water systems covers what to install once you have results.

Cite this page

Well & Tap. "PFAS in Missouri drinking water: results for 232 systems." Data: U.S. EPA UCMR 5, final release August 2026. https://wellandtap.com/pfas/missouri/

Source: EPA UCMR 5 final occurrence data (August 2026); population from EPA SDWIS. Method.