It would be inaccurate to say that Jeff McNeil came out of nowhere, but unless you were a Mets fan with a deep knowledge of the team’s minor league system, chances are that you hadn’t heard of him before he was called up last July 24. Since then, he’s done nothing less than post the majors’ fourth-highest batting average (.339) as part of a contact-centric profile with echoes of yesteryear. Having additionally shown himself capable of manning multiple positions, the 27-year-old lefty swinger has become a staple of manager Mickey Callaway’s lineups, and a key cog in a much-improved offense.

McNeil arrived as a man of mystery largely because of his age and injury history. A 12th-round 2013 draft pick out of Cal State Long Beach, he hit for high batting averages with minimal power (a total of four home runs) in his first three professional seasons, most notably leading the Florida State League with a .373 on-base percentage in 2015. Just as he reached the high minors, surgeries to repair a pair of sports hernias and a torn labrum in his hip limited him to a mere three games in 2016; he played in just 48 games in 2017 due to a groin injury. Between the lack of playing time and minimal power, he barely grazed even the deepest prospect lists. Just before the injury bug bit, Baseball America included him as a 40-grade prospect, 27th in the Mets’ system, in its 2016 Handbook. He was an honorable mention on FanGraphs’ Mets list that same year.

Finally healthy, and sporting 40 pounds of additional muscle relative to his pre-injury days, the 26-year-old McNeil broke out to hit .327/.402/.626 (182 wRC+) with 14 homers (five more than his previous career total) in just 57 games at Double-A Binghamton last year, then .368/.427/.600 (165 wRC+) with five more homers in 31 games at Triple-A Las Vegas. He began garnering attention, from prospect hounds, though even Baseball America’s midseason Mets top 10, published four days before his debut, merely consigned him to the “Rising” category. He arrived in Queens in late July, just before the team traded incumbent second baseman Asdrubal Cabrera to the Phillies. As the Mets went nowhere amid an otherwise sour season, he hit .329/.381/.471 (137 wRC+) in 248 PA while playing a credible second base (0.4 UZR in 54 games), good for 2.7 WAR. Notably, he struck out in just 9.7% of his plate appearances, the second-lowest mark of any player with at least 200 PA.

Maintaining that sizzling clip, which was driven by a .359 BABIP, seemed unlikely; our Depth Charts projected him for a .275/.329/.424 line and 1.9 WAR in 127 games. With the Mets undergoing a front office regime change, trading for Robinson Cano and J.D. Davis and further crowding their infield with free agent Jed Lowrie as well as first base prospect Peter Alonso, the team spoke of using McNeil in their similarly jam-packed outfield, that despite his having played a grand total of 56.1 innings in the pasture during his minor league days.

So far, the situation for McNeil has worked out surprisingly well. Even with Lowrie and incumbent third baseman Todd Frazier out due to injuries (the former has yet to return, while the latter made his season debut on Monday), McNeil has started more frequently in left field (12 games) than second base (two games) and third base (six games) put together. It’s too early to get a read on the defensive metrics, but he hasn’t pulled a Marcell Ozuna, and meanwhile, he’s hit .368/.448/.500 (161 wRC+); his batting average ranks third in the NL, as does his .409 BABIP, while his on-base percentage is fifth. Again, he’s rarely striking out (10.3%, fifth-lowest among 94 NL qualifiers). He’s homered just once, on Monday off the Phillies’ Jake Arrieta.

McNeil’s high-average, low-strikeout combination isn’t something we see much of in these Three True Outcome-centric days. Here’s a quick scatter plot for all hitters with at least 300 PA in 2018-19, using our new Plus stats, which normalize each player to a 100 scale similar to wRC+, with 120 representing performance 20% above the league average and 80 representing one 20% below:

McNeil is the yellow dot, with a 134 AVG+ and a 44 K%+ (in this case, lower is good), and there’s nobody particularly close to him; the red dot is Mookie Betts (133 AVG+, 69 K%+) while the brown one is Michael Brantley (124 AVG+, 44 K%+). Of course, batting average isn’t everything, but even so, McNeil stands out similarly using wRC+:

That’s Brantley again (125 wRC+, 44K%+) in brown, with the red dot representing Alex Bregman (158 wRC+, 56 K%+). Again, neither is particularly close to McNeil when compared to how clustered most of the dots are. His is a unique profile, and the reason I’ve used these normalized rates is because many of the closest comps of his performance — and here I’m comparing his 2018-19 against single seasons, just to bulk up his sample size — come from other eras. Sifting through more than 21,000 player-seasons of at least 300 PA, these were the closest matches I could find for the combination of normalized strikeout rate and batting average:

That list is more batting champions (the yellow shaded cells) than not, with the 1982 version of Boggs and the ’89 version of Larkin both losing out only due to their shortages of plate appearances. Of course, many of these players, such as Bonds and Pujols, walked more often and hit for more power than McNeil (122 OBP+ and 114 SLG+) has thus far. Here are the closest matches factoring in his normalized slash stats, walk rate, and wRC+:

Most McNeil-Like, via Lotsa Plus Stats Player Season Team PA BB%+ K%+ AVG+ OBP+ SLG+ wRC+ Jeff McNeil ’18-19 Mets 335 66 45 134 122 114 143 Jose Altuve 2014 Astros 707 66 38 134 119 116 137 Barry Larkin 1989 Reds 357 64 45 135 117 118 129 Bill Madlock 1975 Cubs 565 80 51 133 120 125 139 Cecil Travis 1941 Senators 663 77 48 130 116 128 144 Larry Doyle 1915 Giants 641 67 49 125 112 129 143 Nap Lajoie 1913 Naps 525 73 36 127 118 116 132 Ichiro Suzuki 2004 Mariners 762 76 51 138 122 105 131 Harvey Kuenn 1959 Tigers 617 84 51 136 121 126 145 Edd Roush 1917 Reds 567 70 50 133 121 134 153 Tony Gwynn 1995 Padres 577 68 16 136 119 115 137 Pete Rose 1973 Reds 752 96 43 129 121 112 140 Matty Alou 1968 Pirates 598 61 31 132 117 111 128 Jim Eisenreich 1996 Phillies 373 93 52 134 122 113 134 George Brett 1976 Royals 705 84 41 130 118 128 144 Zack Wheat 1923 Robins 378 80 52 128 118 125 146 Jose Reyes 2011 Mets 586 87 38 130 117 122 142 Cecil Cooper 1980 Brewers 678 69 52 131 117 135 151

That’s a more mixed bag, with fewer batting title winners, though it’s worth noting that Alou, Lajoie, and Wheat won in other seasons. It still has a bunch of Hall of Famers (Gwynn, Lajoie, Larkin, Roush, and Wheat) plus one who’s on the way (Suzuki).

What we haven’t done, of course, is consider how sustainable McNeil’s performance is, and indeed, given the sample sizes, one has to wonder. What’s striking is that whereas last year he produced more fly balls than grounders, he’s currently killing worms at his highest clip since 2014; the caveat is that’s based upon just 67 balls in play, where groundball and fly ball rates don’t begin to stabilize until 80 BIP. It’s notable that his exit velocity (which stabilizes at 40 BIP) is up considerably from last year, as is his xwOBA, but that in both cases, he’s considerably outhit his Statcast wOBAs:

McNeil’s Batted Ball Profile, 2018-19 Season GB/FB GB% FB% EV wOBA xwOBA 2018 0.97 38.7% 39.7% 85.2 .368 .333 2019 1.65 49.3% 29.9% 91.0 .426 .377 Tot 1.11 41.4% 37.2% 86.6 .383 .344 SOURCE: Baseball Savant

Those lines look different enough that I’m really not sure what to make of them. The good news is that even if McNeil regresses all the way back to a .344 wOBA, that’s still a productive player, one made all the more useful by his versatility. McNeil’s three-year ZiPS projection for 2019-21 forecasts full-season WARs of 2.5, 2.6, and 2.2 — again, a very useful player. On the basis of what we’ve seen, I don’t think we can anoint him a future All-Star or batting title winner just yet, but there’s a whole lot to like.