According to the United States Census Bureau, the town has a total area of 3.4 square miles (8.8 km2), of which 2.9 square miles (7.5 km2) is land and 0.5 square miles (1.3 km2) (14.83%) is water.
As of the 2020 United States census, there were 4,074 people, 1,644 households, and 1,346 families residing in the town.
2000 census
As of the census[3] of 2000, there were 4,192 people, 1,692 households, and 1,360 families residing in the town. The population density was 1,429.6 inhabitants per square mile (552.0/km2). There were 1,744 housing units at an average density of 594.7 per square mile (229.6/km2). The racial makeup of the town was 97.61% White, 1.07% African American, 0.38% Asian, 0.02% Pacific Islander, 0.60% from other races, and 0.31% from two or more races. Hispanic or Latino of any race were 0.64% of the population.
There were 1,692 households, out of which 31.3% had children under the age of 18 living with them, 73.2% were married couples living together, 5.6% had a female householder with no husband present, and 19.6% were non-families. 17.8% of all households were made up of individuals, and 10.5% had someone living alone who was 65 years of age or older. The average household size was 2.48 and the average family size was 2.80.
In the town, the population was spread out, with 23.8% under the age of 18, 2.9% from 18 to 24, 20.8% from 25 to 44, 30.5% from 45 to 64, and 22.1% who were 65 years of age or older. The median age was 47 years. For every 100 females, there were 92.5 males. For every 100 females age 18 and over, there were 88.4 males.
The median income for a household in the town was $63,482, and the median income for a family was $71,336. Males had a median income of $49,219 versus $35,224 for females. The per capita income for the town was $36,690. About 1.4% of families and 2.1% of the population were below the poverty line, including 1.9% of those under age 18 and none of those age 65 or over.