Appreciation Velocity — Minnesota Cities
Cities of Minnesota ranked by 1Y / 3Y / 5Y home-price appreciation.
Public Record
Top 10 — 3Y appreciation (Citys)
#1 · Dodge Center, MN
+1,344.6%
#2 · Canby, MN
+992.1%
#3 · Bovey, MN
+950.6%
#4 · Alden, MN
+578.4%
#5 · Elysian, MN
+465.7%
#6 · Beaver Creek, MN
+417.6%
#7 · Dundas, MN
+389.8%
#8 · Orono, MN
+387.4%
#9 · Medina, MN
+354.1%
#10 · Bluffton, MN
+349.0%
City ranking — 3Y appreciation (highest first)
| # | City | State | 1Y | 3Y | 5Y | 10Y | Current median |
|---|---|---|---|---|---|---|---|
| 1 | Dodge Center, MN | MN | +81.3% | +1,344.6% | +168.0% | +525.6% | $469.5K |
| 2 | Canby, MN | MN | +176.7% | +992.1% | +115.2% | +200.9% | $207.5K |
| 3 | Bovey, MN | MN | +711.5% | +950.6% | +1,209.8% | +1,744.0% | $2.12M |
| 4 | Alden, MN | MN | — | +578.4% | +172.7% | — | $450K |
| 5 | Elysian, MN | MN | +229.8% | +465.7% | +206.4% | +528.8% | $775K |
| 6 | Beaver Creek, MN | MN | +62.9% | +417.6% | +1,927.3% | +443.9% | $446K |
| 7 | Dundas, MN | MN | +151.1% | +389.8% | +328.4% | +424.6% | $875K |
| 8 | Orono, MN | MN | +227.1% | +387.4% | +702.9% | +577.0% | $5.31M |
| 9 | Medina, MN | MN | +42.9% | +354.1% | +115.0% | +128.5% | $1.6M |
| 10 | Bluffton, MN | MN | -21.0% | +349.0% | +50.8% | +344.7% | $229K |
| 11 | Remer, MN | MN | -16.0% | +338.6% | +15.4% | +40.1% | $250K |
| 12 | Sandstone, MN | MN | +143.5% | +314.0% | +268.1% | +219.0% | $523K |
| 13 | Chisholm, MN | MN | -27.7% | +314.0% | -14.6% | +129.8% | $124.2K |
| 14 | Rock Creek, MN | MN | +244.6% | +307.7% | -15.2% | +100.1% | $144.8K |
| 15 | Williams, MN | MN | +37.9% | +286.0% | +97.3% | +520.0% | $386K |
| 16 | Worthington, MN | MN | +46.4% | +266.0% | +141.9% | +219.0% | $466.1K |
| 17 | Browerville, MN | MN | +50.2% | +257.3% | +62.0% | +525.7% | $268K |
| 18 | Nashwauk, MN | MN | +200.7% | +249.3% | +271.8% | — | $489K |
| 19 | Morris, MN | MN | +166.6% | +247.4% | +147.1% | +214.5% | $486.3K |
| 20 | Isle, MN | MN | +157.7% | +234.0% | +175.8% | +390.9% | $835K |
| 21 | Mound, MN | MN | +107.6% | +229.3% | +232.9% | +393.1% | $1.39M |
| 22 | Carver, MN | MN | +8.5% | +228.7% | -10.8% | +62.9% | $489K |
| 23 | Le Sueur, MN | MN | +385.6% | +206.7% | +533.8% | +527.0% | $987.5K |
| 24 | Fergus Falls, MN | MN | +148.8% | +196.6% | +204.9% | +304.2% | $482K |
| 25 | Golden Valley, MN | MN | +49.2% | +175.2% | +124.0% | +91.4% | $760.1K |
| 26 | Aurora, MN | MN | +102.8% | +158.8% | +367.2% | +266.8% | $354K |
| 27 | Stacy, MN | MN | +28.0% | +156.4% | +129.8% | +202.0% | $601.4K |
| 28 | Hutchinson, MN | MN | +58.0% | +153.1% | +236.6% | +284.6% | $563.5K |
| 29 | Preston, MN | MN | +136.4% | +152.5% | +55.8% | +39.1% | $265.1K |
| 30 | Saint Augusta, MN | MN | +36.2% | +146.2% | +67.1% | — | $512.5K |
| 31 | Jordan, MN | MN | +9.4% | +143.6% | -19.1% | +175.8% | $545.7K |
| 32 | Wabasha, MN | MN | +45.6% | +139.8% | +188.0% | +359.3% | $563.3K |
| 33 | Breckenridge, MN | MN | +90.8% | +139.6% | +78.6% | +82.4% | $237K |
| 34 | Byron, MN | MN | +1.9% | +138.1% | +94.5% | +76.2% | $530.7K |
| 35 | Hollandale, MN | MN | -24.3% | +134.4% | +3.0% | +81.8% | $150K |
| 36 | Little Falls, MN | MN | +51.0% | +132.9% | +114.9% | +158.8% | $343.3K |
| 37 | Wadena, MN | MN | +113.2% | +130.7% | +239.6% | +459.8% | $493.8K |
| 38 | Oak Grove, MN | MN | +31.5% | +119.9% | +76.7% | +208.2% | $855K |
| 39 | Grand Rapids, MN | MN | -19.3% | +118.9% | +24.7% | +116.5% | $242.4K |
| 40 | Cokato, MN | MN | +3.0% | +114.1% | +226.7% | +152.3% | $379K |
| 41 | Chaska, MN | MN | +74.8% | +109.6% | +207.8% | +256.4% | $1.1M |
| 42 | Afton, MN | MN | +103.7% | +108.3% | +212.5% | +316.7% | $1.95M |
| 43 | Braham, MN | MN | +23.3% | +101.9% | +64.7% | +231.4% | $360K |
| 44 | North Branch, MN | MN | +30.1% | +100.7% | +40.4% | +185.6% | $512K |
| 45 | Gonvick, MN | MN | -25.9% | +98.8% | -70.0% | — | $169K |
| 46 | Albert Lea, MN | MN | -8.6% | +96.1% | +89.4% | +106.7% | $214.9K |
| 47 | North Oaks, MN | MN | +48.1% | +93.9% | +156.4% | +116.2% | $1.7M |
| 48 | Roseville, MN | MN | +66.6% | +93.5% | +61.8% | +197.1% | $610.8K |
| 49 | La Crescent, MN | MN | -39.8% | +93.2% | +10.8% | +16.4% | $250K |
| 50 | Swanville, MN | MN | -28.7% | +91.6% | — | +10.9% | $255K |
| 51 | East Bethel, MN | MN | +13.6% | +90.8% | +91.0% | +144.9% | $596.1K |
| 52 | Lake Elmo, MN | MN | -26.3% | +90.3% | +88.5% | +117.0% | $762.5K |
| 53 | Silver Lake, MN | MN | +90.9% | +90.0% | +167.8% | +228.8% | $380K |
| 54 | Brook Park, MN | MN | +73.2% | +89.3% | +138.3% | +114.9% | $355K |
| 55 | Newport, MN | MN | +41.7% | +89.0% | +40.2% | +132.9% | $532.5K |
| 56 | Elko New Market, MN | MN | +15.5% | +88.7% | +48.3% | +43.7% | $431.1K |
| 57 | Arlington, MN | MN | +26.9% | +87.2% | +32.3% | +124.8% | $262.1K |
| 58 | Shorewood, MN | MN | +9.0% | +85.9% | +143.3% | +70.0% | $1.41M |
| 59 | Wayzata, MN | MN | +12.0% | +83.2% | +121.3% | +73.2% | $1.63M |
| 60 | Zumbrota, MN | MN | +9.7% | +82.0% | +118.2% | +124.9% | $435K |
| 61 | Sauk Centre, MN | MN | -35.2% | +78.6% | -22.2% | +41.3% | $163K |
| 62 | Rochester, MN | MN | +7.7% | +77.2% | +75.3% | +94.4% | $468.6K |
| 63 | Ham Lake, MN | MN | -44.1% | +76.7% | +194.7% | +201.4% | $808.2K |
| 64 | Ogilvie, MN | MN | +37.1% | +74.0% | +132.0% | +308.0% | $344.5K |
| 65 | Inver Grove Heights, MN | MN | -17.6% | +73.8% | +15.9% | +62.0% | $378.3K |
| 66 | Grey Eagle, MN | MN | -42.0% | +73.6% | -70.7% | +594.5% | $347.3K |
| 67 | Spring Grove, MN | MN | +0.2% | +73.5% | -6.8% | +87.6% | $124.9K |
| 68 | Winsted, MN | MN | +12.1% | +73.4% | +64.2% | +128.6% | $270K |
| 69 | Milaca, MN | MN | +22.0% | +72.3% | +93.9% | +114.7% | $327.5K |
| 70 | Le Center, MN | MN | +81.9% | +70.5% | +73.9% | +20.0% | $310.2K |
| 71 | Anoka, MN | MN | +6.6% | +69.9% | +46.1% | +124.9% | $389K |
| 72 | Laporte, MN | MN | -19.5% | +69.9% | +5.6% | +144.5% | $282K |
| 73 | Baxter, MN | MN | +54.3% | +69.8% | +99.4% | +135.1% | $458.8K |
| 74 | Glyndon, MN | MN | +50.0% | +69.6% | +242.9% | +267.1% | $420K |
| 75 | Chatfield, MN | MN | -31.8% | +69.1% | -28.2% | +49.9% | $188.8K |
| 76 | Stewartville, MN | MN | +40.2% | +65.4% | +78.3% | +59.1% | $404.6K |
| 77 | Wyoming, MN | MN | +58.8% | +64.9% | +164.0% | +122.2% | $489.8K |
| 78 | Two Harbors, MN | MN | +58.0% | +64.1% | +118.9% | +139.3% | $349.8K |
| 79 | Coon Rapids, MN | MN | +5.7% | +62.9% | +28.7% | +101.7% | $368K |
| 80 | Duluth, MN | MN | +19.0% | +62.9% | +57.8% | +139.2% | $391.9K |
| 81 | Clear Lake, MN | MN | +13.5% | +62.8% | +97.7% | +126.7% | $385.7K |
| 82 | Hibbing, MN | MN | +1.3% | +60.8% | +53.2% | +165.4% | $200.3K |
| 83 | White Bear Township, MN | MN | +13.7% | +59.8% | +57.1% | +158.6% | $540K |
| 84 | Hastings, MN | MN | +46.1% | +57.9% | +66.4% | +184.0% | $496.4K |
| 85 | New Ulm, MN | MN | +12.2% | +57.9% | +33.7% | +84.3% | $252.1K |
| 86 | Olivia, MN | MN | +41.7% | +57.8% | -5.1% | +40.4% | $265K |
| 87 | Norwood Young America, MN | MN | +43.4% | +56.6% | +175.2% | +163.1% | $399.9K |
| 88 | Tracy, MN | MN | +1.1% | +56.6% | +25.6% | +0.1% | $137K |
| 89 | Crystal, MN | MN | -6.6% | +56.3% | +37.4% | +57.0% | $299.9K |
| 90 | Farmington, MN | MN | +3.0% | +54.9% | +29.1% | +105.6% | $434.3K |
| 91 | Robbinsdale, MN | MN | +19.8% | +54.4% | +55.7% | +110.1% | $372.3K |
| 92 | Backus, MN | MN | -0.1% | +53.7% | +95.2% | +161.9% | $380.5K |
| 93 | Andover, MN | MN | -3.7% | +53.5% | +16.4% | +92.8% | $496.9K |
| 94 | Faribault, MN | MN | -37.1% | +53.4% | +12.8% | +64.4% | $243.1K |
| 95 | Eagan, MN | MN | +6.6% | +53.1% | +20.4% | +43.1% | $367.2K |
| 96 | Richmond, MN | MN | +53.2% | +52.7% | +68.6% | +155.4% | $458K |
| 97 | Hinckley, MN | MN | +151.9% | +52.0% | +170.3% | +83.7% | $384K |
| 98 | Richfield, MN | MN | -3.4% | +51.6% | +51.7% | +75.2% | $385.1K |
| 99 | Edina, MN | MN | -8.5% | +50.7% | +50.3% | +46.4% | $831.3K |
| 100 | Buffalo, MN | MN | -26.7% | +50.3% | +22.6% | +46.8% | $332.8K |
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.