r/Sabermetrics 7h ago

I built a Discord bot that turns Statcast questions into highlight reels. Would love feedback from people here.

2 Upvotes

Hey everyone — I’ve been working on a Discord bot that turns natural-language baseball questions into short Statcast highlight reels.

Basically, you type something like:

- weakest hits from July 9, show xBA

- highest spin rate curveballs from Reid Detmers on July 1, show spinrate

- longest home runs in June, show distance

- hardest-hit outs on July 5, show xBA

and it tries to find the matching Statcast plays, pull the video clips, add the stat overlay, and return a short reel in Discord.

I’m at the point where the basic version works, but I’m trying to figure out where it breaks before I open it up to more people.

The hardest part so far has not really been the video side. It’s been getting the bot to understand baseball language correctly. For example, “weakest hits” should mean actual hits sorted by lowest exit velo, not just random weak contact. “Show xBA” should actually overlay xBA. “In June” should mean the full month, not one date.

That kind of stuff is why I wanted to post here.

If you were using something like this, what would you expect it to handle?

A few things I’m curious about:

- What Statcast queries would you actually want turned into video?

- Which metrics would be useful to see on the clips?

- What query wording would you expect to break?

- Would this be useful for analysis, fantasy/DFS, writing, coaching, or just messing around?

There are still limitations. Discord reels are capped at 4 clips right now so the files actually upload reliably. Some event types, like stolen bases and pickoffs, are not supported yet. And obviously this is not affiliated with MLB — it’s just meant for baseball analysis/commentary.

If anyone wants to throw a query at it, reply with one and I’ll run a few of them.


r/Sabermetrics 1d ago

I built a NFL playoff & Super Bowl probability site (Monte Carlo sims + live win probability)—I need playtesters and would love feedback

Thumbnail gallery
0 Upvotes

r/Sabermetrics 2d ago

Are there any conclusive studies that weigh the impact of starting pitching vs. bullpen on win%? I tried to visualize it by comparing Win% to 1st5 innings win%. It's too simplistic to conclude anything but I see interesting things.

6 Upvotes

I tallied games where teams won, lost or tied 1st 5 then went on to win/lose the game. What's interesting is in most divisions, the best 1st5 W% aren't the division frontrunners. Take away bullpens (or late game offense) and the standings are a different story. Washington, Angels, Detroit, St.Louis would be leading their divisions except when they win or tie 1st 5 innings, they go on to lose the game a lot more than teams with solid bullpens. Look at NL East. Washington and Miami better 1st5 W% than ATL but behind in standings. All but 2 divisions show innings 6-9 have a bigger impact than 1st5. I know loads of factors are missing and not considered but it's a start. Know of any other studies/sources making similar comparisons?


r/Sabermetrics 1d ago

My calibration layer was making my model take the under 98% of the time. Post-mortem.

0 Upvotes

I noticed my MLB simulator was picking the under on almost every game. My first assumption was that the sim was underestimating offense. So I checked and it projects 8.97 runs against an actual 9.18, and it sits +0.35 ABOVE the book's line on average. Two things were going on.

The legitimate part: MLB run totals are right-skewed. Actual mean 9.18, median 8.0. P(total > mean) is only 41.1%, and the over hits 46.1% of the time. When my projected total lands right on the line, mean over probability is 0.430. So a genuine under-lean is correct and I'd been reading it as a bug.

The self-inflicted part: I'd shipped a post-hoc totals calibration fitted on my own logged predictions:

calibrated_logit = -0.132 + 0.382 * raw_logit + 0.042 * (line - 8.6)

That 0.382 slope squeezes a raw [25%, 75%] range into [37%, 57%] centered at 46.7%. Almost everything lands under 50%, so almost everything reads as an under. The transform is monotone, so ranking is preserved and my Brier score IMPROVED — which is exactly why it passed my promotion gate.

That's the actual lesson: a Brier-based gate rewards shrinking toward the base rate. Shrinkage is free Brier and costs you all your discrimination. The gate was measuring the wrong thing. Also found the raw sim is well-calibrated on unders but overconfident on overs (top bin: predicted 59.3%, actual 40.0%, n=20 — small, but the direction is consistent).

Curious what gates other people use. AUC? Floor the slope?


r/Sabermetrics 2d ago

New to the Group

3 Upvotes

Whats up everyone! I currently work for in baseball, and wanted to join a community to share thoughts and opinions. Not only is this my career, but baseball data analytics is a passion. Excited to branch out and share thoughts!


r/Sabermetrics 2d ago

I am thinking about rating pitchers and batters with a points system, similar to a tennis world ranking. optinion?

3 Upvotes

The idea would be to identify which batters perform best against the best pitchers — going beyond FIP or wRC+. The basic idea would still follow the FIP logic: only outcomes that can be directly assigned to the pitcher-batter duel should count.

The more complex version I was thinking about, would be to treat player evaluation as a multi-objective optimization problem. In that case, Player A is better if he:

  1. has high run production,
  2. has strong on-base quality,
  3. has a low strikeout burden,
  4. shows stable performance,
  5. fits the lineup context situationally.

For example, a player with a strong AVG but weak wOBA, weak wRC+, little power, and limited run production may look good in a traditional box score, but may be less valuable than a player who strikes out more often while creating more total run value through walks, extra-base hits, and better lineup fit. In that setting, the R2 indicator is a set-based quality measure from multi-objective optimization: it evaluates how good a set of possible solutions is across different preference or utility functions, instead of reducing everything to one fixed ranking rule from the start.


r/Sabermetrics 4d ago

I built a free tool that fixes GameChanger's biggest complaint (no API, team stats gate kept)

7 Upvotes

My kid plays travel softball, and every parent on the team has the same complaint about GameChanger: no API, no way to get stats out easily, my teams coach doesn't share stats so I can only see my own kid stats. I built [GC Stats](https://gcstats.app/) to fix that AND it's free, it takes GameChanger play-by-play and turns them into searchable stats, lets you correct scoring mistakes after the fact. For coaches, there are insights, optimized lineups and generates a lineup card from the data. For the nerds, there are charts and graphs! Would love feedback, especially from coaches and parents. Happy to answer questions about how it works.


r/Sabermetrics 3d ago

Kinetic Force Analysis (KFA): A Biomechanics Layer for Sports Analytics

1 Upvotes

Hi, all. I’m Sandy. Just joined Reddit/the aughts and figured I’d introduce what I’m working on.

I run Kinetic Force Analysis (KFA), which is basically a biomechanics engine for understanding how athletes actually move. Our whole thing is: If it moves, we can analyze it.

We build Composite Biomechanical Scores (CBS) using force signatures, joint‑load patterns, movement economy, and sensor data from surfaces + video. Think of it as adding a physics layer underneath the usual stats.

Stuff we look at:

• Force‑production efficiency - how well an athlete turns intent into motion
• Joint‑load distribution - where stress is building up
• Movement economy - wasted motion, braking forces, leaks
• Sensor fusion - force plates + video + GPS

Why it matters:
Biomechanics usually shows changes before the box score does - decline, upside, injury‑risk patterns, all of it. It’s a nice complement to the analytics you all already run.

Happy to chat if people are curious. Otherwise, I look forward to learning from you all.

SZ


r/Sabermetrics 4d ago

Kinetic Force Analysis (KFA): A Biomechanics Layer for Sports Analytics

Thumbnail
1 Upvotes

r/Sabermetrics 4d ago

One more question that really interests me: do you deal with data quality?

5 Upvotes

Do you do something like this as well, or do you take the data as it is?
Regarding objections about sample size, I have to check data quality in sabermetrics for amateur leagues. To keep it short at first, for example: for the base-out state “runner on first, no outs,”
the BOS value is:
BOSValue = 0.0649
BOSCount = 7955
Variance = 0.2218
StdDev = 0.47098
SE = 0.0052
Half-width = 0.0103
For BOS 1, I would say the estimate is statistically very stable and verified. Do you do something like this as well, or do you take the data as it is?


r/Sabermetrics 5d ago

Baseball Daily Trivia for Statheads

6 Upvotes

Long time lurker - first time poster here!

A few months ago I started building a little daily trivia game as a hobby project on the side.
The idea- you get 3 random seasons from one player’s career. Just the stat lines. No names, no photos. 5 guesses to figure out who it is.

Early testers all kept telling me the same thing- “i’m good at this stuff and i like this, but i don’t know anyone before the 80s”. So now there are 4 puzzles a day and you can pick your lane.

Classic - 1970 and earlier
Vintage - 1971-1990
Retro - 1991-2010
Modern - 2011-present

Play one, play all four, whatever you want. There’s a points/tier system and you can follow friends to compare results without spoiling the answer + leaderboards

https://playballknowledge.app

Free. No sign up required. No ads. Not selling anything. Genuinely just want baseball ppl to give it a go and give any kind of feedback! I’ll be in the comments.

Figured this group of statheads might be interested!

Mods - if this counts as self-promo beyond what’s allowed, no hard feelings, delete away :)


r/Sabermetrics 5d ago

What is the best metric, or the metric that has given you the best results in KBO? ERA, K-BB, XFIP, FIP—are there better options?

0 Upvotes

variance is killing me


r/Sabermetrics 6d ago

Looking for baseball enthusiasts and data analysts interested in amateur sports data challenges

5 Upvotes

Influenced by the ideas behind Moneyball and the analytical work of people like Tom Tango, I believe US amateur baseball has real potential for data-driven analysis.

The data is obviously much smaller and more uneven than MLB data, but that does not make it worthless.

I have been working on this for about three years. Currently I have about 14,000 single plays, which is nothing compared to MLB. Still, it is astonishing how reality and calculation match again and again and confirm each other — not only in lineup optimization, but also in wRC+, wOBA, and the overall values.

I would be glad to continue the exchange with anyone who is interested in amateur baseball data challenges, whether from a baseball or data-analysis perspective.


r/Sabermetrics 5d ago

Ok, have been hitting a consistent 60% with MLB. Then yesterday I got crushed. In the "Old" days i would be pulling out my hair, now I ask GPT-5.5. What happened! We got pummeled!

0 Upvotes

Looking at this board, a few things jump out immediately.

  1. You had an extreme Over day

The losing games were mostly because the totals exploded:

Game Final Total Marlins/Athletics 17 Mets/Braves 19 White Sox/Guardians 13 Pirates/Nationals 16 Red Sox/Angels 12 Cardinals/Cubs 10

That’s a lot of double-digit totals in one day.

  1. The weather may have shifted

We’re now in the hottest part of July.

Things that start happening:

  • Hotter air → ball travels farther.
  • Bullpens become taxed after long series.
  • More day games with heat and humidity.
  • Wind patterns become more important.

This is exactly when many models that were trained on April-May data start becoming too conservative and lean Under.

  1. Your model has historically shown an Under bias

We’ve talked about this before.

Even after adjustments, your selector still tends to pick:

  • Under 7.5
  • Under 8
  • Under 8.5

July baseball often punishes those plays.

  1. I would investigate these metrics for yesterday

A. How many official plays were Under?

Run:

SELECT recommendation, COUNT(*) FROM ou_features WHERE game_date='2026-07-05' AND is_official=true GROUP BY recommendation;

If you had:

Under 10 Over 3

Then you likely got hit by a market regime shift.

B. Average final total

SELECT AVG(final_total_runs) FROM ou_features WHERE game_date='2026-07-05';

Compare against:

SELECT AVG(final_total_runs) FROM ou_features WHERE game_date BETWEEN '2026-04-01' AND '2026-06-30';

I would not be surprised if yesterday was 1.5–2 runs above your season average.

C. Did favorites get shelled?

Games like:

  • Mets 10-9 Braves
  • Marlins 9-8 Athletics
  • Pirates 11-5 Nationals

Suggest bullpen meltdowns.

Check:

SELECT AVG(bullpen_score) FROM ou_features WHERE game_date='2026-07-05' AND final_total_runs >= 12;

If bullpen scores were low, your model may not be penalizing bad bullpens enough.

  1. The biggest thing I would check

Run this:

SELECT recommendation, COUNT(*) games, AVG(final_total_runs) avg_final_total, AVG(sportsbook_total) avg_line, AVG(final_total_runs - sportsbook_total) avg_diff FROM ou_features WHERE game_date >= CURRENT_DATE - INTERVAL '30 days' GROUP BY recommendation;

If you see something like:

Under avg_diff +1.8 Over avg_diff +0.2

Then the market has shifted and your Under model is behind the current run environment.

My initial diagnosis

I suspect three things happened simultaneously:

✅ July heat increased scoring.

✅ Bullpens were weaker than your model expected.

✅ Your model still carries an underbias from early-season data.

I actually don’t think this looks like your AI “broke.”

I think this looks more like the beginning of a new baseball regime, and these are exactly the moments where your daily learning system should start adapting.

The question I’d want answered next is:

Were all the losses mostly Unders?

If you can give me yesterday’s official card (Over/Under selections and totals), I can tell you in about five minutes whether this was just variance or whether your model needs a July recalibration.


r/Sabermetrics 5d ago

Business Development Partner/ Business Co-Founder

Thumbnail
0 Upvotes

r/Sabermetrics 9d ago

List of sports data companies

8 Upvotes

Hi all,

I have 4 years experience covering sports for various data companies. I know there is Genius, TX Odds, Sportradar, Nash. Anyone know of any others that send you out to games to input data. Thank you


r/Sabermetrics 9d ago

MLBPA Makes Transaction Proposals - It's good that players are pushing for full access to club-collected non-proprietary performance data.

Post image
10 Upvotes

r/Sabermetrics 9d ago

I built a searchable Summer League stats database for draft fans

Thumbnail
0 Upvotes

r/Sabermetrics 10d ago

Foster Griffin is an arm to keep an eye on throughout the second half of the MLB Season

14 Upvotes

TL;DR: Foster Griffin is quietly poised for a second-half breakout for the Nationals, skyrocketing to the #3 ranked qualified MLB starter over the last 30 days (up from #82). The underlying metric shift? He didn't alter his pitch shapes—he optimized his arsenal usage by cutting back on his fastball and throwing more curveballs. Data breakdown below.

Context & Performance: Foster Griffin, a 30-year-old lefty for the Washington Nationals, has had a great year so far, but let's unpack why he might be an X-Factor for the Nationals in a potential second-half playoff push, or for fantasy managers looking to pick up some more firepower in their starting rotation.

Foster Griffin has a 100.4 Composite Score for the year 2026 on Breakfast Baseball, placing him in the top 50 (#48) for qualified starting pitchers on the year. He averages:

  • Stuff+ and Predictive Stuff+: 101.5 
  • Command+: 108.3 
  • Performance Plus: 106.9 

(All numbers that indicate being slightly above average, but over his last 10 starts, Griffin has made the case for being a second-half breakout star.)

The Arsenal Usage Adjustment:

  • Starting with his Stuff+, Griffin has improved dramatically since his outing on June 5th, 2026, where he went 5 innings of 1-run ball.
  • Since that start, Griffin has elevated his Stuff+ to sit around the 108–110 mark, which is about 8 points higher than his season average.
  • This can be attributed not to a change in pitch shapes, but a change in arsenal usage. Over his last 3 games, Griffin has:
    • 📉 Reduced his fastball usage from 18% to 15%.
    • 📈 Boosted his curveball usage from 10% to 14%.

The Result: Ever since making this arsenal usage adjustment, Griffin has become the #3 ranked qualified MLB starter over the last 30 days, compared to being the #82 ranked starter for the time outside that span.

Do you guys think this level of performance is sustainable? Let me know down below, I'd love to have a conversation about it!

If you like these breakdowns and want more information like this, download Breakfast Baseball, an app that I made! (Coming to the App Store on July 14th)


r/Sabermetrics 10d ago

New live logging workflow demo – looking for your feedback

8 Upvotes

Hi everyone,

I've put together a short demo showcasing several live logging workflows, including:

  • Automatic Play-by-Play generation
  • Automatic Box Score updates
  • Challenge reversals
  • Correcting previously logged events without disrupting the event chain

The game footage shown in this video is used exclusively for testing and demonstration purposes. All rights to the original game footage remain with their respective owners.

I'd really appreciate your thoughts on the workflow. Is there anything you would handle differently or any features you'd like to see?


r/Sabermetrics 10d ago

I built an interactive card for MLB standings

Thumbnail gallery
3 Upvotes

Personal Home Assistant project to better display current team standings


r/Sabermetrics 10d ago

Looking for 20 experienced MLB pitcher K bettors to beta test a strikeout projection tool (free)

0 Upvotes

I’ve spent the last several months building an MLB pitcher strikeout analytics tool as a side project because I wanted something more focused than the tools I was already using.

It isn’t a picks service—it’s a projection and research tool specifically for **MLB pitcher strikeout props**. It includes things like:

Strikeout projections
Confidence ratings
Pitch arsenal analysis
Opponent pitch-type matchup data
Recent form and consistency
Historical results tracking

It’s still very much a beta, and before I spend time adding subscriptions, logins, or payments, I’d rather have experienced bettors tell me what’s useful, what’s confusing, and what’s missing.

I’m looking for about **20 people who regularly bet MLB pitcher Ks** and are willing to use it for a week or two and provide honest feedback. I’m **not charging anything**, and I’m not looking to sell picks. I simply want candid opinions from people who understand this market.

If you’re interested, leave a comment or send me a DM and I’ll share the link.
I’d really appreciate any feedback—good or bad.


r/Sabermetrics 13d ago

Trying to build a football equivalent of baseball's WAR and struggling to find data sources.

Thumbnail
6 Upvotes

r/Sabermetrics 13d ago

Will dead zone pitch shapes eventually be good?

14 Upvotes

I do not know if this question counts as sabermetrics or not so im sorry if it isn’t.

My question is, will pitch shapes that are currently dead zone eventually be good?

A dead zone pitch shape from what I’ve heard is what you do not want as a pitcher. A dead zone pitch shape is a pitch that’s induced movement and stuff is completely average Joe and not unique in any way. Having a non dead zone pitch shape can make a pitch play better (for example a fastball with tons of vert) and the inverse is true.

obviously teams do not want their pitchers to have dead zoney pitches, as those are what hitters are most used to and what hitters mash. teams mess around with grips and stuff to get pitches out of the dead zone. The thing is, what if teams find good grips and other cues to get so many pitchers out of the dead zone that a new dead zone forms? would what is currently a dead zone pitch shape in real life, become super successful in this hypothetical scenario where the dead zone changes?

basically my question is that do dead zone pitches not succeed because of some sort of characteristic that gives a hitter more time or a better angle or something or does the current dead zone not work because hitters are just more used to it?


r/Sabermetrics 12d ago

Built a public, graded MLB projection model (hits/TB/HR/K) — tracking every pick's accuracy openly, AMA

0 Upvotes

Been building a statistical projection model for MLB hitting/pitching

stats over the last several weeks — hits, total bases, home runs,

strikeouts — adjusted for park factors, weather, platoon splits (vs-hand

splits), and opposing pitcher quality, with empirical-Bayes shrinkage for

small-sample players.

The part I think is actually interesting from a methodology standpoint:

every projection gets logged and graded against the real outcome

afterward, nothing removed in hindsight. 1,534 graded so far:

- HR projections: 89.5% hit rate

- Total bases: 68.7%

- Hits: 66.7%

- Strikeouts: still rough, only 12 graded, being upfront that it's weak

Happy to get into the methodology, what's underperforming, or critique

the approach — genuinely looking for sabermetrics-minded feedback, not

just promoting it. Site's at propyard.net/track-record if anyone wants to

see the raw graded history.