Author Archive

Why Not Both? THE BOARD: Scouting + Stats!

We decided to make a leaderboard that combines THE BOARD! with our Minor League Leaderboards. There are a ton of new features to review, but if you are the type of person that attempts to assemble furniture without reading the instructions, here’s the link:

If you are still with us, we have a lot to cover. This combined leaderboard is similar to a feature we tested on our prospects landing page where the prospect list that Eric and Kiley have compiled is joined with our minor league stats.

Here’s a list of the new features:

  • THE BOARD: Scouting + Stats!
  • Revamped Minor League Leaderboards
    • Added the ability to select multiple seasons
    • Added the ability to filter by organization
    • Added three new league filters: Upper (AAA/AA), Mid (A+/A), and Low Levels (A-/R)
  • Revamped Custom Reports
    • Your custom reports can be displayed as a tab (blue instead of green) on the leaderboard.
    • The interface to add and change stat columns is all-new.
    • You can choose to include row numbers in your report.

THE BOARD: Scouting + Stats!

You can think of the combined leaderboard as a Venn diagram or a SQL inner join. Minor league players who are not in the selected prospect list will not appear on the combined leaderboards. Likewise, players without any minor league stats (Shohei Ohtani) are not available on this leaderboard.

Unforunately, you also can’t mix batting and pitching stats on the same leaderboard; these are still different data sets (pictured in the above data join diagram). The scouting report data is position agnostic, but the stats data still behaves like our traditional leaderboards, so you can only combined one stat data set with the scouting data set.

The filters are organized by the source of data they control. For example, scouting grade filters are on the scouting tab, while the playing time filter appears on the stats tab.

Since there is the possibility of duplicate filters for position and organization, we have those two filters located under common filters. Both filters use data from the scouting data set, so you could look at the stats of a traded prospect regardless of what system he accrued those stats. The position filter uses Eric and Kiley’s classification, instead of what position our leaderboards have for a player. This might change in the future if we deploy more advanced control options.

Important Notes:

  • A leaderboard can only contain either batting or pitching stats.
  • Right now, we are only including scouting information from prospect lists. There are plans to include draft and international players in the future.

Minor League Leaderboards

The Minor League Leaderboards have been redesigned, and we added a few new features. We added the ability to select multiple seasons and either aggregate them (default option) or have them split into multiple years. The “Split Seasons” option splits the player’s stat line by both season and team. An organization filter has been added so you can group stats across levels by the MLB organization instead of just being able to filter using the affiliate teams. We also included a few new league filters that groups tiers of levels: Upper (AAA/AA), Mid (A+/A), and Low Levels (A-/R). These will allow you to aggregate stats across those tiers.

We don’t always carry legacy tools, but we are keeping the old minor league boards around at least for a bit. These will be available in the leaders menu, but they won’t be the main link. You should be aware these might not always exist, and we are not going to continue developing them. If you are using them as a data source for research, please considering migrating to the new Minor League Leaderboards.

Custom Reports

The Custom Reports for the combined leaderboard and the Minor League Leaderboards are all-new. While FanGraphs has well-established stat groups: Standard, Advanced, and Batted Ball, combining scouting and stats data left us with too many combinations to include everything; this is where the new custom reports come in.

Like the old custom reports you are able to create a leaderboard with your choice of stat columns, filters, and players, but now they can be displayed as blue tabs on the leaderboard for quicker access. You can create a new report by clicking the plus button.

All of your reports for the specific leaderboard are housed in the Custom Reports dialog box accessible from the Custom Reports button on the data grid. In that dialog box, you can manage your reports including loading them into the tab bar and making them load in to the tab bar by default.

The interface to change the stat columns on the table is also completely new. You can either double click (long press on mobile) or drag/drop stats to customize your report. The columns are organized by the default tab they appear in. Once again, you can’t mix batting and pitching stats, but mixing scouting columns is cool.

Important notes:

  • Each report has an owner.
  • The owner is the only one who can modify, save, or delete that report.
  • You also must be signed into your FanGraphs account to modify, save, or delete any report.
  • However, every report is viewable by anyone if you have the URL with the report id in it.
  • You can create a copy of a report by viewing it and clicking to create a new report.
  • “Edit Table” allows you to choose different columns on the table.
  • Turning off the “Include Filters” button allows you to create a report that is agnostic to filters including custom players. This can be used if you want to create a tab with certain stats acting like native tabs.
  • Your older minor league reports are still available, though you won’t be able to save them.

Future Notes

  • We are in the process of determining how to handle the “current” level for prospects. It’s an addition we want to add to THE BOARD, but it’s not ready for this update.
  • While these tools are conceptually connected, they don’t share data between them, so going from the Minor League Leaderboards to THE BOARD: Scouting + Stats! won’t retain settings and filters.
  • Custom Reports “belong” to the tool you created them in, so you can’t make one in the leaderboards and use it with the combined leaderboard. This might change in the future, but it’s a restriction for now.

Our Playoff Odds Have a New Look

The Playoff Odds page looks different! The playoff-odds data and simulation method remains the same; however, we have revamped our reporting page to make it easier to understand and more powerful.

The most noticeable changes are the table layout and the mobile layout. We’ve tried to make it easier to understand what the columns mean for users who are new to the site. The goal of the mobile layout is to allow users to reach the most important information more quickly. Every column on the desktop page is viewable on the mobile layout by clicking the “Full” button.

Read the rest of this entry »

The Homepage Has Been Redesigned!

As you may have noticed when you clicked on this post, the FanGraphs homepage has received a makeover. The previous front page worked well enough for a number of years. The way we all use the web has changed, however, so it was time for some adjustments, intended to help you find more of what you want in an easier-to-use manner. The new layout features a number of improvements, and while change is never enjoyable, we hope you’ll find these tweaks will help you get to the content you’re looking for more quickly, as well as highlight content that you might have missed previously.

The biggest change is that the new design is responsive, meaning it will work well on mobile devices, not just desktops and laptops. We’ve also designed the new front page to highlight our daily written content, the outstanding prospect work being put together by Eric Longenhagen and Chris Mitchell, and provide access to the tools that let you utilize all the great data here on the site.

More specifically, we have:

  • included the daily Hardball Times article in the featured section, highlighting one of the best-kept secrets on FanGraphs; the daily THT piece isn’t to be missed. We also changed the featured-article area to better highlight popular content, including pieces from RotoGraphs, as well as identify the most recent and most read posts of the day.
  • merged InstaGraphs into the FanGraphs article flow. InstaGraphs posts are still shorter, quicker articles, but they won’t be off in the corner any longer. They will be noted by an InstaGraphs tag, so you’ll still know to expect something a bit shorter than the usual FanGraphs post.
  • included our standard chat schedule and a chat-alert banner for when they are happening.
  • improved the Top Prospects box, so all 30 teams are accessible instead of just the last five articles Eric Longenhagen has written.
  • improved our “Essential” section to include evergreen articles and site news, and to highlight some of our data tools.

The new layout will be more dynamic, including more features as the season progresses and as certain content becomes more topical, such as during the draft or the trade deadline. We hope that these improvements will let you navigate the numerous articles we publish each day, as well as better find reference pieces that you’ll want to go back and read multiple times.

Note that not every page on the site has been made mobile-friendly yet. As we become accustomed to the new design, please don’t hesitate to let us know about any questions, comments, or further improvements that you’d like to see integrated into the new homepage.

Thanks for being loyal readers and supporting FanGraphs through the years. We hope this new front page makes your visits even more enjoyable.

Introducing Team Pages!

We now have landing pages for all 30 Major League Baseball teams. These pages can be accessed through the Teams menu on the navigation bar above, simply by clicking on a team’s name. You can also access the pages directly, like so (no spaces in team names):

Many of the stats and features on the team pages are available in similar forms elsewhere on the site. We’ve now collected them into one place, however, so that readers can more quickly access team-specific information and analysis. As with any new addition to FanGraphs, we plan on expanding and adding features to the team pages as time goes on.

There are five different tabs on each page: Summary, Stats, Schedule, Pitcher Usage, and Depth Chart.


This is a quick overview of the team’s season. It includes boxes for the next and most recent games, division standings, team stats, depth chart, and roster notes.

Read the rest of this entry »

2017 MLB Arbitration Visualization

It’s that time of year again! This past Friday was the filing deadline for arbitration-eligible player contract offers. Once these numbers are published, I like to create a data visualization showing the difference between the team and player contract filings. (See the 2016 version here.) If you are unfamiliar with the arbitration process here’s the quick explanation from last year:

Teams and players file salary figures for one-year contracts, then an arbitration panel awards the player either with the contract offered by the team or the contract for which the player filed. More details of the arbitration process can be found here. Most players will sign a contract before numbers are exchanged or before the hearing, so only a handful of players actually go through the entire arbitration process each year.

The compiled team and player contract-filings data used in the graph can be found at MLB Trade Rumors.

Three colored dots represent a different type of signing: yellow represents a mutually-agreed contract signed to avoid arbitration, red represents the award of the team’s offer in arbitration, and blue represents the award of the player’s offer. A gray line represents the difference in player and team filings. Only players with whom teams exchanged numbers on January 13, 2017 will have grey lines. These can be filtered by clicking the “Filed” button.

The “Signed” button filters out players who have signed a contract for 2017; this will change as arbitration hearings occur. Finally, “All” includes every player represented in the graph. This year Jake Arrieta and Bryce Harper had the two largest contracts ($15.367M and $13.625M, respectively), but they both signed contracts before the filing deadline. This causes changes on the x-axis scale on the “Signed” and “All” tabs compared to the “Filed” tab, which is scaled to contracts under $10M.

The chart is sorted either by contract value or by the midpoint of the arbitration filings. The midpoint is the average of the two contracts and determines which contract the arbitrator awards based on his assessment of the relevant player’s value. The final contract value takes precedent over the midpoint since this represents the resolved value. Contract extension details will be written out over the data points. For our purposes, an extension is a multiyear deal that can’t be shown on the graph, since we are looking only single-year contracts for 2017.

Read the rest of this entry »

Splits Leaderboards!

Here it is: the split leaderboards! Now, you can create custom splits using multiple splits, much like you can on the player pages — except now in the form of an entire leaderboard, and accessible directly from the leaderboard menu.


Read the rest of this entry »

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.

Kris Bryant Splits Tool Overview

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.

Kris Bryant Splits Menu

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.

Read the rest of this entry »

Updated Player Graphs!

We have updated the graphs on our player pages that have been a part of the site since FanGraphs was founded in 2005. The player graphs are now much more interactive and have been updated to feature some of the most popular and commonly used advanced stats on FanGraphs, such as WAR, wRC+, wOBA, OPS and FIP. We are also retaining the left/right and home/away splits options. These new graphs are interactive and have tool tips available on some data points.

Updated Player Graphs Season

There are four modes that represent different ways to delineate time: By Year, By Age, By Day and By Game. By Year and By Age are similar to each other; they replicate what has previously been available on the player pages showing season stats on a line graph with a league-average line. The league-average line is the most noticeable difference between Year and Age. Since the league average for a season is different than the average production for a given age.

Read the rest of this entry »

Job Postings Word Cloud

Over the past year, we have posted 32 different job postings from 20 different Major League Baseball teams and 15 job postings from TrackMan, Baseball Information Solutions, Inside Edge, STATS Inc, TruMedia, Wasserman Media Group and the Sydney Blue Sox. At Paul Swydan’s suggestion, I created word clouds to summarize these postings. These give a quick overview of what those jobs entail and the required qualifications. For those not familiar with the research and data science side of baseball, I’ll explain a few of the software tools which are prominent in the job postings and can be found in the word cloud.

To make the word cloud, I collected all the pieces we’ve published since January 2015 that contained “Job Posting” in the title. I separated the text content of each post into two different categories: job description and qualifications. From there, I took those two documents into R and used the tm package to clean the text, removing punctuation and unnecessary words like articles and prepositions. The package also tabulated the words. Additionally, I removed some other words like baseball, experience and strong. These words occurred frequently in the posts, but they were either obvious or not helpful. Then with the processed text data, I constructed the graphic using the aptly named wordcloud package. If you are unfamiliar with word clouds, larger words indicate that the specific word was found more often in the job postings.

Job Posting Descriptions

Read the rest of this entry »

Win Probability Added Leaders Through the LDS

During the postseason, Win Expectancy charts become ubiquitous, because each play, misplay, decision and comeback is magnified in its importance in front of a national TV audience. While Win Expectancy (WE) and Win Probability Added (WPA) aren’t great stats to evaluate players, they are a tool to understand how the dynamics of how a game changes from the first pitch to the last out.

For those not all too familiar with Win Expectancy, our library has a good entry and the interpretation can be boiled down to

If a team is losing and has a 24% win expectancy, only 24% of teams in similar situations in the past have ever come back to win.

So using historical data and the current inning, score, outs and runners on base, WE tells you what percentage of teams have won given those circumstances. These numbers aren’t a prognostication, since anything can still happen, but they give an estimate of what you might expect from the situation.

Win Probability Added is derived from Win Expectancy — being the difference from one play to the next. For example, The batter/runner is given credit for a hit, while the pitcher on the mound will be debited an equal amount for that hit. Plays that dramatically swing the score late in the game with two outs in the inning generally have the highest WPA. WPA is written out like batting average (.000), but it should be interpreted in the same way as win expectancy (0.0%). A play with a .360 WPA increases the WE +36.0%.

Below is our standard WE chart combined with the signed* WPA chart. The WE chart is the running total of the WPA chart. The top chart shows the sum of all the plays until a certain point in the game, and the bottom chart shows the change in WE for each play, which is also the signed WPA.
Royals-Astros Game Graph

Top Players


Now with the basics out of the way, we can make some WPA leaderboards for this postseason. First, batters through the end of the LDS.

LDS Postseason Batter WPA

Read the rest of this entry »