The Town Files

Berlin, Minnesota

Township in Steele County · population 506 (2020 Census)

Map: where Berlin is in MinnesotaBerlin
Median home
$279,500
Household income
$100,972
Jan low / Jul high
5° / 81°
Snow a year
45 in
Tornadoes ≤10 mi since 1950
32
Median age
41.6

Berlin is a township of 506 people in Steele County, Minnesota. The median home is worth $279,500, below the typical Minnesota town ($301,800). It ranks better for families than 90% of Minnesota towns, easier by car than 85% of Minnesota towns, quieter than 76% of Minnesota towns.

How Berlin ranks

Percentile among Minnesota towns with at least 500 people on The Town Files lifestyle rankings. 50 is typical for the state; 90 means better than 90% of Minnesota towns.

Berlin lifestyle rankings vs other Minnesota townsRetirement43rd pctFamilies90th pctQuiet76th pctWalkability69th pctFirst-time buyers53rd pctYoung professionals17th pctVibrancy14th pctHip & trendy24th pctCollege town71st pctUpscale54th pctVacation homesbottomSeaside characterbottomCyclingbottomTransit32nd pctDriving85th pcttypical
The Town Files lifestyle rankings, built from federal demographic, school, crime and housing data (2025).

Homes and cost of living

The median home in Berlin is worth $279,500, below the typical Minnesota town ($301,800). Homes cost about 2.8 times the median household income of $100,972, which is more affordable than 77% of Minnesota towns. 97.8% of households own their home.

Berlin vs Steele County vs typical Minnesota townBerlinSteele CountyTypical Minnesota townHome value$279,500$245,400$301,800Household income$100,972$84,196$87,375
Census ACS 5-year estimates, 2020–2024. "Typical town" = median of Minnesota towns with 500+ people.
HousingBerlinTypical Minnesota town
Median home value$279,500$301,800
Median rent—$991
Median household income$100,972$87,375
Home value ÷ income2.8×3.4×
Homeownership97.8%88.6%
Median year built19611979
Seasonal / vacation homes32.4%—

Who lives in Berlin

PeopleBerlinTypical Minnesota town
Median age41.642.7
Age 65 and over18.7%20.0%
Under 1826.0%—
Bachelor's degree or higher36.2%26.2%
Below the poverty line3.8%6.9%
Veterans7.6%—
Born outside the U.S.0.0%—
Work from home12.1%11.1%
Average commute24.8 min24.5 min
Homes with broadband88.2%90.2%

Weather in Berlin

July highs average 81.3°F and January lows 4.8°F. About 37.9 inches of rain and melted snow fall a year, with 45.3 inches of snow (typical Minnesota town: 47.0 in). Expect about 10 days a year at 90°F or hotter and 162 nights at or below freezing.

Berlin monthly temperatures and precipitation0°10°20°30°40°50°60°70°80°90°32° freezing22°5°Jan26°9°Feb39°22°Mar55°35°Apr68°48°May78°59°Jun81°61°Jul79°59°Aug73°50°Sep59°37°Oct41°24°Nov28°12°DecPrecipitation (in) · snow (in) in blue1.39.61.210.12.37.33.32.84.50.45.44.94.84.12.80.41.93.81.510.8
NOAA 1991–2020 climate normals: average daily high and low by month; precipitation and snowfall in inches. Temperatures from the Waseca S Rsch & Outreach Ctr station (15.2 mi away); snowfall estimated from the 4 nearest snow stations, weighted by distance.

Tornadoes, storms and disasters

32 tornadoes have passed within 10 miles of Berlin since 1950, compared with 14 for the typical Minnesota town. 11 rated (E)F2 or stronger. The strongest, an F4, struck on April 30, 1967 about 6.5 miles from the town center and killed 5. Tornadoes within 10 miles have caused 11 deaths and 69 injuries since 1950. The most recent was on June 25, 2025.

Tornadoes within 10 miles of Berlin by decade01950s71960s01970s71980s11990s42000s82010s52020s
NOAA Storm Events Database, tornado tracks (start to end point) passing within 10 miles of the town center, 1950–2026.

Hail of 1 inch or larger has been reported within 10 miles 38 times; the largest was 3.25 inches on June 17, 2009.

Severe weather in Steele County since 1996

Storm events in Steele County since 1996 by typeHail67Tornado16Blizzard22High Wind16Heavy Rain11Heavy Snow16Flash Flood21Winter Storm70
NOAA Storm Events Database, Steele County, 1996–2026 (all event types recorded since 1996).

Steele County has been included in 17 federal disaster or emergency declarations since 1953, most often for flood, drought, tornado.

DeclaredIncidentDeclaration
June 28, 2024FloodDR-4797: Severe Storms And Flooding
April 7, 2020BiologicalDR-4531: Covid-19 Pandemic
March 13, 2020BiologicalEM-3453: Covid-19
June 12, 2019FloodDR-4442: Severe Winter Storm, Straight-Line Winds, And Flooding
November 2, 2016FloodDR-4290: Severe Storms And Flooding

Jobs and pay in Steele County

Steele County had 18,956 jobs in 2024, paying an average of $61,897 a year. Unemployment was 3% in 2023; in Berlin itself the ACS puts it at 0.8%.

Largest industries in Steele CountyManufacturing4,657 jobs · $69,813Retail2,778 jobs · $38,449Health care & social assistan…2,194 jobs · $58,958Hotels & restaurants1,295 jobs · $21,910Other services567 jobs · $40,797Construction545 jobs · $71,994
BLS Quarterly Census of Employment and Wages, 2024, private-sector jobs and average annual pay.
Unemployment rate in Steele County, 2000–20230%2%4%6%8%10%2000200420082012201620202023Steele 3%
Annual average unemployment rate (BLS Local Area Unemployment Statistics via USDA ERS).

Towns near Berlin

Berlin questions

Is Berlin, Minnesota a good place to retire?

On The Town Files lifestyle rankings, Berlin scores better for retirees than 43% of Minnesota towns and quieter than 76%. 18.7% of residents are 65 or older (median age 41.6).

How much does a house cost in Berlin?

The median owner-occupied home in Berlin is valued at $279,500 (Census ACS 2020–2024), against a median household income of $100,972, so homes cost about 2.8 times income. Median rent is — a month.

What is the weather like in Berlin?

July highs average 81.3°F and January lows 4.8°F (NOAA 1991–2020 normals). It gets about 37.9 inches of precipitation a year and 45.3 inches of snow.

Does Berlin get tornadoes?

32 tornadoes have passed within 10 miles of Berlin since 1950 (NOAA Storm Events); the strongest was a F4 on April 30, 1967. The typical Minnesota town has had 14.

How this page is made. Every number comes from public data, matched to Berlin's Census boundary (GEOID 2714705374). Comparisons use the median of Minnesota towns with at least 500 people. Weather comes from the nearest NOAA normals station; storm counts use NOAA tornado tracks within 10 miles of the town center. Data snapshot 2026-11-13.