Where People in Cleveland Are Looking to Buy Homes

view original post
click to enlarge

Erik Drost/FlickrCC

Fleeing the CLE?

Home prices are largely starting to normalize across the country but remain high even as more homes start to come on the market this spring.

Record-high mortgage rates are keeping homes largely unaffordable for most buyers. Even a percentage point increase can increase a monthly mortgage payment by more than $100.

That’s causing potential homeowners to expand their searches outside costly urban cores, especially when they can work from home.

Stacker examined data from Realtor.com’s Cross-Market Demand Report to see where people in Cleveland are looking to buy homes. View share is based on page views of active listings during the first quarter of 2024 on Realtor.com. It does not include international viewers.

Continue reading to see where people in Cleveland are shopping for their next house.

#10. Sandusky, OH

– 1.7% of views

#9. Cape Coral, FL

– 1.7% of views

#8. North Port, FL

– 1.8% of views

#7. Tampa, FL

– 2.3% of views

#6. Toledo, OH

– 2.4% of views

#5. Ashtabula, OH

– 2.6% of views

#4. Canton, OH

– 3.8% of views

#3. Youngstown, OH

– 4.7% of views

#2. Columbus, OH

– 8.0% of views

#1. Akron, OH

– 15.8% of views

This story features data reporting and writing by Elena Cox and is part of a series utilizing data automation across 379 metros.

Originally published by Stacker Newswire. Republished pursuant to a CC BY-NC 4.0 License.

‘)
let lineHeight = jQuery(‘[line-height-check]’).get(0).clientHeight;
jQuery(‘[line-height-check]’).remove()
if (jQuery(element).prop(‘tagName’).match(/HIDDEN/i) !== null) {
jQuery(element).children(‘div’).last().css({ marginBottom: `${lineHeight*2}px` });
}
else {
jQuery(element).css({
marginTop: `${lineHeight*2}px`,
marginBottom: `${lineHeight}px`
});
}
//
const insertionBlockClass = `fdn-paragraph-insertion-block`;
const styleElementHook = `fdn-paragraph-insertion-styles`;

jQuery(element).addClass(insertionBlockClass);

if (jQuery(`[${styleElementHook}]`).length === 0) {
jQuery(‘div.fdn-content-body, div #storyBody’).append(”)
const paragraphLineHeight = jQuery(‘[line-height-check]’).get(0).clientHeight;
jQuery(‘[line-height-check]’).remove()

const styleElement = jQuery(“);
const styleText = `
div.fdn-content-body br+.${insertionBlockClass}:not([hidden]),
div #storyBody br+.${insertionBlockClass}:not([hidden]) {
margin-top: ${paragraphLineHeight*2}px;
margin-bottom: ${paragraphLineHeight}px;
}

div.fdn-content-body br+.${insertionBlockClass}[hidden] > div:last-of-type,
div #storyBody br+.${insertionBlockClass}[hidden] > div:last-of-type {
margin-bottom: ${paragraphLineHeight*2}px;
}
`
styleElement.text(styleText);
jQuery(‘head’).append(styleElement);
}
//

}
}
jQuery(element).insertBefore(this.paragraphEndNodes[index]);
}
else {
console.warn(‘Foundation.ParagraphTool.insertElemenAt: invalid insertion index’, index);
}
}

this.insertElemenAtEnd = function (element) {
if (this.paragraphEndNodes.length) {

let lastNode = this.getNodeAtIndex(this.paragraphEndNodes.length -1);
if (this.isDoubleBrParagraphBreak(lastNode)
|| this.isBrParagraphBreakBeforeBlockElement(lastNode)) {
if (jQuery(element).get(0).tagName.match(/SCRIPT/i) !== null) {
jQuery(‘
‘).insertAfter(this.paragraphEndNodes[index]);
jQuery(‘
‘).insertAfter(this.paragraphEndNodes[index]);
}
else {
jQuery(‘div.fdn-content-body, div #storyBody’).append(”)
let lineHeight = jQuery(‘[line-height-check]’).get(0).clientHeight;
jQuery(‘[line-height-check]’).remove()
if (jQuery(element).prop(‘tagName’).match(/HIDDEN/i) !== null) {
jQuery(element).children(‘div’).last().css({ marginBottom: `${lineHeight*2}px` });
}
else {
jQuery(element).css({
marginTop: `${lineHeight*2}px`,
marginBottom: `${lineHeight}px`
});
}
}
}
}
this.bodyContainer.append(element);
}

this.getNodeAtIndex = function (index) {
return this.paragraphEndNodes[index];
}
}

`);
}
var paragraphCount = myParagraphTool.getParagraphEndNodeCount();
// No need to insert if there aren’t enough paragaphs
if (paragraphCount >= parseInt(item.requiredCountToDisplay)) {
// Matches specific paragraph insertion indexes
if (item.insertPoint.match(/^d+$/) !== null) {
var insertIndex = parseInt(item.insertPoint) – 1;
// Insert within content
if (insertIndex < paragraphCount) {
myParagraphTool.insertElemenAtIndex(componentElement, insertIndex);
}
// Append to the end if the insert point is beyond the paragraph count
else {
myParagraphTool.insertElemenAtEnd(componentElement)
}
}
// Matches for 1/2, 1/4, 2/3, 5/6, etc
else if (item.insertPoint.match(/^[1223456]/[23456]$/) !== null) {
var fractionMatch = new RegExp(/^([123456])(?:/)([23456]$)/);
var fractionPart = parseInt(item.insertPoint.match(fractionMatch)[1]);
var fractionWhole = parseInt(item.insertPoint.match(fractionMatch)[2]);
var fractionValue = fractionPart / fractionWhole;
var fractionIndex = Math.floor(myParagraphTool.paragraphEndNodes.length * fractionValue) – 1;
myParagraphTool.insertElemenAtIndex(componentElement, fractionIndex);
}
// Matches for every Nth insertion point
else if (item.insertPoint.match(/^d*th$/i) !== null) {
var intervalIndex = parseInt(item.insertPoint.match(/^(d*)th$/i)[1]);
var startingIndex = parseInt(item.startingPoint) – 1;
var insertionMax = parseInt(item.maxInsertions) || 100;
var insertionCount = 0;

for (var i = startingIndex; i < myParagraphTool.paragraphEndNodes.length && insertionCount < insertionMax; i++) {
if ((i – startingIndex) % intervalIndex === 0) {
let currentNode = myParagraphTool.getNodeAtIndex(i);
const clonedComponent = componentElement.clone();
myParagraphTool.insertElemenAtIndex(clonedComponent, i);
insertionCount++;
}
}
}
}
});
Foundation.Content[‘44306859’].setupInlineComponents = function () { return true; };
if (typeof callback === ‘function’) {
callback();
}
}, 200);
}

Foundation.Content[‘44306859’].previewInsertionPoints = function () {
var myParagraphTool = Foundation.Content[‘44306859’].paragraphTool
myParagraphTool.paragraphEndNodes.each((index, item) => {
const insertionPointPlaceholder = jQuery(`

`)
myParagraphTool.insertElemenAtIndex(insertionPointPlaceholder, index);
});
return ‘Paragraph insertion placeholders applied.’;
}