The Town Files

Hannibal, Missouri

City in Marion County · population 17,108 (2020 Census) · spans 2 counties

Map: where Hannibal is in MissouriHannibal
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.

Hannibal lifestyle rankings vs other Missouri townsRetirement40th pctFamilies27th pctQuiet20th pctWalkability85th pctFirst-time buyers51st pctYoung professionals74th pctVibrancy82nd pctHip & trendy85th pctCollege town69th pctUpscale49th pctVacation homesbottomSeaside characterbottomCyclingbottomTransit70th pctDriving24th pcttypical
The Town Files lifestyle rankings, built from federal demographic, school, crime and housing data (2025).

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.

Hannibal vs Marion County vs typical Missouri townHannibalMarion CountyTypical Missouri townHome value$127,700$162,000$153,900Household income$53,721$62,903$56,368Monthly rent$805$808$855
Census ACS 5-year estimates, 2020–2024. "Typical town" = median of Missouri towns with 500+ people.
HousingHannibalTypical Missouri town
Median home value$127,700$153,900
Median rent$805$855
Median household income$53,721$56,368
Home value ÷ income2.4×2.7×
Homeownership62.2%67.4%
Median year built19631972
Seasonal / vacation homes0.3%—

Who lives in Hannibal

PeopleHannibalTypical Missouri town
Median age38.538.6
Age 65 and over19.7%17.7%
Under 1823.2%—
Bachelor's degree or higher19.5%18.9%
Below the poverty line19.5%14.6%
Veterans7.5%—
Born outside the U.S.0.6%—
Work from home6.4%7.9%
Average commute15.3 min23.1 min
Homes with broadband86.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.

Hannibal monthly temperatures and precipitation10°20°30°40°50°60°70°80°90°32° freezing35°18°Jan40°22°Feb51°32°Mar64°43°Apr73°54°May82°64°Jun86°67°Jul84°65°Aug78°57°Sep66°45°Oct52°34°Nov39°23°DecPrecipitation (in) · snow (in) in blue2.13.42.33.12.81.64.30.65.04.94.13.93.53.42.80.72.23.1
NOAA 1991–2020 climate normals: average daily high and low by month; precipitation and snowfall in inches. Temperatures from the Hannibal Wtr Wks station (1.4 mi away); snow from Palmyra (7.5 mi).

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.

Tornadoes within 10 miles of Hannibal by decade01950s11960s41970s01980s01990s82000s12010s32020s
NOAA Storm Events Database, tornado tracks (start to end point) passing within 10 miles of the town center, 1950–2026.

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

Storm events in Marion County since 1996 by typeHail90Heat20Flood20Drought6Tornado10High Wind6Ice Storm6Heavy Snow10
NOAA Storm Events Database, Marion County, 1996–2026 (all event types recorded since 1996). 1 deaths recorded.

Marion County has been included in 25 federal disaster or emergency declarations since 1953, most often for flood, drought, hurricane.

DeclaredIncidentDeclaration
August 3, 2026Severe StormDR-4929: Severe Storms, Straight-Line Winds, Tornadoes, And Flooding
March 26, 2020BiologicalDR-4490: Covid-19 Pandemic
March 13, 2020BiologicalEM-3482: Covid-19
July 9, 2019Severe StormDR-4451: Severe Storms, Tornadoes, And Flooding
January 2, 2016FloodEM-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%.

Largest industries in Marion CountyRetail1,800 jobs · $29,920Manufacturing1,338 jobs · $74,212Hotels & restaurants1,325 jobs · $21,631Administrative & support534 jobs · $37,466Construction472 jobs · $66,139Finance & insurance373 jobs · $59,385
BLS Quarterly Census of Employment and Wages, 2024, private-sector jobs and average annual pay.
Unemployment rate in Marion County, 2000–20230%2%4%6%8%10%2000200420082012201620202023Marion 3.1%
Annual average unemployment rate (BLS Local Area Unemployment Statistics via USDA ERS).

Public schools in Hannibal

10 public schools with 3,405 students, about 11.9 students per teacher.

SchoolGradesStudentsPer teacher
HANNIBAL SR. HIGH9-121,05015.0
HANNIBAL MIDDLE6-865610.4
VETERANS ELEM.K-543712.9
MARK TWAIN ELEM.K-537214.3
OAKWOOD ELEM.K-527316.1
A. D. STOWELL ELEM.PK-523012.8
EUGENE FIELD ELEM.PK-51899.5
EARLY CHILDHOOD CENTERPK-PK17214.3
MISSISSIPPI VALLEY SCHOOLK-12266.5
HANNIBAL CAREER TECH. CTR.9-12——

Towns near Hannibal

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.

How this page is made. Every number comes from public data, matched to Hannibal's Census boundary (GEOID 2930214). Comparisons use the median of Missouri towns with at least 500 people. Weather comes from the nearest NOAA normals station; storm counts use NOAA tornado tracks within 10 miles of the town center. Data snapshot 2026-11-13.