Of all the rookie position players the Toronto Blue Jays have given playing time to in 2024, Spencer Horwitz has the subtlest skill set.
He doesn’t mash the ball like Addison Barger, run the bases like Joey Loperfido, or play slick defence up the middle like Leo Jiménez. Will Wagner has similar tools, but he’s already topped Horwitz’s 2024 max exit velocity on just 62 balls in play (109.1 mph) — and seems to have more of the team’s confidence with the glove considering he’s played 161 innings at second base to Horwitz’s 11 since arriving in the majors.
None of that is meant to denigrate the former 24th-round pick’s production, or even potential. Instead, it helps explain why his accomplishments can go underappreciated. His success is predicated on the type of consistently strong process that leads to excellent walk and strikeout numbers but rarely makes headlines coming out of any individual game.
Most Blue Jays fans would agree that Horwitz is in the midst of a strong 2024. What his understated style may camouflage is that he’s probably having the best offensive season of any rookie in franchise history.
Since 1977 there have been a relatively low number of Blue Jays rookies who’ve topped 300 plate appearances (24), but of that group there is little doubt that Horwitz has been the most effective.
The 26-year-old ranks first among that cohort in wRC+ at 137, and it’s not particularly close. Just two others cracked the 120 mark: John Olerud in 1990 (122) and Eric Hinske in 2002 (120).
Hinske is an interesting comparison because the Rookie of the Year’s slash line was remarkably similar to Horwitz’s, but helps demonstrate the importance of adjusting for offensive eras. Here’s how the two line up:
Season |
AVG |
OBP |
SLG |
OPS |
Hinske’s 2002 |
.279 |
.365 |
.481 |
.845 |
Horwitz 2024 |
.277 |
.363 |
.471 |
.834 |
Those lines read much differently when we consider the context in which they appeared. Below are the league-average offensive numbers for those seasons.
Season |
AVG |
OBP |
SLG |
OPS |
2002 |
.261 |
.331 |
.417 |
.748 |
2024 |
.244 |
.312 |
.400 |
.712 |
That doesn’t mean Horwitz is having a better overall season than Hinske, whose 4.8 fWAR in 2002 was nearly two full wins better than any other Blue Jays rookie position player. Horwitz will end his 2024 with under 100 games played at the MLB level over the campaign, and contributes less in the field and on the bases than Hinske did.
Horwitz deserves recognition for his offensive output, though. Over the last 10 seasons just 13 rookies have produced a wRC+ better than his 2024 number over 300-plus trips to the plate.
That list is impressive:
• Yordan Alvarez
• Aaron Judge
• Fernando Tatis Jr.
• Shohei Ohtani
• Miguel Sano
• Julio Rodriguez
• Juan Soto
• Trea Turner
• Pete Alonso
• Ronald Acuna Jr.
• Keston Hiura
• Randal Grichuk
• Cody Bellinger
Not everyone in that group turned out to be a superstar, and most of them were significantly younger than Horwitz as rookies — or performed so much better that they aren’t reasonable comps. This is not the 26-year-old’s direct peer group. Being a tier below these guys is still plenty impressive.
In recent years there’s been little doubt that Horwitz could hold his own as a big-league hitter, but whether he’d produce enough to be a viable first baseman or DH wasn’t clear. Because of his relative lack of raw power, it was tough for him to earn the benefit of the doubt from a qualitative standpoint. His 2024 season is making a contrary quantitative case.
var adServerUrl = “”;
var $el = $( “#video_container-922713” );
var permalink = $el.closest(‘.snet-single-article’).data(‘permalink’);
/*
if ( “1” == true && ‘undefined’ !== typeof window.getIndexAds ) {
var so = {preroll:{1:{1:{siteID:191888},2:{siteID:191889}}}};
adServerUrl = window.getIndexAds( ‘http://pubads.g.doubleclick.net/gampad/ads?sz=640×360&cust_params=domain%3Dsportsnet.ca&iu=%2F7326%2Fen.sportsnet.web%2FVideo&ciu_szs=300×250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&ad_rule=1&vid=6361818330112&cmsid=384’, so, permalink);
} else {
adServerUrl = “http://pubads.g.doubleclick.net/gampad/ads?sz=640×360&cust_params=domain%3Dsportsnet.ca&iu=%2F7326%2Fen.sportsnet.web%2FVideo&ciu_szs=300×250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&ad_rule=1&vid=6361818330112&cmsid=384”;
}
*/
adServerUrl = “http://pubads.g.doubleclick.net/gampad/ads?sz=640×360&cust_params=domain%3Dsportsnet.ca&iu=%2F7326%2Fen.sportsnet.web%2FVideo&ciu_szs=300×250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&ad_rule=1&vid=6361818330112&cmsid=384”;
var adServerUrl_result = adServerUrl.includes(“cust_params”);
var queryString=”;
if(adServerUrl_result){
var gettheDUFI = false;
if (localStorage.getItem(“consent”) !== null && localStorage.getItem(“consent-targeting”) !== null)
gettheDUFI = localStorage.getItem(“theRED_loc”);
if(gettheDUFI){
queryString += “dufiid=” + gettheDUFI + ‘&’;
queryString += “ppid=” + gettheDUFI + ‘&’;
var ppid = “ppid=” + gettheDUFI + ‘&’;
}
var DUFI_IP = false;
if (localStorage.getItem(“consent”) !== null && localStorage.getItem(“consent-targeting”) !== null)
DUFI_IP = sessionStorage.getItem(“DUFI_IP”);
if(DUFI_IP){
queryString += “dufiip=” + DUFI_IP + ‘&’;
}
adServerUrl = adServerUrl.replace(/cust_params=/, ppid + ‘cust_params=” + encodeURIComponent(queryString) );
}
$el.after( unescape(“%3Cscript src=\”” + (document.location.protocol == “https:” ? “https://sb” : “http://b”) + “.scorecardresearch.com/beacon.js\” %3E%3C/script%3E”) );
$( document ).one( “ready’, function() {
$( “#video_container-922713” ).SNPlayer( {
bc_account_id: “1704050871”,
bc_player_id: “JCdte3tMv”,
//autoplay: true,
//is_has_autoplay_switch: false,
bc_videos: 6361818330112,
is_has_continuous_play: “false”,
adserverurl: adServerUrl,
section: “”,
thumbnail: “https://www.sportsnet.ca/wp-content/uploads/2024/09/6361818330112-1024×576.jpg”,
direct_url: “https://www.sportsnet.ca/mlb/video/why-horwitz-has-all-but-earned-a-starting-job-with-blue-jays-in-25/”
});
});
var adServerUrl = “”;
var $el = $( “#video_container-330652” );
var permalink = $el.closest(‘.snet-single-article’).data(‘permalink’);
/*
if ( “1” == true && ‘undefined’ !== typeof window.getIndexAds ) {
var so = {preroll:{1:{1:{siteID:191888},2:{siteID:191889}}}};
adServerUrl = window.getIndexAds( ‘http://pubads.g.doubleclick.net/gampad/ads?sz=640×360&cust_params=domain%3Dsportsnet.ca&iu=%2F7326%2Fen.sportsnet.web%2FVideo&ciu_szs=300×250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&ad_rule=1&vid=6361818330112&cmsid=384’, so, permalink);
} else {
adServerUrl = “http://pubads.g.doubleclick.net/gampad/ads?sz=640×360&cust_params=domain%3Dsportsnet.ca&iu=%2F7326%2Fen.sportsnet.web%2FVideo&ciu_szs=300×250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&ad_rule=1&vid=6361818330112&cmsid=384”;
}
*/
adServerUrl = “http://pubads.g.doubleclick.net/gampad/ads?sz=640×360&cust_params=domain%3Dsportsnet.ca&iu=%2F7326%2Fen.sportsnet.web%2FVideo&ciu_szs=300×250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&ad_rule=1&vid=6361818330112&cmsid=384”;
var adServerUrl_result = adServerUrl.includes(“cust_params”);
var queryString=”;
if(adServerUrl_result){
var gettheDUFI = false;
if (localStorage.getItem(“consent”) !== null && localStorage.getItem(“consent-targeting”) !== null)
gettheDUFI = localStorage.getItem(“theRED_loc”);
if(gettheDUFI){
queryString += “dufiid=” + gettheDUFI + ‘&’;
queryString += “ppid=” + gettheDUFI + ‘&’;
var ppid = “ppid=” + gettheDUFI + ‘&’;
}
var DUFI_IP = false;
if (localStorage.getItem(“consent”) !== null && localStorage.getItem(“consent-targeting”) !== null)
DUFI_IP = sessionStorage.getItem(“DUFI_IP”);
if(DUFI_IP){
queryString += “dufiip=” + DUFI_IP + ‘&’;
}
adServerUrl = adServerUrl.replace(/cust_params=/, ppid + ‘cust_params=” + encodeURIComponent(queryString) );
}
$el.after( unescape(“%3Cscript src=\”” + (document.location.protocol == “https:” ? “https://sb” : “http://b”) + “.scorecardresearch.com/beacon.js\” %3E%3C/script%3E”) );
$( document ).one( “ready’, function() {
$( “#video_container-330652” ).SNPlayer( {
bc_account_id: “1704050871”,
bc_player_id: “JCdte3tMv”,
//autoplay: false,
//is_has_autoplay_switch: false,
bc_videos: 6361818330112,
is_has_continuous_play: “false”,
adserverurl: adServerUrl,
section: “”,
thumbnail: “https://www.sportsnet.ca/wp-content/uploads/2024/09/6361818330112-1024×576.jpg”,
direct_url: “https://www.sportsnet.ca/mlb/video/why-horwitz-has-all-but-earned-a-starting-job-with-blue-jays-in-25/”
});
});
Considering Horwitz has less than 400 plate appearances in the majors to his name the verdict hasn’t come in on that count.
What is clear is that Blue Jays fans have not been treated to a rookie who came up and stood out among his peers at the dish like Horwitz. Some like Bo Bichette, Josh Phelps and Devon Travis have had similar results in small samples, but in more than half a season, Horwitz stands alone.
That’s probably too convoluted to put on a plaque, and there’s also no trophy for best Blue Jays rookie hitter of all time. Even if there was, a purist might find his 2023 cameo disqualifying, and there’s an argument to be made that by the end of 2024 he won’t have played enough to earn that title, anyway.
What’s more important for Horwitz is that he’s been an impact hitter very early in his MLB career and shattered all reasonable expectations. For all of the concern about his fit at first base, it’s worth noting that the average MLB first baseman has a wRC+ of 105. Not only is Horwitz way above that, even his most pessimistic projection at FanGraphs (The Bat X) places him at 110. Five of his six other projections sit at 119 or above.
It’s too early to say that Horwitz has nothing left to prove, but there’s not much more he could’ve done this season with the bat. As the Blue Jays look to restore the offensive prowess that helped define the team in 2021 and 2022, he looks like a meaningful part of the solution.
A lost 2024 has put Toronto in audition mode for much of the year and putting together one of the very best rookie seasons in franchise history is a good way to land a leading role.