The Cubs enter their three-game series Tuesday at St. Louis at 56-49, no more above .500 than their 31-24 record at the end of May.

Much of the spotlight in a 14-15 June and in an 11-10 July has been on bullpen failures. The Cubs’ 20 blown saves are one behind the major-league-leading Mets and Athletics.

But it would be wrong to pin the June/July doldrums entirely on the bullpen. The offense has struggled. Let’s check it out, by the numbers:

• Through May, the Cubs were averaging 5.25 runs per game. In June and July, they’ve averaged 4.69.

That’s the opposite of the usual pattern in Major League Baseball, where runs increase as temperatures warm. MLB teams averaged 4.71 runs through May and, through Sunday, had increased that to 4.97 in June/July.

• Cubs leadoff hitters are batting .218 with a .289 on-base percentage. That’s not an ideal RBI setup for the hitters who follow. In MLB overall, leadoff men have a .262 batting average and a .331 on-base percentage.

Kyle Schwarber, who led off much of June/July, is hitting .229 with a .304 on-base percentage in the No. 1 spot. He also has slugged .520 for an .825 leadoff OPS. Overall, Cubs leadoff men have a .399 slugging percentage and a .688 OPS. Schwarber increased productivity in the position with his power rather than his on-base ability.

• Cubs second basemen have contributed little offense. A mix-and-match set of second basemen have slashed .222/.303/.387 for a .690 OPS. The MLB averages are .254/.317/.408 for a .725 OPS.

By weighted runs created plus, the best has been David Bote, who also has played third. He’s at 99, near league average. Others include Addison Russell at 90, Ben Zobrist (before his personal leave) at 68 and Daniel Descalso at 49, meaning he has been less than half as productive as an average hitter.

In June/July, Descalso has been limited to 38 plate appearances with a 30 wRC+, with Russell at 74, Bote falling to 76 and rookie Robel Garcia at 109 in 58 plate appearances.

• Production also has been limited in center field, where the Cubs’ .691 OPS lags behind the MLB average of .741. Jason Heyward, whose 109 wRC+ includes a 119 in June/July, has helped center-field production, but Albert Almora Jr. is at 71 — and only 48 since the end of May.

• Using Heyward in center hasn’t helped the Cubs’ defense. Heyward remains stellar in right field, where his nine runs saved rank fourth in MLB. But he’s at minus-6 in center.

• Even in the June/July slog, there have been offensive bright spots. Kris Bryant has followed his 149 wRC+ through May with a 144. Others with wRC+ above the league average of 100 for June/July are Anthony Rizzo at 120, Heyward at 119, Willson Contreras at 117, Schwarber at 113 and Garcia at 109.

At 100, Javy Baez is down from his 132 through May. All hitters have ups and downs, and a good hitter having two months as an average hitter is not alarming. The bigger concerns limiting the offense are at leadoff, second base and center field when Heyward is at his natural position in right.