The struggle is real for Kyle Schwarber.
The Cubs demoted their slumping slugger Thursday morning, sending Schwarber to Triple-A Iowa at the same time they put Jason Heyward on the disabled list.
Let's break down the numbers behind Schwarber's season-long struggles:
Schwarber's batting average, which was the lowest among qualified hitters in Major League Baseball by a whopping 17 points (Alex Gordon — .188).
In the new age of baseball, batting average has become almost completely useless in telling the story of a hitter's value, especially with home runs flying out of the ballpark.
But to put this average in perspective, Bill Bergen — widely considered the worst hitter in baseball history — hit .170 for his entire career, though he also posted a ridiculous .395 OPS (on-base plus slugging percentage) thanks to a .194 on-base percentage and .201 slugging.
In 2016, the lowest batting average for a qualified hitter was .209 by Danny Espinosa of the Washington Nationals.
That means Schwarber would've needed to raise his batting average 38 points just to meet Espinosa's mark from last season.
The last qualified player to hit below .200 in a season was Baltimore's Chris Davis in 2014 with a .196 average (but he also had a .704 OPS).
Like we said, baseball is a different game nowadays and batting average doesn't tell the whole story.
Despite his MLB-low average, Schwarber actually had only the 17th-lowest OPS in the game, ahead of guys like Albert Pujols, Tim Anderson, Carlos Gonzalez, Rougned Odor and Dansby Swanson. Fellow Cub Addison Russell is one point higher with a .674 OPS.
Schwarber helped his own case by posting a .295 on-base percentage (124 points above his batting average) and .378 slugging.
That's Schwarber's walk rate, drawing a free pass in 13.8 percent of his plate appearances. That's the exact same rate as Anthony Rizzo, who has a .393 on-base percentage.
Only Kris Bryant is higher among Cubs regulars (15.7 percent) and Schwarber's walk percentage is tied for the 20th-best rate in the majors, ahead of Miguel Cabrera (13.2 percent) and Dexter Fowler (12.1 percent).
Schwarber was on pace to strike out 189 times over the course of a 162-game season. That would've come in as the fourth-highest whiff total of 2016, behind Davis (219), Chris Carter (206) and Mike Napoli (194).
But Schwarber has always been a big strikeout guy, whiffing 28.6 percent of the time in his career. That rate is at 28.7 percent in 2017.
In 2015, Schwrber struck out 28.2 percent of the time and still posted an 842 OPS, so it's not like he can't be successful with this whiff rate.
The first number (-7 percent) is the increase in soft contact percentage from Schwarber's 2015 season (15.4 percent) to this year (22.4 percent). The second number (-7.7 percent) is the decrease in hard-hit contact from 39.7 percent in 2015 to 32 percent this year.
So Schwarber is simply not hitting the ball as hard overall this year, even though he's making contact at essentially the same rate.
That's Schwarber's OPS in June, spanning 46 at-bats. He's only hitting .196 in the month, but he has a .327 OBP and .522 SLG thanks to four homers, three doubles and nine walks.
The decent start to the month has helped raise Schwarber's season OPS from .627 to .673, but it was really the month of May that did America's Large Adult Son in: .120/.232/.337 in 83 May at-bats, good for a .569 OPS.
In the first 12 games of June, Schwarber posted a 1.056 OPS thanks to a .250/.368/.688 slash line and four homers. It was that start that helped give Joe Maddon more confidence to move Schwarber around in the order, including hitting third Wednesday behind Anthony Rizzo and Kris Bryant.
But since that hot start to June, Schwarber is only 1-for-14 with a double in five games (four starts), sinking his season OPS 20 points from .693 to .673.
Schwarber's batting average on balls in play (BABIP) for over a month, from May 10 to June 13. Schwarber racked up 98 plate appearances (84 at-bats) and had 30 strikeouts and six homers (which don't count toward BABIP), so he collected five hits in 48 balls put in play.
Put another way: Schwarber had three singles in roughly five weeks of play (27 games). That's insanely bad luck, even factoring in the shift teams pull against the left-handed slugger, putting three defenders on the right side of the field.
During that stretch, Schwarber was an extreme three true outcome guy, with half his plate appearances (49) resulting in either a home run, a walk or a strikeout.
Schwarber's season BABIP is .193, a far cry from his .242 career mark. No other Cubs position player has a BABIP under .235 (Zobrist) on the year.
Ending on a positive: This is Schwarber's batting line over the course of his career, including playoffs. That's a .792 OPS, even when factoring in this year's struggles. It also includes 33 HR and 81 RBI.
It also comes over 502 at-bats (590 plate appearances), essentially a full season's worth of action.