Sign in

mark thompson

@markposts.bsky.social
4.8K followers 729 following 4.2K posts

data software engineer @ Twenty3 Sports || analytics blogger 2k13 || sport for all || (he/him) || ⚽🎾💻📰🏎️🤖 - mrkthmpsn.github.io

PostsRepliesMedia
mark thompson @markposts.bsky.social · 20/09/2026
Cleaned up the dice roller demo of reality being a single pane in a full stained glass window of possibilities lucky-scout.vercel.app The whole schtick here is that a player's past data creates a weighted die. But how weighted Kammy? Well, you'll have to check it out to find out
133
mark thompson @markposts.bsky.social · 05/09/2026
The way that player performance and talent is a range of possibilities, rather than a set number, has long fascinated me. But uncertainty is hard to demonstrate. So I made a thing to turn the data into a weighted die: lucky-scout.vercel.app
0124
mark thompson @markposts.bsky.social · 31/08/2026
Is it surprising that the shape of the distribution is like this and what is causing The Divot www.nytimes.com/athletic/754...
Swarm plot of Skillcorner top speed in km per hour, a generally normal distribution (against no clear numeric axis) with a strange depression just below the peak before a second 'mini peak' just below the average speed
451
mark thompson @markposts.bsky.social · 30/08/2026
Kinda astonishing how on-the-money The Numbers Game's predictions about analytics' future were (book first published in 2013)
The Numbers Game by Chris Anderson and David Sally. For some reason my copy has blue-tac solidly stuck to the front cover.Abridged predictions: 1) Analytics breakthroughs will come outside the big clubs 2) Analytics won't have a single iconic figure 3) volume of data will increase massively 4) analytics advances will focus on geometry and networks 5) goal-scoring rate will stay steady 6) spending gap between strikers and defenders will reduce 7) club organisation will become as important as on-field tactics 8) Sporting Directors will be the norm 9) Money will still talk 10) Traditionalists will resist analytics
030
mark thompson @markposts.bsky.social · 15/08/2026
bsky might not be popping off but it's not like threads is necessarily a huge well of engagement for football/soccer
Sean Dyche asking if the Charity Shield is a proper trophy on threads, which has 17 likes, 30 comments, 0 reposts
120
mark thompson @markposts.bsky.social · 09/08/2026
This really is an iceberg project. Take this, an empty France shot map. The basic trigger is set to compare shots to passes made, but, with no shots, this frequently fires at high significance. So you've gotta do the suppression of similar overlay types etc to reduce repeats.
010
mark thompson @markposts.bsky.social · 09/08/2026
The coolest thing is seeing overlays within (video) highlights: each highlight looks for recent overlays to bring them into the start of the clip. Helps give some nice texture that might not otherwise be cut into the highlights.
TV view of Argentina vs France men's World Cup 2022 final, highlight clip of Argentina's second goal with overlay of Argentina final third turnovers
141
mark thompson @markposts.bsky.social · 09/08/2026
There's a large amount of config: the factor scores, trigger types, overlay types, suppression of triggers/overlays for certain periods of time after one has been shown. Part of the idea was that I'd open-source this; tidy-up & (esp.) doc-writing has been tiresome, idk, shout if you're interested
Pitch view men's world cup 2022 final argentina vs france and france shot map overlay, showing their 4 shots for two goals
100
mark thompson @markposts.bsky.social · 09/08/2026
Different types of overlay, which can each be triggered in different ways (e.g. a shot map can be triggered by 'no shots' and 'lots of shots'). Triggers have two types of factor - 'base' (so you can set shot stuff higher than other stuff) and internal significance. Combine for a total factor.
Argentina vs France 2022 men's world cup final pitch view with final third turnovers overlay for france, and side-panel with multiple overlay 'candidates'
100
mark thompson @markposts.bsky.social · 09/08/2026
Having bad tech trouble trying to screen record, so here's the toy I've been working on lately: A 'TV overlay and highlights cutting' system using event data. Built with StatsBomb's open dataset, but built so you convert a provider data to the system's data structures
Data view of Argentina vs France men's 2022 World Cup final, 35 minutes in, showing an empty France shot map
171
mark thompson @markposts.bsky.social · 08/08/2026
Finally got around to starting this, a little over a decade after a great uni module which also featured some of her work
On Savage Shores: How Indigenous Americans Discovered Europe by Caroline Dodds Pennock
000
mark thompson @markposts.bsky.social · 05/08/2026
Still get a kick out of having my own designed version of my blog. The modern age, what a thing. (www.getgoalsideanalytics.com)
130
mark thompson @markposts.bsky.social · 03/08/2026
that's data
Screenshot of The Verge clip bluesky CEO talking about wanting bluesky to not solely be a liberal bubbleScreenshot of the post's stats: 59 reposts, 525 quotes, 163 likes
010
mark thompson @markposts.bsky.social · 03/08/2026
gotta quit while i'm ahead
Centurions futi game screenshot on sicko mode, 71 points 5th place finish, +26 goal difference
020
mark thompson @markposts.bsky.social · 11/07/2026
👀 getgoalsideanalytics.com
Screenshot of get goalside analytics dot com, showing a rebrand and nifty reading progress features
000
mark thompson @markposts.bsky.social · 07/07/2026
*taps the 'this is why you use a minimum ceiling on your xG timeline charts' sign*
futi app xG timeline of Switzerland vs Colombia, 66 minutes into the game -- the teams have 0.63 and 0.44 xG respectively, while the chart has a Y axis going up to 2.0, leaving a large amount of space in the top half of the chart, indicating a dull game
040
mark thompson @markposts.bsky.social · 29/06/2026
What's German for 'ooft'
Half time stats for Germany vs Paraguay. Germany had 79% possession but ended the half on 0.14 xG, less than Paraguay's 0.25xG
071
mark thompson @markposts.bsky.social · 28/06/2026
Barca women are the equivalent of Messi in any men's player attacking stats charts you do (also check out the NWSL parity!) (Data from 2023, 2023/24 seasons)
Scatterplot of time in the final third during teams' matches and the median share of final third time in that team's favour, for teams in 5 women's football leagues in 2023-2024. Barcelona sit close to 85%, while the top teams from other leagues are around 70-75%; NWSL teams all pretty much sit in a 40-60% band, the only league without clear outliers
051
mark thompson @markposts.bsky.social · 28/06/2026
In general (WSL aside, which actually *did* have a high in-play share), this just comes from a huge change in the way added time is done. imo this is a 'post-2022' thing, not a 'women's football' thing. 2022/23 was the year in-play time hit headlines www.getgoalsideanalytics.com/extra-time-f...
Twin heatmaps of women's leagues and men's leagues in the datasets for first and second half added time; men's dataset has a strong concentration in 0-2 minutes first half and 4-5 minutes second half added time played, while women's is far less strongly concentrated, with main concentration being 1-4 minutes first half and 4-7 minutes second half
011
mark thompson @markposts.bsky.social · 28/06/2026
Statsbomb have released a bunch of data for WoSo from 2022-2025. Teams in it play more in-play time (than a set of 2015/16 men's leagues), but not by playing a higher *amount* of the match-clock with the ball in play www.getgoalsideanalytics.com/extra-time-f...
Scatterplot of in-play time and share of game-time in-play of teams from 5 2023-2024 women's leagues, the 2023 World Cup, and 2025 Euros. with datapoints coloured by competition. The 2023 World Cup is like a strip all by itself north-west of the rest of the distribution, while the WSL teams all occupy the top-right quadrant of the scatterplot
293
mark thompson @markposts.bsky.social · 26/06/2026
yes, i immediately went and did this google scholar search: scholar.google.com/scholar?hl=e...
A google scholar search box with 'jabulani football', a reference to the infamous ball used in the 2010 men's World Cup
270
mark thompson @markposts.bsky.social · 26/06/2026
working on a blog post
A cryptic screenshot of a partial scatterplot, showing 'Barcelona WFC' in an isolated top-right corner. Diagonally closest to it are 'Chelsea FCW, Arsenal WFC, and Juventus W'. In the top-left of the screenshot is 'Spain Women's' and bottom-right of the screenshot is 'Manchester City WFC'
030
mark thompson @markposts.bsky.social · 14/06/2026
Lewis Hamilton won a Grand Prix again and watching it gave me a neat idea for my personal/portfolio site
A website landing page with an F1 timing tower-style menu navigation of projects on the left-hand side. A preview panel cycles through each item. Behind it in the background is an animation of football tracking data and defensive compactness signifiers.
020
mark thompson @markposts.bsky.social · 30/05/2026
From what I could tell and can now remember, the banks rotated around as PSG shifted the ball, leaving the two CMs in the middle, rather than some other systems where CMs go out wide
Shapes representing PSG and Arsenal, and Arsenal's two banks of four sandwichShapes representing PSG and Arsenal shapes with the ball moving over to PSG's right side of their back line (which is the narrow side of PSG's inverted trapezium shape). Arsenal's left side stretches over, mainly the back line, with the two central players staying in the middle of Arsenal's shape
010
mark thompson @markposts.bsky.social · 30/05/2026
First image is how most of the match played out. Second image is the one thing that seemed interesting in the match: Arsenal compact block with two banks of 4 *at the front and back*, with Lewis-Skelly and Rice as floating man-oriented players in between
Image representing PSG shape in Arsenal half, like an inverted trapezium, while Arsenal's shape represented by a small rectangle, and a player point to represent David RayaTrapezium shapes to represent PSG and Arsenal when PSG were in possession: the two overlap heavily while PSG's is larger, both trapezium's narrower towards PSG's goal. Two player points in the centre represent Lewis-Skelly and Rice
150
mark thompson @markposts.bsky.social · 30/05/2026
Enjoyed writing this, and this is all just preamble to talking about a project I've been doing.
Three paragraphs from the linked article in the quoted post, introducing the concept of 'world models', in relation to large language models, using Artemis II's slingshot around the moon usings its gravity as a metaphor
031
mark thompson @markposts.bsky.social · 20/05/2026
The tl;dr is this, with the addition that restart frequency is correlated with gamestyle. Football has never promised a certain amount of in-play time, or forced a certain type of gamestyle. Higher in-play time doesn't necessarily mean high 'fun' time
Scatterplot of ball in play time and total restarts across Statsbomb open data dataset, showing a general correlation between lower restarts and more in-play time, with average in-play time around 52-55 minutes
210
mark thompson @markposts.bsky.social · 08/04/2026
working on a thing
110
mark thompson @markposts.bsky.social · 07/02/2026
I'm a little uneasy about pressing the accelerator on this kinda thing, but an LLM agent self-developing a framework for social media interaction made something that would be useful to, like, 30% of bsky
LLM agent rules for reply and mentions of other users, based around direct interaction and a hierarchy of knowing somebody.
020
mark thompson @markposts.bsky.social · 24/01/2026
Lauren James' shot map since being subbed on (57') has been a bit 'fine, I'll do it myself'. (She also has three chances created)
Lauren James' shot map from FotMob, one from around 15 yards out on an angle, the others around 25 yards out
010
mark thompson @markposts.bsky.social · 23/01/2026
aside - the ordering of these menu options is a little Onion-esque
Football competition options on the Opta Analyst site, with the WSL second-last on the list ahead of the Saudi Pro League
050
mark thompson @markposts.bsky.social · 11/01/2026
Always enjoy these kinds of early-match shot maps where, by chance, both teams mirror each other (in that the shot is in the left halfspace, just inside the box)
Derby vs Leeds shot map after 16 minutes, each team have one shot just inside the box and just left of the six-yard box width
010
mark thompson @markposts.bsky.social · 08/01/2026
65 minutes, 0.51xG
Shot map from Fotmob with xG stats, 0.3 for Arsenal and 0.21 for Liverpool
120
mark thompson @markposts.bsky.social · 07/01/2026
'BBC Verify' has been around a while now and it's still used in quite confusing ways. The screenshot here is an update on the BBC's liveblog(?) of the Minneapolis shooting. The videos are actually described in an update on 2 hours earlier. [Link: www.bbc.co.uk/news/live/c7... ]
A screenshot of the 'BBC Verify' update about social media videos, found in full via the link in the post. Its four paragraphs conclude: "Our recency checks on each of the videos confirm they first surfaced online today. In the footage a burgundy car moves as three shots ring out. Seconds later it crashes into two parked cars."
020
mark thompson @markposts.bsky.social · 02/01/2026
#grindset
A screenshot of an 'entity explore' page, where the entity of 'Joke' has been searched and selected. (It belongs to the category 'abstract concept'). A list of jokes from various blog posts are displayed, including "So, if you're logging onto your SoccerPlatform2027, will you want to look at 'Attack' or 'Final Phase Chance Creation' or 'sexy vibe xT aura farming'" (a reference to Spotify algorithmic playlist titles)
010
mark thompson @markposts.bsky.social · 01/01/2026
Making sure to add the most important tag to the project I've been prompt-coding
A screenshot of an 'entity' list, showing entities in different categories and the number of mentions. The category 'Abstract concepts' is open, showing 'information flow' and, the entity which is highlighted, 'Joke'.
210
mark thompson @markposts.bsky.social · 09/11/2025
Forest are the 'midfield vibes' meme but in this case the 'ball goes through midfield somehow' is 'Elliot Anderson'
Bar chart of Nottingham Forest's line-breaking passes completed; Anderson accounts for 30.6% (per the linked article) and leads the chart on 101, with the next nearest player on 33, followed by five players in the low-to-mid 20s
020
mark thompson @markposts.bsky.social · 26/10/2025
Interesting. And quote further down too - "If you set rules and boundaries on people and they break those rules and boundaries, you create conflict in your group [...] It might be different at a different club with a different culture, but that’s what works here." www.nytimes.com/athletic/674...
Following a seventh-place finish and a qualification spot for the Conference League with the youngest team in Europe’s top five leagues, many are curious about Rosenior’s approach to the game. Outside of a daily 10.30am meeting, scheduling is loose. Coaching staff opt against setting specific times for training, instead waiting for the playing squad to feel at their most relaxed and ready following pre-activation and warm-up routines. Strasbourg players are not given curfew times, nor fines for arriving late.

“I don’t think there’s been one player late in my 15 months here, because they respect the fact that I’ve given them the trust in other areas,” adds the head coach.
020
mark thompson @markposts.bsky.social · 26/10/2025
Why is The Athletic's search so bad?
A search for 'specialist coaches' on The Athletic, returning articles on Tottenham specialists (a good result), Chauncey Billups arrest, Thomas Frank discussing Cristian Romero injury, and NBA coverage on Amazon Prime (three bad search results)
280
mark thompson @markposts.bsky.social · 09/10/2025
A moment later, the (short) interview concludes as follows:
SIMON: I mean, if a writer wants to play around with AI as the writer and see if it helps him, I mean, I regard it as no different than him having a thesaurus or a dictionary on his desk or a book of quotable quotes. Play around with it. If it starts to lead the way in the sense that a studio exec comes to you and says, AI gave us this story that we want, that's not why I got into storytelling. And it's not where I'll stay if that's what storytelling is.

SHAPIRO: You've been through past writer's strikes. Were there lessons those experiences taught you that you think are relevant today?

SIMON: Oh, yeah. The one that is fundamental today is they are now telling us, we don't know what AI is. We don't know how good it's going to be. Let's not litigate what AI can do, what it can't do.

SHAPIRO: You think they're hiding their cards.

SIMON: Of course. They did the same thing in 2007 when it was streaming. And so yeah, this is - we're having the same exact fight as in 2007. Technology is different, but the fight has to be the same. It's going to be a long fight. I think this is going to go on a while. This is the fight. This is now. This has to happen now.

SHAPIRO: David Simon is a TV writer and showrunner known for "The Wire," "Homicide," "Treme" and more. He's also a member of the Writers Guild of America's Negotiating Committee. Thank you so much for coming into the studio.
100
mark thompson @markposts.bsky.social · 04/10/2025
🎶having fun isn't hard when you've got matplotlib and claude code 🎶
010
mark thompson @markposts.bsky.social · 02/10/2025
Feel like any discussion of promoted teams that doesn't talk about this vs league position is missing something. Early numbers are early numbers, but 1) do we think Sunderland will finish closer to 12th or 5th 2) this spread doesn't feel totally unusual for promoted teams, historically
Premier League table sorted by xG difference; promoted teams Sunderland, Leeds, and Burnley are 12th, 15th, and 20th respectively
251
mark thompson @markposts.bsky.social · 02/10/2025
This is a more Sinner-y orange, I think
000
mark thompson @markposts.bsky.social · 01/10/2025
This doesn't really capture this point but it is kind of wild to see the distance Sinner covered in four shots - www.youtube.com/watch?v=r3UF... (I should've persisted trying to find a better orange for Sinner)
100
mark thompson @markposts.bsky.social · 30/09/2025
sup
161
mark thompson @markposts.bsky.social · 30/09/2025
This is too much fun
Data visualisation from a 'TV camera' viewpoint of tennis data, visualising Borg vs McEnroe serve-plus-one shot locations from their 1980 Wimbledon epic tie-break. Their names are plotted in dynamic large type on the image, as if painted on-courtData visualisation from a 'player view' viewpoint of tennis data, visualising Borg vs McEnroe serve-plus-one shot locations from their 1980 Wimbledon epic tie-break. Compared to the TV view, the viewpoint is lower, with datapoints, net, and player names all still in proportion as if in real 3D space
021
mark thompson @markposts.bsky.social · 26/09/2025
motion pictures
050
mark thompson @markposts.bsky.social · 23/09/2025
It's not quite gas that we're cooking with but it's increasing in flammability
Tennis court visualisation from a "player view" perspective (although more like someone stood 20 feet behind a player), showing serve-plus-one locations from Borg vs McEnroe's 1980 Wimbledon tie-break. Shots on the far side of the court are rendered behind a partially transparent net
3110
mark thompson @markposts.bsky.social · 21/09/2025
Need to work the regular text plotting args work in various orientations, but it's neat to be able to switch the view up relatively easily (calling this 'umpire view')
Side-on view of the tennis court plot of McEnroe vs Borg serve-plus-one shots
030
mark thompson @markposts.bsky.social · 21/09/2025
Toying with 3d matplotlib - plotted all of the serve-plus-one shot locations in the 1980 Wimbledon McEnroe vs Borg tie-break. Borg's baseline plus-ones were all second serves iirc. McEnroe's shot closest to the net is absurd (on a second serve too): youtu.be/UnwYdF8a5ws?...
Plot of locations on a tennis court. Serve-volleying is clearly evident, although Borg has some shots near the baseline. McEnroe's locations are more spread, suggesting better returning from Borg.
240