Since the 2012 season, the question of the best player in baseball has been pretty boring. Mike Trout busted onto the scene with a +10.3 WAR season as a 20 year old, and he’s since dominated the sport in a way that has rarely been seen in the game’s history. There were good players having great seasons in Trout’s shadow, but no one put up any real serious challenge to the idea that they were a better player than Trout. But now, that might be changing, as Bryce Harper is putting together a realistic run at the title of the best player in baseball.

Obviously, Harper’s 2015 season was outstanding, as he won the NL MVP by wrecking opposing pitchers on a daily basis. But because of how good he was last year, it can be easy to forget that Harper is still just 23 years old, and he appears to be getting even better.

Harper’s transformation into an offensive monster included a couple of key changes; he focused more on his pull-power and started elevating the baseball more regularly. For the first two weeks of 2016, Harper seems to have doubled down on those efforts.

Harper GB% and Pull% Season GB% Pull% 2012 45% 32% 2013 47% 39% 2014 44% 39% 2015 39% 45% 2016 31% 44%

When he came into the league, Harper hit the ball on the ground a little more than the average hitter, and he worked on spraying the ball around the field. He’s figured out that, with his power, crushing the ball to right field in the air is more valuable, and for the first couple of weeks of 2016, he’s basically morphed his batted ball profile into something you’d see from Chris Davis.

Except Chris Davis has to trade contact for power, as his uppercut swing causes him to swing through a lot of pitches, and thus, Davis strikes out about as much as anyone in baseball. At the same time Harper is moving towards an elite damage-on-contact batted ball profile, he’s also making more contact than he used to.

Harper’s Plate Discipline Stats Season O-Swing% Z-Swing% O-Contact% Z-Contact% Contact% 2012 34% 72% 59% 87% 76% 2013 30% 72% 62% 86% 77% 2014 33% 73% 54% 83% 73% 2015 28% 68% 61% 84% 75% 2016 21% 73% 56% 93% 84%

Note that Harper’s O-Swing rates have been trending down over the years, and through the first couple of weeks of 2016, he’s now swinging at pitches out of the zone at a rate that would make him one of the most selective hitters in baseball. But he’s managed to pair that increased selectivity with a very aggressive approach on pitches in the zone, so he’s not just standing there taking strikes and working the count. As August Fagerstrom noted last week, Harper has stopped swinging through pitches in the zone, there’s basically no way to get him out anymore. He doesn’t chase out of the zone like he used to, he’s not letting hittable strikes go by, and he’s making contact on almost every strike he swings at.

And he doesn’t appear to have sacrificed any power in making these improvements. As good as Harper was last year, it appears that we may not have seen the best of him yet. And even taking the longer view, what Harper is in the midst of doing is on par with Trout’s best years.

Over the past 365 days, Harper has played in 153 games, so a little less than one full season. Here’s what he’s done during that time.

Harper’s Past 365 Days PA BB% K% ISO BABIP AVG OBP SLG wOBA wRC+ WAR 654 19% 18% 0.340 0.362 0.338 0.466 0.679 0.474 205 10.2

That’s Joey Votto’s control of the strike zone married to Chris Davis’ power when Chris Davis is on a hot streak. That’s a +10 WAR season from a guy who isn’t getting any boost from the defensive metrics. And a guy who appears to be getting better.

Of course, Trout’s had a couple of seasons at this level, and this is Harper’s first stretch of putting up +10 WAR over a year’s worth of games, so it’s probably fair to say that we don’t have enough evidence to suggest that Harper has passed Trout at this point. But even now, the gap might not be as large as you’d think.

Heading into the season, our combined ZIPS/Steamer projections had Trout at +8.7 WAR to +7.3 WAR for Harper, a 1.4 win gap. Taking into account the data from the first two weeks of 2016, though, the rest-of-season ZIPS/Steamer forecasts have Trout at +7.9 and Harper at +7.2, so in two weeks, Harper has cut the projected difference in half.

If Harper keeps hitting for this kind of power while sustaining these improved contact rates, he’s going to be an unstoppable offensive force, and run away with the NL MVP again. He’s even halfway to last season’s stolen base total, and he hasn’t been thrown out on the bases yet, so he’s apparently decided to add some baserunning value to his already stellar overall game.

Harper can’t keep up his current levels of performance, of course. He won’t get to face Atlanta’s pitching staff in half of his games, as he has so far. He’s going to cool off to some degree. But look at that past year line again; that isn’t a fluke. This is a 23 year old who has figured out how to turn his physical talents into the kind of production that is nearly unprecedented in baseball history. And if Harper can retain even a chunk of his early improvements, then we won’t be calling Mike Trout the best player in baseball that much longer. It’s too early to say that Harper has taken that crown away quite yet, but by this summer, we might have to acknowledge that this is now Bryce Harper’s game, and Mike Trout is the one trying to play catch up.