Lee County is a county in Iowa, United States, in the state’s southeastern corner where the Mississippi and Des Moines rivers meet. It had a population of 33,555 at the 2020 census, an estimated 32,893 by 2024, and covers 518 square miles (1,340 km2) of land centred near 40°39′N 91°28′W.
Fort Madison is the county seat; Keokuk shares that role, making Lee the only county in Iowa with two county seats. Fort Madison’s postal code is 52627. The county holds 8 incorporated cities, 5 census-designated places and 8 unincorporated communities across 16 civil townships, and it runs on Central Time. Its FIPS code is 19111.
Towns & Villages in Lee County
Lee County has 21 named places on record: 8 incorporated cities and 13 unincorporated places. Under Iowa law every incorporated place, regardless of size, is legally a city, so the Type column reads City for all of them; CDP stands for census designated place, a Census Bureau statistical area with no local government, and Unincorp. covers crossroads and rural communities with no formal boundary.
| Place | Type | Township | Pop. | ZIP |
|---|---|---|---|---|
| Fort Madison | City · seat | Des Moines | 10,270 | 52627 |
| Keokuk | City · seat | Jackson | 9,900 | 52632 |
| West Point | City | West Point | 921 | 52656 |
| Donnellson | City | Van Buren | 885 | 52625 |
| Montrose | City | Montrose | 738 | 52639 |
| Houghton | City | Marion | 141 | 52631 |
| Franklin | City | Franklin | 131 | — |
| St. Paul | City | Jackson | 109 | 52657 |
| Denmark | CDP | Denmark | 425 | 52624 |
| Mooar | CDP | Jefferson | 321 | — |
| Sandusky | CDP | Green Bay | 297 | — |
| Wever | CDP | Des Moines | 101 | 52658 |
| Argyle | CDP | Charleston | 91 | 52619 |
| Charleston | Unincorp. | Charleston | — | — |
| Pilot Grove | Unincorp. | Pleasant Ridge | — | 52648 |
| Croton | Unincorp. | Van Buren | — | — |
| Mount Hamill | Unincorp. | Marion | — | — |
| New Boston | Unincorp. | Harrison | — | — |
| Primrose | Unincorp. | Cedar | — | — |
| Viele | Unincorp. | Madison | — | — |
| Vincennes | Unincorp. | Washington | — | — |
The old settlement list for this page carried Argyle, Mooar, Sandusky and Wever as duplicate entries and mixed in three mobile-home parks (Aztec, Hocker Estates, Scenic View, Skyview) that are subdivisions inside existing communities rather than separate places — all four are dropped here.
Townships
Lee County’s 16 civil townships are Cedar, Charleston, Denmark, Des Moines, Franklin, Green Bay, Harrison, Jackson, Jefferson, Madison, Marion, Montrose, Pleasant Ridge, Van Buren, Washington and West Point. Iowa townships have no independent taxing or zoning power today, and the Census Bureau does not publish a separate population count for most of them once a city or CDP inside the township is counted on its own, so per-township totals are omitted here rather than estimated.
ZIP Codes
- 52627 — Fort Madison
- 52632 — Keokuk
- 52625 — Donnellson
- 52656 — West Point
- 52639 — Montrose
- 52658 — Wever
- 52624 — Denmark
- 52619 — Argyle
- 52657 — St. Paul
- 52631 — Houghton
- 52648 — Pilot Grove (also serves nearby rural addresses with no town of their own)
Franklin, Mooar, Sandusky, Charleston, Croton, Mount Hamill, New Boston, Primrose, Viele and Vincennes have no ZIP code of their own; mail there is delivered under the nearest listed town’s code.
Geography
Lee County sits in Iowa’s far southeastern corner, at the point where the Des Moines River joins the Mississippi River. The Mississippi forms the county’s entire eastern edge, and the Mississippi’s lowest elevation in Iowa — where the river leaves the state at Keokuk — falls within the county. The terrain is rolling farmland cut by creek valleys, with river bluffs along the Mississippi at Fort Madison and Keokuk. Of the county’s total 539 square miles, 518 are land and 21 are water, a higher water share than most Iowa counties because of the two rivers and the pool held back by the Keokuk dam.
Henry County lies to the north, Des Moines County to the northeast, Henderson County and Hancock County, both in Illinois, lie across the Mississippi to the east, Clark County, Missouri, lies to the south, and Van Buren County lies to the west. Henry County, Des Moines County, Henderson County, Hancock County, Clark County and Van Buren County all border Lee County directly.
Demographics
Lee County had a population of 33,555 at the 2020 census, down from a peak near 44,000 in 1960, and the latest estimate puts the county near 32,893 residents in 2024. Fort Madison and Keokuk are by far the two largest communities, together holding more than half the county’s population. Median household income in the county runs $62,382, below Iowa’s statewide 2023 ACS figure of $71,433. Population density works out to roughly 64 people per square mile of land, low for eastern Iowa and consistent with decades of gradual population decline.
Economy & Local Life
Manufacturing employs the most workers in the county, about 2,757 people, followed by health care and social assistance at 2,126 and retail trade at 1,784. The Iowa State Penitentiary, the state’s maximum-security prison for men, sits on the Mississippi bluff at Fort Madison and is one of the county’s largest single employers. Fort Madison was long the home of the W. A. Sheaffer Pen Company, which manufactured fountain pens and writing instruments there from 1907 until the plant closed in 2006. Keokuk’s Lock and Dam No. 19, completed in 1913, still runs as a hydroelectric power plant on the Mississippi. Fort Madison hosts a Tri-State Rodeo each July and a RiverFest festival on the riverfront; Keokuk hosts a Fourth of July celebration tied to the dam and river.
History
Congress authorized Lee County on 7 December 1836, during the Wisconsin Territory period before Iowa became a separate territory. It is named for either Albert M. Lee, an early territorial official, or the Lee family associated with early settlement — sources differ and no single origin is confirmed. The Half-Breed Tract, set aside by an 1824 treaty for people of mixed American Indian and European ancestry, covered much of what became Lee County and complicated early land titles for decades. Fort Madison, built in 1808, was the first permanent United States military fortification on the upper Mississippi and saw fighting during Black Hawk’s campaign before troops abandoned and burned it in 1813. Keokuk was an outfitting point for thousands of Latter-day Saints heading west in 1853, and it served as a Union troop embarkation point and hospital center during the Civil War.
Getting There
No interstate highway crosses Lee County. U.S. Routes 61 and 136 and Iowa Highways 2, 16 and 27 carry most through traffic, and the Fort Madison Toll Bridge, the world’s longest swing-span bridge, carries U.S. 61 traffic across the Mississippi.
- Burlington, Iowa — about 20 miles north
- Quincy, Illinois — about 20 miles south
- Hannibal, Missouri — about 45 miles south
- Macomb, Illinois — about 35 miles east
Southeast Iowa Regional Airport, near Burlington, is the nearest airport with scheduled commercial service. Amtrak’s Southwest Chief stops daily in each direction at the Fort Madison station, the only Southwest Chief stop in Iowa, connecting to Chicago and Los Angeles.
Frequently Asked Questions
Where is Lee County located?
It sits in Iowa’s southeastern corner, where the Des Moines River meets the Mississippi, bordered by Henry, Des Moines and Van Buren counties in Iowa, Henderson and Hancock counties in Illinois, and Clark County, Missouri.
What is the population of Lee County?
33,555 at the 2020 census, with an estimate near 32,893 for 2024.
How big is Lee County?
539 square miles (1,400 km2) in total, of which 518 square miles are land.
What is the county seat of Lee County?
Lee County has two county seats, Fort Madison and Keokuk, the only Iowa county to have both.
How many towns and cities are in Lee County?
Eight incorporated cities — Fort Madison, Keokuk, West Point, Donnellson, Montrose, Houghton, Franklin and St. Paul — plus five census-designated places and eight unincorporated communities.
What ZIP codes does Lee County use?
52627 for Fort Madison, 52632 for Keokuk, and separate codes for Donnellson, West Point, Montrose, Wever, Denmark, Argyle, St. Paul, Houghton and Pilot Grove.
What is Lee County known for?
The Iowa State Penitentiary at Fort Madison, the Keokuk hydroelectric dam on the Mississippi, and being the only Iowa county with two county seats.
More counties in this state: Towns and villages in Iowa.