Where to buy real estate in 2020: Durham, Ont.
box-sizing: border-box
}
.WB18 * {
box-sizing: inherit
}
.WB18 a {
transition-property: background-color, color;
transition-duration: .2s
}
.grid {
display: block
}
.grid>div {
float: left
}
.grid {
display: flex;
flex-direction: column
}
.hack {
display: flex;
/* stop gap below image */
}
@media (min-width:768px) {
.grid {
flex-direction: row
}
.grid>* {
padding-left: 1em;
padding-right: 1em;
flex-grow: 1
}
.grid>:first-child {
margin-left: 0
}
.grid>:last-child {
margin-right: 0
}
.block {
width: 100%
}
}
.font__display–proxima {
font-family: proxima-nova, “Helvetica Neue”, Helvetica, Arial, sans-serif;
font-family: “Work Sans”, sans-serif;
}
.font__display–jubilat {
font-family: jubilat, Georgia, serif;
font-family: “Work Sans”, sans-serif;
}
.WB18 h1,
.WB18 h2,
.WB18 h3,
.WB18 h4,
.WB18 h5,
.WB18 h6 {
font-family: proxima-nova, “Helvetica Neue”, Helvetica, Arial, sans-serif;
font-family: “Work Sans”, sans-serif;
font-weight: 900
}
.WB18__header–wrap {
margin-bottom: 2em
}
.WB18__header {
display: block;
/* padding: 1em; */
/* text-align: center; */
text-align: right;
/* background-color: #235e63; */
background-color: #91c1c5;
color: #fff;
background-position: center center;
font-family: jubilat, Georgia, serif;
font-family: “Work Sans”, sans-serif;
cursor: pointer;
}
.WB18__header img {
width: 100%;
height: auto;
margin-top: -2.4em; /*offset the year*/
}
.WB18__header span {
display: inline-block;
color: #91c1c6;
transition-property: color;
transition-duration: .2s
}
.WB18__header span.to-animate {
animation-name: tada;
animation-duration: .9s;
animation-delay: 1s
}
.WB18__header:hover span {
color: #dc143c;
color: white;
}
.WB18__header:hover span.label__year {
color: #444
}
@media (min-width:768px) {
.WB18__header {
/* padding: 1em 2em */
}
}
.WB18__headline,
.single-post article h1.WB18__headline {
color: #fff
}
.WB18__header .label__year {
position: relative;
top: -1.4em; /*mobile*/
right: 0em;
line-height: 1em;
padding: .3em .8em .2em;
background-color: #e5eff6;
color: #163335;
font-weight: 900;
box-shadow: 2px 2px 6px rgba(0, 0, 0, .5);
border-radius: 20%/50%
}
@media (min-width:768px) {
.WB18__header .label__year {
font-size: 1.4em;
top: 0.2em; /*desktop*/
right: -2em;
}
}
.WB18__nav {
display: flex;
flex-wrap: wrap;
flex-direction: column;
margin: 0;
background-color: #91c1c5;
}
@media (min-width:768px) {
.WB18__nav {
flex-direction: row;
justify-content: space-between
}
.WB18__nav a,
.WB18__nav button {
flex-grow: 1
}
}
.WB18__nav a,
.WB18__nav button {
padding: 1rem 1.5rem;
border: 0;
/* text-align: left; */
text-align: center;
background-color: #91c1c5;
/* color: #91c1c6; */
color: #163335 !important;
/* font-family: proxima-nova, “Helvetica Neue”, Helvetica, Arial, sans-serif */
font-family: “Work Sans”, sans-serif;
text-decoration: none !important;
}
#WB18__nav–toggler.active,
.WB18__nav a:hover,
.WB18__nav button:hover {
background-color: #1e90ff;
background-color: #235e63;
color: #fff !important;
font-weight: bold;
}
.WB18__nav–home {
order: 1
}
.WB18__nav–top35 {
order: 2
}
.WB18__nav–overview {
order: 3
}
#WB18__nav–toggler {
order: 4
}
.WB18__nav button {
outline: 0
}
.WB18__nav #WB18__nav–toggler {
position: relative;
z-index: 20;
color: #235e63;
}
.WB18__nav #WB18__nav–toggler::after {
display: inline-block;
padding: 0 1rem;
content: ‘ 025BE’;
transition-property: transform;
transition-duration: .2s
}
.WB18__nav #WB18__nav–toggler.active::after {
content: ‘ 025BE’;
transform: rotate(180deg)
}
.WB18__nav–citylist {
position: absolute;
display: flex;
width: 100%;
z-index: 10;
flex-direction: column;
transform: translateX(-999em);
box-shadow: 0 6px 4px rgba(0, 0, 0, .5)
}
.WB18__nav–citylist.active {
transform: translateX(0);
z-index: 20
}
.WB18__nav–citylist a {
background-color: #163335;
color: #91c1c5;
color: white !important;
}
.WB18__nav–citylist a:hover {
background-color: #444;
/* color: #91c1c5; */
color: white;
background-color: #235e63;
}
@media (min-width:768px) {
.WB18__nav–home {
order: 2
}
.WB18__nav–top35 {
order: 3
}
.WB18__nav–overview {
order: 4
}
#WB18__nav–toggler {
order: 1
}
}
@keyframes tada {
from {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1)
}
10%,
20% {
-webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)
}
30%,
50%,
70%,
90% {
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
}
40%,
60%,
80% {
-webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
}
to {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1)
}
}
2020
Where to Buy Real Estate Now
–>
!function (e, t) { “object” == typeof exports && “object” == typeof module ? module.exports = t() : “function” == typeof define && define.amd ? define([], t) : “object” == typeof exports ? exports.inView = t() : e.inView = t() }(this, function () { return function (e) { function t(i) { if (n[i]) return n[i].exports; var r = n[i] = { exports: {}, id: i, loaded: !1 }; return e[i].call(r.exports, r, r.exports, t), r.loaded = !0, r.exports } var n = {}; return t.m = e, t.c = n, t.p = “”, t(0) }([function (e, t, n) { “use strict”; function i(e) { return e && e.__esModule ? e : { default: e } } var r = n(2), o = i(r); e.exports = o.default }, function (e, t) { function n(e) { var t = typeof e; return null != e && (“object” == t || “function” == t) } e.exports = n }, function (e, t, n) { “use strict”; function i(e) { return e && e.__esModule ? e : { default: e } } Object.defineProperty(t, “__esModule”, { value: !0 }); var r = n(9), o = i(r), u = n(3), f = i(u), c = n(4), s = function () { if (“undefined” != typeof window) { var e = 100, t = [“scroll”, “resize”, “load”], n = { history: [] }, i = { offset: {}, threshold: 0, test: c.inViewport }, r = (0, o.default)(function () { n.history.forEach(function (e) { n[e].check() }) }, e); t.forEach(function (e) { return addEventListener(e, r) }), window.MutationObserver && addEventListener(“DOMContentLoaded”, function () { new MutationObserver(r).observe(document.body, { attributes: !0, childList: !0, subtree: !0 }) }); var u = function (e) { if (“string” == typeof e) { var t = [].slice.call(document.querySelectorAll(e)); return n.history.indexOf(e) > -1 ? n[e].elements = t : (n[e] = (0, f.default)(t, i), n.history.push(e)), n[e] } }; return u.offset = function (e) { if (void 0 === e) return i.offset; var t = function (e) { return “number” == typeof e }; return [“top”, “right”, “bottom”, “left”].forEach(t(e) ? function (t) { return i.offset[t] = e } : function (n) { return t(e[n]) ? i.offset[n] = e[n] : null }), i.offset }, u.threshold = function (e) { return “number” == typeof e && e >= 0 && e <= 1 ? i.threshold = e : i.threshold }, u.test = function (e) { return "function" == typeof e ? i.test = e : i.test }, u.is = function (e) { return i.test(e, i) }, u.offset(0), u } }; t.default = s() }, function (e, t) { "use strict"; function n(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(t, "__esModule", { value: !0 }); var i = function () { function e(e, t) { for (var n = 0; n -1, o = n && !r, u = !n && r; o && (e.current.push(t), e.emit(“enter”, t)), u && (e.current.splice(i, 1), e.emit(“exit”, t)) }), this } }, { key: “on”, value: function (e, t) { return this.handlers[e].push(t), this } }, { key: “once”, value: function (e, t) { return this.singles[e].unshift(t), this } }, { key: “emit”, value: function (e, t) { for (; this.singles[e].length;)this.singles[e].pop()(t); for (var n = this.handlers[e].length; –n > -1;)this.handlers[e][n](t); return this } }]), e }(); t.default = function (e, t) { return new r(e, t) } }, function (e, t) { “use strict”; function n(e, t) { var n = e.getBoundingClientRect(), i = n.top, r = n.right, o = n.bottom, u = n.left, f = n.width, c = n.height, s = { t: o, r: window.innerWidth – u, b: window.innerHeight – i, l: r }, a = { x: t.threshold * f, y: t.threshold * c }; return s.t > t.offset.top + a.y && s.r > t.offset.right + a.x && s.b > t.offset.bottom + a.y && s.l > t.offset.left + a.x } Object.defineProperty(t, “__esModule”, { value: !0 }), t.inViewport = n }, function (e, t) { (function (t) { var n = “object” == typeof t && t && t.Object === Object && t; e.exports = n }).call(t, function () { return this }()) }, function (e, t, n) { var i = n(5), r = “object” == typeof self && self && self.Object === Object && self, o = i || r || Function(“return this”)(); e.exports = o }, function (e, t, n) { function i(e, t, n) { function i(t) { var n = b, i = g; return b = g = void 0, T = t, x = e.apply(i, n) } function a(e) { return T = e, O = setTimeout(p, t), E ? i(e) : x } function l(e) { var n = e – S, i = e – T, r = t – n; return L ? s(r, w – i) : r } function d(e) { var n = e – S, i = e – T; return void 0 === S || n >= t || n = w } function p() { var e = o(); return d(e) ? h(e) : void (O = setTimeout(p, l(e))) } function h(e) { return O = void 0, _ && b ? i(e) : (b = g = void 0, x) } function v() { void 0 !== O && clearTimeout(O), T = 0, b = S = g = O = void 0 } function y() { return void 0 === O ? x : h(o()) } function m() { var e = o(), n = d(e); if (b = arguments, g = this, S = e, n) { if (void 0 === O) return a(S); if (L) return O = setTimeout(p, t), i(S) } return void 0 === O && (O = setTimeout(p, t)), x } var b, g, w, x, O, S, T = 0, E = !1, L = !1, _ = !0; if (“function” != typeof e) throw new TypeError(f); return t = u(t) || 0, r(n) && (E = !!n.leading, L = “maxWait” in n, w = L ? c(u(n.maxWait) || 0, t) : w, _ = “trailing” in n ? !!n.trailing : _), m.cancel = v, m.flush = y, m } var r = n(1), o = n(8), u = n(10), f = “Expected a function”, c = Math.max, s = Math.min; e.exports = i }, function (e, t, n) { var i = n(6), r = function () { return i.Date.now() }; e.exports = r }, function (e, t, n) { function i(e, t, n) { var i = !0, f = !0; if (“function” != typeof e) throw new TypeError(u); return o(n) && (i = “leading” in n ? !!n.leading : i, f = “trailing” in n ? !!n.trailing : f), r(e, t, { leading: i, maxWait: t, trailing: f }) } var r = n(7), o = n(1), u = “Expected a function”; e.exports = i }, function (e, t) { function n(e) { return e } e.exports = n }]) }), !function (e, t) { if (“function” == typeof define && define.amd) define([“module”, “exports”], t); else if (“undefined” != typeof exports) t(module, exports); else { var n = { exports: {} }; t(n, n.exports), e.fitty = n.exports } }(this, function (e, t) { “use strict”; Object.defineProperty(t, “__esModule”, { value: !0 }); var n = Object.assign || function (e) { for (var t = 1; t 1 && void 0 !== arguments[1] ? arguments[1] : {}; return “string” == typeof e ? t(r(document.querySelectorAll(e)), n) : t([e], n)[0] } if (e) { var r = function (e) { return [].slice.call(e) }, o = { IDLE: 0, DIRTY_CONTENT: 1, DIRTY_LAYOUT: 2, DIRTY: 3 }, u = [], f = null, c = “requestAnimationFrame” in e ? function () { e.cancelAnimationFrame(f), f = e.requestAnimationFrame(function () { a(u.filter(function (e) { return e.dirty })) }) } : function () { }, s = function (e) { return function () { u.forEach(function (t) { t.dirty = e }), c() } }, a = function (e) { e.filter(function (e) { return !e.styleComputed }).forEach(function (e) { e.styleComputed = p(e) }), e.filter(h).forEach(y), e.filter(d).forEach(l), e.forEach(v), e.forEach(m) }, l = function (e) { e.availableWidth = e.element.parentNode.clientWidth, e.currentWidth = e.element.scrollWidth, e.previousFontSize = e.currentFontSize, e.currentFontSize = Math.min(Math.max(e.minSize, e.availableWidth / e.currentWidth * e.previousFontSize), e.maxSize), e.whiteSpace = e.multiLine && e.currentFontSize === e.minSize ? “normal” : “nowrap” }, d = function (e) { return e.dirty !== o.DIRTY_LAYOUT || e.dirty === o.DIRTY_LAYOUT && e.element.parentNode.clientWidth !== e.availableWidth }, p = function (t) { var n = e.getComputedStyle(t.element, null); t.currentFontSize = parseInt(n.getPropertyValue(“font-size”), 10), t.display = n.getPropertyValue(“display”), t.whiteSpace = n.getPropertyValue(“white-space”) }, h = function (e) { var t = !1; return /inline-/.test(e.display) || (t = !0, e.display = “inline-block”), “nowrap” !== e.whiteSpace && (t = !0, e.whiteSpace = “nowrap”), t }, v = function (e) { y(e), e.dirty = o.IDLE }, y = function (e) { e.originalStyle || (e.originalStyle = e.element.getAttribute(“style”) || “”), e.element.style.cssText = e.originalStyle + “;white-space:” + e.whiteSpace + “;display:” + e.display + “;font-size:” + e.currentFontSize + “px” }, m = function (e) { e.element.dispatchEvent(new CustomEvent(“fit”, { detail: { oldValue: e.previousFontSize, newValue: e.currentFontSize, scaleFactor: e.currentFontSize / e.previousFontSize } })) }, b = function (e, t) { return function () { e.dirty = t, c() } }, g = function (e) { e.newbie = !0, e.dirty = !0, u.push(e) }, w = function (e) { return function () { u = u.filter(function (t) { return t.element !== e.element }), e.observeMutations && e.observer.disconnect(), e.element.style.cssText = e.originalStyle } }, x = function (e) { e.observeMutations && (e.observer = new MutationObserver(b(e, o.DIRTY_CONTENT)), e.observer.observe(e.element, e.observeMutations)) }, O = { subtree: !0, childList: !0, characterData: !0 }, S = { minSize: 16, maxSize: 512, multiLine: !0, observeMutations: “MutationObserver” in e && O }, T = null, E = function () { e.clearTimeout(T), T = e.setTimeout(s(o.DIRTY_LAYOUT), i.observeWindowDelay) }, L = [“resize”, “orientationchange”]; return Object.defineProperty(i, “observeWindow”, { set: function (t) { var n = (t ? “add” : “remove”) + “EventListener”; L.forEach(function (t) { e[n](t, E) }) } }), i.observeWindow = !0, i.observeWindowDelay = 100, i.fitAll = s(o.DIRTY), i } }(“undefined” == typeof window ? null : window), e.exports = t.default }), fitty(“.fit”), inView(“.fit”).on(“enter”, function () { fitty(“.fit”) }), function (e) { function t() { e.cityListOpen === !1 ? e.cityListOpen = !0 : e.cityListOpen = !1, e.toggler.classList.toggle(“active”), e.submenu.classList.toggle(“active”) } e.cityListOpen = !1, e.toggler = document.querySelector(“#WB18__nav–toggler”), e.submenu = document.querySelector(“.WB18__nav–citylist”), toggler.addEventListener(“click”, t), e.addEventListener(“keyup”, function (n) { 27 === n.keyCode && e.cityListOpen === !0 && t() }) }(this)
table.city-ranking {
font-family: proxima-nova, Helvetica, Arial, sans-serif
}
table.city-ranking tr td {
font-size: .9em
}
table.city-ranking tr>td:nth-of-type(13) {
color: orange
}
.footable-details td,
.footable-details th,
table.city-ranking tr>td:last-of-type table.footable-details td:last-of-type {
color: #333
}
table.city-ranking th.bar {
width: 100px
}
table.city-ranking span.bar {
display: inline-block;
position: relative;
z-index: 10;
height: 2rem;
width: 100%
}
span.bar>span.bar-inner {
display: block;
height: 2rem;
z-index: 11;
font-size: 1rem;
line-height: 2rem;
padding-left: .5rem;
color: #fff;
font-weight: 900
}
span.bar.value {
background-color: #afeeee
}
span.bar.momentum {
background-color: salmon
}
span.bar.value>span.bar-inner {
background-color: #1e90ff
}
span.bar.momentum>span.bar-inner {
background-color: #dc143c
}
.WB18__legend {
margin: 1em 0;
padding: 1em 1em 6px;
font-size: 1.4rem;
border: solid 1px #ddd;
font-family: proxima-nova, Helvetica, Arial, sans-serif
}
.WB18__legend dt {
font-weight: bold;
}
.WB18__legend p.WB18__legend–explanatory {
font-size: 1.4rem
}
.WB18__legend .hide-on-mobile {
display: none
}
.WB18__legend .hide-on-desktop {
display: inline
}
@media (min-width:768px) {
.WB18__legend .hide-on-mobile {
display: inline
}
.WB18__legend .hide-on-desktop {
display: none
}
}
table.footable-details tbody tr th {
padding: 9px 10px
}
Rank | Area | Province | Neighbourhood | Area average price 2019 | Value | Momentum | Average price vs. area | Average price vs. metro district |
Average price vs. greater city area |
1-Year price change | 5-Year price change | Final star rating |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Whitby | ON | Pringle Creek | $633,990 | 64.31 | 96.81 | 142.6% | 155.1% | 71.3% | 53.3% | 96.9% | ★★★★★ |
2 | Whitby | ON | Port Whitby | $633,990 | 71.76 | 99.14 | 190.5% | 207.1% | 95.2% | 69.8% | 99.0% | ★★★ |
3 | Uxbridge | ON | Uxbridge | $531,426 | 72.56 | 97.48 | 225.6% | 205.6% | 94.5% | 56.4% | 99.2% | ★★★ |
4 | Scugog | ON | Port Perry | $555,255 | 53.05 | 82.37 | 122.6% | 116.8% | 53.7% | 30.5% | 44.9% | ★★★★★ |
5 | Whitby | ON | Downtown Whitby | $633,990 | 66.19 | 99.22 | 148.8% | 161.8% | 74.4% | 84.7% | 99.5% | ★★★ |
6 | Clarington | ON | Courtice | $520,049 | 49.31 | 89.61 | 119.7% | 106.8% | 49.1% | 23.8% | 92.1% | ★★★★★ |
7 | Whitby | ON | Brooklin | $633,990 | 57.76 | 54.75 | 126.4% | 137.5% | 63.2% | 3.7% | 56.2% | ★★★★ |
8 | Pickering | ON | Village East | $735,722 | 42.43 | 80.36 | 98.0% | 123.7% | 56.9% | 13.7% | 90.8% | ★★★★ |
9 | Whitby | ON | Williamsburg | $633,990 | 49.25 | 54.41 | 108.8% | 118.3% | 54.4% | 7.5% | 63.6% | ★★★★ |
10 | Ajax | ON | South West | $662,883 | 46.98 | 77.96 | 105.0% | 119.4% | 54.9% | 21.8% | 66.4% | ★★★ |
11 | Scugog | ON | Blackstock | $555,255 | 53.72 | 84.15 | 123.9% | 118.0% | 54.3% | 19.5% | 61.8% | ★★ |
12 | Pickering | ON | Rosebank | $735,722 | 69.70 | 58.82 | 154.2% | 194.6% | 89.4% | 2.6% | 51.5% | ★★ |
13 | Pickering | ON | Bay Ridges | $735,722 | 32.59 | 58.57 | 86.1% | 108.6% | 49.9% | 5.3% | 64.6% | ★★★★ |
14 | Whitby | ON | Rolling Acres | $633,990 | 49.99 | 55.20 | 109.9% | 119.5% | 54.9% | 0.5% | 86.2% | ★★★★ |
15 | Clarington | ON | Rural Clarington | $520,049 | 64.38 | 69.40 | 160.7% | 143.3% | 65.9% | 6.6% | 91.3% | ★★ |
16 | Oshawa | ON | Rural Oshawa | $491,044 | 71.27 | 73.66 | 220.3% | 185.6% | 85.3% | 35.9% | 16.9% | ★★ |
17 | Clarington | ON | Bowmanville | $520,049 | 20.65 | 64.40 | 97.3% | 86.8% | 39.9% | 6.6% | 79.0% | ★★★★★ |
18 | Ajax | ON | Central West | $662,883 | 46.77 | 55.70 | 104.7% | 119.1% | 54.7% | 8.1% | 54.9% | ★★★ |
19 | Oshawa | ON | McLaughlin | $491,044 | 29.73 | 83.98 | 108.0% | 91.0% | 41.8% | 20.0% | 89.7% | ★★★ |
20 | Ajax | ON | Central East | $662,883 | 44.77 | 50.74 | 102.6% | 116.6% | 53.6% | 5.3% | 69.5% | ★★★ |
21 | Pickering | ON | Rougemount | $735,722 | 62.57 | 32.25 | 128.9% | 162.7% | 74.8% | -3.0% | 34.9% | ★★★★★ |
22 | Pickering | ON | Duffin Heights | $735,722 | 43.87 | 39.71 | 99.0% | 124.9% | 57.4% | 7.1% | 29.2% | ★★★★★ |
23 | Clarington | ON | Newcastle | $520,049 | 24.09 | 74.94 | 100.1% | 89.3% | 41.0% | 17.1% | 79.7% | ★★★★ |
24 | Ajax | ON | Central | $662,883 | 38.79 | 65.95 | 97.2% | 110.5% | 50.8% | 6.1% | 67.2% | ★★★ |
25 | Pickering | ON | West Shore | $735,722 | 39.83 | 60.54 | 95.3% | 120.3% | 55.3% | 13.4% | 38.2% | ★★★★ |
26 | Pickering | ON | Rural Pickering | $735,722 | 67.55 | 45.19 | 144.3% | 182.0% | 83.7% | 2.9% | 44.6% | ★★ |
27 | Ajax | ON | Northwest Ajax | $662,883 | 50.80 | 47.30 | 109.8% | 124.8% | 57.4% | 3.8% | 46.9% | ★★★ |
28 | Uxbridge | ON | Rural Uxbridge | $531,426 | 69.87 | 51.33 | 195.6% | 178.3% | 82.0% | 11.1% | 37.2% | ★★ |
29 | Pickering | ON | Highbush | $735,722 | 53.91 | 39.03 | 110.4% | 139.3% | 64.0% | 5.5% | 40.5% | ★★★★ |
30 | Ajax | ON | Northeast Ajax | $662,883 | 49.32 | 50.98 | 107.4% | 122.2% | 56.2% | 5.4% | 46.7% | ★★★ |
31 | Oshawa | ON | Taunton | $491,044 | 52.27 | 44.76 | 129.3% | 108.9% | 50.0% | 4.6% | 66.2% | ★★★★ |
32 | Ajax | ON | South East | $662,883 | 35.65 | 54.42 | 94.5% | 107.5% | 49.4% | 10.4% | 52.8% | ★★★ |
33 | Whitby | ON | Lynde Creek | $633,990 | 38.77 | 62.46 | 98.3% | 106.9% | 49.2% | 9.1% | 66.9% | ★★★★ |
34 | Pickering | ON | Liverpool | $735,722 | 38.18 | 52.27 | 93.3% | 117.7% | 54.1% | 6.4% | 52.6% | ★★★★ |
35 | Whitby | ON | Rural Whitby | $633,990 | 70.20 | 49.43 | 174.2% | 189.4% | 87.1% | 3.3% | 7.4% | ★★ |
36 | Oshawa | ON | Windfields | $491,044 | 53.61 | 37.28 | 131.6% | 110.8% | 51.0% | -7.6% | 57.9% | ★★★ |
37 | Brock | ON | Sunderland | $491,448 | 48.11 | 60.27 | 118.9% | 100.3% | 46.1% | 0.5% | 88.7% | ★★ |
38 | Brock | ON | Rural Brock | $491,448 | 55.39 | 59.78 | 135.4% | 114.2% | 52.5% | -4.3% | 89.0% | ★★ |
39 | Whitby | ON | Blue Grass Meadows | $633,990 | 47.07 | 47.27 | 106.1% | 115.4% | 53.0% | -2.6% | 62.8% | ★★★ |
40 | Pickering | ON | Amberlea | $735,722 | 44.31 | 58.80 | 99.3% | 125.2% | 57.6% | 8.8% | 58.2% | ★★ |
41 | Pickering | ON | Woodlands | $735,722 | 55.44 | 23.77 | 113.1% | 142.7% | 65.6% | -24.9% | 23.6% | ★★★ |
42 | Pickering | ON | Dunbarton | $735,722 | 67.70 | 41.27 | 144.9% | 182.8% | 84.0% | 1.5% | 25.1% | ★★ |
43 | Brock | ON | Beaverton | $491,448 | 12.17 | 52.36 | 91.6% | 77.2% | 35.5% | 2.3% | 74.6% | ★★★★ |
44 | Pickering | ON | Brock Ridge | $735,722 | 49.13 | 48.62 | 104.6% | 132.0% | 60.7% | -1.6% | 60.8% | ★★★ |
45 | Brock | ON | Cannington | $491,448 | 19.91 | 83.33 | 97.7% | 82.3% | 37.8% | 15.0% | 93.1% | ★★ |
46 | Oshawa | ON | Kedron | $491,044 | 59.92 | 38.53 | 148.4% | 125.0% | 57.5% | -4.1% | 31.3% | ★★ |
47 | Oshawa | ON | Donevan | $491,044 | 13.98 | 68.36 | 94.4% | 79.5% | 36.6% | 11.4% | 82.6% | ★★★ |
48 | Oshawa | ON | Pinecrest | $491,044 | 27.49 | 56.30 | 105.5% | 88.9% | 40.9% | 6.6% | 62.6% | ★★★ |
49 | Oshawa | ON | Vanier | $491,044 | 8.05 | 72.46 | 84.4% | 71.1% | 32.7% | 15.0% | 84.4% | ★★ |
50 | Oshawa | ON | Northglen | $491,044 | 51.08 | 45.72 | 127.2% | 107.1% | 49.2% | 3.0% | 47.9% | ★★ |
51 | Whitby | ON | Taunton North | $633,990 | 55.11 | 43.43 | 119.4% | 129.9% | 59.7% | -2.4% | 55.1% | ★★ |
52 | Oshawa | ON | O’Neill | $491,044 | 10.75 | 75.51 | 90.1% | 75.9% | 34.9% | 15.9% | 86.7% | ★★ |
53 | Oshawa | ON | Eastdale | $491,044 | 23.54 | 59.97 | 101.9% | 85.8% | 39.5% | 6.6% | 69.7% | ★★ |
54 | Oshawa | ON | Lakeview | $491,044 | 8.83 | 68.71 | 85.8% | 72.3% | 33.2% | 11.1% | 85.9% | ★★ |
55 | Oshawa | ON | Samac | $491,044 | 24.73 | 54.68 | 102.5% | 86.4% | 39.7% | 5.1% | 62.1% | ★★ |
56 | Pickering | ON | Rouge Park | $735,722 | 54.06 | 27.81 | 110.4% | 139.4% | 64.1% | -5.5% | 12.1% | ★★ |
57 | Oshawa | ON | Central | $491,044 | 6.65 | 60.66 | 80.9% | 68.1% | 31.3% | 2.1% | 75.6% | ★★★ |
58 | Clarington | ON | Orono | $520,049 | 10.65 | 73.06 | 87.3% | 77.9% | 35.8% | 20.7% | 75.4% | ★★ |
59 | Scugog | ON | Rural Scugog | $555,255 | 48.27 | 46.61 | 113.6% | 108.2% | 49.7% | -0.8% | 54.1% | ★★ |
60 | Oshawa | ON | Centennial | $491,044 | 32.26 | 49.69 | 111.8% | 94.1% | 43.3% | -1.0% | 60.0% | ★★ |
61 | Oshawa | ON | Farewell | $491,044 | 10.05 | 44.80 | 87.6% | 73.8% | 33.9% | -10.1% | 70.0% | ★★★ |
62 | Whitby | ON | Whitby Industrial | $633,990 | 59.90 | 0 | 131.2% | 142.6% | 65.6% | 0 | 0.0% | ★★ |
63 | Pickering | ON | Town Centre | $735,722 | (22.35) | 0 | 0.0% | 0.0% | 0.0% | 0 | 0.0% | ★★★★ |
64 | Oshawa | ON | Columbus | $491,044 | (22.35) | 0.21 | 0.0% | 0.0% | 0.0% | -100.0% | 0.0% | ★★ |
65 | Oshawa | ON | Northwood | $491,044 | (22.35) | 0.06 | 0.0% | 0.0% | 0.0% | 0 | 0.0% | ★★ |
66 | Oshawa | ON | Raglan | $491,044 | (22.35) | 0.11 | 0.0% | 0.0% | 0.0% | -100.0% | 0.0% | ★★ |
67 | Oshawa | ON | Stevenson | $491,044 | (22.35) | 0 | 0.0% | 0.0% | 0.0% | 0 | 0.0% | ★★ |
function displayAsPercent(value, options, rowData) {
if (value === null) {
return ‘N.A.’;
}
return value.toLocaleString(‘en-CA’) + ‘%’;
}
function displayAsDollar(value, options, rowData) {
if (value === null) {
return ‘N.A.’;
}
return ‘$’ + value.toLocaleString(‘en-CA’);
}
function barValue(value, options, rowData) {
return ‘ ‘;
}
function barMomentum(value, options, rowData) {
return ‘ ‘;
}
jQuery(document).ready(function () {
jQuery(‘#cityRanking-ik2u3’).footable();
});
Durham’s top three neighbourhoods to buy in 2020:
1. Pringle Creek, Whitby
The top spot goes to the Durham community of Pringle Creek (which is also our No. 1 pick for the Greater Toronto Area this year). Talk to local realtors, and they’ll tell you that this neighbourhood has been a long-sought-after Whitby community. Located south of Taunton Road (and all its commercial and retail amenities) and minutes north of Dundas Street West, the area is centred around Pringle Creek Park.
Residents of Pringle Creek won’t be surprised that their neighbourhood is so highly ranked. This community is well-established with great access to commercial stores and restaurants, but with enough of a buffer to provide a tranquil spot for residents to enjoy green space within their own neighbourhood. Better still, the community is about five to 10 minutes away from downtown Whitby, giving it a generous boost of civic pride whenever the city hosts local events.
Buyers will find a great mix of new-builds and resale homes, most of which were built between 1981 and 2000. Houses in this area range in style from modern or contemporary to solid two-storey suburban family homes to sprawling ranchers. About 11% to 15% of Pringle Creek’s residents are tenants, according to Statistics Canada data—a decent share for any buyer looking to purchase a home with a mortgage-payment helping rental suite.
Prior to the pandemic and market slowdown, homes typically sold within 10 days in Pringle Creek.
Average Single-Family Home Price (2019): $904,076
2. Port Whitby, Whitby
With a border on the shore of Lake Ontario, this Whitby neighbourhood stretches from Highway 401, to the north down to the lake in the south. The western boundary runs along the Whitby Harbour up the southern part of the Iroquois Park eastern border.
Years ago, this community served as a commercial and light industrial area for businesses that supported the marina. Eventually, other businesses moved into the area, attracted to the larger commercial spaces. But with skyrocketing residential home prices in the GTA, the homes in this area eventually became a good value. As a result, the community is now largely populated by young families and those looking for great starter homes that are priced, on average, slightly less than the Greater Toronto Area average of $1.27-million.
Potential buyers will like the quiet, family-friendly neighbourhoods, most of which are located in the southern part of the community, near the lake, and the northeastern part of the community, close to the Sports Complex (which is located in Iroquois Park). Despite a larger presence of retail space, the incredible draw of this neighbourhood is the significant amount of green space and easy access to waterfront space.
Prior to the market slowdown, due to the pandemic, homes typically sold within 14 days in Port Whitby.
Average Single-Family Home Price (2019): $1,207,597
Compare mortgage rates on Ratehub.ca* »
3. Uxbridge
Located in the Durham Region, the Town of Uxbridge is just over 60 kilometres northeast of Toronto and situated on the northern slope of the Oak Ridges Moraine, a swath of protected green space that runs 160 kilometres from the Trent River in the east to the Niagara escarpment in the west. This proximity to this protected greenbelt has nicknamed the town (and the surrounding area) as the ‘trail capital’ of the province.
Like other small towns in the Greater Toronto Area, Uxbridge offers that astonishing mix of small-town charm with access to big city amenities. The town’s downtown is dominated by the quaint public library and ‘main street’ offers artisan coffee shops, boutique gift stores and funky yoga studios in second-floor retail space.
Prior to the market slowdown, due to the pandemic, homes typically sold within 28 days in Uxbridge, with more than 98% selling for list price or more.
Average Single-Family Home Price (2019): $1,198,926
What does the * mean?
If a link has an asterisk (*) at the end of it, that means it’s an affiliate link and can sometimes result in a payment to MoneySense which helps our website stay free to our users. It’s important to note that our editorial content will never be impacted by these links. We try our best to look at all available products in the market and where a product ranks in our article or whether or not it’s included in the first place is never driven by compensation. For more details read our MoneySense Monetization policy.
The post Where to buy real estate in 2020: Durham, Ont. appeared first on MoneySense.