Homicide Deaths
Homicide and firearm homicide death rates per 100,000 and deaths, by Georgia county, 2019-2024 (CDC MIOV).
- 2019–2024
- annual
- 1.0.0
- 7b61e1b6a35b
Overview
Homicide deaths among the residents of each of Georgia's 159 counties, 2019-2024, all methods and by firearm: CDC's crude death rate per 100,000 residents (the observed rate, or an estimate from CDC's Bayesian model, with its 95% credible interval, where the county had 1-9 deaths) and the number of deaths, from CDC's Mapping Injury, Overdose, and Violence (MIOV) dashboard (National Vital Statistics System death records). Counts of 1-9 are withheld by CDC.
Row grain: One row per year, county_fips, tract_geoid, method.
death_rate_per_100k — Homicide Death Rate (per 100,000) (rate_per_population)
The single headline value most answers want.
Variables
Every column in the fact table. The code is the exact field name the API returns.
| Column | Type | Unit | Range | Null? | Description |
|---|---|---|---|---|---|
year | integer | — | — | no | Calendar year of death (2019-2024), final as CDC publishes it. CDC's provisional trailing 12 months (June 2025 to May 2026) are not included.Full description▾Calendar year of death (2019-2024), final as CDC publishes it. CDC's provisional trailing 12 months (June 2025 to May 2026) are not included. |
county_fips | string | — | — | no | 5-digit county FIPS code as published (FK to the counties dimension): the decedent's county of residence. Every row is a county; CDC publishes no Georgia total in this dataset.Full description▾5-digit county FIPS code as published (FK to the counties dimension): the decedent's county of residence. Every row is a county; CDC publishes no Georgia total in this dataset. |
tract_geoid | string | — | — | yes | Always NULL: this dataset is by county. Kept for the health domain's standard key shape.Full description▾Always NULL: this dataset is by county. Kept for the health domain's standard key shape. |
method | string | — | — | no | 'all' is every homicide; 'firearm' is homicides by firearm, a subset of 'all'. Never add the two.Full description▾Method of homicide, as CDC groups it: 'all' (every homicide death, any method: the total) or 'firearm' (homicides by firearm, which are also counted in 'all'). Never add the two. No other method is published, and a non-firearm figure ('all' minus 'firearm') is not served: it would need, or narrow, the counts CDC withholds. 2 allowed values▾
|
death_rate_per_100k | number | — | yes | Homicide deaths per 100,000 residents a year (crude); an estimate from CDC's model where the county had 1-9 deaths.Full description▾Homicide deaths per 100,000 residents of the county in the year, crude (all ages, not age-adjusted), as CDC publishes it (rounded to 0.1). With 0 or 10 or more deaths it is the observed rate (deaths / population x 100,000; 0 with no deaths). With 1 to 9 deaths it is an estimate from CDC's Bayesian model, which borrows strength from neighboring counties to steady small counts and protect privacy (rate_modeled true), with a 95% credible interval: not deaths / population, and never 0. Rates never add or average across counties, and no population is published to weight them. The highest is a model estimate, 47.0 (Terrell County, 13273, 2023, firearm homicides: 1 to 9 deaths, 95% credible interval 21.3-103.7); the highest observed rate is 37.8 (Bibb County, 13021, 2022: 59 deaths). Both preserved as published: a few deaths in a small county give a high rate. A modeled firearm rate can exceed the same county's modeled all-homicide rate (separate model fits; see limitations). Fulton County, 2024: 16.8 (181 deaths). | |
death_rate_per_100k_ci_lower | number | — | yes | Lower bound of the 95% credible interval of death_rate_per_100k, as CDC publishes it, for modeled rates only (rate_modeled true): under CDC's model, the true rate lies in the interval with 95% probability. Wide for small counties.Full description▾Lower bound of the 95% credible interval of death_rate_per_100k, as CDC publishes it, for modeled rates only (rate_modeled true): under CDC's model, the true rate lies in the interval with 95% probability. Wide for small counties. | |
death_rate_per_100k_ci_upper | number | — | yes | Upper bound of the 95% credible interval of death_rate_per_100k, as CDC publishes it, for modeled rates only (rate_modeled true).Full description▾Upper bound of the 95% credible interval of death_rate_per_100k, as CDC publishes it, for modeled rates only (rate_modeled true). | |
num_deaths | integer | — | yes | Number of homicide deaths among residents of the county in the year, as CDC publishes it: 0, or 10 and more; CDC withholds 1 to 9 (NULL here, rate_modeled true). A published 0 is a real zero. Adds across counties only where none is NULL, so a sum over counties with a NULL is an undercount: there is no Georgia total in this dataset. Firearm homicides are also counted in 'all': never add the two methods.Full description▾Number of homicide deaths among residents of the county in the year, as CDC publishes it: 0, or 10 and more; CDC withholds 1 to 9 (NULL here, rate_modeled true). A published 0 is a real zero. Adds across counties only where none is NULL, so a sum over counties with a NULL is an undercount: there is no Georgia total in this dataset. Firearm homicides are also counted in 'all': never add the two methods. | |
rate_modeled | boolean | — | — | no | True when the rate is CDC's model estimate (1-9 deaths, count withheld).Full description▾CDC's modeled-rate flag (rate_m): true where the county had 1 to 9 deaths, so num_deaths is withheld and death_rate_per_100k is an estimate from CDC's Bayesian model with a 95% credible interval (rate and interval NULL where CDC flags the modeled rate as unstable and does not publish it, -999 in the source); false where the rate is observed (0 or 10 or more deaths). Describes the row, not part of its key. |
Filters
Query parameters the fact endpoint accepts. Comma-separated values are OR within a parameter; multiple parameters AND together.
| Parameter | Kind | Allowed values | Notes |
|---|---|---|---|
year | year_exact | any value | — |
year_min | year_range | any value | — |
year_max | year_range | any value | — |
detail | detail | counties | enum-enforced, default: counties |
county_fips | foreign_key | any value | multi-value |
tract_geoid | foreign_key | any value | multi-value |
method | categorical | allfirearm | multi-value, enum-enforced |
rate_modeled | categorical | any value | multi-value |
Example requests
Run these against the base URL — they return live data.
All rows (first page), counties level
curl "https://georgiacivicdata.org/api/v1/health/homicide_deaths"counties data for 2024
curl "https://georgiacivicdata.org/api/v1/health/homicide_deaths?year=2024"Filtered to method = firearm for 2024
curl "https://georgiacivicdata.org/api/v1/health/homicide_deaths?year=2024&method=firearm"One county (FIPS 13121), 2024
curl "https://georgiacivicdata.org/api/v1/health/homicide_deaths?county_fips=13121&year=2024&detail=counties"Download 2024 as CSV
curl "https://georgiacivicdata.org/api/v1/health/homicide_deaths?year=2024&format=csv"Notes & limitations
NULL handling
- Suppressed cells (values the source withholds, usually for a group too small to report) are NULL, never zero.
- Zero is a real, reported value.
Limitations
Homicide deaths by the victim's county of residence, not where the homicide happened, calendar years only. Counties with 1 to 9 deaths get a CDC model estimate in place of an observed rate (rate_modeled true), so many county rates are estimates. Rates are crude (deaths per 100,000 residents of all ages), not age-adjusted, so places with older or younger populations are not directly comparable. Where a county had 1 to 9 deaths CDC withholds the count (shown as '1-9': num_deaths NULL, never a zero, never backed out of a total) and publishes instead an estimate from its Bayesian model, which borrows strength from neighboring counties (rate_modeled true), with a 95% credible interval; a modeled rate is not deaths divided by population, and where CDC flags the modeled rate as unstable and does not publish it (-999 in the source) the rate and interval are NULL. Here 61% of rows have 1 to 9 deaths (18 of them with no rate at all): most counties' figures are model estimates, so compare them by their credible intervals. 'firearm' homicides are a subset of 'all' (never add the two) and are also counted in firearm_deaths (firearm deaths of every intent), so never add figures across the MIOV topics. This county dataset has no Georgia row: a sum of counties with a withheld count is an undercount (CDC publishes Georgia's totals in its separate MIOV state dataset, data.cdc.gov fpsi-y8tj, which is not part of this table). Not included: CDC's provisional trailing 12 months (June 2025 to May 2026), which CDC revises and rolls forward monthly; every row here is a calendar year. A modeled firearm rate and a modeled all-homicide rate come from separate model fits, so a firearm estimate can exceed the all-homicide estimate for the same county and year: in this release one does (Terrell County, 2023: 47.0 against 45.5, both from 1 to 9 deaths, the firearm figure inside the all-homicide estimate's credible interval). Observed firearm rates never exceed observed all-homicide rates. Not comparable with police crime counts, which count homicides where they happen and by their own definitions. CDC's data dictionary (not part of this source file) gives the cause-of-death codes; Georgia DPH's OASIS also publishes assault (homicide) deaths, with age-adjusted rates and demographics, from the state's own records and population estimates: compare places within one source only. No demographics, methods other than firearm, or nonfatal assaults in this table.