Were you to look at Jackie Bradley Jr. 's traditional stat line, you'd probably say he's having a poor year. He's hitting just .215, with a .300 on-base percentage and a .363 slugging percentage, and every single one of those numbers are below the Major League non-pitcher averages of .252/.323/.417. Put that all together, and it says that 93 percent of qualified hitters this year are having better batting seasons than Bradley.

It's hard to try to explain that away, yet we're going to do exactly that. Bradley is one of a handful of hitters who have deserved better results than they've seen, and while that doesn't guarantee better results going forward, it's the difference between a .215 average that gives you some hope and a .215 that's based entirely on poor performance.

The way we can say that is relatively simple; instead of looking at batting average, we look at expected batting average, or xBA. It works on the idea that while a hitter has a great deal of control over how hard he hits it (exit velocity) and how high he hits it (launch angle), he doesn't have full control over the outcome. Perhaps the defense is positioned well, and perhaps they aren't. Maybe the defender playing center field is extremely talented, or maybe he's an out-of-position backup. It could even be that you're hitting into a strong wind, blowing in. There's so many things the hitter can't control.

So, xBA takes the historic outcomes of similar batted balls based on exit velocity and launch angle, along with real-world strikeout totals, and it gives you an estimated number independent of defense and ballpark.

For example, last April, Bradley crushed a Michael Fulmer fastball, hitting at 103.1 mph off the bat at a 23 degree launch angle, good for a projected 385 feet of distance. Balls with similar characteristics of exit velocity and launch angle have been hits 87 percent of the time since 2015, and they've actually been home runs about 50 percent of the time.

On this play, unfortunately for Bradley, he hit that ball in a Detroit park that has a very deep center field and to a Tigers outfielder who is a very good defender, JaCoby Jones . It was an 0-for-1 in the box score, but you want to give Bradley credit for squaring up a ball like that in the first place. That's what xBA does; instead of giving him an .000, he gets an .870 for that play. Accumulate that over the course of a year, and you get something that tells you a little bit about what kind of skill a player is actually earning.

In Bradley's case, you'd feel a bit differently about him if his linescore actually showed his .268 expected average than his .215 actual. You'd be more impressed by his .485 expected slugging (which is essentially the same as Shin-Soo Choo or Bryce Harper has this year), than his actual .363 number.

Think about it this way: Bradley is hitting .215. Fellow American League East outfielder Carlos Gomez , in nearly the same number of plate appearances, is hitting a nearly identical .221. You might think they're similar players. Yet while Bradley's expected number is .268, Gomez's expected number is .215. That's another way of saying Gomez has earned his subpar production, while you'd expect a little more from Bradley.

If you're wondering why that is, a good place to start is hard-hit percentage, which measures the number of batted balls hit at 95 mph of exit velocity or more. For Gomez, that number is 30 percent, just below the Major League average of 35.7 percent. Yet for Bradley, his 49.3 percent hard-hit rate is elite. It's 11th-best of the 255 players with at least 150 batted balls this year, and it's as good or better than sluggers like Joey Gallo, Manny Machado and Khris Davis . Despite the poor average, Bradley is crushing the ball, in a way where you'd expect better production.

You're starting to see it, anyway. Remember when we said Bradley's expected batting/slugging would be .268/.485? In July, his actual batting/slugging are ... .260/.468. It's starting to catch up, and that, along with his usual outstanding defense, is why the Red Sox look past his unimpressive line to stick with him.

Here are four other hitters who might have deserved better than they're getting:

Joey Votto, Reds

.289 average, .321 expected average

Hitting .289 isn't exactly bad, of course, but it's also not what you expect from an elite hitter like Votto, who has hit above .300 in every year aside from his injury-plagued 2014 dating back to 2009. Interestingly enough, his expected average of .321 is the second-best in baseball, behind only Mookie Betts .

So what's going on? It's a little bit about nice defensive plays, like when Matt Kemp turned this ball that's a hit 47 percent of the time into one that was a hit 0 percent that time.

This can't just be credited to "bad luck," however, because Votto is making less contact this year. After striking out 11.7 percent of the time last season, he's whiffing 15.3 percent of the time in 2018.

Ryan Braun , Brewers

.238 average, .282 expected average

Braun has actually upped his hard-hit rate from 43 percent last year to 48 percent this year, his best in the four years of tracking, though like Votto he's striking out more as well.

Don't think the teams don't notice this, as Milwaukee manager Craig Counsell noted recently. "He didn't have a great first half and I think he'd tell you that," Counsell said. "I think his 'expected' [numbers] based on how he hit the ball was better than his surface line shows."

He's right, because he's got a gap of 44 points between his actual and expected average, and a big part of that is because when he hits the ball at 100 mph or harder, he's got an average of only .439, well below the Major League average of .624. That sure feels like a lot of balls squared up right at fielders.

Kole Calhoun , Angels

.209 average, .255 expected average

Calhoun's story is something of a tale of two seasons. He was hitting a miserable .145/.195/.179 before his oblique injury at the end of May, but he's been smashing .298/.357/.661 ever since he returned on June 18.

Clearly, his fortune is turning around, but he's also creating a lot of it himself, by getting the ball off the ground. Calhoun had a grounder rate of 56 percent in April and May, and that plummeted to 31 percent in July. His hard-hit rate, meanwhile, jumped to a season-high 44 percent. That said, his July expected average of .305 looked a lot like his actual number of .322.

Adam Duvall , Braves

.205 average, .245 expected average

Duvall was traded to the Braves from the Reds on Monday, in part because of his elite defense, but also because they likely believe there's a lot more in the bat than his .205/.286/.399 line would indicate. What's odd here is that his underlying metrics in terms of contact and hard-hit rate look a lot like they did in 2016, when he was an All-Star.

We don't actually have a good answer for this one, actually. Duvall isn't striking out more. He's not hitting more softly, or more on the ground. He's doing all the things you'd expect you'd want him to do, and the hits just haven't followed. None of this guarantees that they ever will, of course. It's just that there's a lot more to that .205 average than you'd expected, too.