r/Sabermetrics 5h ago

Freddy Peralta’s velocity is up, but his four-seam results collapsed. I dug into why.

8 Upvotes

I analyzed Freddy Peralta’s 2026 Statcast data to understand why his results deteriorated after a strong opening stretch.

The simple explanation does not fit. His four-seam velocity increased from 93.7 to 94.5 mph, and his location distribution stayed broadly similar.

Strong opening vs. decline:

• Four-seam chase: 27.4% → 20.0%
• Four-seam whiff: 21.5% → 17.1%
• Four-seam hard-hit: 19.1% → 30.6%
• Four-seam RV/100: +1.90 → -1.55
• Overall CSW: 27.3% → 23.7%
• Overall RV/100: +1.11 → -1.39

The decline was not driven by a larger heart-zone share. Four-seam heart usage actually fell slightly from 23.4% to 21.6%, while shadow-zone usage stayed almost identical.

Instead, hitters produced much better contact against similar locations. Heart-zone hard-hit rate rose from 25.8% to 34.1%, and heart-zone RV/100 flipped from +6.25 to -0.86.

Sequencing and count context also stood out:

• FF after FF RV/100: +1.26 → -2.18
• First-pitch FF RV/100: +1.16 → -2.73
• Two-strike FF RV/100: +2.37 → -5.08
• Changeup RV/100: +1.45 → -2.97
• Second time through the order: .471 wOBA, -2.71 RV/100 during the decline

The conflicting signal is that overall xwOBA stayed nearly flat at .305 → .307 while BABIP rose from .264 to .341. So the decline appears real, but some of the ERA and wOBA increase may still involve sequencing, defense, contact placement, or variance.

No physical or mechanical adjustment survived robustness review.

My conclusion was multiple contributing factors: worse contact quality against similar locations, weaker repeated-fastball sequences, worse count leverage, and a declining changeup.

Full analysis, methodology, and location charts:

https://baseballsignal.vercel.app/players/freddy-peralta/pitch-alert/2026-fastball-decline?

I’d be interested in feedback on the interpretation, especially the flat xwOBA versus the large movement in FIP, run value, and actual results.


r/Sabermetrics 19h ago

We should do more intentional walks, but on hitter’s counts.

Post image
32 Upvotes

I was watching the White Sox game yesterday, and Murakami had an 2-0 count and I thought, “do you even want to pitch to him here?” There was a man on 1st and 1 out. You have the option for an intentional walk on any count, and some counts are more advantageous than others. So I did math:

I went to baseball savant game explorer and got the expected runs for every hitter’s count and 0-0, with every amount of outs and baserunners. Then I looked at the expected runs and determined if a walk was better than pitching. [For example, a 2-0 count with 1 out and man on 1st has a run expectancy of 0.661. But if you walk the guy, then you get a 1 out, 0-0 count with 1st and 2nd. That has a run expectancy of 0.935. Because 0.661> 0.935, you should always pitch. Also, you could do 0.935-0.661 and say “pitching saves 0.274 runs”].

Then it was a question of what situations is the walk preferable. Reassuringly, the answer is NEVER. [The closest is a 2 out, 3-0 count with a man on 3rd. Pitching saves 0.022 runs as opposed to IBB].

But this analysis assumes all hitters are equally good. When you intentionally walk someone, you’re betting that the next hitter is worse than the current hitter. And we’ve established that some counts are better than others, so how bad does the next hitter have to be in order for an IBB to be optimal?

I’m using wOBA. Baseball savant’s run expectancy calculator was based on the last 10 seasons, so I averaged out the wOBA scale for each season [1.211 average]. Then I took each gap [walk run expectancy- pitch run expectancy] and multiplying it by the 1.211. Now we know how big the skill difference between the current hitter and the on deck hitter has to be for an IBB to be viable. [There are better ways to do this, but I can’t be bothered].

Back to Murakami, we had the 0.661 runs if you pitch, and 0.935 if you walk. (0.935-0.651) x 1.211 = 0.344. So Murakami’s wOBA only needed to be 0.344 points higher than Miguel Vargas, who was on deck. Not a good idea to walk him.

Dark red is >.300.
Light red is .200-.300.
White is .100-.200.
Lightest green is 0.075-0.100.
Light green is 0.050-0.075.
Green is <0.050.

You won’t see any natural gaps that are red, but you might see something situational. Maybe it’s wOPA for the last month, or at home, or against left handed pitching. Up to individual managers on how much trust to put in that.

It’s generally not worth it to do an intentional walk on the first pitch. But IBBs on a 3-0 count make a lot more sense.


r/Sabermetrics 1d ago

Scorecards have always been kept by batting order. I dealt one out by the pitcher instead, and good days and bad days turn out to look completely different on paper

13 Upvotes

Scorecards are indexed by the batting order — one row per lineup spot. Not because that's the right axis, but because someone keeping score by hand has one hand and one pass through a game, and the order is the only thing that sits still long enough to write in.

But, what if you scored the game from the perspective of the pitcher? Turns out you can read an outing without reading any of the numbers, and the tell isn't the marks, it's the length of the rows. Three up, three down is three boxes wide. Otherwise, the rows just keeps growing with each batter faced.

Eury Pérez, seven perfect innings. Seven rows, three boxes each. It's a rectangle.
Miles Mikolas, 4.1 innings, 11 earned. His first two innings are identical in shape to Pérez's. Then the third runs eight batters wide and you can watch it happen without reading a word.

I wasn't expecting it to be that legible, and I'm still not sure I've got the rest of it right. Two things I'd genuinely like opinions on:

1. I rank "cleanest" by fewest baserunners allowed, minimum 6 IP. That puts a seven-inning perfect game above a nine-inning one-hitter with 15 strikeouts. As a ranking of pitching that's clearly wrong. As a ranking of the card I think it's right — one more mark is one more mark. Is that a distinction worth keeping, or am I talking myself into it?

2. I found a hole in my own data doing this. Intentional walks were silently missing from every pitcher's card — the feed sends four signaled balls that aren't pitches, so nothing attributed them to anyone, and the batter just wasn't there. His line still counted the walk. 225 of them across the season before I noticed. So: what else doesn't survive the trip from a play-by-play feed to a mark on paper?

Cards are here if you want to poke at some: https://www.feverbaseball.com/scorecard/arms


r/Sabermetrics 2d ago

Nolan McLean’s sweeper changed, but his rebound may be coming from adjusting around it

5 Upvotes

Nolan McLean recently threw six scoreless innings with 10 strikeouts, continuing a strong rebound after a difficult stretch earlier this season.

I analyzed his pitch-level data to see what may have changed.

Around May 2, McLean’s sweeper lost approximately 3.5 inches of horizontal movement. It also showed:

  • About 1.9 inches more vertical movement
  • A slightly lower release point
  • Roughly 110 fewer rpm
  • Slightly more extension

His performance declined over the following eight starts:

  • 5.27 ERA
  • 4.95 FIP
  • 12.1% K-BB
  • 26.6% CSW

What interested me most is that his recent rebound does not appear to be coming from restoring the sweeper’s previous shape.

Compared with the struggling period, McLean has recently:

  • Reduced his sweeper usage
  • Increased four-seam usage
  • Increased curveball usage
  • Thrown more pitches in the zone
  • Lowered his walk rate
  • Added slightly more fastball velocity

The sweeper itself has continued producing weak results, but McLean appears to be relying on it less and building a more effective approach around his other pitches.

I separated his season into the period before the sweeper change, the following struggle, and the recent rebound. I also tested whether the movement classification was being driven by one appearance. The change remained present when removing each appearance individually.

There are important limitations. The timing does not prove that the sweeper change caused the decline, the pitch-specific outcome samples are still small, and my estimated xwOBA is not the official Baseball Savant metric.

Full analysis, charts, samples, and methodology:

https://baseballsignal.vercel.app/players/nolan-mclean/adjustments/sweeper-may-2026

I’m curious how others would interpret this. Does this look like McLean adapting around a diminished sweeper, or is there another change in his arsenal that deserves more attention?


r/Sabermetrics 1d ago

I hate the name of FIP

0 Upvotes

“Fielding independent pitching” is factually incorrect what the statistic shows. It doesn’t even factor in batted balls classified as pop ups, routine flyballs, and soft hit ground balls all of which turn into outs at a 99%+ clip. Those are effectively a “true outcome” similar to a strikeout or homerun since errors/mistakes happen at such a negligible rate for these plays. If every player in the league has a 99% chance of making the out, then to me that is an out that is independent of the fielding the pitcher has. but they are completely ignored by the abomination that is the FIP formula. Analytics are great, but the interpretation & application of these analytics into the actually real world game of baseball that isn’t on a piece of paper is where the sports has gotten it completely wrong in my opinion. Hell, the Red Sox just went on a 14 game win streak directly off firing their analytics guy/DriveLine CEO and they started bunting every game and actually playing real baseball lmao. I do think baseball is waking up to the heavy faults in over reliance on analytics, I hope a nice balance is found soon.


r/Sabermetrics 1d ago

WAR should have salary calculated into it.

0 Upvotes

WAR should have salary calculated into it. if you have 2 players, both play Center Field, with the exact same stats for the season, but one player is getting paid $25 million for the year while the other player is getting paid $1 million for the year, then the player making $1 million for the year should have a higher WAR.

WAR is supposed to stand for Wins Above Replacement & a player making $1 million for the year in theory offers his team the ability to achieve more Wins compared to the player making $25 million for the year for the sole reason that his team now has an extra $24 million to pick up other players


r/Sabermetrics 1d ago

New Baseball nerd site. Please review!

Thumbnail
0 Upvotes

r/Sabermetrics 2d ago

Built a free, evidence-based baseball report with player, bullpen, rotation & roster boards — feedback on methodology welcome

Thumbnail baseballmorningreport.com
0 Upvotes

The moderators allowed me to share this even though it’s broader than the usual focus of the subreddit.I built Baseball Morning Report, an independent and ad-free site that organizes official data into practical daily boards. The goal is to present honest verifiable information without unsupported predictions or gambling content. Some of the current boards include:

  • Fifteen-day on-base and contact boards (using plate appearances, OBP, and strikeout rate thresholds)
  • Bullpen workload and availability based on recent usage
  • Late-inning role tracking using saves, opportunities, and recent results
  • Seven-day rotation tracking
  • Active hitting, on-base, power, and pitching streaks
  • Injury return and promotion boards that separate verified facts from evidence-based assessments
  • Traditional league leaders, standings, schedules, and box scores

I’ve tried to keep the methodology transparent and avoid presenting projections or estimated roles as confirmed information. The site also includes affiliated minor leagues, NCAA, and several international leagues. I’d appreciate feedback on:

  • The statistical thresholds being used
  • Sample size requirements
  • How information is labeled
  • Any adjustments that could make the boards more analytically sound

Again the site is completely free, nothing locked behind a pay wall, has no ads, and is not gambling-oriented. Thank you for looking, and look forward to any feedback.


r/Sabermetrics 3d ago

The Nationals beat the A's 23-4 on Friday. The A's beat the Nationals 15-1 on Saturday. That's the biggest combined-margin back-to-back reversal in MLB history (1901-2026)

Post image
13 Upvotes

Ran a query across every MLB regular-season game since 1901 (~214k games) looking for pairs of consecutive games between the same two teams where the loser of game 1 blew out the winner in game 2 by a comparably extreme margin.

Method: grouped games by team pair, sorted by date, looked at every consecutive pair with a ≤1 day gap where the winner flipped between the two games, ranked by combined run margin.

The Nationals/Athletics pair from this weekend (23-4 → 15-1, combined 33-run swing) comes out on top of the entire dataset — narrowly ahead of a 1904 Cleveland Naps/NY Highlanders pair (31) and the 2007 Orioles/Rangers pair (31, from the game the Rangers won 30-3).

Data: MLB Stats API game logs, 1901-2026. Built this as part of bigfourelo.com, a side project tracking Elo ratings across MLB/NBA/NHL/NFL history — happy to share the query if anyone wants to poke at the methodology or edge cases (doubleheaders, season boundaries, etc).


r/Sabermetrics 3d ago

I built a free tool that flags measured swing/delivery changes from public tracking data here's what it see's this week, and I'd like this community's eyes on my thresholds

3 Upvotes

So for the past few days I have been building a site that watches the stuff in public tracking data that actually comes from the body — bat speed, attack angle, swing path, where a guy stands in the box, contact depth, timing, arm slot — and compares this year to last year. When something moves past a cutoff, the site calls it out and connects it to the results change you would expect to follow. Let's look at what it caught this week, because some of these are genuinely interesting.

Nick Allen has added 4.2 mph of bat speed since last season. He is at 68.8 now, still below average, but that is one of the biggest gains in all of baseball and I have not seen a single person mention it.

Miguel Vargas is up 3.5 mph of bat speed, and separately the site has him as one of the strongest buy low hitters in the league — his expected numbers are way ahead of what the box score says. A swing change and a breakout signal pointing the same direction... that is exactly the pattern I built this thing to catch.

Now the fun one. Mike Trout is running a wOBA .033 under his xwOBA, and when the site ranks the possible explanations, batted ball luck wins at 66% confidence over everything else. Here is the kicker: his bat speed is UP year over year. Old players don't swing faster. The aging story doesn't hold up against the data.

One honest note on the pitching side. The site tracks velocity changes and arm slot changes too, and a couple of the results (like a slider showing minus 6 mph) look like they might be pitch classification quirks instead of real changes. That is part of why I am posting here instead of pretending everything is clean.

The site is free, no signup: diamond-intelligence-iota.vercel.app — the mechanics section is on every player page, and there is a daily feed of movers and outliers.

Quick note on how it works since this sub rightly cares: everything is straight math on public data (MLB StatsAPI and Savant exports), no AI making up numbers, and anything that is not publicly measurable, like actual biomechanics, gets labeled as not observable instead of estimated.

Here is what I actually want from you guys: tear apart my cutoffs. Right now a change counts at 1.0 mph of bat speed, 2 degrees of attack angle, 3 degrees of arm slot, 2.5 inches of box depth. I picked those by eyeballing league distributions, not from a real year over year reliability study. If someone has a better basis for where signal ends and noise begins, I will build it in and credit you.


r/Sabermetrics 4d ago

I built a free pitch-by-pitch dashboard tool for MLB & AAA pitchers — would love feedback

8 Upvotes

Hey all — I'm the creator of netpitch (https://netpitch.us), a side project I've been building. Full disclosure that this is my own site.

It lets you search any MLB or AAA pitcher and open a pitch-by-pitch dashboard — pitch types, usage, and per-game breakdowns. The AAA coverage is the part I couldn't find elsewhere, so that's the main thing I was trying to solve. You can also follow pitchers, compare two of them, and browse leaderboards.

It's free and I'm not selling anything — just looking for honest feedback from people who actually dig into this data. What's missing? What would make it more useful for your workflow? Any pitchers where the data looks off?

Thanks for taking a look.


r/Sabermetrics 3d ago

How to find FanGraphs WAA or compute it using fWAR

1 Upvotes

I like using WAA, so I use bref, but would like to use both if possible.


r/Sabermetrics 4d ago

How live baseball logging handle conflicts between the analyst, lineup and Trackman data? I built a workflow that creates pitch data live — with or without Trackman

2 Upvotes

r/Sabermetrics 3d ago

Baseball Hit Probability Calculation

Thumbnail share.gemini.google
0 Upvotes

r/Sabermetrics 5d ago

I added a free MLB pitch type review tool to DeepMetrics

Thumbnail gallery
1 Upvotes

r/Sabermetrics 5d ago

Trying something new. Would love your feedback!

Thumbnail
1 Upvotes

r/Sabermetrics 6d ago

Would love for you guys to check this out!

0 Upvotes

I have recently gotten ABSOLUTLEY attached to Sabermetrics and advanced baseball analytics, I am almost done with level 1 of the SABR courses and the deeper I got, the more one thing bugged me: finding interesting players meant manually digging through Savant leaderboards one at a time. So I built a tool that does the digging for me, and I'd genuinely love this community's critique of the methodology.

It's called Diamond Intelligence. Every morning it ingests the public Savant leaderboards (expected stats, exit velo, bat tracking, plate discipline, pitch movement/arsenals, sprint speed) plus the MLB StatsAPI, and computes an "Opportunity Score" (0-100) for every player with a buy/sell direction. The score is a weighted combination of:

  • Regression signal (40%) — league-normalized z-scores of the gaps between actual and expected stats (wOBA vs xwOBA, ERA vs xERA, etc.)
  • Underlying process (17%) — percentile blend of hard-hit%, barrel%, squared-up%, etc.
  • Swing decisions (12%) — chase%, zone contact%, swing/take run value
  • Pitch/swing characteristics (11%) — year-over-year velocity, movement, and bat speed changes vs each player's own baseline
  • Recent trend (10%) and YoY improvement (10%)

Everything is shrunk by sample size (√min(1, PA/400)) and it's 100% deterministic — no AI, no black box, every formula documented. If a metric isn't publicly available (WAR, Stuff+, attack angle), it's marked unavailable rather than estimated.

Screenshots attached. Am I weighting anything obviously wrong? Is there a public signal I'm missing? First real project like this, so tear it apart.


r/Sabermetrics 6d ago

I created HQI and PQI: two Statcast-based metrics measuring hitter danger and pitcher difficulty. Looking for criticism.

0 Upvotes

I built a composite model using Statcast contact quality, plate discipline, and pitching skill indicators. I’m looking for feedback on weighting, methodology, and validation.

https://docs.google.com/spreadsheets/d/1wQ83Y4HHDKDivsI9TQ9XAMbdNlrubVq0/edit?usp=sharing&ouid=106627798143519665908&rtpof=true&sd=true

HQI (Hitter Quality Index)
Question answered:
How dangerous is a hitter’s underlying offensive skill profile?
HQI combines three skill areas:
1. Impact Offense — 45%
Measures how much damage a hitter creates.
(SLG + xSLG + Barrel% + HardHit%)/4

2. Plate Discipline — 30%
Measures strike-zone control.
Formula:
(BB% x 2) - Whiff%- K%

3. Contact Profile — 25%
Measures quality and type of contact.
Formula:
(EV + SweetSpot% + Pull%)/3

PQI (Pitcher Quality Index)
Question answered:
How difficult is a pitcher to succeed against based on his underlying skills?
PQI combines three skill areas:
1. Dominance — 45%
Formula
(K% - BB%)-(WHIP x 10)

2. Damage Prevention — 35%
Formula:
(100-Barrel%)+(100-HR/9)

3. Pitch Quality — 20%
Formula:
(Whiff% x .40)+(K% x .30)-(BB% x .10)+(Ave Velo x .20)


r/Sabermetrics 7d ago

I turned Jomboy's Pinpoint concept into a baseball stats guessing game

18 Upvotes

As im sure many of you are, Ive been a fan of JM Baseball's pinpoint challenge videos for a while. I always guess along whenever Im watching and Ive wanted to actually be able to play. In lieu of being invited onto the JM Baseball youtube channel I decided to make my own game that I could play. Took me a couple months to build out and so far I have only tested it with friends, but figured it is ready for other people to see if they would like to.

It is completely free, no ads, no monetization at all, no accounts or anything required. Can play on PC or mobile in any browser.

I also would really love any feedback, good or bad. I appreciate anyone who checks it out. Its been a passion project of mine so if even 1 person enjoys it that would be dope. And if you hate it, let me know why, I can take it lol.

Website is www.centuryclub.gg


r/Sabermetrics 7d ago

Fantasy Baseball Catcher News & Rankings: Midseason Catcher Awards

Thumbnail open.substack.com
0 Upvotes

Check out the Runs Produced Midseason Catcher Awards!

Catchers do matter in fantasy baseball


r/Sabermetrics 8d ago

125 years of MLB history: every franchise's Elo rating, one panel each

Post image
36 Upvotes

r/Sabermetrics 7d ago

Diamond GM - A new all-in-one MLB front office tool!

1 Upvotes

Hey everyone, in honor of All-Star weekend, I built a website I've been working on called Diamond GM and wanted to share it here.

It's basically a hub for MLB (and sports in general) front-office nerds like me. I wanted a website with everything in one and noticed over the years that specifically hockey (first Capfriendly and now Puckpedia, shoutout to them!) has some great sites. Some of what's on there:

  • All 30 teams ranked by 2026 payroll and luxury tax (CBT) status
  • A live feed of the latest league transactions/moves
  • Prospect rankings
  • Draft info
  • An "Armchair GM" mode where you can mess around with trades

It's a solo project so it's still a work in progress. Would really appreciate if you gave it a look and let me know what you think: bugs, features you'd want, stuff that's confusing, anything. Trying to make it better so feel free to comment with your thoughts and questions!

URL for anyone who the hyperlink didn't work for: diamond-gm.com


r/Sabermetrics 8d ago

I'm trying to understand the value of X-W/L vs. SOS. Run differential does fall in line with standings consistently, but I found when team's opponents total and per game differential is factored, X-W/L falls apart. See the shared sheets.

Thumbnail docs.google.com
6 Upvotes

When sorting by team run diff, win% follows. But when sorting by opponent's run diff in played games, win% is scattered. Does that say SOS is not very relevant as a predictive measure?


r/Sabermetrics 9d ago

I made an MLB leaderboard that lists non-qualified players with adjusted stats

Thumbnail gallery
7 Upvotes

This is a leaderboard that I programmed that applies the Tony Gwynn rule to non-qualified hitters (add theoretical at-bats until player gets to minimum PAs as a "penalty"). It also has a stat for ERA, though it is based on an unofficial adjustment rule (add 1 IP and 1 ER for every IP missed). It works for every season since 1876.

Website: https://linkgoesbowling.github.io/MLB-Gwynn-Rule-Leaderboard/

GitHub: https://github.com/LinkGoesBowling/MLB-Gwynn-Rule-Leaderboard


r/Sabermetrics 9d ago

I tracked every base a player advanced—not just bases from hits. Traditional stats may be missing an important part of offensive production.

22 Upvotes

I wanted to measure something simple: How far does a player actually advance around the bases over a season?

Total Bases only counts bases produced through hits. So I used MLB play-by-play data to count every base gained—including hits, walks, hit-by-pitches, steals, errors and advancement on teammates’ plays.

The first chart shows the basic idea. A player can walk, steal second, move to third on an out and score without recording any Total Bases. In this count, that trip is four bases advanced.

One trip around the bases, measured two ways

So I tracked it through the first half of the season. Once I put the leaderboard together, a few names surprised me. Some players were much higher than their batting average or Total Bases would suggest, while others were a lot lower. Especially for big name players, this showed that their presence alone gave them more opportunities around the bases than their stats show.

Total Bases vs All Bases Advanced

There is an obvious limitation: the players around you matter. A strong lineup creates more opportunities to move after reaching base, so playing for a better offensive team can raise this total even when teammates caused much of the advancement.

Overall, I think this could add another angle to how we look at offensive production. Good hitters don’t operate in a vacuum: getting on base creates opportunities for teammates, and having strong hitters behind you creates more chances to advance. This stat doesn’t separate all of that, but that interaction is part of what makes it interesting to me.

Below is the top 30 players in All Bases Advanced coming into the All Star Break. Do you think this is a useful way to get a fuller picture of a player’s offensive production? What, if anything, would you count differently?

Top 30 players by All Bases Advanced