The 2023 Arizona Diamondbacks were projected for 67.5 wins. They won the pennant.
No individual stat on that roster predicted it. Their aggregate WAR didn’t project a World Series team. Other team metrics told a quieter story than the one playing out on the field every night. A year later, the Kansas City Royals jumped from 56 wins to 86 and swept the Orioles in the Wild Card round. Same pattern. The numbers said one thing. Watching the games said something else entirely.
Those gaps between what the stats say and what the season feels like are real. They’re also measurable. That’s what The Small Ball Vibe Score tries to do.
Why Traditional Metrics Flatten the Picture
Baseball has plenty of ways to evaluate a team. Win-loss record. Run differential. Power rankings. Each one captures something genuine about a club’s quality. But they share a structural blind spot: they treat time as flat.
If you're looking at pure numbers, a team that goes 5-2 in the first week of April gets the same credit as a team that goes 5-2 in the last week of September with a division title on the line. The math doesn’t distinguish between the two. A run scored in a blowout counts the same as a run scored in a walkoff.
If you watch your team every day, you know that just feels... wrong.
The way a win happens changes the mood of the next game. A comeback in the ninth feels different in the clubhouse than a wire-to-wire shutout. A tough loss with your ace on the mound lands harder than a blowout from a bullpen game nobody expected to win anyway.
Where This Started
I built a Vibe Score because I was trying to solve a problem I had as a Phillies fan. I watch every game. And the feeling after a walkoff win versus a blowout loss is, to me, a real thing that no traditional stat captures. It's not exactly data. It's a feeling. Not run differential. Not record against winning teams. Not any of the aggregated metrics that flatten a season into one number.
The mood shifts. You feel it when your team has it, and you feel it when they don’t. I wanted a metric that reflected that reality, recalculated every day, for every team.
It started as a personal project. I figured other fans might recognize the same thing.

What Vibe Score Tracks
Vibe Score runs on a 0-100 scale, recalculated daily for all 30 MLB teams. It’s not trying to predict wins or project playoff odds. It’s trying to answer a simpler question: how does it feel to be a fan of this team right now?
The inputs are deliberately weighted toward the short term. A team’s last week matters more than their April. Yesterday’s game carries real influence, because that’s how fandom actually works. A walkoff win on Tuesday night changes the entire energy going into Wednesday. A five-run loss where your starter got pulled in the third stays with you.
Here are some of the bigger factors we include in the formula:
Recent performance pulls from a rolling window, not the full season. Where the team has been lately tells you more about the current vibe than a six-month batting average.
Yesterday’s result gets outsized weight. Not just whether they won or lost, but how. Comeback wins, walkoffs, and blowouts each register differently, because they feel different.
Momentum tracks whether a team is climbing or falling in the standings week over week. Sitting in third place after gaining two spots feels nothing like sitting in third place after dropping two.
The position is the same. The energy isn’t.
Roster health factors in injuries, especially to key players. Losing your cleanup hitter to the IL changes the math. It also changes the clubhouse.
Those are some of the bigger levers. There are others. Some pull from Statcast data. Some look at how a team wins, not just whether they win. The full picture is deliberately layered, because the feeling of following a team is layered too.
Get daily baseball updates, free
Scores, recaps, standings and Vibe Checks every morning.
The Vibe Scale
Every team’s daily score maps to one of five categories:
| Score | Category | Emoji | The Feel |
|---|---|---|---|
| 80-100 | On Fire | 🔥 | Everything is clicking. Wins feel inevitable. |
| 60-79 | Warm | 😎 | Good stretch. Confidence building. |
| 45-59 | Lukewarm | 😐 | Treading water. Could tip either direction. |
| 30-44 | Cool | 😬 | Things are slipping. Fans are getting nervous. |
| 0-29 | Freezing | 🥶 | Nothing is working. Watching through your fingers. |
A team’s category can shift in a single day. That’s by design. Vibes move fast, and the score should too.
Guardrails That Prevent Overcorrection
Reactivity is the point, but overreaction isn’t. Vibe Score has built-in checks that keep it from doing anything absurd.
Early in the season, when sample sizes are tiny, the score pulls toward the middle. A 6-1 start in April won’t register the same way a 6-1 week in August would. The system knows how much data it has and adjusts its confidence accordingly.
First-place teams have a floor. If you’re leading your division, the score can’t drop into “Cool” territory no matter how rough the last few games were. Leading your division doesn’t feel cold. The math shouldn’t pretend otherwise.
Teams far out of contention have a ceiling. A last-place club can go on a hot streak and climb toward “Warm,” but “On Fire” stays out of reach when you’re 15 games back with three weeks left. I think that’s honest. The standings are part of the vibe whether anyone likes it or not.
What Vibe Score Doesn’t Do
I should be upfront about the boundaries. Vibe Score isn’t a projection system. It doesn’t predict who’ll win tonight or who’ll make the playoffs. It doesn’t replace WAR, OPS, or any other stat that measures individual player value. Those metrics do what they do, and they do it well.
What Vibe Score does is sit alongside them and provide context they can’t. A team’s best hitter can post a great OPS while the clubhouse energy is sinking. A roster with modest WAR totals can feel like a playoff team for three straight weeks before the stats catch up.
Anyone who watched those 2023 Diamondbacks already knows this. The number just didn’t exist yet.
Watching Baseball Is Fun... Mostly
When you're an everyday baseball watcher, you feel a certain comfort and madness simultaneously. For me, watching my team is a ritual. Win or lose, there's something fulfilling in knowing that I'm right there with them every step of the way. But as humans, we also tend to have a recency bias. Whatever happened most immediately seems the most important. One of the best things about baseball is that it's a long season. One of the worst things about baseball is that it's a long season. That's Vibe Check. It's the feeling of the everyday fan. Hopefully you find some joy in seeing it reflected. And hopefully you find some solace after an impossible loss when you see it stacked against other more traditional stats in your daily Small Ball team email.
See Your Team’s Vibe Score Every Morning
Vibe Checks get calculated once per day. We drop it into a daily baseball email that is customized to your team. It'll be in your inbox, everday, before you've turned on the coffee maker. It'll be there alongside the box scores, standings, schedules, injury reports, and stats, free, each and every during the season. Pick your team and subscribe.
