Tony ElHabr
banner
tonyelhabr.bsky.social
Tony ElHabr
@tonyelhabr.bsky.social
data person, mostly #rstats and ⚽️
An interesting iteration on something I also wrote about a while ago tonyelhabr.rbind.io/posts/xg-rat...
October 22, 2025 at 7:09 PM
per requested, an update to my gamestate xGD plots ahead of this weekend's MLS matches
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:55 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
@cata-bush.bsky.social is actually insane for this… this seems really easy to use, has great aesthetics, and includes just about every kind of plot you can imagine
September 16, 2025 at 4:10 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
Reposted by Tony ElHabr
That's it, folks, #VizBuzz has come to an end and we've crowned @tonyelhabr.bsky.social champion 👑👑👑

The finals was FILLED with ties, which give me life, including a tie for second between @johnbedwards.io and the mighty @qntkhvn.bsky.social

It's the end of VizBuzz, but it lives in our ❤️
#databs
June 27, 2025 at 2:55 AM
January 30, 2025 at 2:59 PM
An annual must read. Happy to see my own writing linked here.
Continuing the tradition, I have compiled an end-of-year overview of the soccer analytics content that I liked the most in the past year. The 2024 edition includes pointers to over 160 resources, including research papers, blog posts, articles, podcasts, and books.

janvanhaaren.be/posts/soccer...
Soccer Analytics 2024 Review – Jan Van Haaren
Collection of the soccer analytics content that I liked the most in 2024!
janvanhaaren.be
December 30, 2024 at 3:47 PM
memes in 2014 vs. 2024
December 6, 2024 at 3:40 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
Game state xGD table of truth for the MLS 2024 playoff teams
November 23, 2024 at 3:42 PM
❤️ the references to public studies on finishing
Video #6 for the Footy Insights channel is live, and it's on Nicolas Jackson. He's been the source of much conversation as Chelsea's #9, so I did a deep-dive on his game and the idea of finishing skill. I believe it's the best piece of football content I've ever done
www.youtube.com/watch?v=VrZk...
Nicolas Jackson Profile, 2024: Wasteful Shooter, or a Future Star?
YouTube video by Footy Insights
www.youtube.com
November 10, 2024 at 4:05 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
Should we account for team quality (Elo) in xG models? While I'm against this in principle, I tried it out.✍️⚽

Featuring #rstats, tidymodels, SHAP values, and calibration curves.

🔗: tonyelhabr.rbind.io/posts/xg-tea...
Tony’s Blog - Should we account for team quality in an xG model?
Finnicking around (with an xG model) and finding out
tonyelhabr.rbind.io
December 30, 2023 at 4:34 PM
ordering an americano at a starbucks in a mall in europe is the most patriotic i’ve ever been
November 13, 2023 at 12:59 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
✍️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 on "meta-metrics" in soccer, replicating part of a 2017 JQAS article from Franks, D’Amour, Cervone and Bornn.

⚖️Does a metric reliably differentiate between players?
📈Does a metric measure a quantity that is stable over time?

tonyelhabr.rbind.io/posts/soccer...

#rstats
Tony’s Blog - Meta-Analytics for Soccer
To what extent does a state differentiate between players? How much does the stat's value change over time?
tonyelhabr.rbind.io
September 9, 2023 at 2:24 PM
"it's giving 2015" he said as he opened a script starting with `library(plyr)`
August 30, 2023 at 9:18 PM
Reposted by Tony ElHabr
For the latest entry in our Replication Series,
@tonyelhabr.bsky.social takes a look at EightyFivePoint's seminal "Exceeding Expected Goals" to revisit the age-old question of "finishing" in soccer.
www.americansocceranalysis.com/home/2023/8/...
August 28, 2023 at 9:13 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