Appreciation Velocity — Minnesota Cities
Cities of Minnesota ranked by 1Y / 3Y / 5Y home-price appreciation.
Public Record
Top 10 — 1Y appreciation (Citys)
#1 · Pengilly, MN
+834.1%
#2 · Bovey, MN
+711.5%
#3 · Kellogg, MN
+620.0%
#4 · Le Sueur, MN
+385.6%
#5 · Garfield, MN
+262.9%
#6 · Rock Creek, MN
+244.6%
#7 · Elysian, MN
+229.8%
#8 · Orono, MN
+227.1%
#9 · Scambler Township, MN
+227.0%
#10 · Nashwauk, MN
+200.7%
City ranking — 1Y appreciation (highest first)
| # | City | State | 1Y | 3Y | 5Y | 10Y | Current median |
|---|---|---|---|---|---|---|---|
| 1 | Pengilly, MN | MN | +834.1% | — | -31.1% | — | $298.9K |
| 2 | Bovey, MN | MN | +711.5% | +950.6% | +1,209.8% | +1,744.0% | $2.12M |
| 3 | Kellogg, MN | MN | +620.0% | — | -47.7% | — | $162K |
| 4 | Le Sueur, MN | MN | +385.6% | +206.7% | +533.8% | +527.0% | $987.5K |
| 5 | Garfield, MN | MN | +262.9% | — | +282.5% | +261.6% | $447.4K |
| 6 | Rock Creek, MN | MN | +244.6% | +307.7% | -15.2% | +100.1% | $144.8K |
| 7 | Elysian, MN | MN | +229.8% | +465.7% | +206.4% | +528.8% | $775K |
| 8 | Orono, MN | MN | +227.1% | +387.4% | +702.9% | +577.0% | $5.31M |
| 9 | Scambler Township, MN | MN | +227.0% | — | — | — | $1.2M |
| 10 | Nashwauk, MN | MN | +200.7% | +249.3% | +271.8% | — | $489K |
| 11 | Cleveland, MN | MN | +199.5% | — | +311.2% | +133.8% | $549.9K |
| 12 | Canby, MN | MN | +176.7% | +992.1% | +115.2% | +200.9% | $207.5K |
| 13 | Wykoff, MN | MN | +176.6% | — | +895.2% | — | $627K |
| 14 | Morris, MN | MN | +166.6% | +247.4% | +147.1% | +214.5% | $486.3K |
| 15 | Pierz, MN | MN | +158.3% | — | +68.9% | +109.1% | $465K |
| 16 | Isle, MN | MN | +157.7% | +234.0% | +175.8% | +390.9% | $835K |
| 17 | Hinckley, MN | MN | +151.9% | +52.0% | +170.3% | +83.7% | $384K |
| 18 | Dundas, MN | MN | +151.1% | +389.8% | +328.4% | +424.6% | $875K |
| 19 | Bigfork, MN | MN | +149.1% | — | +85.2% | +33.3% | $330K |
| 20 | Fergus Falls, MN | MN | +148.8% | +196.6% | +204.9% | +304.2% | $482K |
| 21 | Vernon Center, MN | MN | +146.7% | — | +90.7% | +266.0% | $185K |
| 22 | Sandstone, MN | MN | +143.5% | +314.0% | +268.1% | +219.0% | $523K |
| 23 | Preston, MN | MN | +136.4% | +152.5% | +55.8% | +39.1% | $265.1K |
| 24 | Lake Lillian, MN | MN | +133.3% | +42.3% | +208.4% | +162.2% | $350K |
| 25 | Caledonia, MN | MN | +117.8% | — | +72.1% | +195.4% | $256.5K |
| 26 | Wadena, MN | MN | +113.2% | +130.7% | +239.6% | +459.8% | $493.8K |
| 27 | Mound, MN | MN | +107.6% | +229.3% | +232.9% | +393.1% | $1.39M |
| 28 | Hawley, MN | MN | +104.3% | +24.1% | +73.4% | +111.2% | $475K |
| 29 | New London, MN | MN | +104.1% | +0.5% | +40.2% | +77.2% | $321K |
| 30 | Afton, MN | MN | +103.7% | +108.3% | +212.5% | +316.7% | $1.95M |
| 31 | Aurora, MN | MN | +102.8% | +158.8% | +367.2% | +266.8% | $354K |
| 32 | Frazee, MN | MN | +100.7% | — | +56.0% | +524.2% | $556.5K |
| 33 | Nisswa, MN | MN | +97.4% | +21.5% | +43.2% | +112.2% | $605.5K |
| 34 | Longville, MN | MN | +94.2% | -6.6% | +41.2% | +259.6% | $700.5K |
| 35 | Silver Lake, MN | MN | +90.9% | +90.0% | +167.8% | +228.8% | $380K |
| 36 | Breckenridge, MN | MN | +90.8% | +139.6% | +78.6% | +82.4% | $237K |
| 37 | Cushing, MN | MN | +84.6% | — | +65.0% | — | $568K |
| 38 | Le Center, MN | MN | +81.9% | +70.5% | +73.9% | +20.0% | $310.2K |
| 39 | Dodge Center, MN | MN | +81.3% | +1,344.6% | +168.0% | +525.6% | $469.5K |
| 40 | Harris, MN | MN | +76.3% | +7.0% | +46.1% | +152.3% | $406.5K |
| 41 | Chaska, MN | MN | +74.8% | +109.6% | +207.8% | +256.4% | $1.1M |
| 42 | Brook Park, MN | MN | +73.2% | +89.3% | +138.3% | +114.9% | $355K |
| 43 | Clearwater, MN | MN | +71.9% | +40.0% | +32.0% | +65.8% | $350K |
| 44 | Lauderdale, MN | MN | +71.1% | +17.3% | +23.2% | +289.3% | $325K |
| 45 | Roseville, MN | MN | +66.6% | +93.5% | +61.8% | +197.1% | $610.8K |
| 46 | Beaver Creek, MN | MN | +62.9% | +417.6% | +1,927.3% | +443.9% | $446K |
| 47 | Rockford, MN | MN | +61.4% | +12.9% | +63.7% | +118.7% | $458.9K |
| 48 | Wyoming, MN | MN | +58.8% | +64.9% | +164.0% | +122.2% | $489.8K |
| 49 | East Grand Forks, MN | MN | +58.5% | — | +39.0% | +89.9% | $322.2K |
| 50 | Carlton, MN | MN | +58.5% | — | +77.0% | +188.7% | $495K |
| 51 | Hutchinson, MN | MN | +58.0% | +153.1% | +236.6% | +284.6% | $563.5K |
| 52 | Two Harbors, MN | MN | +58.0% | +64.1% | +118.9% | +139.3% | $349.8K |
| 53 | Pipestone, MN | MN | +54.4% | +37.2% | +127.2% | +117.5% | $221.5K |
| 54 | Baxter, MN | MN | +54.3% | +69.8% | +99.4% | +135.1% | $458.8K |
| 55 | Richmond, MN | MN | +53.2% | +52.7% | +68.6% | +155.4% | $458K |
| 56 | Little Falls, MN | MN | +51.0% | +132.9% | +114.9% | +158.8% | $343.3K |
| 57 | Browerville, MN | MN | +50.2% | +257.3% | +62.0% | +525.7% | $268K |
| 58 | Glyndon, MN | MN | +50.0% | +69.6% | +242.9% | +267.1% | $420K |
| 59 | Golden Valley, MN | MN | +49.2% | +175.2% | +124.0% | +91.4% | $760.1K |
| 60 | Gilbert, MN | MN | +48.1% | — | +90.3% | -5.1% | $232.5K |
| 61 | North Oaks, MN | MN | +48.1% | +93.9% | +156.4% | +116.2% | $1.7M |
| 62 | Blomkest, MN | MN | +47.2% | — | -44.8% | +103.8% | $132.5K |
| 63 | Worthington, MN | MN | +46.4% | +266.0% | +141.9% | +219.0% | $466.1K |
| 64 | Northome, MN | MN | +46.1% | — | +25.1% | +73.2% | $270K |
| 65 | Hastings, MN | MN | +46.1% | +57.9% | +66.4% | +184.0% | $496.4K |
| 66 | Bayport, MN | MN | +45.7% | +3.6% | +35.0% | +150.3% | $532.5K |
| 67 | Wabasha, MN | MN | +45.6% | +139.8% | +188.0% | +359.3% | $563.3K |
| 68 | Pine River, MN | MN | +43.8% | -38.1% | -1.2% | +17.6% | $217.7K |
| 69 | Norwood Young America, MN | MN | +43.4% | +56.6% | +175.2% | +163.1% | $399.9K |
| 70 | Medina, MN | MN | +42.9% | +354.1% | +115.0% | +128.5% | $1.6M |
| 71 | Olivia, MN | MN | +41.7% | +57.8% | -5.1% | +40.4% | $265K |
| 72 | Newport, MN | MN | +41.7% | +89.0% | +40.2% | +132.9% | $532.5K |
| 73 | Waseca, MN | MN | +40.6% | +30.8% | +26.4% | +170.3% | $310.5K |
| 74 | Shafer, MN | MN | +40.4% | — | +125.1% | +1,900.0% | $700K |
| 75 | Stewartville, MN | MN | +40.2% | +65.4% | +78.3% | +59.1% | $404.6K |
| 76 | Pine City, MN | MN | +39.5% | +31.3% | +166.9% | +183.1% | $435K |
| 77 | Sturgeon Lake, MN | MN | +39.4% | — | +44.0% | +225.4% | $301.7K |
| 78 | Monticello, MN | MN | +38.6% | +42.9% | +27.9% | +142.6% | $460.5K |
| 79 | Williams, MN | MN | +37.9% | +286.0% | +97.3% | +520.0% | $386K |
| 80 | Ogilvie, MN | MN | +37.1% | +74.0% | +132.0% | +308.0% | $344.5K |
| 81 | Bagley, MN | MN | +36.7% | +21.8% | +251.5% | +128.7% | $410K |
| 82 | Granite Falls, MN | MN | +36.4% | — | +109.3% | +247.1% | $147.5K |
| 83 | Northfield, MN | MN | +36.3% | +5.1% | +66.5% | +146.3% | $443.8K |
| 84 | Saint Augusta, MN | MN | +36.2% | +146.2% | +67.1% | — | $512.5K |
| 85 | Hoyt Lakes, MN | MN | +35.7% | +39.2% | +98.8% | +149.5% | $154.7K |
| 86 | Coleraine, MN | MN | +33.3% | — | +57.8% | +266.2% | $230K |
| 87 | Sauk Rapids, MN | MN | +31.8% | -13.6% | +22.6% | +73.0% | $301.2K |
| 88 | Oak Grove, MN | MN | +31.5% | +119.9% | +76.7% | +208.2% | $855K |
| 89 | North Branch, MN | MN | +30.1% | +100.7% | +40.4% | +185.6% | $512K |
| 90 | Hill City, MN | MN | +29.4% | -5.3% | +67.8% | +33.1% | $186.3K |
| 91 | Owatonna, MN | MN | +29.3% | -19.9% | +101.2% | +85.2% | $285.5K |
| 92 | Cologne, MN | MN | +29.2% | — | +51.2% | +206.4% | $685.7K |
| 93 | Swatara, MN | MN | +28.6% | — | +103.4% | — | $180K |
| 94 | Stacy, MN | MN | +28.0% | +156.4% | +129.8% | +202.0% | $601.4K |
| 95 | Arlington, MN | MN | +26.9% | +87.2% | +32.3% | +124.8% | $262.1K |
| 96 | Mora, MN | MN | +26.6% | — | +16.8% | +90.0% | $245K |
| 97 | Mazeppa, MN | MN | +26.2% | +13.6% | +464.3% | +232.9% | $483K |
| 98 | Saint Paul, MN | MN | +25.0% | +16.3% | +62.7% | +90.9% | $480.4K |
| 99 | Saint Michael, MN | MN | +25.0% | -20.7% | +35.9% | +131.2% | $550.8K |
| 100 | Arden Hills, MN | MN | +24.9% | +9.1% | -28.8% | +36.1% | $380.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.