18+Trial period: all tips are freeSee how our algorithm calculates →
menu
AI Goal Lab Power Ranking

Scottish Premiership Power Ranking: which team is strongest

Every team of the league on one scale, comparable with all of European football. Updated weekly.

41,778
matches in the model
59
competitions
1,904
teams rated
385 days
half-life of a result

Celtic are the strongest team in the Scottish Premiership this week (Power Index 65.3). Best attack: Celtic, best defence: Rangers.

League leaders

Best attackCeltic62.7 #29
Best defenceRangers52.9 #75
4-week riserDundee▲ +3.7

The average strength of the league is 43.6 (9th of 13 leagues).

Movers

Power Index change over one week

▲ Rising

Falkirknow 41.1▲ +0.2

▼ Falling

Heart of Midlothiannow 50.6▼ 2.1
St Mirrennow 34.3▼ 0.8
Motherwellnow 42.5▼ 0.7
Hiberniannow 45.6▼ 0.7
Rangersnow 59.0▼ 0.6
St Johnstonenow 38.9▼ 0.3

Compare two clubs

Match probabilities from the same model, computed in your browser.

Our model's estimate from past results, not a match prediction and not a tip.

How strong is each league

Every team as a dot on the 0-100 Power Index axis. The dark line is the league average. Tap a dot for the team, click a row to open the league.

Strength and squad value

Power Index against squad value (log scale). The dashed line is the least-squares fit: the further above it, the more a team performs beyond what its squad costs. Filter by league, search for a team, tap a dot for details.

102030405060708090100€10m€30m€100m€300m€1.00bnUnion St.-GilloiseAmed SFKAcadémico de ViseuHull CityParmaFalkirkSt JohnstoneCaykur RizesporGaziantep FKKV Kortrijk

Above the lineBelow the lineDimmed: other leagues

Above the line: they perform more than their squad value suggests.

Attack versus defence

Attack index against defence index on the same 0-100 scale as the Power Index. The dashed lines are the medians: top right plays best on both sides of the ball.

203040506070802030405060708090Bayern Munich · attack 81.4, defence 61.5Bayern MunichBarcelona · attack 81.3, defence 60.5BarcelonaArsenal · attack 72.6, defence 70.1ArsenalManchester City · attack 76.4, defence 65.8Manchester CityParis Saint-Germain · attack 73.7, defence 62.5Paris Saint-GermainReal Madrid · attack 74.7, defence 61.4Real MadridLiverpool · attack 72.7, defence 62.0Brighton & Hove Albion · attack 70.8, defence 62.0Sporting CP · attack 70.2, defence 61.2Chelsea · attack 71.9, defence 59.1Benfica · attack 68.4, defence 62.4Internazionale · attack 70.2, defence 60.3Atlético Madrid · attack 69.0, defence 61.3Aston Villa · attack 67.6, defence 61.6Newcastle United · attack 69.2, defence 59.0Manchester United · attack 68.0, defence 59.5Brentford · attack 66.5, defence 60.5Bayer Leverkusen · attack 66.8, defence 59.8Borussia Dortmund · attack 65.6, defence 60.0FC Porto · attack 61.3, defence 64.4AFC Bournemouth · attack 65.8, defence 59.4Tottenham Hotspur · attack 64.0, defence 57.5PSV Eindhoven · attack 68.7, defence 51.5AS Roma · attack 60.2, defence 60.4VfB Stuttgart · attack 64.6, defence 55.5Leeds United · attack 60.3, defence 59.9RB Leipzig · attack 64.1, defence 55.6Crystal Palace · attack 60.2, defence 59.4Villarreal · attack 64.4, defence 54.6Nottingham Forest · attack 58.7, defence 60.2Club Brugge · attack 64.6, defence 54.1Atalanta · attack 60.6, defence 58.1Juventus · attack 58.6, defence 60.1Fulham · attack 58.7, defence 59.9Lens · attack 61.5, defence 57.1Everton · attack 56.0, defence 62.5AC Milan · attack 59.3, defence 58.4Marseille · attack 63.4, defence 53.8Lyon · attack 60.7, defence 56.3Real Betis · attack 61.1, defence 55.8Union St.-Gilloise · attack 56.2, defence 60.2AS Monaco · attack 62.4, defence 53.5Napoli · attack 56.0, defence 59.9Celtic · attack 62.7, defence 52.7Como · attack 57.6, defence 57.9Real Sociedad · attack 59.6, defence 55.2Lille · attack 54.9, defence 59.9Feyenoord Rotterdam · attack 61.7, defence 51.5SC Freiburg · attack 59.4, defence 53.7Celta Vigo · attack 56.9, defence 56.0Braga · attack 56.4, defence 56.4Athletic Club · attack 54.2, defence 58.6Vancouver Whitecaps · attack 57.7, defence 54.5Inter Miami CF · attack 65.5, defence 46.1Nashville SC · attack 55.0, defence 56.6Stade Rennais · attack 60.2, defence 51.1Lazio · attack 52.8, defence 58.4Fenerbahce · attack 58.7, defence 52.1Galatasaray · attack 59.1, defence 51.4Olympiacos · attack 48.2, defence 62.0Strasbourg · attack 58.1, defence 52.0AEK Athens · attack 53.2, defence 56.9LAFC · attack 54.3, defence 55.4Eintracht Frankfurt · attack 60.3, defence 49.1Rayo Vallecano · attack 52.5, defence 56.8Bologna · attack 53.1, defence 56.1Rangers · attack 56.1, defence 52.9Alavés · attack 52.1, defence 56.8Mainz · attack 54.0, defence 54.5Sevilla · attack 54.8, defence 53.4AZ Alkmaar · attack 55.9, defence 52.1Philadelphia Union · attack 57.9, defence 50.1Osasuna · attack 54.5, defence 53.4Coventry City · attack 55.9, defence 51.9Ipswich Town · attack 56.9, defence 50.9Sunderland · attack 48.7, defence 58.2Valencia · attack 51.5, defence 55.3TSG Hoffenheim · attack 59.4, defence 47.2Ajax Amsterdam · attack 57.5, defence 49.2Toulouse · attack 54.0, defence 52.7Fiorentina · attack 55.1, defence 50.5Lorient · attack 52.6, defence 52.9Espanyol · attack 50.2, defence 55.0FC Twente · attack 53.6, defence 51.4Elche · attack 51.3, defence 53.6Getafe · attack 44.4, defence 60.1Columbus Crew · attack 54.1, defence 50.1Brest · attack 54.1, defence 50.1FC Augsburg · attack 53.1, defence 51.1Amed SFK · attack 59.7, defence 44.4PAOK · attack 54.7, defence 49.2Levante · attack 52.6, defence 51.1Paris FC · attack 50.3, defence 53.3FC Famalicao · attack 48.2, defence 55.2SV Elversberg · attack 53.8, defence 48.9Boca Juniors · attack 49.7, defence 53.0St. Louis CITY SC · attack 55.3, defence 47.2Hamburg SV · attack 53.4, defence 49.0Académico de Viseu · attack 48.0, defence 54.4Werder Bremen · attack 52.1, defence 50.2Charlotte FC · attack 52.2, defence 50.1Seattle Sounders FC · attack 49.1, defence 53.1Racing Genk · attack 51.6, defence 50.1Nice · attack 49.1, defence 52.6New York City FC · attack 49.2, defence 52.5San Diego FC · attack 56.0, defence 45.6Borussia Mönchengladbach · attack 53.8, defence 47.8Deportivo · attack 50.0, defence 51.6Besiktas · attack 51.5, defence 49.9Panathinaikos · attack 49.1, defence 52.1Orlando City SC · attack 58.1, defence 42.7AJ Auxerre · attack 50.0, defence 50.8Anderlecht · attack 49.9, defence 50.9Heart of Midlothian · attack 52.7, defence 47.9Chicago Fire FC · attack 54.0, defence 46.2FC Dallas · attack 53.4, defence 46.8Santa Clara · attack 44.0, defence 55.9Houston Dynamo FC · attack 48.6, defence 51.2Vitória de Guimaraes · attack 47.6, defence 52.1Gil Vicente · attack 46.2, defence 53.2FC Cologne · attack 50.5, defence 48.91. FC Union Berlin · attack 49.3, defence 50.0River Plate · attack 47.8, defence 51.5Sassuolo · attack 52.2, defence 47.0Hull City · attack 47.3, defence 51.3Racing Santander · attack 56.5, defence 42.1FC Cincinnati · attack 55.7, defence 42.8Torino · attack 47.0, defence 51.4Udinese · attack 48.4, defence 49.9KAA Gent · attack 47.9, defence 50.4Genoa · attack 46.7, defence 51.5Cagliari · attack 46.6, defence 51.5Arouca · attack 51.6, defence 46.5Minnesota United FC · attack 52.6, defence 45.4Argentinos Juniors · attack 43.9, defence 54.0NEC Nijmegen · attack 53.5, defence 44.4Málaga · attack 48.0, defence 49.7FC Utrecht · attack 50.8, defence 46.6Trabzonspor · attack 50.9, defence 46.4SC Paderborn 07 · attack 50.3, defence 46.9San Jose Earthquakes · attack 52.2, defence 44.9Rosario Central · attack 44.9, defence 52.1Frosinone · attack 49.7, defence 47.1New England Revolution · attack 50.0, defence 46.5Real Salt Lake · attack 49.0, defence 47.3Çorum FK · attack 57.7, defence 38.7Royal Charleroi SC · attack 46.3, defence 49.9Venezia · attack 49.6, defence 46.4Le Mans · attack 47.1, defence 48.8Hibernian · attack 47.3, defence 48.3LA Galaxy · attack 51.9, defence 43.4Portland Timbers · attack 51.3, defence 44.0Estoril · attack 50.1, defence 44.8Lanús · attack 42.7, defence 52.0Red Bull New York · attack 48.2, defence 46.4Go Ahead Eagles · attack 50.1, defence 44.4Alverca · attack 47.5, defence 46.8Heerenveen · attack 49.4, defence 44.8Parma · attack 42.6, defence 51.5Vélez Sarsfield · attack 43.2, defence 50.9Estudiantes de La Plata · attack 44.3, defence 49.6Schalke 04 · attack 45.6, defence 48.3Le Havre AC · attack 42.9, defence 50.8Colorado Rapids · attack 46.6, defence 46.8Sint-Truidense · attack 49.4, defence 44.1Istanbul Basaksehir · attack 48.0, defence 45.1FC Groningen · attack 47.6, defence 45.3Maritimo · attack 49.2, defence 43.7Monza · attack 45.9, defence 46.8Moreirense · attack 44.2, defence 48.2Motherwell · attack 45.5, defence 47.0Antwerp · attack 45.6, defence 46.9Angers · attack 43.3, defence 49.1Toronto FC · attack 46.5, defence 45.9Lommel SK · attack 41.4, defence 50.9Atlanta United FC · attack 46.6, defence 45.6Zulte-Waregem · attack 47.7, defence 44.2KVC Westerlo · attack 51.6, defence 40.1Belgrano (Córdoba) · attack 41.0, defence 50.5Austin FC · attack 46.2, defence 45.2Falkirk · attack 46.3, defence 44.8Troyes · attack 45.3, defence 45.6Racing Club · attack 45.6, defence 45.2Independiente · attack 42.5, defence 48.3Lecce · attack 40.1, defence 50.2C.D. Nacional · attack 44.4, defence 45.6Goztepe · attack 46.6, defence 43.2Huracán · attack 38.5, defence 51.3Rio Ave · attack 45.1, defence 44.2Standard Liege · attack 41.1, defence 48.1Estrela · attack 45.6, defence 43.6Independiente Rivadavia · attack 45.4, defence 43.8Tigre · attack 39.5, defence 49.5Sparta Rotterdam · attack 46.3, defence 42.6St Johnstone · attack 42.4, defence 46.4Casa Pia · attack 41.7, defence 46.9Cercle Brugge KSV · attack 47.1, defence 41.5Instituto (Córdoba) · attack 42.6, defence 45.8Aberdeen · attack 43.1, defence 45.3KV Mechelen · attack 46.2, defence 41.8Dundee United · attack 43.6, defence 44.0Fortuna Sittard · attack 45.2, defence 42.2San Lorenzo · attack 35.3, defence 52.4Excelsior · attack 45.9, defence 41.5Gimnasia La Plata · attack 41.8, defence 45.4D.C. United · attack 45.5, defence 41.7Dundee · attack 46.1, defence 40.9Iraklis · attack 37.8, defence 48.4CF Montréal · attack 43.6, defence 42.2Alanyaspor · attack 41.1, defence 44.5Deportivo Riestra · attack 34.5, defence 51.2Aris · attack 40.3, defence 45.3Samsunspor · attack 43.4, defence 41.9Atlético Tucumán · attack 41.9, defence 43.2Kocaelispor · attack 34.3, defence 51.0Talleres (Córdoba) · attack 38.7, defence 46.3Telstar · attack 43.3, defence 41.7Unión (Santa Fe) · attack 42.9, defence 41.9Barracas Central · attack 37.8, defence 46.9OH Leuven · attack 39.6, defence 44.6St Mirren · attack 42.2, defence 41.8Defensa y Justicia · attack 42.7, defence 41.1Kasimpasa · attack 43.6, defence 40.2ADO Den Haag · attack 44.8, defence 38.8Sporting Kansas City · attack 47.7, defence 36.0Kalamata · attack 51.3, defence 32.6Gimnasia (Mendoza) · attack 39.7, defence 43.3Konyaspor · attack 39.3, defence 43.1PEC Zwolle · attack 44.8, defence 37.8Caykur Rizespor · attack 43.3, defence 39.0Platense · attack 35.4, defence 47.0Central Córdoba (Santiago del Estero) · attack 39.0, defence 42.9Kilmarnock · attack 41.8, defence 40.0Sarmiento (Junín) · attack 39.0, defence 41.7Atromitos · attack 39.5, defence 40.9Newell's Old Boys · attack 37.2, defence 42.8RAAL La Louvière · attack 39.3, defence 40.5Banfield · attack 39.9, defence 39.9Levadiakos · attack 43.0, defence 36.7Willem II · attack 40.7, defence 38.9OFI Crete · attack 42.9, defence 36.7Genclerbirligi · attack 37.9, defence 40.7Gaziantep FK · attack 40.3, defence 37.5SC Cambuur · attack 42.7, defence 33.8Erzurum BB · attack 30.9, defence 45.6Waasland-Beveren · attack 39.3, defence 35.4Eyupspor · attack 37.1, defence 37.1Aldosivi · attack 36.8, defence 37.0Panetolikos · attack 34.2, defence 39.4Asteras Tripoli · attack 36.5, defence 35.6Kifisia · attack 36.8, defence 35.3KV Kortrijk · attack 35.7, defence 36.0Volos NFC · attack 36.1, defence 32.4Estudiantes de Río Cuarto · attack 27.6, defence 38.6defence ->attack ->
#TeamTrendGoals for / againstW / D / L vs average
44▲1
65.3
62.7 #2952.7 #78▲ +3.51.77 / 1.0754 / 23 / 23
67▼3
59.0
56.1 #6452.9 #75▲ +2.41.45 / 1.0746 / 26 / 28
114▼15
50.6
52.7 #9547.9 #145▲ +2.61.30 / 1.2737 / 27 / 36
150▼5
45.6
47.3 #15548.3 #142▲ +2.21.08 / 1.2632 / 28 / 40
171▼3
42.5
45.5 #17847.0 #152▲ +2.01.01 / 1.3129 / 28 / 44
181▲1
41.1
46.3 #16644.8 #188▲ +3.01.03 / 1.4028 / 27 / 45
195▼4
38.9
42.4 #21246.4 #168▲ +3.60.89 / 1.3425 / 28 / 47
199▼2
38.5
43.1 #20145.3 #182▲ +2.90.91 / 1.3825 / 27 / 48
201▼1
37.7
43.6 #19344.0 #200▲ +3.30.93 / 1.4424 / 27 / 49
207▼2
37.1
46.1 #17140.9 #227▲ +3.71.03 / 1.5825 / 25 / 50
221▼2
34.3
42.2 #21341.8 #219▲ +1.30.88 / 1.5422 / 26 / 53
233▼1
32.2
41.8 #21540.0 #233▲ +3.00.87 / 1.6320 / 25 / 55

Results up to Oct 19, 2026. * few matches in the data, usually newly promoted teams. ▲▼ change in the last 7 days. How it is calculated

function

How the Power Ranking is calculated

The ranking is not an opinion or a vote. It is the output of a hierarchical statistical model that solves for every team in our data at once: 1,904 teams, 59 competitions and 41,778 matches from the last four years, in a single optimisation problem.

sports_soccer 1. A goal model for every match

Each team gets an attack strength α and a defence strength δ. The goals in a match follow a Poisson distribution whose rate depends on the attack of one side, the defence of the other and home advantage γ:

Xm∼Poisson(λm),λm=exp(μ+γ·hm+αi+δj)

h = 1 for the home side, 0 on neutral ground (finals). Right now the model measures a home advantage of +25% in goals.

history 2. Recent matches weigh more

The parameters are estimated by maximum likelihood. Every match is weighted with exponential time decay, and a Gaussian prior (L2 regularisation) pulls teams with little data towards the average instead of letting a few lucky results inflate them:

θ^=arg⁡maxθ∑me−ξΔtmlogP(xm,ym∣θ)−κ∑i(αi2+δi2)

ξ = 0.0018 per day: a match from 385 days ago counts half as much as yesterday's (half-life). Optimised with L-BFGS-B and analytic gradients.

hub 3. One network for all of Europe

Most rankings compare teams only within their own league. Here league, second-tier, domestic cup (4,156 matches) and European (3,461 matches) results go into the same model. Every European tie is a bridge in the graph of teams: that is how the model knows what a goal in the Greek Super League is worth next to a goal in the Premier League, and why a win against a strong side counts for more than a win against a weak one.

speed 4. From parameters to the Power Index

Each team is put against the average team of the ranking on neutral ground. From its expected goals for and against we compute win, draw and loss probabilities, and the Power Index is the share of points it would expect:

λifor=eμ+αi+δ‾,λiagainst=eμ+α‾+δi

PIi=100·[P(X>Y)+12P(X=Y)]

X, Y: independent Poisson with the two rates above. 50 = an average team of the ranking, 100 = would win every match.

verified 5. Tested on matches it had never seen

The model was rebuilt every Monday from 2015 onwards using only the matches played before that day, and then predicted the next week (walk-forward). Over the 2020/21 to 2025/26 seasons, on matches it had not seen, it predicted league results better than models that look at one league only, in each of the nine leagues we tested. It is re-fitted every week, and the arrows show the change in position over the last seven days.

What it is not: it does not see injuries, transfers or line-ups, only results, so a summer signing appears only when he starts scoring. It describes strength; it is not a betting tip.

Frequently asked questions

Which team is the strongest?

Celtic, with a Power Index of 65.3 (44th of 254 teams in the ranking).

Which team has the best attack?

Celtic: attack index 62.7 (29th in the ranking).

Which team has the best defence?

Rangers: defence index 52.9 (75th in the ranking).

Which league is the strongest?

The Premier League, with an average Power Index of 71.5 this week.

How often is it updated?

Every Monday, with results up to 19 Oct 2026.

Sign up free and join our Telegram

During the trial all data is free. An account gives you the dashboard and analyses, and on Telegram you get the tips and results every day. Statistics, not gut feeling.