91³Ô¹ÏÍø

Watch CBS News

Fall foliage maps show when peak color is expected across the U.S. this year

The 2025 leaf peeping season is getting underway with some parts of the U.S. already starting to see fall foliage. 

But peak colors are still to come. Using a data model that factors in historical and forecast temperatures and precipitation, the types of trees in a region, trends and user data, travel brand  has predicted when trees will reach peak foliage across the country. 

Here's what to expect:

As the season progresses, colors turn earliest in the north and gradually sweep south. The Mid-Atlantic, Great Lakes regions and much of the West will reach peak color by mid-October, followed by some states in the South and lower Midwest in late October and early November. Parts of the Deep South, Southern Plains and Florida may not see peak foliage until mid-November.

Warm, sunny days and cool, crisp but not freezing nights are the best conditions for vibrant leaf displays, .

Regional forecasts

  • Northeast and Appalachians: Cooler-than-average temperatures and below-normal precipitation are expected to cause leaves to reach peak color earlier and be more vibrant, forecasters say.
  • Pacific Northwest and Intermountain West: The weather is expected to be warmer and wetter than normal, which typically pushes color change later and may tone down the vibrancy in lowland areas, though mountains may see early color.
  • Southeast and Deep South: Warmer but drier conditions may lead to delayed and more subdued foliage, according to forecasters. These areas might see peak color around late October through mid-November.

Fall temperature trends

These regional patterns are part of a broader warming trend. 

The fall outlook from the National Weather Service's says temperatures are forecast to be above average across the U.S., especially in the Southwest and Northeast. It also predicts less-than-average precipitation across much of the Southwest and Southern Plains with only the Pacific Northwest and the Southeast forecast to have above-average precipitation.

3-month-cpc-temp-outlook.png
Map shows the Climate Prediction Center's 2025 fall temperature outlook. Nikki Nolan
3-month-cpc-precip-outlook.png
Map shows the Climate Prediction Center's 2025 fall precipitation outlook. Nikki Nolan

The fall season has warmed in every county across the contiguous U.S. since 1970. It's warming fastest in the Southwest, according to a based on data from the National Oceanic and Atmospheric Administration.

Fall temperatures have risen in 237 U.S. cities, averaging an increase of 2.8°F from 1970 through 2024. Unusually warm fall days now occur more frequently in 238 cities, or 98% of the 243 cities analyzed.

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