
P · 2016
Seunghwan Oh
- Age
- 37
- B/T
- R/R
- Height
- 5' 10"
- Weight
- 205 lb
- Born
- July 15, 1982 in Jeongeup, South Korea
- MLB debut
- April 3, 2016
Age shown as of the 2019 season.
- dbWAR
- 3.1 5 season(s)
- PA
- 2
- AVG
- .000
- OBP
- .000
- SLG
- .000
- wRC+
- -120 100 = avg
Seunghwan Oh is a pitcher for the St. Louis Cardinals. In 2016 he hit 0 home runs and knocked in 0 RBIs, notching 0 hits across 2 plate appearances in 2 games. His batting average was .000, 100.0% lower than the league average of .255. He reached base at a .000 clip and slugged .000, for an OPS of .000, 100.0% lower than the league mark of .739. Adjusted for his ballpark and league, his -120 wRC+ puts his offence 220% below average. That comes to -0.0 dbWAR — -0.5 runs with the bat, +0.0 on the bases, +0.0 for the position he plays, against replacement level. It includes no fielding: defensive runs are proprietary and are not estimated here, so the figure credits playing a demanding position but not playing it well.
League context
Percentile among qualified batters, 2016.
How the WAR is built
Runs above replacement, 2016. These four terms sum to -0.4 runs, divided by runs-per-win to give WAR.
Batting
Standard and advanced, by season.
| Trend | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2016 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | 2 | .000 | .000 | .000 | .000 | — | 0.0% | 100.0% | .000 | -0.5 | -120 | -0.0 | — |
Pitching
Standard and advanced, by season.
| Trend | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2019 | 21 | 0 | 18.1 | 3 | 1 | 0 | 29 | 19 | 16 | 6 | 9.33 | 6.70 | 1.91 | 7.9 | 2.9 | 207 | 149 | -0.3 | |
| 2018 | 73 | 0 | 68.1 | 6 | 3 | 3 | 52 | 20 | 79 | 17 | 2.63 | 3.29 | 1.01 | 10.4 | 2.2 | 63 | 79 | 1.0 | |
| 2017 | 62 | 0 | 59.1 | 1 | 6 | 20 | 68 | 27 | 54 | 15 | 4.10 | 4.44 | 1.40 | 8.2 | 2.3 | 94 | 102 | 0.2 | |
| 2016 | 76 | 0 | 79.2 | 6 | 3 | 19 | 55 | 17 | 103 | 18 | 1.92 | 2.13 | 0.92 | 11.6 | 2.0 | 46 | 51 | 2.2 |
Platoon splits
How he hits left- and right-handed pitching.
| Split | PA | AB | H | HR | BB | SO | AVG | OBP | SLG | wOBA | K% |
|---|---|---|---|---|---|---|---|---|---|---|---|
| vs LHP | 1 | 1 | 0 | 0 | 0 | 1 | .000 | .000 | .000 | .000 | 100.0% |
| vs RHP | 1 | 1 | 0 | 0 | 0 | 1 | .000 | .000 | .000 | .000 | 100.0% |
| Split | PA | AB | H | HR | BB | SO | AVG | OBP | SLG | wOBA | K% |
|---|---|---|---|---|---|---|---|---|---|---|---|
| vs LHB | 143 | 131 | 23 | 1 | 8 | 36 | .176 | .234 | .221 | .199 | 25.2% |
| vs RHB | 170 | 159 | 32 | 4 | 10 | 67 | .201 | .247 | .308 | .246 | 39.4% |
Hot and cold zones
Batting average by pitch location, 2016.
Situational hitting
How Seunghwan Oh hits by base state, outs, score and late-game pressure — each read against his own season line.
| Situation | PA | AB | H | HR | RBI | BB | SO | AVG | OBP | SLG | wOBA |
|---|---|---|---|---|---|---|---|---|---|---|---|
| All situations | 2 | — | — | — | — | — | — | .000 | .000 | .000 | .000 |
| Runner on first · thin | 1 | 1 | 0 | 0 | 0 | 0 | 1 | .000 | .000 | .000 | .000 |
| Runners on · thin | 2 | 2 | 0 | 0 | 0 | 0 | 2 | .000 | .000 | .000 | .000 |
| RISP · thin | 1 | 1 | 0 | 0 | 0 | 0 | 1 | .000 | .000 | .000 | .000 |
Runners on includes runners in scoring position, which is the convention every reference uses. Rows under 25 plate appearances are marked thin — at that size a rate moves several dozen points on one hit. Counted from play-by-play, 2016.
Pitch sequencing
What Seunghwan Oh throws in each count, and what he follows each pitch with. Select any cell for the breakdown.
Select a count to see exactly what Seunghwan Oh throws in it.
Pitch arsenal
What he throws, how hard, and how often it misses in 2016.
| Four-Seam Fastball | 792 | 92.9 | 2,106 | 54.8% | 28.3% | |
| Slider | 400 | 85.8 | 597 | 53.8% | 45.4% | |
| Changeup | 90 | 82.8 | 1,679 | 33.3% | 42.2% | |
| Curveball | 10 | 73.5 | 1,354 | 40.0% | 0.0% |
Head to head
Put Seunghwan Oh beside up to three others.
wOBA uses linear weights measured from this season's own play-by-play rather than published constants, and wRC+ is park-adjusted against that same league. dbWAR is our own open implementation — not fWAR or bWAR — and the full derivation, including its simplifications, is on the methodology page.