Let’s do something completely different and have some fun! Over the course of the past year, I created an arcade game that can be played on a Nintendo Entertainment System (NES) from 1985! The game might looks familiar, but it’s been adapted for baseball.
Below you can click on the photo, which will take you to the online emulator. It works best on desktops running Chrome, Firefox, or the new Edge. Safari is playable but it gives a soft picture without sound. Gameplay suffers on mobile, especially smaller devices. It’s best to use your keyboard to control everything, but there is a virtual controller available, too.
(Click to open FanGraphs Arcade)
I don’t want to give too much away about the game, because half of the fun of an arcade game is trying things out, failing, then trying again until you succeed, though I will answer questions in the comments or on Twitter if anyone has any. Read the rest of this entry »
We just updated our player pages! The pages might not look that different, but we’ve redone everything under the hood. We did this to achieve responsive player pages, and it also comes with improvements in speed and a better platform to develop new features in the future.
If you are on a desktop computer, the most noticeable difference on the new pages is the Quick Look section we’ve added to the very top of the page. These will have some popular stats for the player’s major league career and the current or most recent season. Retired players will only have their career stats.
For position players, we’ve also provided a summary of how many major league games the player played at each position, while a pitcher’s Quick Look will show their pitch repertoire. The position breakdown will double count games a player played at two or more positions, and does not include pinch-hitters or pinch-runners, so those values might not add up to games played. We display the Pitch Info classifications for the pitches where usage is 5% or greater for the season. Once again, these will only show for the current or most recent season.
Prospects and players who were recently prospects have their most recent scouting grades and team rankings from the prospect team shown. The report year those grades and rankings come from is shown and also serves as a link to The Board, allowing you to see that report’s entire class. Any in-season rankings are denoted with a (U) for Updated.
Minor league stats are no longer shown by default for every player. We do, however, show them for players who:
You can toggle the minor league stats into view as always, with the table options between the table header and the data grid.
On mobile, those table view options are hidden but are accessible via the settings gear on the top-right of the table.
The game log calendar has been updated as well. Days when the player played a game are shown in black and have a dot underneath the date. Clicking update will load the new date range. You are also able to select an entire season or all games that we have available. If you select a very long range, it might take a while to load.
We also now have game logs and play logs available for players who played from 1974 to 2002. These behave just like the game logs and play logs of current players. 1974 is as far back as our play-by-play data currently goes.
We made the data grid pages responsive. Much like The Board or the minor league leaderboards, you are able to scroll across the table while the season for the row is fixed in the left column.
For the moment, the visualization-based pages still require the full desktop view to use. We hope to move everything over to a responsive view soon.
Fantasy Player Profiles are still in the process of being written and will be available soon. The placement of the profiles on the player pages haven’t changed.
Back in January, we announced the creation of legacy pages for all players pages. The HTML structure on those has not changed. However, they are not meant as a fully-featured alternative, so navigation might not work and new features we develop in the future will not be added to them. This is meant as a stop-gap for any research tools you might have that rely on the HTML structure.
As always if you find any issues or bugs, please let us know in the comments!
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:
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.
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.
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.
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 »
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:
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.
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.
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.
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.
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.
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.
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.