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.
- 2000–2025
- annual
- 1.0.0
- a9ef0d9b2984
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.
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.
| Columna | Tipo | Unidad | Rango | ¿Nulo? | Descripción |
|---|---|---|---|---|---|
year | integer | — | — | no | Calendar 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_fips | string | — | — | no | 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.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. |
tract_geoid | string | — | — | yes | Always 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. |
pct_days_unhealthy_for_sensitive_groups_or_above | number | — | yes | Share 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_above | integer | — | yes | 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.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_aqi | integer | — | yes | 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.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_good | integer | — | yes | 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.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_moderate | integer | — | yes | 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.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_groups | integer | — | yes | 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.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_unhealthy | integer | — | yes | 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.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_unhealthy | integer | — | yes | 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.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_hazardous | integer | — | yes | 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.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_aqi | number | ≥ 0 | yes | 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.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_percentile | number | ≥ 0 | yes | 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.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_aqi | number | ≥ 0 | yes | 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.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_co | integer | — | yes | 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.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_no2 | integer | — | yes | 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.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_ozone | integer | — | yes | 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.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_pm25 | integer | — | yes | 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.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_pm10 | integer | — | yes | 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.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ámetro | Tipo | Valores permitidos | Notas |
|---|---|---|---|
year | year_exact | cualquier valor | — |
year_min | year_range | cualquier valor | — |
year_max | year_range | cualquier valor | — |
detail | detail | counties | enum validado, predeterminado: counties |
county_fips | foreign_key | cualquier valor | valores múltiples |
tract_geoid | foreign_key | cualquier valor | valores 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.