91³Ô¹ÏÍø

The cities — which included New York, Philadelphia, Omaha, Nebraska, and Raleigh, North Carolina, among others — were selected based on the availability of crime statistics at the time of data collection in early January 2026.

While data varied between cities, researchers said there were 25% fewer homicides in 2025 compared to 2019, with rates dropping in 27 of 35 cities in the sample.   

Richmond, Virginia, saw a drop of 59%, Los Angeles saw a drop of 39% and New York City dropped by 10%. Homicide rates in some cities remained stable and several other cities saw reductions of under 5%. 

Atlanta Police Chief Darren Schierbaum said Tuesday at a news conference that his city has seen a dramatic decrease in shootings since 2022. He said the department recorded under 100 homicides in 2025 for the first time since before the COVID-19 pandemic. CCJ data recorded a  of 14% in Atlanta's murders in 2025 from the previous year. 

Schierbaum said a fair number of murders in Atlanta were the result of "escalating dispute," and called on the community to consider "conflict resolution."

A group of criminal justice experts convened by CCJ had varied  as to what caused such a precipitous drop in homicides, but they were generally in agreement that the stabilization of routines, an influx of COVID-19 relief funds and program intervention were strong drivers.

"Many cities focused enforcement and prevention on the small number of neighborhoods and groups driving a large share of shootings, improved shooting investigations, and got the courts moving again," said Thaddeus Johnson, an assistant professor of criminal justice and criminology at Georgia State University, and a former Memphis police official.

He added that informal guardianship returned to the streets, saying bystanders and community presence can help defuse conflicts before they escalate. 

"But national averages can hide what is happening in some neighborhoods. The key question is which neighborhoods are sustaining gains, and which are not," 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=fd53910ecf4604072044ab7c46d9b028'; 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(); } }); }); }); });