Hannibal is located in Missouri. Hannibal, Missouri has a population of 17,165. Hannibal is less family-centric than the surrounding county with 26.51% of the households containing married families with children. The county average for households married with children is 29.43%.
The median household income in Hannibal, Missouri is $47,500. The median household income for the surrounding county is $56,213 compared to the national median of $69,021. The median age of people living in Hannibal is 38 years.
The average high temperature in July is 86.9 degrees, with an average low temperature in January of 18.8 degrees. The average rainfall is approximately 39.3 inches per year, with 12 inches of snow per year.