Hannibal, Missouri
City in Marion County · population 17,108 (2020 Census) · spans 2 counties
- Median home
- $127,700
- Household income
- $53,721
- Jan low / Jul high
- 18° / 86°
- Snow a year
- 13 in
- Tornadoes ≤10 mi since 1950
- 17
- Median age
- 38.5
Hannibal is a city of 17,108 people in Marion County, Missouri. The median home is worth $127,700, below the typical Missouri town ($153,900). It ranks more walkable than 85% of Missouri towns, hipper than 85% of Missouri towns, more vibrant than 82% of Missouri towns.
How Hannibal ranks
Percentile among Missouri towns with at least 500 people on The Town Files lifestyle rankings. 50 is typical for the state; 90 means better than 90% of Missouri towns.
Homes and cost of living
The median home in Hannibal is worth $127,700, below the typical Missouri town ($153,900). Homes cost about 2.4 times the median household income of $53,721, which is more affordable than 70% of Missouri towns. Median rent is $805 a month. 62.2% of households own their home.
| Housing | Hannibal | Typical Missouri town |
|---|---|---|
| Median home value | $127,700 | $153,900 |
| Median rent | $805 | $855 |
| Median household income | $53,721 | $56,368 |
| Home value ÷ income | 2.4× | 2.7× |
| Homeownership | 62.2% | 67.4% |
| Median year built | 1963 | 1972 |
| Seasonal / vacation homes | 0.3% | — |
Who lives in Hannibal
| People | Hannibal | Typical Missouri town |
|---|---|---|
| Median age | 38.5 | 38.6 |
| Age 65 and over | 19.7% | 17.7% |
| Under 18 | 23.2% | — |
| Bachelor's degree or higher | 19.5% | 18.9% |
| Below the poverty line | 19.5% | 14.6% |
| Veterans | 7.5% | — |
| Born outside the U.S. | 0.6% | — |
| Work from home | 6.4% | 7.9% |
| Average commute | 15.3 min | 23.1 min |
| Homes with broadband | 86.8% | 88.7% |
Weather in Hannibal
July highs average 85.7°F and January lows 17.9°F. About 41.3 inches of rain and melted snow fall a year, with 12.5 inches of snow (typical Missouri town: 11.1 in). Expect about 25 days a year at 90°F or hotter and 114 nights at or below freezing.
Tornadoes, storms and disasters
17 tornadoes have passed within 10 miles of Hannibal since 1950, compared with 23 for the typical Missouri town. 5 rated (E)F2 or stronger. The strongest, an F3, struck on May 10, 2003 about 6.3 miles from the town center. The most recent was on April 20, 2025.
Hail of 1 inch or larger has been reported within 10 miles 68 times; the largest was 4.50 inches on April 14, 2002.
Severe weather in Marion County since 1996
Marion County has been included in 25 federal disaster or emergency declarations since 1953, most often for flood, drought, hurricane.
| Declared | Incident | Declaration |
|---|---|---|
| August 3, 2026 | Severe Storm | DR-4929: Severe Storms, Straight-Line Winds, Tornadoes, And Flooding |
| March 26, 2020 | Biological | DR-4490: Covid-19 Pandemic |
| March 13, 2020 | Biological | EM-3482: Covid-19 |
| July 9, 2019 | Severe Storm | DR-4451: Severe Storms, Tornadoes, And Flooding |
| January 2, 2016 | Flood | EM-3374: Severe Storms, Tornadoes, Straight-Line Winds, And Flooding |
Jobs and pay in Marion County
Marion County had 12,904 jobs in 2024, paying an average of $50,856 a year. Unemployment was 3.1% in 2023; in Hannibal itself the ACS puts it at 5.2%.
Public schools in Hannibal
10 public schools with 3,405 students, about 11.9 students per teacher.
| School | Grades | Students | Per teacher |
|---|---|---|---|
| HANNIBAL SR. HIGH | 9-12 | 1,050 | 15.0 |
| HANNIBAL MIDDLE | 6-8 | 656 | 10.4 |
| VETERANS ELEM. | K-5 | 437 | 12.9 |
| MARK TWAIN ELEM. | K-5 | 372 | 14.3 |
| OAKWOOD ELEM. | K-5 | 273 | 16.1 |
| A. D. STOWELL ELEM. | PK-5 | 230 | 12.8 |
| EUGENE FIELD ELEM. | PK-5 | 189 | 9.5 |
| EARLY CHILDHOOD CENTER | PK-PK | 172 | 14.3 |
| MISSISSIPPI VALLEY SCHOOL | K-12 | 26 | 6.5 |
| HANNIBAL CAREER TECH. CTR. | 9-12 | — | — |
Towns near Hannibal
- Palmyra, MO9.3 mi · 3,613 people · home $184,200
- Quincy, IL15.5 mi · 39,463 people · home $153,200
- Monroe City, MO18.4 mi · 2,652 people · home $159,300
- Louisiana, MO25.6 mi · 3,199 people · home $72,100
- Bowling Green, MO27.2 mi · 4,195 people · home $128,800
- Vandalia, MO28.2 mi · 3,553 people · home $84,500
- Canton, MO29.8 mi · 2,774 people · home $117,900
Hannibal questions
Is Hannibal, Missouri a good place to retire?
On The Town Files lifestyle rankings, Hannibal scores better for retirees than 40% of Missouri towns and quieter than 20%. 19.7% of residents are 65 or older (median age 38.5).
How much does a house cost in Hannibal?
The median owner-occupied home in Hannibal is valued at $127,700 (Census ACS 2020–2024), against a median household income of $53,721, so homes cost about 2.4 times income. Median rent is $805 a month.
What is the weather like in Hannibal?
July highs average 85.7°F and January lows 17.9°F (NOAA 1991–2020 normals). It gets about 41.3 inches of precipitation a year and 12.5 inches of snow.
Does Hannibal get tornadoes?
17 tornadoes have passed within 10 miles of Hannibal since 1950 (NOAA Storm Events); the strongest was a F3 on May 10, 2003. The typical Missouri town has had 23.
- U.S. Census Bureau, American Community Survey 5-year estimates (2020–2024)
- U.S. Census Bureau, 2020 Census and 2025 Gazetteer (2020 / 2025)
- NOAA NCEI U.S. Climate Normals (1991–2020)
- NOAA NCEI Storm Events Database (1950–2026)
- FEMA OpenFEMA Disaster Declarations (this product uses the FEMA OpenFEMA API but is not endorsed by FEMA) (1953–2026)
- NCES Common Core of Data (2023–24)
- BLS Quarterly Census of Employment and Wages; USDA ERS county unemployment (BLS LAUS) (2000–2024)
- The Town Files lifestyle rankings, built from federal demographic, school, crime and housing data (2025)