St. johnsbury is located in Caledonia county Vermont with a geographic area of 12.8 square miles. The total population in St. johnsbury is 5,815 with 50.6% male and 49.4% female. Children under age 5 represent 3.3% of the population, under age 18 equal 18.9% of the population and over age 65 is 22.9% of the population. The median household income is $40,744, per capita income is $24,939. There are a total of 2,632 housing units with 53.6% owner occupied. Education includes 31.3% of residents that are high school graduates and 29.5% with a bachelor's degree or higher. The average temperature in St. johnsbury in the summer is 65 degrees, and in the winter 19 degrees.