Tony ElHabr
banner
tonyelhabr.bsky.social
Tony ElHabr
@tonyelhabr.bsky.social
data person, mostly #rstats and ⚽️
reasons for changes from the prior version:

1. more data
2. the 8th and 9th place teams in the West have changed
October 18, 2025 at 9:53 PM
lmk if this is along the lines of what you're looking for. happy to iterate
October 3, 2025 at 7:45 PM
MLS playoffs are coming soon, so here's my cheat sheet to digest how every team has performed this season
October 3, 2025 at 3:05 PM
i believe the author’s name is Tyson Ni. (not sure if he is on bsky.)

i was made aware of these rankings from a @rwohan.bsky.social article
August 19, 2025 at 6:27 PM
Which Big 5 teams improved the most over the summer in the eyes of odds-makers? And which teams fell out of favor?

(Ratings from PitchRank)
August 17, 2025 at 2:15 PM
January 30, 2025 at 2:59 PM
memes in 2014 vs. 2024
December 6, 2024 at 3:40 PM
xGD is live from Opta here (including the ongoing matches)
November 30, 2024 at 4:48 PM
Fun hypothetical: How would the EPL table look right now if the result of every 1-score match was flipped?

Biggest risers:
1. Wolves: +9 pts, 17th -> 5th
2. Crystal Palace: +9 pts, 19th -> 8th

Biggest fallers:
1. Brighton: -12 pts, 2nd -> 18th
2. Aston Villa: -9 pts, 8th -> 19th

#rstats
November 30, 2024 at 2:43 PM
November 29, 2024 at 1:21 AM
Game state xGD table of truth for the MLS 2024 playoff teams
November 23, 2024 at 3:42 PM
the great bsky migration may be enough to get me to blog again
October 31, 2024 at 6:41 PM
Finally got around to trying out Observable JS in depth. It's really nifty! I used it to make some sick ⚽ plots in this post: tonyelhabr.rbind.io/posts/ball-p...

#rstats
April 21, 2024 at 1:33 PM
where is my GitHub achievement badge 😈
February 5, 2024 at 2:05 PM
i'm about to have a bad time, aren't i
February 4, 2024 at 1:58 PM
Yep, I’d say that’s right (at least the shot volume part). Lars Maurath identified that relationship in his post
December 30, 2023 at 6:13 PM
✍️ New blog post

A guide to identifying whether a team is "parking the bus 🚌" when they have a lead. I show that game state stats can be pesky to calculate, but they can lead to novel insights. ⚽

#rstats

tonyelhabr.rbind.io/posts/fbref-...
October 26, 2023 at 12:18 AM
nice me too
September 28, 2023 at 8:40 PM
✍️new blog post on using the tidymodels probably package to calibrate model predictions. #rstats

tonyelhabr.rbind.io/posts/probab...
September 13, 2023 at 12:27 PM
new blog post from yours truly: replicating a soccer analysis from 5 years ago, featuring Gamma-Poisson empirical Bayes estimation 🤓🤠

#rstats
tonyelhabr.rbind.io/posts/xg-rat...
August 28, 2023 at 2:11 PM
real ones say "dahta"
July 25, 2023 at 5:06 PM