A New Heat Maps Feature for Members Is Now Active!
FanGraphs Members may have noticed an incredible new feature over the last couple weeks, and today, we’re thrilled to officially announce it. Members now have access to Heat Maps on our leaderboards and player pages. Sean Dolinar has been hard at work for the past month or so putting this together, and now I get to walk you through this Members-exclusive feature.
Where To Find Them
Heat Maps are available on all Major League Leaderboards:

And on all player pages for position players (here’s Shohei Ohtani):

As well as pitchers (Ohtani again):

The heat maps also apply to minor league stats on player pages. Here’s Kevin McGonigle:

And Nolan McLean:

So many colors, so cool. But as for how those colors are determined…
Settings and Toggles
All screenshots above were created using the default settings, which can be adjusted by clicking the gear next to the on/off toggle above the data grids that allow for heat mapping:


Percentile vs. Standard Deviation
Choosing Standard Deviation over Percentile will color based on how many standard deviations from the league mean a player is (using a normal, or Gaussian, distribution), rather than ranking all the players and disregarding how large the gaps are between players. This will cluster more players around the mean (i.e., white cells or barely off-white) and is especially apparent for stats in which one player is significantly better or worse than the mean. For example, look at the color for Cristopher Sánchez’s changeup rate:
Minimum PA/Minimum IP Toggles
The heat maps will show for all players regardless of the Minimum PA/IP selected. That minimum sets the group of players in the baseline, with all players measured against that baseline. A lower minimum naturally enlarges the group of players.

This is helpful for looking at players with too few plate appearances or innings to qualify for rate stat leaderboards while ensuring that the player of interest is actually within the baseline. Those toggles do not have to (and will not automatically) match your settings for leaderboards, so you can look at a leaderboard of qualified batters only but a heat map relative to those with a minimum of 100 plate appearances, or vice versa.
For minor league stats, level-specific stats are measured against players at that level, applying the same IP/PA minimum you’ve set. Combined minor league stats are measured against the entire minor leagues.
Display Style
The default view, Full Grid, highlights every player on the data grid you’re viewing, but if that’s too overstimulating, the other options are:
- Hover Row: Applies heat mapping to only the row upon which your cursor is hovering.
- Hover Column: Applies heat mapping to only the column upon which your cursor is hovering.
- Extremes: Applies heat mapping only to players in the top and/or bottom 5%, 10%, or 20% of players.

The Extremes display style is a favorite of mine, enhancing readability by drawing your eyes to only the most, well, extreme. Here’s how our pitching leaderboards look with only the top and bottom 20% mapped:

Stat Types
In conjunction with the Display Types, unchecking the Counting or Rate box here will also reduce the number of cells that are highlighted. Counting stats include stats accumulated over a full season that can’t be taken away from a player, like home runs and strikeouts, but also any volume-based stat like WAR or FRV, even though those values will fluctuate and can decrease. Rate stats are all the “per X” stats, whether per plate appearance (like K% or wOBA), nine innings (like ERA or FIP), or anything indexed to 100 (like wRC+).
Colors
The view defaults to the “red is good, blue is bad” color scheme you’re probably familiar with from Baseball Savant, but for accessibility purposes (or if you just like wacky colors), you can choose from a preset group of colors or click Show Colors for any one you’d like.

If you love the idea of highlighter yellow being good and purple being bad, we can accommodate that.

In many cases, the directionality of a stat (i.e., whether higher or lower is better) is clear, but some stats don’t inherently have a good or bad direction. For example, a pitcher throwing more fastballs isn’t good or bad: It’s just information. In that case, we always display higher numbers as “better” and lower numbers as “worse.”
Final Housekeeping
Once again, the Heat Maps feature is available only to FanGraphs Members. If you’re not a Member, you can subscribe here.
And for any feedback on the Heat Maps, there’s this message at the top of the settings box where you can weigh in:

That’ll open this New Feature Feedback box, which goes to a centralized repository that’s a lot easier for us on the development team to keep track of than combining feedback from BlueSky, Twitter, and email.

Jon Becker manages RosterResource's team payroll pages, assists with all other aspects of RosterResource, and also dabbles in creating new features as a Junior Developer. Follow him at your own peril: @jonbecker_ on Twitter and @jon-becker.com on Bluesky.
You guys have done a lot of nice UI/UX improvements on the site over the last few years. This is, by an order of magnitude, my favorite one