A baseball stats calculator puts several hitters into one table
The baseball stats calculator builds a stat sheet of AVG, OBP, SLG and OPS for as many hitters as you enter, using plate appearances, at-bats, hits, doubles, triples, home runs, walks, hit-by-pitches and sacrifice flies. Each row is colored against the league average, and a total row and a league-average row sit underneath. Press a row to edit that hitter, and the skill hexagon and the step-by-step calculation for the same hitter change with it.
The opening screen shows the four hitters who led the eight categories among qualified hitters in the 2026 MLB regular season, with the AL and NL combined (official titles are decided in each league). Yordan Alvarez (HOU) had 567 at-bats and 179 hits, for a .316 batting average and a .432 on-base percentage, and he also led SLG (.601), OPS (1.033) and walks (109). Pete Crow-Armstrong (CHC) and Kyle Schwarber (PHI) tied for the home run lead with 45, and Otto Lopez (MIA) led in hits with 191. Putting four hitters in one table shows right away where a category leader stands in the other categories.
Why look at several hitters in one table
The OPS calculator covers a single hitter in detail. This calculator is for questions that only make sense with several hitters side by side.
- Season awards for your own team: to pick the batting champion, home run leader or on-base leader for an amateur or school team, enter a minimum number of plate appearances. Hitters who fall short are left out, and the exception in Official Baseball Rule 9.22(a) is applied before the category leader is chosen.
- Team batting average: a team's batting average is not the average of its players' averages. It is the team's total hits divided by the team's total at-bats, and the total row calculates it that way.
- Batting order and roles: spot the hitters with a high OBP and the ones with a high SLG at a glance, to sort out leadoff and middle-of-the-order candidates.
- Rivals and favorite players: add a pro player's 2026 line from the list and lay his hexagon over your own or another player's.
How to use it
- Press New stat sheet to start with one empty row. Enter the name and stats under “Selected hitter's stats”. Blank fields count as 0.
- Use Add hitter to add rows. For pro players, choose from “Add a 2026 qualified hitter” and that player's regular-season line is filled in. You can enter up to 20 hitters.
- If you leave plate appearances blank, they are counted as AB + BB + HBP + SF. If a hitter has sacrifice bunts or catcher's interference, enter the plate appearances from the scorebook.
- Enter your award standard in Minimum PA and the AVG, OBP, SLG and OPS category leaders follow that standard. Leave it blank to count every hitter.
- Press a table header (PA, AVG, OBP, SLG, OPS, HR) to sort by it, and press again to reverse the order. Press “#” to return to the order you entered.
- Copy table copies a tab-separated table that pastes straight into Excel or Google Sheets. Copy link puts the current stat sheet into the address. A stat sheet you edit is saved in this browser and comes back the next time you open the page.
How it is calculated
The formulas for batting average, slugging percentage and on-base percentage are in Official Baseball Rules 9.21(b), (c) and (f), and OPS is on-base plus slugging (MLB Glossary). Rates are rounded to the third decimal place from the fourth (KBO Baseball Rules 9.21 note). The example below is Yordan Alvarez's 2026 MLB line (567 AB, 179 H, 34 2B, 1 3B, 42 HR, 109 BB, 11 HBP, 5 SF, 692 PA).
| Stat | Formula | Alvarez 2026 |
|---|---|---|
| Batting average (AVG) | hits ÷ at-bats | 179 ÷ 567 = .316 |
| On-base percentage (OBP) | (hits + walks + hit-by-pitches) ÷ (at-bats + walks + hit-by-pitches + sacrifice flies) | 299 ÷ 692 = .432 |
| Slugging percentage (SLG) | total bases ÷ at-bats, with total bases = singles + 2 × doubles + 3 × triples + 4 × home runs | 341 ÷ 567 = .601 |
| OPS | OBP + SLG | .4321 + .6014 = 1.033 |
| Isolated power (ISO) | SLG − AVG | .6014 − .3157 = .286 |
| Walk rate (BB%) | walks ÷ plate appearances | 109 ÷ 692 = 15.8% |
| Home run rate | home runs ÷ plate appearances | 42 ÷ 692 = 6.1% |
Singles are worked out automatically as hits minus doubles, triples and home runs (for Alvarez, 179 − 34 − 1 − 42 = 102). OPS adds the two rates before they are rounded, so it can differ by .001 from the sum of the two three-decimal values.
The stat sheet of the four 2026 MLB category leaders
These are the same stats as the opening screen. They are the leaders of eight categories among the 135 hitters who met the 2026 MLB regular-season minimum (502 plate appearances), and Crow-Armstrong and Schwarber share the home run lead at 45.
| Hitter | Led in | PA | AVG | OBP | SLG | OPS | HR |
|---|---|---|---|---|---|---|---|
| Yordan Alvarez (HOU) | AVG, OBP, SLG, OPS, walks | 692 | .316 | .432 | .601 | 1.033 | 42 |
| Otto Lopez (MIA) | Hits (191) | 687 | .305 | .349 | .437 | .786 | 11 |
| Pete Crow-Armstrong (CHC) | Home runs (tied), total bases | 726 | .280 | .372 | .570 | .943 | 45 |
| Kyle Schwarber (PHI) | Home runs (tied) | 701 | .232 | .354 | .503 | .857 | 45 |
| Total, 4 hitters | 2,806 | .283 | .377 | .526 | .903 | 143 | |
| 2026 MLB average | .244 | .318 | .400 | .719 |
Lopez leads with 191 hits, but with only 40 walks his OBP (.349) is the lowest of the four. Schwarber hit .232, below the league average of .244, yet his 45 home runs and 105 walks give him an OPS of .857, far above the league's .719. Leaders in the same category can be very different hitters.
How to read the skill hexagon
The six axes of the hexagon are AVG, OBP, walk rate, home run rate, isolated power and SLG. Each number is the hitter's value divided by the comparison league's 2026 average and multiplied by 100, so 100 is the league average and 120 is 20% above it. FanGraphs' plus stats (AVG+, OBP+, BB%+ and so on) also treat 100 as average and read the gap from 100 as the percentage above or below average, and this calculator builds its index the same way. It makes no park adjustment.
The dotted hexagon is the league average (100) and the outer edge is 200. An axis above 200 touches the edge, and the number shows the real index. When all six axes are at 100 or higher, the hexagon is marked as an all-around hitter. Against the 2026 MLB average, Yordan Alvarez has AVG 129, OBP 136, walk rate 177, home run rate 200, ISO 183 and SLG 150, so all six axes are above average. Schwarber's home run rate (212) and ISO (173) reach far out while his AVG index is 95. Pick a hitter under “Compare with” and the two hexagons are overlaid, with a sentence saying which axes come out ahead.
| 2026 regular season | AVG | OBP | SLG | OPS | ISO | BB% | HR% |
|---|---|---|---|---|---|---|---|
| KBO | .268 | .346 | .404 | .751 | .136 | 9.4% | 2.4% |
| MLB | .244 | .318 | .400 | .719 | .156 | 8.9% | 3.0% |
| NPB | .244 | .309 | .369 | .678 | .126 | 7.7% | 2.3% |
League averages are calculated from league-wide totals. The NPB figure is the total for 12 teams with pitchers' batting in the Central League removed, which takes out the effect of games in which pitchers bat. MLB's average slugging (.400) is close to KBO's (.404), but its batting average is .024 lower and its home run rate is 0.6 percentage points higher, so the same stats give different indexes on each axis depending on the comparison league.
Category leaders and the minimum plate appearances
Official Baseball Rule 9.22(a) says the batting, slugging and on-base leaders must be chosen from hitters with at least the team's games × 3.1 plate appearances. When you enter a minimum, this calculator picks the AVG, OBP, SLG and OPS leaders from hitters who meet it, while counting categories such as hits, home runs, walks and total bases include every hitter whatever their plate appearances.
| League | 2026 team games | × 3.1 | Minimum PA | Rounding |
|---|---|---|---|---|
| KBO | 144 | 446.4 | 446 | Decimals dropped (KBO Baseball Rules 9.22 note) |
| MLB | 162 | 502.2 | 502 | Nearest whole number (9.22(a) comment) |
| NPB | 143 | 443.3 | 443 | Rounded (NPB Official Baseball Rules 9.22 note) |
The rule has an exception. A hitter who is short of the minimum still wins if the rate is the highest even after the missing plate appearances are added as at-bats, and the record is kept at the original rate. In the example from the rule's comments, Abel, with 502 plate appearances, has 181 hits in 500 at-bats (.362), and Baker, with 490 plate appearances, has 165 hits in 440 at-bats (.375). Adding 12 at-bats to Baker gives 165 hits in 452 at-bats, .365, still higher than Abel, so Baker is the batting champion.
The amateur team example (fictional) sets the minimum at 40. Danny Keller has 31 plate appearances and 11 hits in 27 at-bats, a .407 average, but he is 9 plate appearances short. With 9 at-bats added, it is 11 ÷ 36 = .306, lower than Jake Morrison's .382, so Morrison is the batting average leader, and the calculation is written under the category box. With 14 hits (.519) in the same 27 at-bats, 14 ÷ 36 = .389 would be higher than Morrison's, and Keller would lead. OPS is not a category named in the rule, so only hitters who meet the minimum count, with no exception. Minimums in amateur leagues vary by league, so check your own league's standard before entering it.
Team batting average is not the average of player averages
The total row adds up every hitter's stats and then divides again. The nine hitters in the amateur team example have 444 at-bats and 135 hits in total, so the team batting average is 135 ÷ 444 = .304. A simple average of their nine averages (.382, .346, .339, .288, .296, .240, .255, .213 and .407) is .3075, which is .003 too high. Keller's .407 in just 27 at-bats gets the same weight as Morrison's .382 in 55. OBP, SLG and OPS are calculated from the totals for the same reason.
Common mistakes
- Counting walks, hit-by-pitches or sacrifices as at-bats: sacrifice bunts, sacrifice flies, walks, hit-by-pitches and catcher's interference are not at-bats (Official Baseball Rule 9.02(a)(1)). Reaching on an error or a fielder's choice is an at-bat and does not count as reaching base for OBP.
- Counting extra-base hits separately from hits: the hits in a scorebook already include doubles, triples and home runs. If doubles, triples and home runs add up to more than the hits, the calculator reports it instead of calculating.
- Leaving out sacrifice flies: a sacrifice fly is not an at-bat, but it does go in the denominator of OBP. Leaving it out makes OBP a little too high. Sacrifice bunts are left out of the OBP calculation entirely.
- Ranking small samples by rate: a .500 in 10 plate appearances and a .350 in 60 do not carry the same weight. Enter a minimum PA to pick category leaders, and look at the faded names in the table (below the PA minimum) as well.
- Rounding OPS again: adding Pete Crow-Armstrong's .372 OBP and .570 SLG gives .942, but his actual OPS is .943 because the unrounded values (.37241 + .57029) are added. This calculator adds the values before rounding.
Limits
- There is no park or league-level adjustment. For a stat that adjusts for park, use the OPS+ calculator.
- RBI, runs, stolen bases and strikeouts are not entered. Without strikeouts, stats such as contact rate and BABIP are not calculated.
- Comparing amateur or student stats with pro league averages tends to produce large indexes. Opposing pitching is at a different level, so give more weight to comparisons within the same team.
- If plate appearances are left blank, walk rate and home run rate use a count that leaves out sacrifice bunts and catcher's interference. For a hitter with many of those, enter the plate appearances from the scorebook.
- The 2026 league averages and the list of qualified hitters are the final regular-season figures and will be replaced when the 2027 season ends.
As of The formulas and rules were checked on 2026-10-23 against the Official Baseball Rules 2026 (MLB), the KBO 2026 Baseball Rules, the MLB Glossary and the FanGraphs originals. League totals and qualified hitters are calculated from the final 2026 regular-season figures from the KBO Records Room, MLB official statistics (Stats API) and NPB records, collected on 2026-10-22.
Sources
- 01Official Baseball Rules 20269.02(a)(1) what is not an at-bat, 9.21(b)(c)(f) AVG, SLG and OBP, 9.22(a) qualifying minimum (team games × 3.1) and the exception (Abel and Baker example)
- 02KBO 2026 Baseball Rules9.21 note: rates are worked out to four decimal places and rounded; 9.22 note: the qualifying minimum drops decimals
- 03MLB Glossary: On-base Percentage (OBP)Reaching on an error, fielder's choice or dropped third strike is not counted; sacrifice bunts are left out of the formula
- 04MLB Glossary: On-base Plus Slugging (OPS)OPS = OBP + SLG
- 05MLB Glossary: Isolated Power (ISO)ISO = (doubles + 2 × triples + 3 × home runs) ÷ at-bats = SLG − AVG
- 06FanGraphs Library: K% and BB%BB% = walks ÷ plate appearances
- 07FanGraphs: New FanGraphs Plus StatsIn plus stats 100 is average and the gap from 100 is the percentage versus average; park adjustment only in wRC+, ERA- and FIP- (reply in the comments)
- 08KBO Records Room: player and team hitting2026 regular-season league totals; 49 hitters with at least 446 plate appearances
- 09MLB Stats API: 2026 qualified hitters and team hitting135 hitters with at least 502 plate appearances; totals for 30 teams
- 10NPB: 2026 qualified hitters (archived copy)45 qualified hitters in the Central and Pacific Leagues; league totals rebuilt from Sports Navi (Yahoo! JAPAN) team stats
- 11NPB Official Baseball Rules 9.00 (archived copy)9.22 note: the qualifying minimum is rounded (四捨五入); exception that adds the missing plate appearances as at-bats
Frequently asked questions
How are AVG, OBP, SLG and OPS calculated?
AVG = hits ÷ at-bats, OBP = (hits + walks + hit-by-pitches) ÷ (at-bats + walks + hit-by-pitches + sacrifice flies), SLG = total bases ÷ at-bats (total bases = singles + 2 × doubles + 3 × triples + 4 × home runs), and OPS = OBP + SLG (Official Baseball Rule 9.21, MLB Glossary). In 2026 MLB, Yordan Alvarez had 567 at-bats and 179 hits, so AVG .316, OBP 299 ÷ 692 = .432, SLG 341 ÷ 567 = .601 and OPS 1.033.
Is a team's batting average the average of its players' averages?
No. Team batting average is the team's total hits divided by its total at-bats. The amateur team example in this calculator has 135 hits in 444 at-bats, a team average of .304, while a simple average of the nine players' averages gives .3075, because a hitter with few at-bats gets the same weight. The total row always adds first and then divides.
How many plate appearances are needed to qualify, and can a hitter who falls short still win?
The minimum is team games × 3.1 (Official Baseball Rule 9.22(a)). In 2026 it is 446 PA in KBO (144 games, decimals dropped), 502 in MLB (162 games) and 443 in NPB (143 games). A hitter who falls short still leads if the rate is the highest after the missing plate appearances are added as at-bats, and this calculator applies that exception when you enter a minimum PA.
What is the difference between plate appearances and at-bats?
A plate appearance is every time a hitter completes a turn at bat. An at-bat is a plate appearance minus walks, hit-by-pitches, sacrifice bunts, sacrifice flies and catcher's interference (Official Baseball Rule 9.02(a)(1)). AVG and SLG use at-bats, while walk rate and the qualifying minimum use plate appearances. If you leave plate appearances blank, this calculator counts AB + BB + HBP + SF.
What does 100 mean on the skill hexagon?
It is the 2026 average of the league you compare with. Each axis is the hitter's value ÷ the league average × 100, so 120 is 20% above average. It reads 100 as average, like FanGraphs' plus stats, and makes no park adjustment. In 2026 MLB, Yordan Alvarez is at 100 or higher on all six axes, and Kyle Schwarber's home run rate index is 212.
How are walk rate and home run rate calculated?
Walk rate is walks ÷ plate appearances (FanGraphs BB%) and home run rate is home runs ÷ plate appearances. The 2026 league averages are a walk rate of 9.4% in KBO, 8.9% in MLB and 7.7% in NPB, and a home run rate of 2.4% in KBO, 3.0% in MLB and 2.3% in NPB. Yordan Alvarez is at 109 ÷ 692 = 15.8%, 1.77 times the MLB average.
Are my stats saved? Can I share them with teammates?
A stat sheet you edit is saved only in this browser and is not sent to a server. Copy link puts the names and stats in the address, so anyone who opens it sees the same sheet, and Copy table copies a tab-separated table that pastes straight into Excel or Google Sheets.
Can I compare amateur stats with pro league averages?
It calculates, but opposing pitching is at a different level, so the indexes tend to come out large. Jake Morrison (AVG .382) in the amateur team example has an AVG index of 156 against MLB. Look at the ranking inside the team and the team total first, and use the league average only as a reference.