Nils Mackay's Avatar

Nils Mackay

@nilsmackay.bsky.social

Data Science at Opta

3,053 Followers  |  70 Following  |  135 Posts  |  Joined: 26.08.2023
Posts Following

Posts by Nils Mackay (@nilsmackay.bsky.social)

Just need to figure out how to get all teams into Conference League and we should be fine!

29.01.2026 13:58 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

In each simulation where πŸ‡³πŸ‡± Netherlands retains 6th, you have:
πŸ”Ή At most 1 Portuguese team making the quarter-final
πŸ”Ή Feyenoord & AZ both making the quarter-finals

Nothing is impossible, but we are currently saying this is about a 1 in 1000 possibility.

29.01.2026 11:06 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

πŸ‡³πŸ‡± Netherlands is going to drop to 7th, losing a Champions League ticket to πŸ‡΅πŸ‡Ή Portugal.

While technically they are still ahead, League Stage bonus points will change this.

πŸ‡³πŸ‡± will likely see 5/6 (!) teams eliminated in the group stage,
πŸ‡΅πŸ‡Ή instead, will see 4/4 teams qualify.

29.01.2026 11:06 β€” πŸ‘ 7    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Post image Post image

Just to drive home what a great format the new Champions League is β€” with 1 game to go 30 out of 36 teams still have something to play for.

22.01.2026 08:56 β€” πŸ‘ 8    πŸ” 2    πŸ’¬ 1    πŸ“Œ 3

A great opportunity to showcase your skills to the wider sports analytics industry! We've had multiple recent presenters go on to join the Opta data science group. βš½πŸ“πŸ

16.01.2026 16:04 β€” πŸ‘ 1    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
A dark-themed code editor window showing Python code using the penaltyblog library. It demonstrates initializing a HierarchicalBayesianGoalModel with home/away goals and teams, fitting the model using MCMC sampling with parameters like 2000 samples and 4 chains, and finally predicting match probabilities for an Arsenal vs. Manchester City fixture

A dark-themed code editor window showing Python code using the penaltyblog library. It demonstrates initializing a HierarchicalBayesianGoalModel with home/away goals and teams, fitting the model using MCMC sampling with parameters like 2000 samples and 4 chains, and finally predicting match probabilities for an Arsenal vs. Manchester City fixture

Bayesian goal models are back in penaltyblog v1.8.0 - and this time, they’re dependency-free! βš½οΈπŸ“ˆ

08.01.2026 20:00 β€” πŸ‘ 13    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0

Will you remember us when you win the whole thing?

28.12.2025 18:16 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Data Scientist II Overview Stats Perform is the market leader in sports tech. We provide the most trusted sports data to some of the world's biggest organizations, across sports, media, and broadcasting. Through the la...

We are hiring!

Are you a data scientist and looking for a career in football?

Come work in our Data Science team at Stats Perform: tinyurl.com/statsperformds

(India-based only for now, EU-people stay tuned)

16.12.2025 15:07 β€” πŸ‘ 6    πŸ” 5    πŸ’¬ 1    πŸ“Œ 1

If you have any questions, feel free to DM me and I'll try to answer when I have a moment.

16.12.2025 15:07 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Data Scientist II Overview Stats Perform is the market leader in sports tech. We provide the most trusted sports data to some of the world's biggest organizations, across sports, media, and broadcasting. Through the la...

We are hiring!

Are you a data scientist and looking for a career in football?

Come work in our Data Science team at Stats Perform: tinyurl.com/statsperformds

(India-based only for now, EU-people stay tuned)

16.12.2025 15:07 β€” πŸ‘ 6    πŸ” 5    πŸ’¬ 1    πŸ“Œ 1
Preview
The football word of the year, 2000-2025: Park the bus, raumdeuter, prawn sandwich brigade With 'ragebait' the Oxford English Dictionary word of the year, here's a look at what footballing equivalents might have been since 2000

The Oxford word of the year is RAGE BAIT. After calming myself down, I tried to work out what the football word of the year would be, 2000-25.
www.nytimes.com/athletic/687...

14.12.2025 10:08 β€” πŸ‘ 28    πŸ” 5    πŸ’¬ 5    πŸ“Œ 5

As someone who's had to write code around MLS competition format, I can attest that best-of-3 is the worst thing in the history of football and MLS should be banned by FIFA as a fair punishment.

10.11.2025 06:37 β€” πŸ‘ 10    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Great article. My main question with an approach like this is how valuable is it really for clubs if most transfer targets will have taken relatively few shots?

E.g. how many seasons of data do we need to make a judgement? Or how many shots? I imagine for most players it's indistinguishable from 0

23.10.2025 15:24 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image Post image

Champions League update!

πŸ”Ή Arsenal still on top! PSG joins the fight for first after an away win at Barca.
πŸ”Ή Qarabağ with 2 wins! Now 75% likely to make the next round.

πŸ”Έ Both Dutch teams in bottom 6 teams β€” heading towards elimination.
πŸ”Έ Athletic Club with 2 losses heading towards an early exit.

02.10.2025 09:37 β€” πŸ‘ 10    πŸ” 2    πŸ’¬ 0    πŸ“Œ 1

Had a chat with @sport.nos.nl about the dire start of the European season for the Netherlands, and how it affects their chances of maintaining 6th on the UEFA Coefficients ranking.

26.09.2025 11:46 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 1
Post image

Battle for Top 10, good for direct UCL ticket:
78% β€”πŸ‡ΉπŸ‡· Turkey (-12%)
60% β€”πŸ‡΅πŸ‡± Poland (+5%)
36% β€”πŸ‡¨πŸ‡Ώ Czechia (-1%)
26% β€”πŸ‡¬πŸ‡· Greece (+8%)

Battle for Top 15, good for 1 extra European ticket:
51% β€” πŸ‡¨πŸ‡ΎCyprus (+18%)
37% β€”πŸ‡¦πŸ‡ΉAustria (-13%)
8% β€”πŸ‡¨πŸ‡­Switzerland (-7%)
5% β€”πŸ΄σ §σ ’σ ³σ £σ ΄σ ΏScotland (-2%)

26.09.2025 09:47 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 1
Post image

πŸ‡©πŸ‡ͺ Germany climbing up the ranks of the yearly Coefficients ranking β€” good for a bonus Champions League ticket.

Two wins this week sees them rise from 5th to 3rd most likely to grab a ticket. England and Italy still favourites.

26.09.2025 09:46 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Here's the consequences for πŸ‡³πŸ‡± the Netherlands after 5 losses in 5 games.

πŸ”Ή From 80% of 6th down to almost 50%.
πŸ”Ή Even chances of dropping below Belgium, up from <0.1% to now 1.7%.

All that while the Netherlands still have 6/6 teams, while Portugal have lost 1 and Belgium already lost 2!

26.09.2025 09:32 β€” πŸ‘ 6    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Congrats Sam!

15.09.2025 09:35 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Probably not France, but definitely for Portugal and the Netherlands. Dependent on how this season goes, they might start the season in 6th even!

04.09.2025 09:52 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Clearly putting more effort into the offensive run!!

04.09.2025 09:51 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

That said, a 6 point gap is not nothing. Things will have to go quite bad for Germany and vice versa for France to make this a reality.

Still, it's the closest a country has been to breaking into Top 4 since 2014. Last year the gap was 13 points, and Β±20 points the years prior.

02.09.2025 10:23 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

New year, new coefficients simulation!

⚠️This year is the first time I've seen where the Big 4 might actually be challenged, as πŸ‡«πŸ‡· France _could_ overtake πŸ‡©πŸ‡ͺ Germany.

Being Top 4 gives you 4 direct UCL spots, which are now at risk for Germany, after some poor seasons in Europe.

02.09.2025 10:23 β€” πŸ‘ 14    πŸ” 4    πŸ’¬ 2    πŸ“Œ 1

That's fair. Truth is the model does a simulation and there's some noise involved, and especially with very low numbers like Marseille ending 1st this can lead to some weird looking results. The 0.2% ending 1st for them is likely a fluke of this specific simulation.

02.09.2025 06:15 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image Post image

Finally, here's our Conference League predictions.

Again an English team favourites to win the League Stage β€” just like Chelsea was last year.

Top 24 achievable for all, even lowest rated teams Shelbourne/Aberdeen with a Β±20% chance!

01.09.2025 14:33 β€” πŸ‘ 7    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Post image Post image

In the Europa League, English teams are once again favoured to make an impression.

Here's how we estimate each teams' likelihood of Top 8 and Top 24 in the League Stage.

01.09.2025 13:34 β€” πŸ‘ 10    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Post image Post image

A new #ChampionsLeague season is upon us! Here's each team's likelihood of qualifying for Top 8 or 24, according to our predictions:

01.09.2025 13:19 β€” πŸ‘ 25    πŸ” 8    πŸ’¬ 1    πŸ“Œ 3
Post image

First place is lava!

15.05.2025 07:37 β€” πŸ‘ 15    πŸ” 2    πŸ’¬ 3    πŸ“Œ 0

Nice writeup! Any reason you didn't go with actual game results (instead of simulated ones) for the final test?

02.05.2025 06:46 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0