Appreciation Velocity — Minnesota Cities
Cities of Minnesota ranked by 1Y / 3Y / 5Y home-price appreciation.
Public Record
Top 10 — 10Y appreciation (Citys)
#1 · Shafer, MN
+1,900.0%
#2 · Bovey, MN
+1,744.0%
#3 · Grey Eagle, MN
+594.5%
#4 · Orono, MN
+577.0%
#5 · Bethel, MN
+576.7%
#6 · Elysian, MN
+528.8%
#7 · Le Sueur, MN
+527.0%
#8 · Browerville, MN
+525.7%
#9 · Dodge Center, MN
+525.6%
#10 · Frazee, MN
+524.2%
City ranking — 10Y appreciation (highest first)
| # | City | State | 1Y | 3Y | 5Y | 10Y | Current median |
|---|---|---|---|---|---|---|---|
| 1 | Shafer, MN | MN | +40.4% | — | +125.1% | +1,900.0% | $700K |
| 2 | Bovey, MN | MN | +711.5% | +950.6% | +1,209.8% | +1,744.0% | $2.12M |
| 3 | Grey Eagle, MN | MN | -42.0% | +73.6% | -70.7% | +594.5% | $347.3K |
| 4 | Orono, MN | MN | +227.1% | +387.4% | +702.9% | +577.0% | $5.31M |
| 5 | Bethel, MN | MN | — | +22.6% | +14.9% | +576.7% | $423K |
| 6 | Elysian, MN | MN | +229.8% | +465.7% | +206.4% | +528.8% | $775K |
| 7 | Le Sueur, MN | MN | +385.6% | +206.7% | +533.8% | +527.0% | $987.5K |
| 8 | Browerville, MN | MN | +50.2% | +257.3% | +62.0% | +525.7% | $268K |
| 9 | Dodge Center, MN | MN | +81.3% | +1,344.6% | +168.0% | +525.6% | $469.5K |
| 10 | Frazee, MN | MN | +100.7% | — | +56.0% | +524.2% | $556.5K |
| 11 | Williams, MN | MN | +37.9% | +286.0% | +97.3% | +520.0% | $386K |
| 12 | Mabel, MN | MN | -30.0% | — | +39.3% | +493.2% | $175K |
| 13 | Wadena, MN | MN | +113.2% | +130.7% | +239.6% | +459.8% | $493.8K |
| 14 | Beaver Creek, MN | MN | +62.9% | +417.6% | +1,927.3% | +443.9% | $446K |
| 15 | Dundas, MN | MN | +151.1% | +389.8% | +328.4% | +424.6% | $875K |
| 16 | Mound, MN | MN | +107.6% | +229.3% | +232.9% | +393.1% | $1.39M |
| 17 | Isle, MN | MN | +157.7% | +234.0% | +175.8% | +390.9% | $835K |
| 18 | Wabasha, MN | MN | +45.6% | +139.8% | +188.0% | +359.3% | $563.3K |
| 19 | Bluffton, MN | MN | -21.0% | +349.0% | +50.8% | +344.7% | $229K |
| 20 | Cosmos, MN | MN | — | — | +90.0% | +336.7% | $379.9K |
| 21 | Henderson, MN | MN | -32.6% | -1.1% | +42.9% | +318.6% | $225K |
| 22 | Afton, MN | MN | +103.7% | +108.3% | +212.5% | +316.7% | $1.95M |
| 23 | Ogilvie, MN | MN | +37.1% | +74.0% | +132.0% | +308.0% | $344.5K |
| 24 | Fergus Falls, MN | MN | +148.8% | +196.6% | +204.9% | +304.2% | $482K |
| 25 | Darwin, MN | MN | +3.6% | — | -11.0% | +294.0% | $489K |
| 26 | Pequot Lakes, MN | MN | -46.5% | +25.7% | +175.1% | +292.0% | $842.1K |
| 27 | Lauderdale, MN | MN | +71.1% | +17.3% | +23.2% | +289.3% | $325K |
| 28 | Hutchinson, MN | MN | +58.0% | +153.1% | +236.6% | +284.6% | $563.5K |
| 29 | Soudan, MN | MN | -5.8% | +8.4% | -21.3% | +283.0% | $114.9K |
| 30 | Fairfax, MN | MN | — | — | -81.5% | +282.7% | $143K |
| 31 | Glyndon, MN | MN | +50.0% | +69.6% | +242.9% | +267.1% | $420K |
| 32 | Aurora, MN | MN | +102.8% | +158.8% | +367.2% | +266.8% | $354K |
| 33 | Coleraine, MN | MN | +33.3% | — | +57.8% | +266.2% | $230K |
| 34 | Vernon Center, MN | MN | +146.7% | — | +90.7% | +266.0% | $185K |
| 35 | Garfield, MN | MN | +262.9% | — | +282.5% | +261.6% | $447.4K |
| 36 | Longville, MN | MN | +94.2% | -6.6% | +41.2% | +259.6% | $700.5K |
| 37 | Chaska, MN | MN | +74.8% | +109.6% | +207.8% | +256.4% | $1.1M |
| 38 | Granite Falls, MN | MN | +36.4% | — | +109.3% | +247.1% | $147.5K |
| 39 | Morgan, MN | MN | +8.4% | — | +75.8% | +246.7% | $130K |
| 40 | Belgrade, MN | MN | -61.4% | +33.3% | -32.6% | +240.7% | $170K |
| 41 | Winthrop, MN | MN | +18.9% | — | +95.2% | +239.5% | $235K |
| 42 | Mentor, MN | MN | — | -16.7% | — | +234.0% | $440K |
| 43 | Mazeppa, MN | MN | +26.2% | +13.6% | +464.3% | +232.9% | $483K |
| 44 | Braham, MN | MN | +23.3% | +101.9% | +64.7% | +231.4% | $360K |
| 45 | Silver Lake, MN | MN | +90.9% | +90.0% | +167.8% | +228.8% | $380K |
| 46 | Sturgeon Lake, MN | MN | +39.4% | — | +44.0% | +225.4% | $301.7K |
| 47 | Worthington, MN | MN | +46.4% | +266.0% | +141.9% | +219.0% | $466.1K |
| 48 | Sandstone, MN | MN | +143.5% | +314.0% | +268.1% | +219.0% | $523K |
| 49 | Morris, MN | MN | +166.6% | +247.4% | +147.1% | +214.5% | $486.3K |
| 50 | Currie, MN | MN | — | — | +42.8% | +213.0% | $128.5K |
| 51 | Oak Grove, MN | MN | +31.5% | +119.9% | +76.7% | +208.2% | $855K |
| 52 | Mantorville, MN | MN | -30.3% | -9.7% | +0.2% | +207.5% | $338.3K |
| 53 | Cologne, MN | MN | +29.2% | — | +51.2% | +206.4% | $685.7K |
| 54 | Kabetogama, MN | MN | — | — | +73.0% | +206.2% | $199K |
| 55 | Crosslake, MN | MN | +17.4% | -7.0% | +96.1% | +204.8% | $819.3K |
| 56 | Stacy, MN | MN | +28.0% | +156.4% | +129.8% | +202.0% | $601.4K |
| 57 | Ham Lake, MN | MN | -44.1% | +76.7% | +194.7% | +201.4% | $808.2K |
| 58 | Canby, MN | MN | +176.7% | +992.1% | +115.2% | +200.9% | $207.5K |
| 59 | Staples, MN | MN | -45.7% | +14.4% | +29.8% | +197.8% | $162K |
| 60 | Roseville, MN | MN | +66.6% | +93.5% | +61.8% | +197.1% | $610.8K |
| 61 | Caledonia, MN | MN | +117.8% | — | +72.1% | +195.4% | $256.5K |
| 62 | Iron, MN | MN | — | — | -46.0% | +191.9% | $163.5K |
| 63 | Carlton, MN | MN | +58.5% | — | +77.0% | +188.7% | $495K |
| 64 | North Branch, MN | MN | +30.1% | +100.7% | +40.4% | +185.6% | $512K |
| 65 | Hastings, MN | MN | +46.1% | +57.9% | +66.4% | +184.0% | $496.4K |
| 66 | Pine City, MN | MN | +39.5% | +31.3% | +166.9% | +183.1% | $435K |
| 67 | Jordan, MN | MN | +9.4% | +143.6% | -19.1% | +175.8% | $545.7K |
| 68 | Hayfield, MN | MN | -47.6% | -4.8% | -8.2% | +174.4% | $233.3K |
| 69 | Waseca, MN | MN | +40.6% | +30.8% | +26.4% | +170.3% | $310.5K |
| 70 | Wanamingo, MN | MN | +1.8% | — | +42.2% | +168.0% | $320K |
| 71 | Hibbing, MN | MN | +1.3% | +60.8% | +53.2% | +165.4% | $200.3K |
| 72 | Osakis, MN | MN | -53.4% | -50.0% | +38.0% | +164.4% | $168.6K |
| 73 | Norwood Young America, MN | MN | +43.4% | +56.6% | +175.2% | +163.1% | $399.9K |
| 74 | Lake Lillian, MN | MN | +133.3% | +42.3% | +208.4% | +162.2% | $350K |
| 75 | Backus, MN | MN | -0.1% | +53.7% | +95.2% | +161.9% | $380.5K |
| 76 | Spring Park, MN | MN | +7.8% | — | -6.8% | +159.4% | $512K |
| 77 | Little Falls, MN | MN | +51.0% | +132.9% | +114.9% | +158.8% | $343.3K |
| 78 | White Bear Township, MN | MN | +13.7% | +59.8% | +57.1% | +158.6% | $540K |
| 79 | Minneota, MN | MN | — | — | +275.3% | +157.0% | $501K |
| 80 | Richmond, MN | MN | +53.2% | +52.7% | +68.6% | +155.4% | $458K |
| 81 | Harris, MN | MN | +76.3% | +7.0% | +46.1% | +152.3% | $406.5K |
| 82 | Cokato, MN | MN | +3.0% | +114.1% | +226.7% | +152.3% | $379K |
| 83 | Bayport, MN | MN | +45.7% | +3.6% | +35.0% | +150.3% | $532.5K |
| 84 | Hoyt Lakes, MN | MN | +35.7% | +39.2% | +98.8% | +149.5% | $154.7K |
| 85 | Brainerd, MN | MN | -35.3% | +7.0% | +22.7% | +148.1% | $285.2K |
| 86 | Northfield, MN | MN | +36.3% | +5.1% | +66.5% | +146.3% | $443.8K |
| 87 | East Bethel, MN | MN | +13.6% | +90.8% | +91.0% | +144.9% | $596.1K |
| 88 | Laporte, MN | MN | -19.5% | +69.9% | +5.6% | +144.5% | $282K |
| 89 | Waverly, MN | MN | +15.7% | — | +32.2% | +144.5% | $394.8K |
| 90 | Monticello, MN | MN | +38.6% | +42.9% | +27.9% | +142.6% | $460.5K |
| 91 | Hamel, MN | MN | — | — | -1.7% | +140.6% | $607.5K |
| 92 | Kasson, MN | MN | +8.9% | +27.7% | +111.1% | +140.4% | $380.8K |
| 93 | Two Harbors, MN | MN | +58.0% | +64.1% | +118.9% | +139.3% | $349.8K |
| 94 | Duluth, MN | MN | +19.0% | +62.9% | +57.8% | +139.2% | $391.9K |
| 95 | Elk River, MN | MN | +14.8% | +37.0% | +13.4% | +137.5% | $447.2K |
| 96 | Baxter, MN | MN | +54.3% | +69.8% | +99.4% | +135.1% | $458.8K |
| 97 | Cleveland, MN | MN | +199.5% | — | +311.2% | +133.8% | $549.9K |
| 98 | Prior Lake, MN | MN | +3.2% | -12.7% | +89.0% | +133.1% | $901K |
| 99 | Newport, MN | MN | +41.7% | +89.0% | +40.2% | +132.9% | $532.5K |
| 100 | Long Prairie, MN | MN | -51.0% | — | +4.6% | +132.7% | $235K |
How to read these numbers
Velocity vs. level
A market with 25% one-year appreciation is moving fast — but a market with steady 6% over ten years has compounded much further. Use 10Y as the long-run signal, 1Y as the momentum signal.
Mean-reversion risk
Markets that posted huge 1Y and 3Y gains often cool over the next cycle. Compare 1Y to 5Y: if 1Y is far above 5Y, the trend is accelerating; if far below, it is decelerating — often the more important signal.
Sample sanity
We require a minimum current median price (default $50K) to filter out tiny ZIPs with noisy data. Raise that threshold for serious investment markets; lower it to find emerging niches. Source: public record.