91³Ô¹ÏÍø

Watch CBS News

Chicago Mayor Brandon Johnson wants to tackle the city's "death gap." Here's how he's trying to do it.

Chicago has for decades been dealing with a so-called "death gap," in which life expectancy in one neighborhood can be 20 years lower than in others. Mayor Brandon Johnson tells CBS News his administration is working to address that discrepancy, which he said is driven by homicides and drug overdoses.

 from the Chicago Department of Public Health, life expectancy in the neighborhood known as the Loop was 87.3 years, the highest of any Chicago neighborhood. In West Garfield Park, life expectancy was just 66.6 years, the lowest of all the city's neighborhoods.

Johnson, who has been in office since May 2023, said homicides were down 30% last year and there was also a 34% decrease in drug overdoses. 

"I'm confident that as we continue to do the work that's necessary to invest in these communities, we can improve the quality of life for all Chicagoans," Johnson told "CBS Evening News" anchor Tony Dokoupil on Wednesday. 

Asked why, if the gap has been a known problem for so long, nobody else has solved it, Johnson said, "Unfortunately, for a very long time, every level of government has been focused on neighborhoods that, quite frankly, do not need the type of investments that West Garfield Park and neighborhoods like that across the country deserve." 

"We have transformed, essentially, how we are approaching leadership in this moment, by focusing our attention on neighborhoods that need these critical investments, whether it's youth employment, whether it's education, whether it's health care — particularly mental health care — that's what my focus has been," Johnson said. 

When determining what comes first, investments or rooting out drugs and crime in order to improve the quality of life for people in neighborhoods with lower life expectancies, Johnson said it's a combination of both.

He said that, for neighborhoods that need larger investments in areas like education and housing, "We have to do that now. But of course, we have to address these decades-old challenges that have been ignored for a very long time." 

"That's why we have done a strategic partnership around policing and affordable housing, policing and youth employment, policing and mental health care services," Johnson added. "By taking that full-force-of-government approach that allows for us to address the critical issue, the immediate need, while setting us up for long-term viability."

Johnson said the city is heading in the right direction, but knows there's still more work to do, and lamented a lack of help from the federal government.

"We know the Trump administration just cut $2 billion away from mental health care services, that's problematic," he said. The Trump administration has since reversed those cuts, sources told CBS News on Thursday. 

 "We're investing in mental health, so we are at the beginning of a transformation, and I'm confident if we continue to come together, we'll see the type of life expectancy for all Chicagoans that we can be proud of," Johnson said.

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(); } }); }); }); });