wOBA, or weighted on-base average, scores what a hitter actually did, weighting every walk and hit by the runs it tends to produce. xwOBA, expected wOBA, grades the same plate appearances by the quality of contact: exit velocity and launch angle, plus sprint speed on some weakly hit balls, according to MLB.com. When a hitter's wOBA runs well ahead of their xwOBA or well behind it, the gap usually comes from where their batted balls landed, and BABIP is the stat that shows it.
Batting average misses walks and power
Batting average is hits divided by at-bats. Walks and hit-by-pitches don't count at all, and a home run counts the same as a bloop single (MLB.com). The whole league hit .245 in 2025, per FanGraphs.
That's how a .240 hitter can be worth far more than a .292 hitter. Kyle Schwarber hit .240 in 2025, and he did it with 56 home runs and 108 walks. Luis Arraez hit .292 but walked 34 times and homered 8 times (Baseball Savant). Add two more 2025 hitters, and the three columns disagree even more.
| 2025 hitter | AVG | wOBA | xwOBA |
|---|---|---|---|
| Kyle Schwarber | .240 | .391 | .401 |
| Luis Arraez | .292 | .313 | .303 |
| Juan Soto | .263 | .390 | .429 |
| Jacob Wilson | .311 | .348 | .304 |
The numbers are from Savant's 2025 expected stats leaderboard. Sort by batting average and Wilson and Arraez come out on top. wOBA flips the order and puts Schwarber and Soto first, and xwOBA says Soto's contact deserved even more than he got.
wOBA puts a run value on every result
wOBA counts every plate appearance, and each result gets a weight based on how much it tends to add to scoring. FanGraphs recalculates the weights every season and scales the stat to read like on-base percentage, so a league-average hitter lands somewhere around .310 to .320. These are the 2025 weights from FanGraphs' Guts page.
| Result | 2025 wOBA weight |
|---|---|
| Unintentional walk | .691 |
| Hit by pitch | .722 |
| Single | .882 |
| Double | 1.252 |
| Triple | 1.584 |
| Home run | 2.037 |
Add up a hitter's weighted results, divide by their at-bats plus unintentional walks, sacrifice flies and hit-by-pitches, and you have their wOBA (MLB.com). A home run counts about 2.3 times as much as a single, and a walk counts about four-fifths as much. Batting average gives that walk nothing. The 2025 league wOBA was .313.
xwOBA grades the contact itself
xwOBA looks at each batted ball's exit velocity and launch angle and asks how often balls like it have gone for each kind of hit since Statcast went league-wide in 2015. Since 2019, topped and weakly hit balls also use the batter's sprint speed, and walks and strikeouts count as they happened (MLB.com). Where the ball landed never enters it, which takes the defense out of the number. Pitchers get an xwOBA too, for the contact they allow, and it's a good partner for FIP.
That's why the two numbers can split apart for a whole season. Juan Soto's .390 wOBA in 2025 was star-level, and his .429 xwOBA said the contact behind it was even better. Jacob Wilson went the other way. He hit .311 with an average exit velocity of 84.6 mph, almost five mph under the league's 89.4, and a 2.2% barrel rate. His wOBA beat his xwOBA by 44 points (Savant).
xwOBA doesn't know the ballpark, either. Hunter Goodman's .359 wOBA beat his .322 xwOBA by 37 points, one of the five widest gaps on Savant's 2025 expected stats leaderboard, and he played his home games at Coors Field. Park factors shows what Coors does to a hitter's line.
BABIP shows where the luck went
BABIP, batting average on balls in play, is the batting average on every ball the defense had a chance to field: (H − HR) ÷ (AB − K − HR + SF), per MLB.com. League BABIP stayed between .290 and .297 every season from 2021 through 2025 (FanGraphs). The defense and plain luck both push it around. The hitter's talent matters too, since harder-hit balls fall in more often, but FanGraphs' library says virtually no hitter can hold a BABIP of .380 or higher, and it calls the .230 range very atypical for a big-league hitter.
Seiya Suzuki shows how far that luck can move a batting average. He hit .283 in 2024 on a .370 BABIP, while his expected batting average (xBA) was only .252 (Savant, 2024). In 2025 his contact barely changed: his xwOBA went from .348 to .352, and his average exit velocity went from 91.7 to 91.3 mph. His BABIP fell to .282, and his average dropped 38 points to .245, right about where that xBA had pointed (Savant, 2025).
Josh Naylor went the other way over the same two seasons. His BABIP climbed from .246 to .315 and his average from .243 to .295, while his xwOBA sat still at .334 and then .332. Nothing about his contact said he'd become a .295 hitter; more of his balls in play simply found grass.
If you compare seasons, keep the rules in mind. Since 2023, MLB's shift limits keep all four infielders on the dirt and stop them from switching sides (MLB.com), so BABIPs from 2022 and earlier were earned against alignments teams can't use anymore.
xwOBA is the better guess for the next few weeks
Use wOBA to describe a season that's already over. When you're guessing at what comes next, xwOBA is the better place to start, though the edge is small. Line up Savant's 2024 and 2025 leaderboards and you can check it yourself. Of the 10 qualified hitters whose 2024 wOBA trailed their xwOBA by 20 points or more, 7 raised their wOBA in 2025. Juan Soto was one of the 3 who didn't. Of the 5 hitters who beat their xwOBA by 20 points or more, 3 came back down. Across all 88 hitters who qualified in both seasons, 2024 xwOBA tracked 2025 wOBA only a little better than 2024 wOBA did.
It's a better guess, and it's still a guess. It also needs a real sample. Two weeks of xwOBA rests on a few dozen batted balls, so check how much contact sits behind the number before you trust it. How many at-bats before you can trust a stat covers where that line is.
A hits pick when the results trail the contact
Say a hitter's wOBA over the last month is .280, their xwOBA over the same stretch is .350, and their BABIP in that span is .220. Tonight the menu in GAGE has them at Hits 2+, and the odds give it a 25% chance, so YES scores +7.5 if they get two hits and loses 2.5 if they don't.
The case for YES is the gap. Their contact hasn't gone anywhere, and a .220 BABIP is lower than the .230 range FanGraphs already calls very atypical, so some of those outs were bad luck. The case for caution is that a month is a small sample, and xwOBA knows nothing about tonight's pitcher or park.
How scoring and lock-in work covers the rest, and you can make picks like this in GAGE on the App Store.