Ben Clemens's Avatar

Ben Clemens

@benclemens.bsky.social

Writer at FanGraphs. Dog lover. Wife guy. Got the talking down, we'll have to see about the listening.

5,918 Followers  |  143 Following  |  393 Posts  |  Joined: 07.07.2023
Posts Following

Posts by Ben Clemens (@benclemens.bsky.social)

"No Shelter" is still on my running playlist

03.03.2026 17:43 — 👍 1    🔁 0    💬 0    📌 0

Right now that's just 1stdev in each direction to show uncertainty of movement

03.03.2026 06:19 — 👍 0    🔁 0    💬 1    📌 0
Post image

Just another tool I'm goofing around with in very early stages, but look how perfectly Tarik Skubal's arsenal frames the strike zone when he's locating his fastball at the top of the zone.

03.03.2026 06:03 — 👍 10    🔁 0    💬 1    📌 0

Like, I'm with you. But this is embarrassing.

03.03.2026 00:26 — 👍 1    🔁 0    💬 0    📌 0

Then don't quote him

03.03.2026 00:25 — 👍 2    🔁 0    💬 2    📌 0

lose money on that deal? They might make less money, but that's not the same thing. This cannot be considered serious analysis. "Oh, poor teams, losing money by charging 30 bucks for some carbonated water, processed meat, and potatoes." This is serious economics today? Bring on the robots

03.03.2026 00:23 — 👍 13    🔁 0    💬 4    📌 0

In an article today at The Athletic, I saw this quote from Andrew Zimbalist:
"Even though the Cardinals might lose money on it because they're giving away too many hot dogs and french fries."

He's talking about a $29 dollar all you can eat deal. Um, what? How in the world would the Cardinals...

03.03.2026 00:23 — 👍 15    🔁 1    💬 1    📌 0
Post image

Pardon the mobile screenshot, but look, his swing is just perfect for it

01.03.2026 16:09 — 👍 1    🔁 0    💬 1    📌 0

Send this to our mailbag column so we get it in a pretty format. I'm down to answer though

27.02.2026 05:15 — 👍 1    🔁 0    💬 1    📌 0

I answered a few questions from the comments of my last $/WAR article, and moved replacement level around just for funsies while I was at it

26.02.2026 19:43 — 👍 1    🔁 0    💬 0    📌 0

I'm out skiing today, but I want to highlight this research on the cost of a win in free agency. I think it's both intuitive and useful

24.02.2026 18:55 — 👍 7    🔁 0    💬 2    📌 0
Post image

No time to chat today, too busy buying dog t shirts

23.02.2026 15:17 — 👍 3    🔁 0    💬 0    📌 0

The worst part of making small upgrades is learning that things you think are small are actually impossible. Come up with a new color scheme and calculate league average dynamically? Simplicity itself. Flip the axes of a graph without making it look ridiculous? Hope you have some free time.

20.02.2026 21:14 — 👍 8    🔁 0    💬 2    📌 0

This was supposed to be an article showing off the FG Lab, but instead I just spent a while analyzing Logan Webb's weird platoon splits

20.02.2026 16:44 — 👍 11    🔁 3    💬 0    📌 0
Updates: four improvements to data visualization tools

Updates: four improvements to data visualization tools

Huh. Updates. Cool. (www.fangraphs.com/lab/changelog)

20.02.2026 01:39 — 👍 6    🔁 0    💬 0    📌 0

That said, with the Lab checked off (for now, we have plenty of new tools in the pipeline) my big project for the year is to dig through the PitchingBot codebase and make new fun/useful stuff, so expect more on this front

19.02.2026 22:29 — 👍 3    🔁 0    💬 0    📌 0

Boy, we should probably come up with some kind of PitchingBot Visualizer to investigate this in greater depth 😂

19.02.2026 22:16 — 👍 2    🔁 0    💬 0    📌 0

and performed a count-adjusted version of PitchingBot grading so that 'this individual pitch has a 70 grade' would have meaning. But that's ever so slightly different from adding them all up and dividing by overall average, the real method, since that doesn't have count as a variable anywhere.

19.02.2026 21:56 — 👍 0    🔁 0    💬 0    📌 0

league throws 15%, so it's off a little, but it basically comes out in the wash. We measure every pitch relative to the all-count league average, add em up, divide. But since the 0-0 baseline is less nasty than the 2-strike baseline, you get weird effects. So we created count-level averages...

19.02.2026 21:56 — 👍 0    🔁 0    💬 1    📌 0

Hey you asked for it - for various reasons, the average pitch in each count (the normalizing factor that sets 50 on the scale) is different, and it's particularly different in modeled stuff. Taken across the whole sample, nbd; maybe this one pitcher throws 17% two-strike fastballs and the...

19.02.2026 21:56 — 👍 0    🔁 0    💬 2    📌 0
Post image

Don't expect this fast of service all the time but Sean and I are trying to get some of the first improvements out fast. Here's my dev-version mockup, should be out before too long:

19.02.2026 21:07 — 👍 0    🔁 0    💬 1    📌 0

In two-strike counts in 2025 where he threw a slider, Helsley recorded a strikeout on 18.9% of pitches. In his career before last year, that rate was 31%. Call it what you want - he didn't get strikeouts because he couldn't end at-bats with his slider, and it hurt him

19.02.2026 20:51 — 👍 0    🔁 0    💬 1    📌 0

Join the club, because I do that all the time too. I blame the way the human brain works

19.02.2026 20:40 — 👍 0    🔁 0    💬 0    📌 0

I think the real risk is like 'Zebby gets hurt, or another guy gets hurt, and now the minor leaguers are throwing 3 innings a start and the bullpen collapses'. It's kind of shocking how many pitchers can get hurt out of nowhere these days

19.02.2026 19:15 — 👍 1    🔁 0    💬 1    📌 0

Okay, I gotcha here. Let's say Lopez+ bullpen = 3.86 RA/game and Zebby+bullpen = 4.7 RA/G. Twins score 4.2 R/G. Plug that into Pythag: (RS^1.83)/(RS^1.83+RA^1.83). You'd get a .537 W% for the Lopez version and .448 for Zebby. Across 25 starts, that's the diff between 13.4 wins and 11.2 wins.

19.02.2026 18:27 — 👍 1    🔁 0    💬 2    📌 0

It's a long story related to the fact that PitchingBot overall grades are count-agnostic, whereas we have to change that for the individual count grades. We settled on sticking with the unweighted ones, which have the most predictive power - but if you weight by counts, there's a bit of noise

19.02.2026 18:22 — 👍 3    🔁 0    💬 1    📌 0

We had a blast talking about whether Jordan Walker can figure it out (probably not! But I hope so!), what we think of the new front office direction, long-term roster strategy, and much more

19.02.2026 16:48 — 👍 8    🔁 2    💬 0    📌 0

Oh look, a conveniently scheduled time to ask questions or demand new Lab features

19.02.2026 16:38 — 👍 5    🔁 2    💬 1    📌 0

Welcome to my new life, incidentally. Make a chart, find a cool conclusion, make another chart that contradicts that earlier conclusion, investigate.

19.02.2026 16:27 — 👍 2    🔁 0    💬 1    📌 0

I think there's maybe something to his splitter being different, and the two-strike locations look pretty good to me even if PitchingBot is mixed (it likes them net of stuff, of course). But yeah, the fastball feels like sample size. Pretty cool either way though.

19.02.2026 16:26 — 👍 1    🔁 0    💬 0    📌 0