Original research · Minnesota
47 Minnesota cities list a licensed tester and no licensed mitigator
In 47 of 854 incorporated Minnesota cities we could tell apart, the September 28, 2026 MDH search lists at least one measurement license and no mitigation license with an address in that city. The Census place list has 856 active incorporated cities. 2 share the name St. Anthony, so those places are not in the 854.
A listed address is not a service area. A license entry is not a company: one company can hold several licenses, and one person can be both a tester and a mitigator. An absent entry does not establish a service shortage or tell us anything about radon levels in a home.
What the city review found
A measurement license is a credential ID returned by MDH’s Measurement provider search. A mitigation license is a credential ID returned by the Mitigation search. We counted a Minnesota address toward a city only when the city name matched one active incorporated place in the 2025 Census place gazetteer.
The 47 cities with a measurement license and no mitigation license are Altura, Andover, Apple Valley, Battle Lake, Belgrade, Bemidji, Blaine, Braham, Brainerd, Brooklyn Center, Brooklyn Park, Clear Lake, Cleveland, Cloquet, Cold Spring, Columbia Heights, Courtland, Detroit Lakes, Edina, Elkton, Forest Lake, Fridley, Glencoe, Golden Valley, Grand Marais, Grand Rapids, Hastings, Hutchinson, Kasson, Kenyon, Lynd, Minneota, Mountain Iron, Nevis, Northfield, Pequot Lakes, Red Wing, Sartell, St. Bonifacius, St. Cloud, Stillwater, Wabasha, Waconia, Waterville, Welcome, Winona, Woodbury.
53 cities have both. 747 of the 854 have neither a measurement nor a mitigation license with an address we could match to that city. That figure counts incorporated cities with no matched address in this pull. It does not say that no one can work there.
7 cities have a mitigation license and no measurement license: Dundas, Eyota, Farmington, Long Lake, Maple Lake, Monticello, Otsego. Each of those mitigation licenses also lists a measurement service on the same record. They do not appear in the Measurement search, so they are not counted as measurement licenses. This is not a list of cities whose records print no measurement service.
1 license lists Saint Anthony. Census records 2 incorporated places named St. Anthony. That address is not assigned to one of them, so it is not part of the 47, and those places are not part of the 747.
These address cities are not incorporated places in the gazetteer, so they are not in the city counts: Cedar, Eden Prarie, Esko, NYA, Outing, Webster. Eden Prarie is the spelling on the record. It was not changed to Eden Prairie. NYA was not expanded.
Calculated from the MDH Radon Service Providers search retrieved September 28, 2026, and the 2025 Census Gazetteer places.
What the county review found
MDH does not print a county. We assigned one only when the incorporated city sits in one county in the 2025 county-subdivision gazetteer. Cities that cross a county line were not assigned. For an address city that is not an incorporated place, we assigned a county only when that ZIP’s 2020 ZCTA lies in exactly one Minnesota county.
The 11 counties with an assigned measurement license and no assigned mitigation license are Becker, Beltrami, Cass, Cook, Dodge, Itasca, Martin, McLeod, Mower, Wabasha, Winona. No unresolved mitigation address could fall in these counties. No county has only an assigned mitigation license.
25 counties have both. 43 have no assigned address, and none of the unresolved addresses could fall in them. 8 are unresolved: Benton, Blue Earth, Carlton, Carver, Isanti, Kanabec, Le Sueur, Nicollet. An unresolved county is not a county with neither license. Chanhassen has 5 measurement and 1 mitigation license, and the city extends into Carver, Hennepin. Mankato has 5 measurement and 2 mitigation licenses, and the city extends into Blue Earth, Le Sueur, Nicollet. Rockford has 1 measurement and 1 mitigation license, and the city extends into Hennepin, Wright. Those licenses stay out of every one of those county totals.
County names and county lines: 2025 Census Gazetteer. ZCTA comparison, used only for non-city address strings: 2020 ZCTA-to-county relationship file.
Why an entry is not a company
The search returns professional credential IDs with a company-name string. MDH’s own help file describes separate measurement professional, mitigation professional, and company license applications. This public search does not include a company license number. Read MDH’s license help.
Adding measurement and mitigation totals double-counts people who appear in both searches. Names are not enough to sort every row into one business. 52 company-name strings on Minnesota addresses appear on more than one license, and spelling variants of the same firm are not merged.
| What was counted | All addresses | Minnesota address |
|---|---|---|
| Measurement licenses | 372 | 323 |
| Mitigation licenses | 120 | 99 |
| In both searches | 93 | 81 |
| Distinct credential IDs | 399 | 341 |
| Distinct company-name strings | 258 | 224 |
27 mitigation licenses are not in the Measurement search. Each of them still prints a measurement service. They are included in the mitigation total and not in the measurement total. 58 licenses list an address outside Minnesota. They are in the all-address column and not in the city or county counts.
The company-name row is a count of strings after ignoring case and extra spaces. It is not a count of businesses you can hire.
How to find help for your address
Start with the official search and ask whether someone serves your address. Before you hire anyone, check three things:
- Confirm you need testing, mitigation, or both, and check the matching credential.
- Match the name and credential ID to the current MDH record. A pull dated September 28, 2026 is not a promise that the license is still active.
- Ask whether they serve your address, when they can come, and whether travel is extra. The listed city does not answer those questions. MDH may also print a statewide or mileage note. That note is not a map of where they will go.
EPA recommends consulting the state radon program about requirements that apply to providers. Minnesota’s consumer page is the MDH find-a-professional page.
Browse Minnesota’s source-linked directory and confirm current status on MDH’s search before hiring. Directory listings are refreshed on their own schedule and can differ from this snapshot.
Methods and original sources
We queried the MDH search on September 28, 2026. The HTTP date on the first response was Mon, 28 Sep 2026 18:16:07 GMT. The application footer said Version 2.3.4, 08/21/25 6:32PM. That is the software version printed on the page, not a roster date. There is no separate file date. The pull date is the date of the records used here. It is not the verification date on an individual directory listing.
The form requires a provider type and a service type. We ran Measurement and Mitigation for single-family homes, multi-family buildings, and schools and large buildings, with ZIP left blank. We did not request analysis laboratories. Each result page was collected until the rows matched the count MDH reported. Credential IDs were unique inside each search. The same ID in more than one search was kept once, and the services were combined.
The single-family searches alone return 341 measurement IDs and 116 mitigation IDs. The counts on this page use all three service types. Limiting the count to single-family searches would change the city flag for Cleveland (Measurement only with all three service types; Neither from single-family searches alone); Eagan (Both with all three service types; Measurement only from single-family searches alone). The directory’s Minnesota import uses the single-family search only. This study did not replace that import.
The city is the city on the last line of the mailing address. When that city repeated the state abbreviation, as in “Maple Lake MN, MN”, the repeated abbreviation was removed. We did not correct other spellings. We did not turn the service-area note into a service area, and we did not invent a street.
City denominator: 856 active incorporated cities (Census place gazetteer, legal/statistical area code 25, functional status A). Names were compared after lowercasing, removing punctuation, and expanding St. to Saint and Ft. to Fort. 854 names matched one place. St. Anthony matched two and was held out.
County denominator: all 87 Minnesota counties. A one-county city was assigned from the county-subdivision row named for that city. These incorporated cities cross a county line and were not forced into one: Blaine (Anoka, Ramsey); Braham (Isanti, Kanabec); Chanhassen (Carver, Hennepin); Hastings (Dakota, Washington); Mankato (Blue Earth, Le Sueur, Nicollet); Northfield (Dakota, Rice); Rockford (Hennepin, Wright); Sartell (Benton, Stearns); St. Cloud (Benton, Sherburne, Stearns). Address strings that are not incorporated cities: Cedar (ZIP 55011; assigned to Anoka because the 2020 ZCTA is in that county only); Eden Prarie (ZIP 55344; assigned to Hennepin because the 2020 ZCTA is in that county only); Esko (ZIP 55733; not assigned; the 2020 ZCTA meets Carlton and St. Louis); NYA (ZIP 55397; not assigned; the 2020 ZCTA meets Carver and McLeod); Outing (ZIP 56662; assigned to Cass because the 2020 ZCTA is in that county only); Webster (ZIP 55088; not assigned; the 2020 ZCTA meets Rice and Scott). A ZIP is not a ZCTA. The ZCTA rule was used only for those non-city strings.
We did not estimate which part of a multi-county city an address sits in. Counties those addresses might fall in are marked unresolved when that would change a zero. Agreement between this file and the Census name is agreement of names, not proof the list is complete.
- MDH Radon Service Providers search
- MDH find-a-radon-professional page
- MDH license application help
- US Census 2025 Gazetteer files
- 2020 Census ZCTA-to-county relationship file
This is our analysis of published records. MDH has not reviewed or endorsed it, and no external professional review is claimed.
County data and downloads
The CSV has all 87 counties. Testers and mitigators are license entries assigned to that county. Zero means nothing was assigned there. Unresolved means an address we could not place in one county might belong there. Possible counts in the CSV are those unassigned licenses. They are not added to the tester or mitigator columns.
- Download the 87-county comparison (CSV)
- Download methods and column definitions (text)
- Download source URLs, the pull date, and file fingerprints (JSON)
View all 87 counties
| County | Testers | Mitigators | Flag |
|---|---|---|---|
| Aitkin | 1 | 1 | Both |
| Anoka | 30 | 4 | Both |
| Becker | 2 | 0 | Measurement only |
| Beltrami | 2 | 0 | Measurement only |
| Benton | 0 | 0 | Unresolved |
| Big Stone | 0 | 0 | Neither |
| Blue Earth | 0 | 0 | Unresolved |
| Brown | 0 | 0 | Neither |
| Carlton | 1 | 0 | Unresolved |
| Carver | 1 | 0 | Unresolved |
| Cass | 1 | 0 | Measurement only |
| Chippewa | 0 | 0 | Neither |
| Chisago | 2 | 2 | Both |
| Clay | 1 | 1 | Both |
| Clearwater | 0 | 0 | Neither |
| Cook | 1 | 0 | Measurement only |
| Cottonwood | 0 | 0 | Neither |
| Crow Wing | 5 | 1 | Both |
| Dakota | 10 | 4 | Both |
| Dodge | 1 | 0 | Measurement only |
| Douglas | 2 | 2 | Both |
| Faribault | 0 | 0 | Neither |
| Fillmore | 0 | 0 | Neither |
| Freeborn | 1 | 1 | Both |
| Goodhue | 4 | 1 | Both |
| Grant | 1 | 1 | Both |
| Hennepin | 119 | 25 | Both |
| Houston | 0 | 0 | Neither |
| Hubbard | 3 | 1 | Both |
| Isanti | 0 | 0 | Unresolved |
| Itasca | 1 | 0 | Measurement only |
| Jackson | 0 | 0 | Neither |
| Kanabec | 0 | 0 | Unresolved |
| Kandiyohi | 1 | 1 | Both |
| Kittson | 0 | 0 | Neither |
| Koochiching | 0 | 0 | Neither |
| Lac qui Parle | 0 | 0 | Neither |
| Lake | 0 | 0 | Neither |
| Lake of the Woods | 0 | 0 | Neither |
| Le Sueur | 2 | 0 | Unresolved |
| Lincoln | 0 | 0 | Neither |
| Lyon | 7 | 3 | Both |
| Mahnomen | 0 | 0 | Neither |
| Marshall | 0 | 0 | Neither |
| Martin | 1 | 0 | Measurement only |
| McLeod | 2 | 0 | Measurement only |
| Meeker | 0 | 0 | Neither |
| Mille Lacs | 0 | 0 | Neither |
| Morrison | 0 | 0 | Neither |
| Mower | 1 | 0 | Measurement only |
| Murray | 0 | 0 | Neither |
| Nicollet | 1 | 0 | Unresolved |
| Nobles | 0 | 0 | Neither |
| Norman | 0 | 0 | Neither |
| Olmsted | 20 | 10 | Both |
| Otter Tail | 8 | 3 | Both |
| Pennington | 0 | 0 | Neither |
| Pine | 0 | 0 | Neither |
| Pipestone | 0 | 0 | Neither |
| Polk | 0 | 0 | Neither |
| Pope | 0 | 0 | Neither |
| Ramsey | 18 | 6 | Both |
| Red Lake | 0 | 0 | Neither |
| Redwood | 0 | 0 | Neither |
| Renville | 0 | 0 | Neither |
| Rice | 3 | 2 | Both |
| Rock | 0 | 0 | Neither |
| Roseau | 0 | 0 | Neither |
| Scott | 8 | 5 | Both |
| Sherburne | 5 | 2 | Both |
| Sibley | 0 | 0 | Neither |
| St. Louis | 6 | 4 | Both |
| Stearns | 4 | 2 | Both |
| Steele | 4 | 1 | Both |
| Stevens | 0 | 0 | Neither |
| Swift | 0 | 0 | Neither |
| Todd | 0 | 0 | Neither |
| Traverse | 0 | 0 | Neither |
| Wabasha | 1 | 0 | Measurement only |
| Wadena | 0 | 0 | Neither |
| Waseca | 0 | 0 | Neither |
| Washington | 14 | 4 | Both |
| Watonwan | 0 | 0 | Neither |
| Wilkin | 0 | 0 | Neither |
| Winona | 2 | 0 | Measurement only |
| Wright | 2 | 7 | Both |
| Yellow Medicine | 0 | 0 | Neither |
If you find an error, send a correction with the credential ID and county.