New Interactive Splits Tool!
We’ve created an interactive splits tool that allows you to create your own custom reports by combining splits of various metrics. All the splits that FanGraphs hosts are featured here, along with some new ones — including times through the order, outs and day/night.
The controls have three different sections: stats, splits and group by.

The “Stats” bar allows you to toggle between the three different groups of stats we currently host on a player’s split page. This isn’t too different from the standard, advanced and batted-ball tabs we feature elsewhere on the site.
The “Splits” bar is the most important control within the splits tool; this is where you can select which splits are applied. When no splits are applied, you’ll get the full season stats. When a split is applied like “vs. LHP,” you’ll get only the plate appearances against a left-handed pitcher. If you add another split like “Groundballs,” you’ll get all ground balls against left-handed pitchers. As you add splits from different categories, you’ll narrow the number of plate appearances.

The splits which are applied appear as blue blocks above the table. If you wish to remove a split, either click the “X” on the split or unselect it within its menu.
Mutually exclusive splits will be additive. Instead of narrowing the number of plate appearances, you will widen it. For example, selecting the splits “Line Drives” and “Flyballs” produces splits which include either a fly ball or line drive. If should also be noted that if you select every option within a mutually exclusive group (ie. “No Outs,” “1 Out” and “2 Outs”), you effectively haven’t applied any split, since all the plate appearances will be included.
There is no limit to how many splits you can apply, but you might not have a meaningful result getting either a small sample or full-season stats.
The “Group By” bar allows you to select how the stats are organized. You can see the career totals, or have them broken out by season, month, weeks, or even games. If you are familiar with SQL, this controls the GROUP BY statement.
As always, if you have any comments or problems please let me know.
Technical Notes and Documentation
General
The splits tool is built upon play-by-play data going back to 2002. This means this tool will only provide splits on the play-level and not the pitch level.
Creating specific splits can lead to small sample sizes, which can cause problems for stats that were created with full season, neutral context in mind. Some stats will behave oddly when splitting or creating a small sample. Fielding independent pitching (FIP) is a well-known of example of this. FIP is an ERA estimator based solely on innings pitched (IP), strikeouts (K), home runs (HR), hit by pitches (HBP) and walks (BB), if you create a split (say through an 0-2 count) where the Ks significantly outweigh HR, HBP, and BB, the FIP will be negative, which is not a valid value for ERA.
Times Through the Order
We include the first nine charged plate appearances. We encountered a few unique situations, where a player would not complete a plate appearance because of an out of the base paths. The first partial plate appearance does not count, but the second full plate appearance will.
You are able to specify “as SP” or “as RP” through the “Position” split.
Notes
- It’s possible to get no data for splits if there are no applicable plate appearances.
- There might be slight discrepancies in FIP, xFIP, wOBA and wRC+ between the splits tool and the legacy splits page, we used different methods to determine constants and adjustments to allow for flexibility.
- “As LHH” or “As RHH” will return only plate appearances. Stats from the base paths will be ignored.
- “First Half” and “Second Half” are determined by All-Star Games.
- The batting average stat for the split “Balls in Play” is NOT BABIP since it includes home runs. BABIP removes home runs.
- The “Count” splits represent when a plate appearance had that count at one point, not the count on which the plate appearance ended.
- The “Export Data” function will provide numbers as decimal and not percentages. It also won’t round to familiar formats. This provides more compatibility with Excel and other data-analysis software.
- Weeks begin on Monday and end on Sunday.
- Months are used in two areas: the “Time Frame” split menu and the “Group By” button bar. The split menu will filter plate appearances, while the “Group By” bar will determine if the stats should be combined together or delineated by month. For example, you could see how a player performed in March, April and May. By grouping by season, you will see one stat line for each season; if you grouped by month, it would show you one stat line for Apr/Mar and another for May.
- This has been tested on current versions of Chrome, Firefox and Safari. It may not be supported or fully supported on older browsers including Internet Explorer.
I build things here.
Christmas in August!
This. Is. Awesome.
I was on a player’s page looking at a chart, refreshed the page and noticed “splits tool” (with some excitement). I thought maybe I had missed this roll out the entire time, but I’m relieved.
Great job, as always.
Exciting!
But there is still no way to do a split for leverage vs. plate discipline, to see for example if a batter has a different O-swing% in high-leverage situations? This would change the whole discussion of the Clutch rating.
Agreed here. Was just coming to ask if plate discipline would be an option. It’s viewable when you are sorting through the player’s game logs. You just have to set the start/end date for each month.
Yes but you can’t do it according to leverage situations.
Plate discipline stats are pitch-level, so we don’t have those incorporated (yet). It’s definitely something I want to do.
We had a very long discussion a few days ago about Bryant’s very poor hitting in high-leverage situations and some people said it’s because he’s much less selective about what he swings at but there was no way to check.
This tool is awesome. Count me in as someone who would also love to see plate discipline stats here.
YES!!!!! Dave will be happy that I no longer ask for a player-handedness split view.
For the record, it would still be awesome if the leaderboards were sortable by handedness i.e. if I wanted the leaderboard to only show LHH or RHH
This is great! Any chance it will be added to the team stats page? I’ve often wished I could look at multiple splits simultaneously while weighing streaming SP options. Obviously most of the splits wouldn’t be relevant, but combining handedness, shorter timeframes, and home/road would be very helpful.
cosign, this is great but i’ve been wanting this for the team page for a looooooong time.
I was going to ask this. Would be great if we could say take a team’s k% versus LHP or RHP for a given month or something.
Yeah I’d really like to be able to look at these on a team level. Seeing how a team performs against a change up is ok, but seeing how they perform against left- or right-handed change ups would be great!
Any chance of adding this feature to the batting and pitching leaders pages?
Yes, eventually, the more feedback we get on this, the better we can improve league-wide leaderboards.
That would be wonderful. I’ve been interested in calculating xBatting stats by breaking out batted ball data into the 27 possible buckets: type x speed x direction.
Thank you for rolling this out on a Monday. What a way to start the week!
Fantastic update, I can’t tell you how many times I was ankle deep in someone’s numbers and wished I had this function.
love you guys so much.
even despite the whole red sox thing.
Are we able to customize this by date, or just month, etc?
A date range selector will be added soon, but right now you can only filter by months and season half. You can view the stats delineate by weeks and games, though.
1. make it soon please!
2. how do we delineate by week or game?
“Group By”…change it to “Week” or “Game”.
Next stop Barry Bonds.
Went there, didn’t realize it could only go back to 2002.
Also, in 2003, when Bonds faced an 0-2 count, he still had an OBP of .431 and a wRC of 213, which was higher than his season wRC of 212.
Thanks a bunch!
This is incredible. Its going to add a lot more article such as:
1) Why is Josh Donaldson so different against LHP in 2016 vs. 2015.
a) Especially Home vs. Away
…there goes productivity
Sean’s productivity will go up, just not we the readers.
This is fantastic. Is there a way to see the league average for the split?
Suggestion: when one sorts by game for a pitcher: the dates are there but not the opponent.
Can the opponent be implemented?
Thanks for everything.
I’ve tried it for a few players and it’s outstanding. Thanks so much.
Others have asked, so let me chime and also ask if Is it going to be extended to team and league hitting/pitching performance?
Huzzah!
This is awesome!!!
Thanks a lot for wasting the rest of my LIFE!
And now I need a new pair of underpants. THANKS, FANGRAPHS!
In 2003 Barry Bonds faced an 0-2 count 65 times.
He put up a line of .357/.431/.804
Here’s another cool one: since coming up for good in May 2012, Mike Trout has never had a monthly wRC+ below 100.
http://www.fangraphs.com/splitstool.aspx?playerid=10155&position=OF&splitArr=&strgroup=month&type=2
(I just called Mrs. tz to let her know I’d be coming home late) 😉
Or Clayton Kershaw having a monthly ERA over 4 only once this entire decade…..
http://www.fangraphs.com/splitstool.aspx?playerid=2036&position=P&splitArr=&strgroup=month&type=1
Unrelated to this article but just as a testament to Kershaw’s awesomeness, Kershaw doesn’t even have enough innings to qualify for the ERA crown and thus does not even show up on the WAR leaderboard until you remove the inning filter, and yet is still leading NL pitchers in WAR.
I was prepared to make a petition to get a leaderboard with splits, and you guys just went ahead and did it anyway.
Unfortunately, the Leaderboard did not easily let me do what I wanted, i.e. it doesn’t let me do splits over split seasons, nonetheless, by just clicking back through the years I’ve discovered the answer! Joey Votto’s second half of 2015 is the third best non-Barry Bondsian (obviously need a Bonds filter) second half since 2000 by wRC+. Jim Thome in 2002, and, get this, Mike Napoli in 2011 out paced Votto with 218 and 213 respectively.
How about a rolling average of OPS vs. RHP minus OPS vs. LHP?
Can’t get it to show me hitting stats as a DH. Maybe just a glitch.
Definitely a bug, thanks for catching it! I just fixed it. Should work now.
This is really awesome.
One request: Would it also be possible to add in a team selection for the players who get traded mid season?
Is there any way to filter vs GB or FB pitcher?