Spirit lake is located in Dickinson county Iowa with a geographic area of 4.5 square miles. The total population in Spirit lake is 5,130 with 48.6% male and 51.4% female. Children under age 5 represent 5.9% of the population, under age 18 equal 22.0% of the population and over age 65 is 23.8% of the population. The median household income is $52,664, per capita income is $35,835. There are a total of 2,645 housing units with 64.8% owner occupied. Education includes 25.9% of residents that are high school graduates and 27.6% with a bachelor's degree or higher. The average temperature in Spirit lake in the summer is 70 degrees, and in the winter 23 degrees.