A table:

Playoff Hitting Team PA OPS Nationals 197 0.716 Blue Jays 264 0.713 Indians 203 0.694 Dodgers 263 0.679 Red Sox 108 0.655 Giants 192 0.616 Cubs 219 0.613 Rangers 110 0.575 Mets 32 0.354 Orioles 38 0.321

Here are the 10 playoff teams, sorted by playoff OPS. You see that all the figures are fairly low — this is always the case, because hitting is tougher in the playoffs. But at the bottom, the Orioles went away after one game. The Mets went away after one game. The Rangers got swept. Then there are the Cubs! The Cubs rank seventh, and they’re by far the worst among the four teams remaining. Point being, the Cubs haven’t hit much. They’re still in a good position, all things considered, but they haven’t hit much.

So what, right? It’s literally 219 plate appearances. It’s literally six games. That’s practically nothing. I just found a six-game stretch around the turn to September where the Cubs hit equally poorly, and nobody noticed. The easiest possible answer here is to point to the size of the sample. But, these are the playoffs, which means all the details matter. And there’s another factor here, one that makes easy and absolute sense.

One of the things I kept hearing all summer was that the Cubs were beating up on lousy opponents. And, yeah, they definitely were, which is what good teams are supposed to do against lousy opponents. The Cubs’ overall numbers were slightly inflated in part because they simply didn’t have to play against themselves. But it’s not like the Cubs *only* hit well against crap. They were pretty good, no matter what, and there are lots of ways to try to show this, but I’ll show you one way in particular.

I gathered a table of every single pitcher to pitch against the Cubs in 2016. I then sorted all the pitchers into four groups, in ascending order of adjusted FIP, or FIP-. I used this as a proxy for talent. The group with the best pitchers averaged a weighted 72 FIP-. The next group came in at 93. The two remaining groups came in at 112 and 147. You go from really good pitchers to really bad pitchers. Once everything was sorted, I started calculating how the Cubs’ hitters performed against the pitchers. The group with the smallest sample against the Cubs still had just short of 1,300 plate appearances.

Here’s a table, showing the relevant data:

Cubs Offense by Pitcher Quality Group PA Cubs OPS League OPS Cubs K-BB% League K-BB% Very Good 1290 0.667 0.632 18% 19% Pretty Good 1899 0.739 0.716 13% 13% Pretty Bad 1759 0.775 0.782 9% 10% Very Bad 1387 0.916 0.893 4% 6%

You can pretty much ignore the last two columns. Those are just there to show the Cubs never really got undisciplined. The meat is in the OPS columns. Take the Very Good group of pitchers, the ones who averaged a 72 FIP-. The Cubs had 1,290 plate appearances this year against those pitchers, and they managed a somewhat paltry .667 OPS. Yet, the league averaged a .632 OPS against the same pitchers — Cubs included — so you see the Cubs were still good, relatively speaking. They were above-average against the very good pitchers. They were above average against the pretty good pitchers, and the very bad pitchers. They were slightly below-average against the pretty bad pitchers, which is odd, but probably nothing. I didn’t, for example, control for the specific Cubs hitters facing each group. This research was done somewhat with simplicity in mind.

The Cubs can hit, and the Cubs did hit. They pretty much hit against all pitchers, but when you’re talking about the best pitchers, then suddenly even good hitting starts to look a little like lousy hitting. And now we can finally get to the very fundamental point. The Cubs, in these playoffs, have come to the plate a combined 219 times. During the season, the pitchers they’ve faced allowed a weighted-average OPS of .610. That’s .610, which, for example, is in between the OPS figures allowed by Jon Lester and Madison Bumgarner. Roberto Osuna allowed a .603 OPS. Max Scherzer, .619. Not every opposing pitcher has been equally good, but on balance, it’s been kind of like every Cubs plate appearance has come against a Cy Young candidate.

The pitchers in the Very Good group, once more, allowed a combined .632 OPS. The playoff schedule has been tougher than that. So now the Cubs’ .613 OPS makes a lot more sense. You’d still expect it to be something better than that, but, oh, by the way, the Cubs also have a team playoff BABIP of .224. Playoff BABIPs are typically somewhat suppressed, but not like that, and the Cubs haven’t been hitting the ball too weakly. There have been some easy outs, sure, but fold in a few more base hits, and the Cubs would be right where they should be. You can’t expect a lineup to slug when the pitchers on the mound are playoff-caliber. That’s what the Cubs have gone up against, Giants closers be damned.

This is all almost embarrassingly simple. I feel a little bit weird even putting it together into a post, because it’s stuff you all probably understand. But there’s a point to always keep in mind: In the playoffs, there’s almost no such thing as a bad pitcher. As such, offense is bound to suffer, and no lineup’s immune. The Cubs have shown they can hit good pitching. They just don’t dominate good pitching, because nobody does, and what’s happened in the playoffs isn’t a shock. It’s normal, and today’s Rich Hill assignment doesn’t promise to make things a whole hell of a lot easier.