Spring training isn’t complete without trying to predict each player’s exact statistics for the upcoming season. As such, the end of the Major League Baseball season isn’t complete without going back and seeing just how wrong we all were.

Player projections are an important preseason exercise, but baseball players are humans, not robots, so there are inevitable variations. That certainly applies to the 2016 Boston Red Sox, who overachieved as a club en route to a 93-69 season and an American League East crown.

But what about the individual players? Who met or surpassed their projections for the regular season, and who fell short? To answer that question, we looked back at FanGraphs’ ZiPS projections for the Red Sox back in February and compared them to the final stats of Boston’s most important contributors.

Here’s what we found.

David Ortiz, designated hitter
Preseason projections: 2.3 WAR, 30 HR, 89 RBIs, .264 AVG, .350 OBP
Final statistics: 5.1 WAR, 38 HR, 127 RBIs, .315 AVG, .401 OBP
We’d say posting the greatest final season in MLB history constitutes overachieving.

Mookie Betts, outfielder
Preseason projections: 5.4 WAR, 18 HR, 80 RBIs, 26 SB, .297 AVG, .355 OBP
Final statistics: 9.6 WAR, 31 HR, 113 RBIs, 26 SB, .318 AVG, .363 OBP
Betts skyrocketed past his lofty preseason projections, making huge strides both offensively and defensively to become a legitimate MVP candidate.

Dustin Pedroia, second baseman
Preseason projections: 2.5 WAR, 9 HR, 51 RBIs, 7 SB, .279 AVG, .339 OBP
Final statistics: 5.6 WAR, 15 HR, 74 RBIs, 7 SB, .318 AVG, .376 OBP
Pedroia caught absolute fire down the stretch en route to posting his best statistical season since he won the American League MVP award in 2008.

Hanley Ramirez, first baseman
Preseason projections: 1.7 WAR, 13 HR, 67 RBIs, 12 SB, .277 AVG, .358 OBP
Final statistics: 2.8 WAR, 30 HR, 111 RBIs, 9 SB, .286 AVG, .361  OBP
Ramirez silenced the haters with a monster second half, posting the first 30-homer, 100-RBI season of his career. He even played a decent first base, too.

Xander Bogaerts, shortstop
Preseason projections: 3.0 WAR, 12 HR, 73 RBIs, 8 SB, .289 AVG, .332 OBP
Final statistics: 3.7 WAR, 21 HR, 89 RBIs, 13 SB, .294 AVG, .356 OBP
Bogaerts hit some rough patches after the All-Star break, but he still managed to overachieve in every statistical category, especially in the power department.

Jackie Bradley Jr., outfielder
Preseason projections: 2.2 WAR, 12 HR, 59 RBIs, 8 SB, .247 AVG, .319 OBP
Final statistics: 5.3 WAR, 26 HR, 87 RBIs, 9 SB, .267 AVG, .349 OBP
JBJ’s average dipped in the second half, but his power numbers didn’t, as he more than doubled his home run projection and totaled 28 more RBIs than expected.

Sandy Leon, catcher
Preseason projections: 0.4 WAR, 3 HR, 18 RBIs, 0 SB, .211 AVG, .281 OBP
Final statistics: 2.7 WAR, 7 HR, 35 RBIs, 0 SB, .310 AVG, .369 OBP
Late-season slump notwithstanding, Leon gave the Red Sox more than they ever could have dreamed of at the plate.

Travis Shaw, third baseman
Preseason projections: 0.0 WAR, 16 HR, 57 RBIs, 3 SB, .238 AVG, .305 OBP
Final statistics: 2.2 WAR, 16 HR, 71 RBIs, 5 SB, .242 AVG, .306 OBP
Shaw’s 2016 campaign will be viewed as a disappointment, but he actually exceeded expectations in most categories. Hitting in such a potent lineup certainly helped his cause.

Rick Porcello, starting pitcher
Preseason projections: 2.3 WAR, 187 1/3 IP, 140 K, 4.18 ERA, 3.70 FIP
Final statistics: 5.0 WAR, 223 IP, 189 K, 3.15 ERA, 3.40 FIP
Did you expect Porcello to be a Cy Young Award front-runner in March? Didn’t think so.

Craig Kimbrel, relief pitcher
Preseason projections: 1.1 WAR, 59 2/3 IP, 82 K, 2.72 ERA, 2.65 FIP
Current statistics: 0.9 WAR, 53 IP, 83 K, 3.40 ERA, 2.92 FIP
Kimbrel came the closest of this bunch to fully earning his paycheck, and considering a knee injury forced him to miss a few weeks, these stats are nothing to cringe at.

David Price, starting pitcher
Preseason projections: 4.9 WAR, 209 1/3 IP, 211 K, 3.35 ERA, 2.93 FIP
Current statistics: 3.0 WAR, 230 IP, 228 K, 3.99 ERA, 3.60 FIP
Price pitched well after the All-Star break, but his total body of work still doesn’t stack up to what was expected of him when he signed with Boston.

Eduardo Rodriguez, starting pitcher
Preseason projections: 2.4 WAR, 167 1/3 IP, 141 K, 3.98 ERA, 3.66 FIP
Current statistics: 0.5 WAR, 107 IP, 100 K, 4.71 ERA, 4.43 FIP
Like Price, Rodriguez did some impressive damage control in the second half that bodes well for his 2017 outlook. But he still fell short of his projections.

Clay Buchholz, starting pitcher/relief pitcher
Preseason projections: 2.0 WAR, 126 2/3 IP, 109 K, 3.91 ERA, 3.44 FIP
Current statistics: 0.2 WAR, 139 1/3 IP, 93 K, 4.78 ERA, 5.06 FIP
See above. Buchholz was another disappointing first-half pitcher who turned things around down the stretch — just not enough to meet his preseason outlook.

Thumbnail photo via David Butler II/USA TODAY Sports Images