Connect with us

Kentucky

Our top 5 Kentucky Derby contenders as Run for the Roses 2026 nears

Published

on

Our top 5 Kentucky Derby contenders as Run for the Roses 2026 nears


play

  • Arkansas Derby winner Renegade tops our list of the leading contenders for the 152nd running of the Kentucky Derby.
  • Further Ado, trained by Brad Cox, joins the top five after a commanding victory in Saturday’s Blue Grass at Keeneland.

After the final weekend of major prep races, we have a projected field for the 152nd running of the Kentucky Derby on May 2 at Churchill Downs.

Further Ado (Blue Grass), So Happy (Santa Anita Derby) and Albus (Wood Memorial) clinched their spots in the Kentucky Derby with victories on Saturday.

Advertisement

The top 20 horses on the Kentucky Derby points leaderboard are eligible to run, though there usually are injuries and defections in the weeks leading up to the race.

Buy tickets for Kentucky Derby 152 here

Saturday’s Grade 3 Lexington at Keeneland will offer 20 qualifying points to the winner, though that’s not expected to be enough for any of the competitors to jump into the Kentucky Derby field.

With four weeks to go until the Kentucky Derby, here’s our ranking of the top five contenders:

Advertisement

Owners: Robert and Lawana Low; Repole Stable (Mike Repole).

Trainer: Todd Pletcher.

Jockey: Irad Ortiz Jr.

Sire: Into Mischief.

Road to Kentucky Derby points: 125 (No. 3)

Advertisement

Career earnings: $1,031,500.

Last race: Won Grade 1 Arkansas Derby on March 28 at Oaklawn Park.

Likely next race: Grade 1 Kentucky Derby on May 2 at Churchill Downs. 

Owner: Wathnan Racing (Tamim bin Hamad Al Thani). 

Advertisement

Trainer: Brad Cox.

Jockey: Flavien Prat.

Sire: Into Mischief.

Road to Kentucky Derby points: 150 (No. 1).

Career earnings: $1,017,339.

Advertisement

Last race: Won Grade 1 Florida Derby on March 28 at Gulfstream Park.

Likely next race: Grade 1 Kentucky Derby on May 2 at Churchill Downs. 

Owners: OGMA Investments LLC (Gustavo Delgado); JR Ranch (Ramiro Restrepo); High Step Racing LLC (Randy Guy, Joe Noble, Kevin Avera, Jim Ferreira, Todd Perry).

Trainer: Gustavo Delgado.

Advertisement

Jockey: Javier Castellano.

Sire: Essential Quality.

Road to Kentucky Derby points: 106 (No. 6).

Career earnings: $442,280.

Last race: Second in Grade 1 Florida Derby on March 28 at Gulfstream Park.

Advertisement

Likely next race: Grade 1 Kentucky Derby on May 2 at Churchill Downs. 

Owner: Spendthrift Farm (Eric Gustavson).

Trainer: Brad Cox.

Jockey: TBA.

Advertisement

Sire: Gun Runner.

Road to Kentucky Derby points: 135 (No. 2).

Career earnings: $1,146,328.

Last race: Won Grade 1 Blue Grass on April 4 at Keeneland.

Likely next race: Grade 1 Kentucky Derby on May 2 at Churchill Downs.  

Advertisement

Owner: Danox Co. Ltd.

Trainer: Manabu Ikezoe.

Jockey: Atsuya Nishimura.

Sire: Maxfield.

Road to Kentucky Derby points: Qualified via Japan Road to the Kentucky Derby.

Advertisement

Career earnings: $222,762.

Last race: Won Fukuryu Stakes on March 28 at Nakayama Racecourse.

Likely next race: Grade 1 Kentucky Derby on May 2 at Churchill Downs.

Jason Frakes: 502-582-4046; jfrakes@courier-journal.com. Follow on X @KentuckyDerbyCJ.

Advertisement



Source link

Kentucky

Mr. Tim Graham

Published

on

Mr. Tim Graham




Murray
| Jan. 15, 1962 | yesterday

Mr. Tim Graham, age 64, of Dexter, Kentucky passed away on Saturday, April 4, 2026, at his home.
          Mr. Graham was born on January 15, 1962, in Murray, Kentucky to the late Jerry Graham and Janice (Staples) McCuiston. He worked in the construction industry.
          Survivors include two sisters, LaDon Haley Berlin of Evansville, Indiana and Kristi Hopkins and husband Chris of Murray, Kentucky; one niece, Emily Don Hopkins of Murray, Kentucky; three nephews, Adam Haley of Springfield, Illinois, Jason Haley of Evansville, Indiana, and Zachery Hopkins of Murray, Kentucky; one great niece, Audrey Haley of Paducah, Kentucky; as well as one great nephew, Weston Haley of Okawville, Illinois.

          A memorial visitation will be held from 5:00 p.m. – 7:00 p.m., Wednesday, April 8, 2026, at the J.H. Churchill Funeral Home & Cremation Services. A private family service will be held.
          Expressions of sympathy can be made to the Humane Society of Calloway County, 607 Poplar Street, Suite A1, Murray, Kentucky 42071.
          Online condolences can be made at, www.jhchurchill.com
 



Source link

Continue Reading

Kentucky

A Kentucky Derby fixture steps away: Mike Battaglia retires as oddsmaker

Published

on

A Kentucky Derby fixture steps away: Mike Battaglia retires as oddsmaker


LOUISVILLE, Ky. (AP) — Mike Battaglia, who set the morning-line odds for every Kentucky Derby since 1974, is retiring ahead of next month’s 152nd edition.

Battaglia correctly identified the Kentucky Derby favorite 39 times in 51 runnings for a success rate of 76.5%.

He also served as Churchill Downs’ announcer from 1977-97 and later as simulcast host from 1997-2007.

Advertisement

“I’m very appreciative of everyone at Churchill Downs for the opportunity over the years,” Battaglia said Friday in a release from the track. ”It’s been a great run, but I felt like it was the right time to step away and let someone else take it forward.”

The track has named Nick Tammaro to succeed Battaglia. Tammaro currently works in a variety of industry roles: morning-line oddsmaker at Keeneland, track announcer at Sam Houston racetrack, and handicapper at TwinSpires.

“It’s an honor to take over for Mike,” Tammaro said. “He’s a legend in our industry and someone I’ve looked up to for a long time. I just hope to do his line justice.”


AP horse racing: https://apnews.com/hub/horse-racing

Top Sports Stories on WDRB.com

Advertisement

Copyright 2026 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed without permission.



Source link

Continue Reading

Kentucky

Kentucky Derby Festival Block Party returns to Norton Healthcare Sports & Learning Center

Published

on

Kentucky Derby Festival Block Party returns to Norton Healthcare Sports & Learning Center


Kentucky Derby Festival Block Party returns to Norton Healthcare Sports & Learning Center

Advertisement

Advertisement

Kentucky Derby Festival Block Party returns to Norton Healthcare Sports & Learning Center

Updated: 9:28 PM EDT Apr 4, 2026

Editorial Standards

Advertisement

The Kentucky Derby Festival Block Party returned to the Norton Healthcare Sports & Learning Center Saturday.Guests were able to stop by and enjoy an afternoon filled with of food, live entertainment, and family-friendly activities.The party also featured over 50 minority-owned businesses from MELANnaire Marketplace that were showing off the items they had for sale.”Well, here you get local makers, who are making all types of fascinators. They make clothing, artwork. We got a food drive, I mean everything. It’s all kinds of amazing products, and we’re so happy to be able to showcase them,” said Nachane Trapue, the founder of MELANnaire Marketplace.Norton Healthcare was also on site providing wellness tips, and the Heuser Hearing Institute offered free hearing screenings.

The Kentucky Derby Festival Block Party returned to the Norton Healthcare Sports & Learning Center Saturday.

Guests were able to stop by and enjoy an afternoon filled with of food, live entertainment, and family-friendly activities.

Advertisement

The party also featured over 50 minority-owned businesses from MELANnaire Marketplace that were showing off the items they had for sale.

“Well, here you get local makers, who are making all types of fascinators. They make clothing, artwork. We got a food drive, I mean everything. It’s all kinds of amazing products, and we’re so happy to be able to showcase them,” said Nachane Trapue, the founder of MELANnaire Marketplace.

Norton Healthcare was also on site providing wellness tips, and the Heuser Hearing Institute offered free hearing screenings.

Advertisement
Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

Advertisement

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

Advertisement

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wlky.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wlky.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

Advertisement

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

Advertisement

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

Advertisement

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

Advertisement

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

Advertisement

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

Advertisement

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wlky.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.wlky.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

Advertisement

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

Advertisement

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…



Source link

Advertisement
Continue Reading

Trending