Tony ElHabr
@tonyelhabr.bsky.social
2.3K followers 400 following 36 posts
data person, mostly #rstats and ⚽️
Posts Media Videos Starter Packs
tonyelhabr.bsky.social
San Diego’s xGD trend against playoff opponents seem to be pretty close to their overall trend.

In contrast, Inter Miami’s stands out as one of the team’s whose numbers drop off the most against stronger opponents.
tonyelhabr.bsky.social
I have to do some estimations for extra time from match event logs, which leaves some leeway for error. This is why I favor the fbref's listed xGD/90 figure when showing the overall xGD per team.
tonyelhabr.bsky.social
Your math is probably not bad. It's supposed to be Leading xGD * Leading Duration % + Trailing xGD..., which does come out to -0.03. To "square" things with fbref, I end up using what they list as total xGD/90 on the right-hand side, which was +0.03 at time of scraping. (Looks like it's +0.01 now.)
tonyelhabr.bsky.social
lmk if this is along the lines of what you're looking for. happy to iterate
tonyelhabr.bsky.social
absolutely! i’ll post a follow up when i can
tonyelhabr.bsky.social
MLS playoffs are coming soon, so here's my cheat sheet to digest how every team has performed this season
tonyelhabr.bsky.social
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
tonyelhabr.bsky.social
it was offseason for everyone, and now i'm rusty with my viz 😅
tonyelhabr.bsky.social
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)
Reposted by Tony ElHabr
libbyheeren.bsky.social
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
tonyelhabr.bsky.social
i feel like this points to a selection bias that pre-shot xG may not capture. players who are good with their weak foot are more likely to take more shots with it and balance out goals with misses, and those who are poor with their weak foot will only take shots with it in very favorable positions
tonyelhabr.bsky.social
An annual must read. Happy to see my own writing linked here.
janvanhaaren.be
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
tonyelhabr.bsky.social
memes in 2014 vs. 2024
tonyelhabr.bsky.social
xGD is live from Opta here (including the ongoing matches)
tonyelhabr.bsky.social
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
Comet / dumbbell plot showing the counterfactual standings for the English Premier League in the 2024/25 season if the result of every 1-score match was flipped, through 2024-11-29. Tottenham is at the top, Ipswich is at the bottom.
tonyelhabr.bsky.social
Game state xGD table of truth for the MLS 2024 playoff teams
tonyelhabr.bsky.social
❤️ the references to public studies on finishing
moesquare.bsky.social
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
tonyelhabr.bsky.social
the great bsky migration may be enough to get me to blog again
tonyelhabr.bsky.social
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
An 8x12 heatmap showing the average possession value (PV) of historically incomplete passes from the center spot (annotated in blue) to all areas of the pitch. The relative frequency of unsuccessful passes from the center spot to each other cell is shown as a percentage. The exact PV value associated with an incomplete pass ending at the hover point can be viewed above the pitch. Black cells represent areas to which unsuccessful passes from the center spot have never been made. An 8x12 heatmap (gif) showing the average possession value (PV) of historically incomplete pass from the hover spot to all areas on the pitch. The relative frequency of successful passes from the center spot to each other cell is shown as a percentage. The heatmap updates as the user moves their mouse over cells on the heatmap.
tonyelhabr.bsky.social
where is my GitHub achievement badge 😈