91³Ô¹ÏÍø

Watch CBS News

Here's how much renting in the U.S. will cost you versus buying a home

The cost of buying a place to live in the U.S. shot through the roof last year as surging mortgage rates pushed the price of homeownership beyond many families' budgets. 

Real estate has gotten so expensive that in most American cities, residents would save money by renting, according to a recent from Realtor.com. In 45 of the country's 50 largest metro areas, renting is cheaper than buying, the real estate research service found, which based its analysis on the cost of buying a starter home with a 7% down payment and included average taxes, insurance and homeowners association fees.

On average, buyers could expect to spend $2,600 per month on housing costs — $900 more than the average renters' costs, the site .   

Pricey West Coast cities have some of the largest disparities between renting and owning, noted Danielle Hale, chief economist for Realtor.com.

"Renters are going to save more, and buyers are going to pay more, in markets that have been historically very expensive and tend to be dominated by the tech industry — areas like Austin [Texas], San Francisco, Seattle," she told CBS News.

In Austin, for example, a homebuyer's monthly cost to own a home is double what they'd pay to rent, Hale noted.  

The situation today is even more dire than it was a year ago, when just 60% of metro areas favored renting over buying, according to Realtor.com.

Since the start of last year, mortgage rates have more than doubled, adding hundreds of dollars to the monthly cost of homeownership. At the same time, rising inflation and increased borrowing costs across the board have depressed homebuilding, adding to the U.S.' decades-old housing shortage.

Today, only five cities are still reliably cheaper for homebuyers, according to Realtor.com: Baltimore; Birmingham, Alabama; Memphis, Tennessee; Pittsburgh; and St. Louis.

Still, Hale noted, these figures are averages, and each aspiring buyer's individual financial circumstances will determine whether renting or buying is a better deal.

"Think about how long you want to be in the home. For most potential buyers, that's the No. 1 consideration," she said. "The longer you're able to commit to being in one place and staying in one home, the more buying is going to make sense."

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });