Team-level Spray Charts are Here!

I have had more than a few requests for the ability to slice and dice the data in my spray chart tool by teams instead of just individual players. As of today, this new functionality is live. Let’s see what you can do with it.

We know the Royals have a great defensive outfield, but now with the ability to filter by teams we can see how well their outfield has performed on balls in the park this year compared to last year. On the Player – Year to Year tab, select all batters and set the pitching team to Royals. Then, exclude home runs from the Outcome Type filter. Finally, restrict the distance of the batted balls to at least 140 feet to weed out plays by infielders as much as possible.

You now see a direct comparison of how well the Royals outfield has performed against batted balls versus last year:

Screen Shot 2015-05-25 at 6.45.05 AM

Now this includes all batted ball types–what if we just restricted to fly balls and pop ups? Just remove the check next to ground balls in the Batted Ball Type filter:

Screen Shot 2015-05-25 at 6.48.01 AM

Looks like they have been about .6 runs better per 100 balls this season versus last year.

How does this compare to other teams this season? For that, I’ve created a new tab labeled Team Leaderboards. This tab allows you see how teams have performed both batting and from a pitching/fielding perspective.

Let’s take those same parameters from the Player – Year to Year tab and use them on the Team Leaderboards. On the Pitching Team table, select Royals from the drop down menu.

This shows you how the Royals outfield has performed against batted balls hit by individual teams:

Screen Shot 2015-05-25 at 6.52.20 AM

How does that compared to the rest of the league? To answer that, simply select All from the same drop down menu. Each team has a row with their own subtotal to make it easier to compare. And while the Royals have performed extremely well on these types of batted balls, they rank third behind the Rays and Angels.

We can also use this feature to dig into individual players. Let’s take a look at Cubs rookie Addison Russell.

Russell currently has a wRC+ of 91–nine points below league average–but when he puts the ball in play he’s generating 11.2 runs per 100 batted balls:

Screen Shot 2015-05-25 at 6.58.49 AM

We can dig a little deeper to see what teams Russell has done the most damage against when putting the ball in play. Click on the Pitching Team filter and select one or more teams. Let’s select the Cardinals:

Screen Shot 2015-05-25 at 7.00.53 AM

Wow. Russell has put 10 balls in play against the Cardinals for a whopping 36.6 runs per 100 batted balls. Only two of those 10 balls have stayed in the infield.

Can you use the tool to look at individual defensive players? Sort of.

Take the example of Juan Lagares.

On the Player – Year to Year tab we can select Mets from the Pitching Team filter and adjust the dates so we compare 2010-2012 against 2013-present–roughly the time periods before and after Lagares took over as the everyday center fielder. Let’s also restrict the Batted Ball Types to fly balls and pop ups. Additionally, restrict the Angles filter to -20 and 20 degrees. This will only show balls hit to the area where we might reasonably expect center fielders to have a chance to make a play:

Screen Shot 2015-05-25 at 7.12.29 AM

From this view, these balls have resulted in 4.6 few runs per 100 since Lagares started anchoring center field for the Mets, and improvement of about 40 percent. Not too shabby.

Of course, this is a very different way to view performance, and I would not substitute or even directly compare these results to defensive metrics like DRS or UZR.

Feel free to comment with any questions or suggestions as you play around. Finally, my code for pulling and preparing the data can be found on GitHub.


Bill leads Predictive Modeling and Data Science consulting at Gallup. In his free time, he writes for The Hardball Times, speaks about baseball research and analytics, has consulted for a Major League Baseball team, and has appeared on MLB Network's Clubhouse Confidential as well as several MLB-produced documentaries. He is also the creator of the baseballr package for the R programming language. Along with Jeff Zimmerman, he won the 2013 SABR Analytics Research Award for Contemporary Analysis. Follow him on Twitter @BillPetti.

Comments are closed.