Sign in

Andy Rowlinson

@numberstorm.bsky.social
2.4K followers 300 following 343 posts

Data insights and creator of mplsoccer, a Python library for football viz.

PostsRepliesMedia
Andy Rowlinson @numberstorm.bsky.social · 27/09/2026
Looking for a tester with statsbomb api access. I am planning to release this in the next couple of days. It's pretty neat and works on the open data too.
260
Reposted by Andy Rowlinson
PySport @pysport.org · 09/09/2026
𝐀𝐧𝐚𝐥𝐲𝐭𝐢𝐜𝐬 𝐂𝐮𝐩 𝟐.𝟎 𝐢𝐬 𝐡𝐞𝐫𝐞. 🇪🇺🇺🇸 Following the success of the first edition, PySport and @skillcorner.bsky.social are inviting the analytics community to work with open-source 𝐟𝐨𝐨𝐭𝐛𝐚𝐥𝐥 𝐝𝐚𝐭𝐚 (including body pose data) and 𝐛𝐚𝐬𝐤𝐞𝐭𝐛𝐚𝐥𝐥 𝐝𝐚𝐭𝐚 to turn new ideas into open-source projects with real value.
189
Reposted by Andy Rowlinson
Andy Rowlinson @numberstorm.bsky.social · 01/09/2026
The demo is available now here 🚀 andrewrowlinson.github.io/soccerviewer/
2133
Andy Rowlinson @numberstorm.bsky.social · 13/08/2026
If anyone is willing to lend some tracking data with player orientation, please DM.
011
Andy Rowlinson @numberstorm.bsky.social · 05/08/2026
Next up in mplsoccer... animations using @kubamichalczyk.bsky.social line tracking method 🚀
1112
Andy Rowlinson @numberstorm.bsky.social · 31/07/2026
🚀 mplsoccer v1.8.0 Adds custom heatmaps and sonars. Now you can plot on any tiling of rectangles you want.
293
Andy Rowlinson @numberstorm.bsky.social · 24/07/2026
🚀 I just pushed a new mplsoccer version: 1.7.1. It adds curved parameter labels to Radar charts and Pizza charts. Thanks to Palash Gupta for collaborating on this release.
1102
Andy Rowlinson @numberstorm.bsky.social · 17/07/2026
Yay finally have some firepower to tackle some new features for mplsoccer. Thank you @anthropic.com
1121
Andy Rowlinson @numberstorm.bsky.social · 04/06/2026
Reading someone's blog and saw this "distinction matters" tell tale Claude and just gave up. Is it worth reading stuff when you don't know the author might not have done any thinking?
140
Andy Rowlinson @numberstorm.bsky.social · 13/04/2026
Oops my new favourite typo: gut status
030
Andy Rowlinson @numberstorm.bsky.social · 30/03/2026
One quarter down.. some reflections a) the new models are so good and fast, even for analysis. b) meetings have gone from context switch problems, to oh fuck I could have done so much in that half an hour/hour c) it's hard to turn off the PC at the end of the day, you can get loads done in 15 mins
110
Andy Rowlinson @numberstorm.bsky.social · 22/03/2026
Claude Opus loves to say "good instinct" and then completely burn your idea to the ground 🔥🔥🔥
120
Andy Rowlinson @numberstorm.bsky.social · 19/03/2026
codex init
010
Reposted by Andy Rowlinson
Jane Mayl🍷n 🍇 @janetrad.bsky.social · 22/02/2026
"As his post goes on, his language gets older. 100 years older with each jump. The spelling changes. The grammar changes. Words you know are replaced by unfamiliar words" Fascinating. So how far back in time can YOU go?
deadlanguagesociety.com
How far back in time can you understand English?
An experiment in language change
33326147
Andy Rowlinson @numberstorm.bsky.social · 01/01/2026
New year, new resolution. I hand craft a lot of data insights and datasets. Hoping to use agents more to help. Thinking of writing a skill.md for each database schema (dataset) so an agent knows how to join views and tables, the main filters to use, and the key columns. #databs
130
Andy Rowlinson @numberstorm.bsky.social · 26/10/2025
I released an update to mplsoccer that should make it easier to add other sports.
130
Andy Rowlinson @numberstorm.bsky.social · 08/10/2025
I can confirm this works and looks ace. I may be able to finally release a Statsbomb football data parser with no dependencies apart from duckdb.
0100
Reposted by Andy Rowlinson
Matthew Mullins @mmullins.coginiti.co · 08/10/2025
We've open sourced QuackStore - a block-based caching extension for DuckDB! 🦆 QuackStore dramatically speeds up queries on remote data by intelligently caching only the blocks you need. Now available as a DuckDB community extension: github.com/coginiti-dev...
github.com
GitHub - coginiti-dev/QuackStore
Contribute to coginiti-dev/QuackStore development by creating an account on GitHub.
3214
Andy Rowlinson @numberstorm.bsky.social · 29/09/2025
Has anyone got any good examples where they've used AI in data work? #databs
420
Andy Rowlinson @numberstorm.bsky.social · 17/09/2025
I herby restart my campaign for my modest proposal to reduce the size of the penalty area to 30m wide. It might be more palatable to fans than Ted's arc from this pod.
341
Reposted by Andy Rowlinson
Emily Riederer @emilyriederer.bsky.social · 16/08/2025
Dev and deploy require of diff skills. @getdbt.com bridges the gap for #data pipelines, but what about MLOps? I explored how @posit.co {orbital} + dbt delivers "good enough" zero-infra MLOps for batch model scoring in database from python or #rstats models www.emilyriederer.com/post/orbital... 1/
emilyriederer.com
MLOrbs?: MLOps in the database with orbital and dbt | Emily Riederer
Playing with the potential, perils, and design principles of deploying ML models into the analytical database using orbital’s sklearn-to-sql translation, sqlglot, and dbt
5309
Reposted by Andy Rowlinson
DJ Pardis @djpardis.com · 24/07/2025
I have finally published my post about Moneyball, as promised (a long time ago). If you're interested in baseball, numbers, or movies, please take a look. I'd love to know what you think. cc @matsonj.com @alexnoonan.bsky.social djpardis.medium.com/revisiting-m...
djpardis.medium.com
Revisiting Moneyball
Data, sports, payrolls, and memes
2123
Andy Rowlinson @numberstorm.bsky.social · 14/07/2025
Wild. Need to try this!
120
Andy Rowlinson @numberstorm.bsky.social · 10/07/2025
🚀 mplsoccer 1.5.1 released @dmitry.mclachbot.com adds the capability to use custom slice labels in the pizza charts
Use the alt_text_values argument to add custom slice labels.Example showing the pizza chart with custom labels instead of percentiles.
041
Reposted by Andy Rowlinson
Joris Bekkers @unravelsports.bsky.social · 07/07/2025
🌀 𝐄𝐅𝐏𝐈: 𝐄𝐥𝐚𝐬𝐭𝐢𝐜 𝐅𝐨𝐫𝐦𝐚𝐭𝐢𝐨𝐧 𝐚𝐧𝐝 𝐏𝐨𝐬𝐢𝐭𝐢𝐨𝐧 𝐈𝐝𝐞𝐧𝐭𝐢𝐟𝐢𝐜𝐚𝐭𝐢𝐨𝐧 ⚽ The newest release of the 𝒖𝒏𝒓𝒂𝒗𝒆𝒍𝒔𝒑𝒐𝒓𝒕𝒔 Python package (v1.1.0) now includes the functionality of my latest research paper. 🔗https://tinyurl.com/unravel-efpi
1122
Andy Rowlinson @numberstorm.bsky.social · 22/06/2025
Tried this out on mplsoccer. Definitely impressive deepwiki.com/andrewRowlin... But , I think the generated docs are more interesting for someone looking to contribute to the codebase, rather than users.
deepwiki.com
andrewRowlinson/mplsoccer | DeepWiki
mplsoccer is a Python library for plotting soccer/football charts in Matplotlib and loading StatsBomb open-data. This page provides a high-level overview of the library's architecture, components, and
140
Andy Rowlinson @numberstorm.bsky.social · 13/06/2025
🚀 @unravelsports.com added some new formations to mplsoccer for his formation detection work. Hopefully will see some results some day.
230
Andy Rowlinson @numberstorm.bsky.social · 12/06/2025
@unravelsports.com just seen your PR today. Of course adding extra formations is helpful and happy to add it in. I'll try and look at it soon 🙏
100
Andy Rowlinson @numberstorm.bsky.social · 01/05/2025
Yamal is so good he pretty much broke my axes when I looked at young attacking outliers. Streets ahead.
091
Andy Rowlinson @numberstorm.bsky.social · 24/04/2025
It's early days, but seeing if I can adapt mplsoccer to other sports
130
Andy Rowlinson @numberstorm.bsky.social · 22/04/2025
I have successfully switched mplsoccer docs to install via uv rather than conda. It took a while to fix some install problems with lxml. I think Conda still wins is installing the complex C dependencies in some data science projects (e.g. PyMc), but worked around it here with apt install.
030
Andy Rowlinson @numberstorm.bsky.social · 17/04/2025
The margins between winning the Premier League and being runner up are incredibly tight, just seven points separates the teams on average.
120
Andy Rowlinson @numberstorm.bsky.social · 27/03/2025
If learning from survey data, how do you feed in the non-response weights? #databs
100
Andy Rowlinson @numberstorm.bsky.social · 18/03/2025
Musing about the dark patterns you could build into a stadium design to cement home advantage 1/ screens showing the opposition making mistakes or missing penalties around their dressing room
Concept art of the new Manchester United stadium by Foster and Partners
211
Reposted by Andy Rowlinson
Gaël Varoquaux @gaelvaroquaux.bsky.social · 10/03/2025
🔥🎉New library: boosting for survival analysis, including multiclass (competing risks) Survival = missing outcomes because limited observation window (common in medicine, marketting...) soda-inria.github.io/hazardous Gives very fast boosted-trees for survival
14811
Andy Rowlinson @numberstorm.bsky.social · 21/02/2025
uv init
130
Reposted by Andy Rowlinson
PySport @pysport.org · 13/02/2025
🚀 Great to see this improved data structure! Glad we could be of some help with this. Thanks @pff-fc.bsky.social!
183
Andy Rowlinson @numberstorm.bsky.social · 13/01/2025
👏streamlit-soccer will solve some things mplsoccer isn't great at like animations and interactivity.
040
Andy Rowlinson @numberstorm.bsky.social · 07/01/2025
New blog on booting it long.
media.tenor.com
a blurry picture of a man saying have it on a field
Alt: Peter Kay in a John Smiths advert. Booting the ball out of play instead of doing keeping uppies.
030
Andy Rowlinson @numberstorm.bsky.social · 06/01/2025
Set pieces seem to be hot at the moment 🔥 so I decided to investigate whether lumping it long into touch is a good ⚽️ strategy andrewrowlinson.github.io/blog/footbal...
andrewrowlinson.github.io
Kicking For Touch – numberstorm blog
Is kicking for touch a viable football (soccer) strategy?
191
Andy Rowlinson @numberstorm.bsky.social · 23/12/2024
This holidays, I'm going to attempt to learn enough javascript/typescript to build an API 🤞.
260
Andy Rowlinson @numberstorm.bsky.social · 08/12/2024
Spotify label fail 🤘 #divorceddadrock
For some reason Spotify thinks my genres are annoyed, divorced dad rock and fun
000
Andy Rowlinson @numberstorm.bsky.social · 06/12/2024
Anyone have a good resource for customers who bought this product also bought these products. How is it usually implemented in practice? #databs
520
Andy Rowlinson @numberstorm.bsky.social · 02/12/2024
I just played floorball/ salibandy and most of the goals came from wide areas. Does anyone know is there any similar expected goals metrics for floorball?
An image of people playing floorball, which is also called salibandy in Finnish.In football most goals are scored in a relatively small area because the chance of scoring outside the penalty area is low. Around the penalty arc, there is an 8% chance of scoring which increases to around 50% when you are close to goal. Around the penalty spot there is a 17% chance of scoring.
110
Andy Rowlinson @numberstorm.bsky.social · 24/11/2024
Often details make a great #dataviz. A few things I noticed here: a) the pentagons are facing the flow of the lines b) the group A..H are left/right aligned c) the bold font for the knockout and group so it's easy to see 👀 d) choice or circle for representing the group stage
120
Andy Rowlinson @numberstorm.bsky.social · 23/11/2024
I'm the king of unfinished side project.. mplgrid is 80% there just need to figure out a better API 1/3 github.com/andrewRowlin...
100
Andy Rowlinson @numberstorm.bsky.social · 23/11/2024
Could be useful for the football crowd. The code is available too. Who is going to be the first to try it with @carloncarpenter.bsky.social wide angle footage?
260
Reposted by Andy Rowlinson
Evan Peck @peck.phd · 20/11/2024
Trying something new: A 🧵 on a topic I find many students struggle with: "why do their 📊 look more professional than my 📊?" It's *lots* of tiny decisions that aren't the defaults in many libraries, so let's break down 1 simple graph by @jburnmurdoch.bsky.social 🔗 www.ft.com/content/73a1...
921577458
Reposted by Andy Rowlinson
Maija Karala @maijakarala.bsky.social · 21/11/2024
Where did our lost rhinos roam? Distribution charts based on bone finds (individual dots) and habitat suitability for the four fluffy rhinos of late Pleistocene. These are of course approximate and might not include all obscure finds. #Sciart
Illustration of extinct narrow-nosed rhino with a map in the background showing it lived in central and southern Europe, northern Africa and some way into western AsiaIllustration of ”Siberian unicorn” or Elasmotherium sibiricum with a map on the background showing it lived in Eastern Europe and central AsiaIllustration of a woolly rhinoceros with a map in the background showing it had a very wide distribution from southwestern Europe all the way through Europe and Russia to the Pacific coast and northern China.Illustration of a merck’s rhinoceros with a map in the background showing it lived in a large area from southwestern and central Europe to western Asia, parts of Siberia and northern and eastern China.
24942258