Saltar al contenido
← Todos los conjuntos de datos

Air Quality Days (EPA AQI)

Days by Air Quality Index category in Georgia's monitored counties, and the share unhealthy for sensitive groups or worse.

Cobertura de años
2000–2025
Actualización
annual
Versión
1.0.0
Hash del esquema
a9ef0d9b2984

Niveles de detalle disponibles

Condado · predeterminado

Resumen

How many days each year the air in a Georgia county was good, moderate or unhealthy by the U.S. EPA's daily Air Quality Index (AQI), for every county with an AQI-reporting monitor (26 to 35 counties a year), 2000-2025. The headline is the share of monitored days with an AQI above 100 (unhealthy for sensitive groups or worse). Also served: the days in each of EPA's six AQI categories, the year's maximum, 90th-percentile and median daily AQI, and the days each pollutant (ozone, fine particles PM2.5, coarse particles PM10, nitrogen dioxide, carbon monoxide) set the day's AQI. A county's daily AQI is the highest AQI among its monitors and pollutants that day.

Granularidad de fila: Una fila por year, county_fips, tract_geoid.

Métrica clave

pct_days_unhealthy_for_sensitive_groups_or_above — Share of Days Unhealthy for Sensitive Groups or Worse (proportion)

El valor principal que la mayoría de las consultas busca.

Variables

Todas las columnas de la tabla de hechos. El código es el nombre exacto del campo que devuelve la API.

ColumnaTipoUnidadRango¿Nulo?Descripción
yearYearinteger——noCalendar year (January 1 - December 31) of the daily AQI values.
Descripción completa
Calendar year (January 1 - December 31) of the daily AQI values.
county_fipsCounty FIPSstring——no5-digit county FIPS code, matched from EPA's county name through the counties dimension. Only counties with an AQI-reporting monitor that year have a row.
Descripción completa
5-digit county FIPS code, matched from EPA's county name through the counties dimension. Only counties with an AQI-reporting monitor that year have a row.

Se une a counties; agrega sus columnas de etiqueta.

tract_geoidTract GEOIDstring——yesAlways NULL: EPA's AQI summary is by county. Kept for the health domain's standard key shape.
Descripción completa
Always NULL: EPA's AQI summary is by county. Kept for the health domain's standard key shape.

Se une a tracts; agrega sus columnas de etiqueta.

pct_days_unhealthy_for_sensitive_groups_or_aboveShare of Days Unhealthy for Sensitive Groups or Worsenumberproportion—yesShare of the county's monitored days with an AQI above 100 (unhealthy for sensitive groups or worse).
Descripción completa
Share of the county's monitored days (num_days_with_aqi) whose daily AQI was above 100: unhealthy for sensitive groups (101-150), unhealthy (151-200), very unhealthy (201-300) or hazardous (301 and up). Our calculation, num_days_unhealthy_for_sensitive_groups_or_above / num_days_with_aqi, on the 0-1 scale (0.0137 = 1.37%). A share of the days the county had an AQI, not of the calendar year, so it is comparable where raw day counts are not; with few monitored days (as low as 11) it is noisy. For several counties or years, pool as SUM(num_days_unhealthy_for_sensitive_groups_or_above) / SUM(num_days_with_aqi).
num_days_unhealthy_for_sensitive_groups_or_aboveDays Unhealthy for Sensitive Groups or Worseintegercount—yesDays with a daily AQI above 100: our sum of the published unhealthy for sensitive groups, unhealthy, very unhealthy and hazardous day counts. The numerator of pct_days_unhealthy_for_sensitive_groups_or_above; a count of monitored days, so not comparable across counties or years on its own.
Descripción completa
Days with a daily AQI above 100: our sum of the published unhealthy for sensitive groups, unhealthy, very unhealthy and hazardous day counts. The numerator of pct_days_unhealthy_for_sensitive_groups_or_above; a count of monitored days, so not comparable across counties or years on its own.
num_days_with_aqiDays with an AQIintegercount—yesDays in the year the county had a daily AQI value (11 to 366 in Georgia), as published (Days with AQI): the days monitored, not the calendar year. Below 365 when monitors run only in the March-October ozone season, sample every third or sixth day, or start or stop mid-year. The denominator of pct_days_unhealthy_for_sensitive_groups_or_above.
Descripción completa
Days in the year the county had a daily AQI value (11 to 366 in Georgia), as published (Days with AQI): the days monitored, not the calendar year. Below 365 when monitors run only in the March-October ozone season, sample every third or sixth day, or start or stop mid-year. The denominator of pct_days_unhealthy_for_sensitive_groups_or_above.
num_days_goodGood Daysintegercount—yesDays in the year whose daily AQI was 0-50 (good), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
Descripción completa
Days in the year whose daily AQI was 0-50 (good), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
num_days_moderateModerate Daysintegercount—yesDays in the year whose daily AQI was 51-100 (moderate), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
Descripción completa
Days in the year whose daily AQI was 51-100 (moderate), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
num_days_unhealthy_for_sensitive_groupsDays Unhealthy for Sensitive Groupsintegercount—yesDays in the year whose daily AQI was 101-150 (unhealthy for sensitive groups), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
Descripción completa
Days in the year whose daily AQI was 101-150 (unhealthy for sensitive groups), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
num_days_unhealthyUnhealthy Daysintegercount—yesDays in the year whose daily AQI was 151-200 (unhealthy), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
Descripción completa
Days in the year whose daily AQI was 151-200 (unhealthy), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
num_days_very_unhealthyVery Unhealthy Daysintegercount—yesDays in the year whose daily AQI was 201-300 (very unhealthy), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
Descripción completa
Days in the year whose daily AQI was 201-300 (very unhealthy), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
num_days_hazardousHazardous Daysintegercount—yesDays in the year whose daily AQI was 301 or higher (hazardous), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
Descripción completa
Days in the year whose daily AQI was 301 or higher (hazardous), as published. One of six category counts that sum to num_days_with_aqi; a count of monitored days, so compare shares of num_days_with_aqi across counties and years, not raw counts.
max_aqiMaximum AQInumberscore≥ 0yesHighest of the county's daily AQI values over its monitored days, in AQI index points as published (whole numbers). The AQI runs 0-500 for reporting, but EPA publishes higher values as measured (above 500 elsewhere in the U.S.), so there is no upper bound. Georgia's highest is 357 (Richmond County, 2017), the series' only hazardous day, preserved as published. A statistic of one county's year: never sum or average it across counties or years.
Descripción completa
Highest of the county's daily AQI values over its monitored days, in AQI index points as published (whole numbers). The AQI runs 0-500 for reporting, but EPA publishes higher values as measured (above 500 elsewhere in the U.S.), so there is no upper bound. Georgia's highest is 357 (Richmond County, 2017), the series' only hazardous day, preserved as published. A statistic of one county's year: never sum or average it across counties or years.
aqi_90th_percentile90th Percentile AQInumberscore≥ 0yes90th percentile of the county's daily AQI values over its monitored days, in AQI index points as published (whole numbers). The AQI runs 0-500 for reporting, but EPA publishes higher values as measured (above 500 elsewhere in the U.S.), so there is no upper bound. A statistic of one county's year: never sum or average it across counties or years.
Descripción completa
90th percentile of the county's daily AQI values over its monitored days, in AQI index points as published (whole numbers). The AQI runs 0-500 for reporting, but EPA publishes higher values as measured (above 500 elsewhere in the U.S.), so there is no upper bound. A statistic of one county's year: never sum or average it across counties or years.
median_aqiMedian AQInumberscore≥ 0yesMedian of the county's daily AQI values over its monitored days, in AQI index points as published (whole numbers). The AQI runs 0-500 for reporting, but EPA publishes higher values as measured (above 500 elsewhere in the U.S.), so there is no upper bound. A statistic of one county's year: never sum or average it across counties or years.
Descripción completa
Median of the county's daily AQI values over its monitored days, in AQI index points as published (whole numbers). The AQI runs 0-500 for reporting, but EPA publishes higher values as measured (above 500 elsewhere in the U.S.), so there is no upper bound. A statistic of one county's year: never sum or average it across counties or years.
num_days_main_pollutant_coDays Carbon Monoxide Was Main Pollutantintegercount—yesDays carbon monoxide (CO) was the main pollutant (the one whose AQI set the county's daily AQI), as published. The five main-pollutant counts sum to num_days_with_aqi; a second split of the same days as the AQI categories, so never add one to a category count. A 0 can mean the pollutant was measured but never the highest, or not measured in the county.
Descripción completa
Days carbon monoxide (CO) was the main pollutant (the one whose AQI set the county's daily AQI), as published. The five main-pollutant counts sum to num_days_with_aqi; a second split of the same days as the AQI categories, so never add one to a category count. A 0 can mean the pollutant was measured but never the highest, or not measured in the county.
num_days_main_pollutant_no2Days Nitrogen Dioxide Was Main Pollutantintegercount—yesDays nitrogen dioxide (NO2) was the main pollutant (the one whose AQI set the county's daily AQI), as published. The five main-pollutant counts sum to num_days_with_aqi; a second split of the same days as the AQI categories, so never add one to a category count. A 0 can mean the pollutant was measured but never the highest, or not measured in the county.
Descripción completa
Days nitrogen dioxide (NO2) was the main pollutant (the one whose AQI set the county's daily AQI), as published. The five main-pollutant counts sum to num_days_with_aqi; a second split of the same days as the AQI categories, so never add one to a category count. A 0 can mean the pollutant was measured but never the highest, or not measured in the county.
num_days_main_pollutant_ozoneDays Ozone Was Main Pollutantintegercount—yesDays ground-level ozone was the main pollutant (the one whose AQI set the county's daily AQI), as published. The five main-pollutant counts sum to num_days_with_aqi; a second split of the same days as the AQI categories, so never add one to a category count. A 0 can mean the pollutant was measured but never the highest, or not measured in the county.
Descripción completa
Days ground-level ozone was the main pollutant (the one whose AQI set the county's daily AQI), as published. The five main-pollutant counts sum to num_days_with_aqi; a second split of the same days as the AQI categories, so never add one to a category count. A 0 can mean the pollutant was measured but never the highest, or not measured in the county.
num_days_main_pollutant_pm25Days PM2.5 Was Main Pollutantintegercount—yesDays fine particulate matter (PM2.5) was the main pollutant (the one whose AQI set the county's daily AQI), as published. The five main-pollutant counts sum to num_days_with_aqi; a second split of the same days as the AQI categories, so never add one to a category count. A 0 can mean the pollutant was measured but never the highest, or not measured in the county.
Descripción completa
Days fine particulate matter (PM2.5) was the main pollutant (the one whose AQI set the county's daily AQI), as published. The five main-pollutant counts sum to num_days_with_aqi; a second split of the same days as the AQI categories, so never add one to a category count. A 0 can mean the pollutant was measured but never the highest, or not measured in the county.
num_days_main_pollutant_pm10Days PM10 Was Main Pollutantintegercount—yesDays coarse particulate matter (PM10) was the main pollutant (the one whose AQI set the county's daily AQI), as published. The five main-pollutant counts sum to num_days_with_aqi; a second split of the same days as the AQI categories, so never add one to a category count. A 0 can mean the pollutant was measured but never the highest, or not measured in the county.
Descripción completa
Days coarse particulate matter (PM10) was the main pollutant (the one whose AQI set the county's daily AQI), as published. The five main-pollutant counts sum to num_days_with_aqi; a second split of the same days as the AQI categories, so never add one to a category count. A 0 can mean the pollutant was measured but never the highest, or not measured in the county.

Filtros

Parámetros de consulta que acepta el endpoint de hechos. Los valores separados por comas son OR dentro de un parámetro; varios parámetros se combinan con AND.

ParámetroTipoValores permitidosNotas
yearyear_exactcualquier valor—
year_minyear_rangecualquier valor—
year_maxyear_rangecualquier valor—
detaildetailcountiesenum validado, predeterminado: counties
county_fipsforeign_keycualquier valorvalores múltiples
tract_geoidforeign_keycualquier valorvalores múltiples

Ejemplos de solicitudes

Ejecútalos contra la URL base: devuelven datos en vivo.

All rows (first page), counties level

curl "https://georgiacivicdata.org/api/v1/health/air_quality_days"

counties data for 2025

curl "https://georgiacivicdata.org/api/v1/health/air_quality_days?year=2025"

One county (FIPS 13121), 2025

curl "https://georgiacivicdata.org/api/v1/health/air_quality_days?county_fips=13121&year=2025&detail=counties"

Download 2025 as CSV

curl "https://georgiacivicdata.org/api/v1/health/air_quality_days?year=2025&format=csv"

Notas y limitaciones

Manejo de NULL

  • El cero es un valor real y reportado.

Limitaciones

Monitored counties only: a county has a row only in years it had an air monitor reporting a daily Air Quality Index (26 to 35 of Georgia's 159 counties a year, 36 over 2000-2025). No row is not clean air; it means no measurement. Shares are of the days the county had an AQI (num_days_with_aqi, 11 to 366), not of the calendar year: ozone-only monitors mostly run in the March-October ozone season, when most unhealthy days occur, and particle samplers may run every third or sixth day, so raw day counts are not comparable across counties or years and even shares are not strictly so. A county's daily AQI is the highest AQI among its monitors and pollutants that day, so it depends on which monitors the county had; monitors open and close (counties join in 2002 and 2005 and drop out in 2003, 2009, 2017-2018 and 2025), so a sum or pooled share across counties covers a changing set and there is no statewide row. EPA computes every year with the current AQI breakpoints (ozone revised 2015, fine particles 2024), so years are on one scale, but counts can differ from AQI reports published at the time. EPA regenerates the whole series in place; these files are as of 2026-06-25. The share of days unhealthy for sensitive groups or above and its day count are our calculation from EPA's published category counts. Unhealthy days come in episodes of consecutive days that often reach several counties at once, so they are not independent events: a test that treats each day separately overstates its certainty. EPA suppresses nothing: there are no NULLs, and a 0 is a real count of monitored days. tract_geoid is always NULL.