Microproduct data guideintermediate

CDC PLACES

Modeled local health estimates for U.S. counties and smaller areas for building community-health comparisons and resource-planning tools.

At a glance

Difficulty
Intermediate — some data preparation helps
Size
Small · ≤0.1 GB
Formats
JSON, CSV, GeoJSON
Access
API or Download
API key
Not required
Provider
Centers for Disease Control and Prevention
Updates
Annual
Data terms
U.S. Public Domain with CDC attribution and use requirements

From source to product signal

Test a product idea in four steps

CDC PLACES provides consistently modeled health estimates for counties, places, census tracts, and ZIP Code Tabulation Areas. Start with one measure and a few counties from the current release. PLACES values are modeled small-area estimates with uncertainty, not diagnoses or direct local case counts.

1

Check the setup

  • Python 3.10 or newer
  • A notebook environment such as Jupyter or Google Colab
  • Three county FIPS codes for a bounded comparison
2

Access the data

  1. 1.Open the current PLACES release and record its year and county dataset identifier.
  2. 2.Choose one documented measure and one prevalence type for a small set of county FIPS codes.
  3. 3.Retain confidence limits and methodology context when comparing the modeled estimates.
Open official source
3

Run the Python example

Install the packages, then run the notebook cell.

python -m pip install pandas requests

import pandas as pd
import requests

response = requests.get(
    "https://data.cdc.gov/resource/swc5-untb.json",
    params={
        "$select": "locationid,locationname,stateabbr,measureid,data_value,data_value_unit,low_confidence_limit,high_confidence_limit",
        "$where": "measureid='DIABETES' AND data_value_type='Age-adjusted prevalence' AND locationid in('06037','06073','06075')",
        "$limit": 10,
    },
    timeout=30,
)
response.raise_for_status()
counties = pd.DataFrame(response.json())
for column in ["data_value", "low_confidence_limit", "high_confidence_limit"]:
    counties[column] = pd.to_numeric(counties[column], errors="coerce")
counties["retrieved_at_utc"] = pd.Timestamp.now(tz="UTC")
print(counties.sort_values("data_value", ascending=False))
4

Test a useful signal

Compare modeled diabetes prevalence across three counties

Compare age-adjusted diagnosed-diabetes estimates and uncertainty for three California counties.

  1. 01Confirm the release year, DIABETES measure definition, county FIPS codes, and age-adjusted prevalence type.
  2. 02Rank the three estimates while showing their low and high confidence limits.
  3. 03Explain that overlapping uncertainty, model inputs, and small-area estimation prevent treating the values as diagnoses, direct counts, or program effects.

Dataset details

Centers for Disease Control and Prevention is a government source. Last verified 2026-08-11. Temporal coverage: annual releases using recent survey and population inputs.

Domains

Public HealthCommunity Health

Data types

Modeled EstimatesGeospatialTabular

Tasks

Health ComparisonResource PlanningMarket Sizing

Geography

United States

Formats

JSONCSVGeoJSON

Provider

Centers for Disease Control and Prevention

Data terms

U.S. Public Domain with CDC attribution and use requirements