Torpedo bats, which diverge from the traditional tapering bat shape, have drawn widespread attention following a surge in power production from players adopting them. While the spike in home runs has sparked public interest, this project investigates whether the unique bat design corresponds with measurable changes in player performance.
Using MLB Statcast data accessed via PyBaseball and Baseball Savant with Python code written by LLMs, this analysis begins with exploratory evaluation of success metrics such as launch speed, square-ups, and blasts. These indicators revealed promising patterns for some players, prompting deeper investigation through data mining and modeling. Stratified sampling by launch speed was used to balance torpedo and non-torpedo bat data, and tree-based methods uncovered consistent differences in swing length, bat speed, and attack angle, suggesting the bat design alters swing mechanics in meaningful ways.
JMP tools such as Graph Builder, Multiple File Import, and Workflow Builder supported the analysis, while JMP 19’s Data Table Tags enabled nested variable groupings. Though limitations in torpedo bat usage reporting remain, the combination of modern player tracking data and statistical modeling offers insight into how torpedo bats interact with swing mechanics and how these design changes may be shaping the future of offensive performance in baseball.

Hi, everyone. I'm Ryan Cooper, and I'm the Gulf Coast Systems Engineer for JMP. I'm joined by my colleague, Laura Higgins.
Hi, I'm Laura Higgins. I'm on the Global Technical Enablement Team as a Systems Engineer as well.
Our project that we worked on is on torpedo bats in Major League Baseball. These have gained a bit of attention for unconventional design and the offensive output that arises from them. We've got a little story behind this, as to how the idea originated. Laura and I were actually at a baseball game in Houston at the beginning of April, the very beginning of the season. We were in town for the discovery seminar that was happening there.
It was the first few days of the season and the Houston Astros, which are a team in my state, in Texas, were playing the San Francisco Giants, which is where Laura's from. We were at that game, and we had heard about this torpedo bat craze and the New York Yankees and them hitting home runs one after the other, and there's this magic bat that was causing all these home runs. We were talking about it and watching the game, and we're like, "We should do a project on this."
That's where this came from. We're excited to present the results since there really were no data points except for just a few at the very beginning of the season when everybody was starting to do this. There's now a lot of data points and some really cool insights that we can glean from this. We're excited to present this for you all.
A little bit of background on the torpedo bat itself. What we're going to be looking at is if the torpedo bat shows measurable improvements in performance. We're going to focus on exploratory data analysis, data mining, some modeling using Statcast, which is the public repository of data that Major League Baseball keeps with a whole bunch of different statistics related to Major League Baseball.
Let's take a closer look at what this bat looks like. You'll see on the very left… Let me turn my pointer on here. You'll see on the left bat here, it looks a little different than the one on the right. The one on the right is a traditional bat. You'll see the side, the edge of the bat goes a little more straighter, whereas the torpedo bat here curves in. What's happening here is there's more weight centered on the sweet spot of where you might hit the ball, as opposed to this bat which is evenly distributed. That translates over to this picture here, where on the blue, you have the torpedo bat and more concentrated sweet spot, whereas with the traditional bat, there's more distribution as to where that spot is, but maybe not as impactful.
We go from this section of this picture here to this one, and you see the same overlay, same colors happening here with the traditional and the torpedo, and that sweet spot is right here. What's happening now is we have a distribution of where the exit velocity, the launch speed of a ball coming off of these bats would be expected. Over here where the bat is a bit wider, you would expect an exit velocity and a launch speed of about 5-7% more, with a higher max coming off of the bat. Whereas if you hit the ball over here with a traditional bat, you get about a 2-3% increase. This bat is going to really, really impact the performance or should impact the performance of somebody who hits the ball a bit more over here.
There's a few other little graphics here. There's a video that I definitely recommend watching, where the person is drawing these bats and these graphics and explaining what's going on with the bat. Up here, this one graphic here is worth mentioning where it's like swinging an ax, where the weight is distributed at the very, very end of the ax for something like, say, this traditional bat. Whereas if you turn that weight and put it on the very, very end that's closer to you, it's a whole lot easier to swing. What's happening is that weight is shifting a little bit, and it just makes it easier to swing. Some of the mechanics are potentially changed here, and we'll get into what the data looks like when it comes to how this works.
Shifting over to the methods and objectives of how we went about some of this data exploration. This data was accessed through PyBaseball, which is a Python package, and the code was largely written by ChatGPT. I've actually got a link to my ChatGPT conversation down here. That's worth looking at as to how that was drawn up and how that pulls in from Python.
The great thing about JMP 18 and further on into JMP 19 and further is we have the integrated Python. So you can generate your Python code, you can write your Python code, do what you'd like with it and put it into JMP and have it pull from a package like this.
This baseball package has about 119 different variables for each pitch. So you have a row. Let's go to what the data set looks like here. Each row is actually a transaction and a pitch. There's 119 different things that are measured, or data points that are taken on each of these pitches. We take that data, segment it with torpedo bat, whether the user is using a torpedo bat or not, and that was found by ChatGPT as well. There's not a great way of looking that up. It's not documented very well, so had ChatGPT mine that.
What we're looking at are key metrics of launch speed, square-ups and blasts, and swing mechanics. The square-ups and blasts are indications that have to do with exit velocity. We're going to look at these upper two pictures here, and these are from the MLB Statcast website in the glossary, which I also have a link to in the references.
But a square-up is a percentage of the maximum velocity possible when you're hitting the ball, and then a blast is really an enhanced square up. A blast is really the best swing that you can have, and we would expect those to increase as someone uses a torpedo bat successfully.
Some of the tools we used, we used Graph Builder. You see a couple of those down here. Distribution, a formula column, data table tags, which is new in JMP 19, and then some modeling techniques like Bootstrap Forest, Boosted Trees, and Workflow Builder to glue everything together. In all, what we want to do is explore the performance changes post torpedo bat adoption within the selected players and look at it as a whole with the modeling.
Coming back to the setup, let's look at how that works here. I mentioned the Python script in JMP. This is a snippet of that Python script and how it accesses from the Statcast data. Then we also have the Statcast data itself. This is a manual pull of the square-ups and the blasts, because those are actually not included in the data from the PyBaseball package.
That information has to be combined, and the way that's done or part of the way that's done is by saving these snippets of square-ups and blast data into separate files and then importing them all at once using Multiple File Import and JMP. I had a folder full of square-up and blast files. I imported those all at once to concatenate them all and then merge them back into the main data table script so that we have blasts and square-ups for each of those transactions and denoted for each of the pitches.
From there, we use the lookup table of all of our known torpedo bat users and when they started using it. We have a formula here that says that it's a torpedo bat user if their game date is after the first use and zero otherwise, and then a workflow here that combines everything together, where you go from the Statcast data, pulling it in from the CSV that's saved from the Python script and then importing the multiple files.
Once we have that information, we can start doing some exploratory data analysis. What we did to start is we picked a couple of players that we knew had some kind of impact. Anthony Volpe was mentioned really from the start as having some good success. What we did here is we looked at the launch speed distribution. Let's go and take a look at this.
This is a graph in Graph Builder, and it's a shadow gram. What we have is the launch speed on the x-axis. Let me get my laser pointer here. We have the launch speed on the x-axis, and then the game year is the color. In 2024 with the blue, that launch speed was a bit less than it was in 2025. We have the red that is a bit higher, and then some summary statistics here.
From this, we wanted to look at what does this look like for everybody. Over here on the far right, there's a graph where we have the mode of 2025's launch speed and the mode of 2024 along a line to see who was improving like this. What we found is this doesn't happen for everybody. So Anthony Volpe ended up having some success from changing this torpedo bat when it came to the launch speed. But other people who are denoted in green and then some that we were not sure are using torpedo bats, but might have been, are denoted in the orange here. That led to the idea that this affects people differently, which is what the modeling ends up showing that Laura is going to show in a second.
Another person that we looked into pretty heavily was someone named Colson Montgomery. What's special about him is he started in the Major Leagues at the very beginning of July 2025. He didn't use a torpedo bat for about 3 weeks, and then all of a sudden, when he started using the torpedo bat, he started hitting more home runs. You can see the home runs are the circles here, and he had more blasts. Those are anything that's red. This is the launch speed here along the y-axis. Then we've got a moving average of what the launch speed is.
Around July 31st, I think it was August 1st, his torpedo bat actually broke, and he didn't have any other bats to use for about a week and a half until they made more for him. You can see there's a noticeable drop in the exit velocity and not as many higher points here for launch speed or not as many home runs. As soon as he got that bat back, there's a couple of home runs here right off the bat that are much, much higher launch speeds. So clearly a good impact for Colson Montgomery. That covers the exploratory data analysis results and some of the methods and objectives, and now I'm going to pass it over to Laura for the data mining and modeling.
Thanks, Ryan. The question that I ended up focusing on is how does the torpedo bat affect batting characteristics. We had all this data, so I used a data mining and modeling approach. Next slide. There we go. The first issue with the data is that we have such a small representation of people using a torpedo bat. When you have a really unbalanced data set, you're not really going to find any signal if what you're looking for is a really small proportion in the data.
So I needed to create a data set that had equal amounts of data for both torpedo and non-torpedo bat users. I decided what would be fair, rather than just use this entire pool of data and randomly grab some things, I really wanted to make data sets that looked similar. So I stratified by the launch speed of torpedo bat users. I thought that it's a fairly representative… to pull a fairly representative sample from the non-torpedo bat users. That's what I did with stratification. Next slide.
The data was very nonlinear. I tried some other modeling techniques and the tree methods work the best. This is definitely true with data that's not very linear. Linear models just act strange. The Bootstrap Forest gave the best and the clearest answer. I did also try boosting, and it gave me both a qualitatively similar answer, but it did not actually improve the results.
I used a 33% validation column, and you can see that overall, considering whether or not a torpedo bat was used for each bat, the model explained somewhere between about 9% and 15% of the data, depending on which item you want to use. The misclassification rate was okay. So there's some prediction, but it's not perfect. But there's definitely signal in there.
The results are with the Bootstrap Forest. If you look at the graph here, this is the column contributions. Bat speed is definitely the thing that matters the most. Most other columns were of a similar impact, and I'll talk a little bit more about those in the next slide.
With the profiler, here torpedo bat one means they have a torpedo bat, and zero means they are not using a torpedo bat. What we see is a longer swing length. The swing length is the entire range that the bat moves, and remember, a torpedo bat can be swung faster, and we see that also. We see higher bat speeds and overall higher launch speed, and the launch speed is how far that ball is really going to go. When you see the graphs when you're watching ball games, the exit velocity is what's shown, and it's really a good indication of how far the ball is going to travel, especially if you're trying to make a home run. In that note, we also saw in one of the metrics of where the ball actually went. For fielding location, it did travel further into the field. Whether it was left or right actually did not enter the model.
There were other things that were in the model, and basically they all point to the same thing, that somebody using a torpedo bat is more consistent in where they're hitting the ball, and that makes sense. If that sweet spot on the bat is smaller, you have to be a more disciplined hitter in terms of how your swing mechanics work. We did not look to see if this is success. Maybe the next paper. But the results are definitely that the torpedo bat changes your swing mechanics, for better or worse, depending on the batter. But it definitely changes them. Then the next slide. In the poster, we have an animated GIF. If you want to see the profile or move through the ranges of all of the variables, you can check that out in the PowerPoint. Ryan, back to you.
Some of the conclusions that we have determined from the modeling and from some of the exploratory data analysis… I'm actually going to go back to this graphic here so that we can explore some of those conclusions. The torpedo bat generally changes swing mechanics regardless of the player's success. That goes along the lines of what's happening here. That's going to feel different for everybody swinging the bat. It's whether or not they're doing this successfully, as to whether it turns out good or not. So launch speeds, square-ups and blasts, they're useful indicators of improved contact quality, as you can see in the exploratory data analysis.
Then the torpedo bats may enhance performance for some hitters, but not all. So individual mechanics and adaptability play a role. You have to be able to control what's going on within your swing and how it's changed in order for you to have the success of having a square-up or a blast or increased exit velocity.
We got some valuable insights from the launch speed and the blasts and square-ups by player. But really, the data mining and modeling uncovered how the torpedo bats affect the swing mechanics themselves. Along the way, the modeling was limited by bat usage reporting. We didn't have a lot of great data to go by that really just listed each player as having using a torpedo bat and when. But what we were able to uncover really was impactful and still gave us some results that we could draw some conclusions from.
Then down here in the bottom right, this batter positioning and intercept point and how long is your swing. These are just some definitions within the glossary that have to do with the mechanics part of things that Laura was explaining. So how long is your swing? Then the intercept point of catching the ball a good bit later in the swing, but a lot faster. So you get to it quicker, and you get out in front of it more. This really showed up in the modeling.
That concludes our presentation. There's some references down here in the bottom right that are definitely worth taking a look at if you'd like to look at this any further. I mentioned the Statcast, the search and the glossary. There's some commentary articles as well to take a look at.
Something that really piqued my interest when I found it was this video from the Savannah Bananas of all people. It's a 30-minute video, but what they're doing is they're testing the torpedo bat in their own way. The sample sizes and the design may not quite be exactly the most informative, but it's really, really great to listen to them talk about how they might be able to hit inside pitches better and just other insights that you get from a domain expert that's actually using the bat and some of the insights that they might see as baseball players themselves. Then a few articles about Colson Montgomery as well, who that second graph there on the left is about, that led to the idea of plotting this out. Well, thanks, everyone, for watching our presentation, and have a good rest of your day.
Presenters
Skill level
- Beginner
- Intermediate
- Advanced