The 2026 Royals season did not go as expected. After back-to-back winning seasons, the Royals felt they had the core of a team that could return to the postseason with a few minor tweaks to the roster. No team in the division won more than 85 games, so even a mediocre season would have put the Royals in the hunt. Instead, they limped to a 69-93 record, the fifth-worst record in baseball.
The record tells you the Royals had a bad season. The numbers can tell you why. Here are the statistics that defined
the Royals’ 2026 season.
6.65
No lead was safe when Matt Quatraro called on his bullpen. Royals relievers had a 6.65 ERA in the ninth inning of ballgames, by far the worst in baseball.
In 2025, Carlos Estévez led all of baseball in saves, and the Royals were the only team in baseball not to lose a game they led going into the ninth. But this year, Estévez didn’t look right in spring training. The Royals rostered him anyway, and he immediately blew a lead in his first and only outing. He was quickly placed on the Injured List, never to return. Lucas Erceg and Matt Strahm also struggled mightily, and the Royals scrambled for late-inning options. Royals relievers were atrocious this year with a 5.07 ERA, second-worst in baseball, with 26 blown saves. The bullpen was so thin, the team had to pitch Alex Lange 59 times despite his 6.75 ERA.
64
For the third consecutive year, Vinnie Pasquantino was ice cold in April. The Royals were depending on him to become the run producer he was in 2025 when he drove in a career-high 113 runs. Instead, he hit .165/.274/.320 in the first month, a wRC+ of 64, and the team limped to a 12-19 start.
The cold start may have been due to participating in the World Baseball Classic, and/or lingering injuries. He dealt with lower back soreness early in the year. Then he injured his wrist in June, then re-injured it in July. It wasn’t until August when he really started hitting, batting .289/.366/.617 with 11 home runs in 35 games after returning from the Injured List. If the Royals are going to compete in the future, they need Vinnie to be healthy and produce from the start of the season.
50
The Royals needed to lengthen their lineup, and were counting on their two youngest hitters – Jac Caglianone and Carter Jensen. Those two were terrific this season, combining for 50 home runs. Caglianone went on an absolute tear in August, hitting .411/.429/.684 and winning American League Player of the Month honors. He finished fourth in the American League in batting average, sixth in slugging percentage, and ninth in OPS. He was the first Royals outfielder to hit 20+ home runs in a season since Alex Gordon in 2013.
Carter Jensen also ended the season strong, his .788 slugging percentage in September is the best for any Royals hitter with at least 20 games in that month. He set the Royals rookie record for extra base hits and the most extra-base hits by a rookie catcher since 1947. He is also just the fifth rookie catcher with 25+ home runs and 75+ RBI.
If you would have known that Caglianone and Jensen would each finish with an OPS+ of 120 or better, you probably would have thought the Royals were having a pretty good season. And yet, here we are.
.598
The designated hitter position was created to give the game of baseball more offense, but the Royals did not get the memo. Their designated hitters collectively hit .204/.275/.323, a .598 OPS that was the worst in baseball. It was the tenth-worst OPS by a team at the DH position in the Wild Card era. And this is an ongoing problem – Royals DHs over the last three years are hitting a combined .209/.279/.344, worst in the game. The main culprits this season were Salvador Perez and Carter Jensen – each hit worse as a DH than they did behind the plate. Even Jac Caglianone hit worse in the 12 games he hit at DH. It could be a bit of a fluke, but the Royals can’t turn what should be an offensive position into such a liability.
2.58
A bright spot for the pitching staff was the performance of Noah Cameron in the second half. The lefty had mixed results in the first half, and decided to start calling his own pitches in late July. He allowed just one run over 23 innings in his next three starts, then won American League Pitcher of the Month honors in August with a 1.87 ERA that month. From July 24 on he had a 2.58 ERA, sixth-best in the league. He began using his cutter more and relying more on deception. His strikeout rate was still just 22 percent over that time, but if Cameron can continue his success as a crafty lefty, the Royals will have a solid mid-rotation starter to count on next year.
36
Salvador Perez was signed by the Royals as a skinny teenager 20 years ago. This year he turned 36, and Father Time has caught up to him. Salvy hit some big career milestones this year – he became the franchise all-time leading home run hitter, and became just the fifth catcher ever to hit ten 20+ home run seasons. But overall, he hit just .229/.274/.383, and his 74 wRC+ was fifth-worst among all qualified hitters.
Despite that performance, Matt Quatraro batted him third or fourth in the lineup 117 times. Salvador Perez will return next year for the final year in his contract, and he deserves a proper send off, but the Royals need to have a hard talk about reducing his playing time, such as potential platoon.
200.2
Michael Wacha was the only pitcher in the American League to reach the 200 innings mark, a sign of how the game has changed in the role of starting pitchers. The 35-year-old continued to be the workhorse of the league, earning the second All-Star nod of his career. He had a team-best 3.32 ERA and had 21 quality starts in 32 games. The Royals have him signed to a very team-friendly salary next year, although some fans wonder if it might be better to get some value for him in a trade considering his age.
1,766
The Royals lost 20 players to 1,766 days on the Injured List, according to data compiled by Spotrac. The key injuries included:
- Carlos Estévez 184 days
- Jonathan India 163 days
- Cole Ragans 145 days
- Kris Bubic 121 days
- Nick Mears 124 days
- Maikel Garcia 80 days
- Kyle Isbel 53 days
- Vinnie Pasquantino 46 days
- Michael Massey 15 days
- Bobby Witt Jr. 15 days
However the Royals were in the middle-of-the-road in terms of total days lost to the Injured List, and a study by Dan Szymborski in August found that the Royals had only lost about 6.5 fWAR of expected production to injury, less than all but ten teams. Aside from Estévez and India, most of the injuries occurred after mid-May, when the Royals had already fallen well under .500.
5.17
The Royals were hoping starting pitching would be a strength, but it quickly turned into a weakness. Some pitchers fell to injury, but Seth Lugo was just ineffective for most of the season, finishing with a 5.17 ERA, worst among all qualified starters.
The Royals signed Lugo before the 2024 season, converting a rubber-armed reliever into an All-Star starter. They were rightly praised for such a shrewd move, but they tried to double down by signing him to a contract extension last summer, and it has gone terribly wrong. Since July 27, 2025, when he signed a two-year, $46 million deal, Lugo has a 5.67 ERA, the worst of any pitcher in baseball with at least 200 innings. He has one more year left on his deal, but he may have a short leash next year if he can’t turn things around.
7.0
Bobby Witt Jr. finished this year with 7.0 fWAR, second in baseball only to likely National League MVP Pete Crow-Armstrong. Bobby’s performance came despite his first-ever stint on the Injured List, and a career-low 143 games played. His slugging percentage was a career-low .441, but he finished tenth in the league in batting average (.281), ninth in hits (157), sixth in doubles (33), second in stolen bases (45), ninth in runs scored (94), and led all of baseball in Baserunning Runs. He also led all American League defenders in Outs Above Average with +23 and should be a candidate to win another Platinum Glove.
It’s another great season from Bobby, but it is also frustrating the Royals have squandered another terrific performance from him without making a postseason run.













