Hannibal is a city located in Marion County, Missouri. Hannibal has a 2026 population of 16,677. Hannibal is currently declining at a rate of -0.39% annually and its population has decreased by -2.32% since the most recent census, which recorded a population of 17,073 in 2020.
The median household income in Hannibal is $53,721 with a poverty rate of 19.48%. The median age in Hannibal is 38.5 years: 36.3 years for males, and 40.4 years for females. For every 100 females there are 85.6 males.
Data after 2023 is projected based on recent change
Overall: 38.5 years
Female: 40.4 years
Male: 36.3 years
There are 12,873 adults, (3,298 of whom are seniors) in Hannibal.
Female: 9,037 (53.9%)
Male: 7,734 (46.1%)
The racial composition of Hannibal includes 87.39% White, 5.74% Black or African American, and smaller percentages for Asian, other race, Native American and multiracial populations.
| Race | Population ↓ | Percentage (of total) |
|---|---|---|
| White | 14,656 | 87.39% |
| Black or African American | 963 | 5.74% |
| Two or more races | 894 | 5.33% |
| Asian | 185 | 1.1% |
| Other race | 50 | 0.3% |
| Native American | 23 | 0.14% |
Hannibal 's average per capita income is $40,435. Household income levels show a median of $53,721. The poverty rate stands at 19.48%.
| Name | Median ↓ | Mean |
|---|---|---|
| Married Families | $85,217 | - |
| Families | $62,304 | $76,640 |
| Households | $53,721 | $63,272 |
| Non Families | $26,400 | $36,340 |
Average Income
Median Household Income
Poverty Rate