# St Kilda v North Melbourne — AFL Round 21 2025 AI Prediction by Alphr

## Full Time: St Kilda 78 – 69 North Melbourne

_St Kilda scrape past North Melbourne in a tight one._

Half time: 30 – 29 · Alphr AI pre-game win probability: St Kilda 65% / North Melbourne 35% · Marvel Stadium · Sun, 03 Aug, 01:40 pm AEST

**Goal Kickers** — St Kilda: Jack Higgins (38' ×2 Tipped ⚡), Mitch Owens (49' Tipped ⚡), Rowan Marshall (56'), Cooper Sharman (61' Tipped ⚡), Ryan Byrnes (69'), Hugh Boxshall (77'), Max Heath (86'), Mason Wood (88'), Max Hall (89' Tipped ⚡) · North Melbourne: Luke Davies-Uniacke (9' 1st), Harry Sheezel (15'), Nick Larkey (29' ×3 Tipped ⚡), Cameron Zurhaar (63' ×2 Tipped ⚡), Colby McKercher (71'), Jack Darling (61' Tipped ⚡), George Wardlaw (67')

### Match Winner — AI Prediction Market (resolved)

| Team | Pre-game AI win probability | Result |
|---|---|---|
| St Kilda | 65% | Won |
| North Melbourne | 35% | Lost |

Model call: **Correct** · Margin: 15.2 predicted → 9 actual · Markets hit: 3/3

_AI win probability priced pre-game · Markets hit = core betting markets._

### Full-Time Report

**St Kilda vs North Melbourne Prediction and Tips - AFL Round 21, 2025**

_By Ben Dunlop · Published: 24 Feb 2026, 10:45 pm_

St Kilda 78–69 North Melbourne in AFL Round 21 at Marvel Stadium. Here's how the result stacked up against the model's call, with the win-probability story and where the value landed.

North Melbourne started like they meant to bury the game early, up 22-8 at quarter time and looking every bit the side that averaged 93.8 points across their last five. Then St Kilda answered with a quarter that flipped the whole shape of the contest, outscoring them 22-7 to lead 30-29 at the main break. From there it was St Kilda's game to lose, and they didn't.

The third quarter is where it actually got decided. St Kilda piled on 41 points to North Melbourne's 19, turning a one-point half-time margin into a 23-point buffer at the three-quarter mark, 71-48. North Melbourne clawed back some respectability after that, adding 21 to St Kilda's 7 in the final term, but by then the deficit was too much to chase down. Final score: St Kilda 78, North Melbourne 69.

The contested ball tells you most of what you need to know. St Kilda won it 129 to 102, and went inside 50 a whopping 54 times to North Melbourne's 38. That's a side going through the midfield gate, which lines up with the pre-match numbers: St Kilda came in rated well clear at the midfield (1017 to 926) and forwards (994 to 917). North Melbourne, for all their form heading in, three wins from their last five against St Kilda's one, got outmuscled where it mattered most.

North Melbourne's response was to move the footy better. They finished with 364 disposals to St Kilda's 334, and their disposal efficiency of 80.4% comfortably beat St Kilda's 75.8%. They also dominated marks, 119 to 77, and edged marks inside 50, 15 to 13. On another day that kind of polish wins you the game. It didn't here, mostly because they couldn't get their hands on it often enough in the areas that count, and their intercept count of 56 against St Kilda's 55 was about the only ledger they came out slightly ahead on.

St Kilda's ruck edge was the other quiet factor. They won hit-outs 41 to 27, against a North Melbourne outfit rated stronger in that department pre-match, 984 to 940. First use of the ball out of stoppages clearly went St Kilda's way often enough to feed that inside 50 count, even though North Melbourne actually won the clearance count 31 to 30. Contested possession made up the difference.

Alphr's model had St Kilda winning at 65% probability, with a tip favouring St Kilda by 15.2 points. The actual margin was 9, so the model's had closer results, but the winner and the shape of the game were right. It also picked a combined total of 171, well above the 147 points that were actually scored, so this was a lower-scoring arm wrestle than expected, at least until St Kilda's third-quarter surge briefly made it look like a blowout in progress. All three of the model's picks for this one landed.

North Melbourne's early sprint and their disposal numbers suggest a team that could move the ball, just not through the areas that decide games at Marvel Stadium. St Kilda's third term did the damage, and everything after that was North Melbourne playing catch-up against a scoreboard that had already got away from them.

**Scoring by Quarter**

| Team | Q1 | Q2 | Q3 | Q4 | T |
|---|---|---|---|---|---|
| St Kilda | 8 | 22 | 41 | 7 | 78 |
| North Melbourne | 22 | 7 | 19 | 21 | 69 |

**Key Match Stats**

| St Kilda | Stat | North Melbourne |
|---|---|---|
| 334 | Disposals | **364** |
| **129** | Contested poss. | 102 |
| 30 | Clearances | **31** |
| **54** | Inside 50s | 38 |
| 77 | Marks | **119** |
| 13 | Marks inside 50 | **15** |
| 41 | Tackles | **43** |
| **41** | Hit-outs | 27 |
| 55 | Intercepts | **56** |
| 75.8% | Disposal eff. | **80.4%** |

**Model Report Card**

Our model correctly predicted St Kilda to win at 65% probability. The predicted margin of 15.2 was reasonable against the actual 9-point result. The game's 147 points came in 24 points lower than the predicted 171. St Kilda led 30–29 at the break and pulled away in the second half to win by 9. A clean sweep, all 3 model picks hit for this match.

_Official AFL match stats · Generated by Alphr's model_

### Edge Analysis — the model's pre-game markets

- **Head to Head:** St Kilda to win @ $1.28 (edge -12.7%) — model probability 65.4% — result: WON
- **Line / Spread:** St Kilda -24.5 @ $1.91 (edge -12.7%) — result: WON
- **Total (Over/Under):** Under 179.5 @ $1.91 (edge +2.6%) — result: WON
- Predicted margin: St Kilda by 15 · Predicted total: 171

### Positional Matchup

_Season-to-date production per game with league-wide attack/defence tiers (18 teams)._

**Forwards** (Key Forwards · Med/Mid Forwards)

|  | St Kilda | North Melbourne |
|---|---|---|
| Attack rank | 10th | 15th (weak) |
| Defence rank | 15th (weak) | 18th (weak) |
| Goals scored · conceded | 137 · 174 | 118 · 205 |
| Goal Assists | 3.5/g | 3.3/g |
| Disposals | 70/g | 88/g |
| Inside 50s | 11.8/g | 12.4/g |
| Marks Inside 50 | 6.5/g | 5.9/g |
| Disposal Efficiency | 69.7% | 69.5% |

**Midfield & Ruck** (Midfielders · Rucks)

|  | St Kilda | North Melbourne |
|---|---|---|
| Attack rank | 8th | 18th (weak) |
| Defence rank | 17th (weak) | 11th |
| Goals scored · conceded | 58 · 71 | 35 · 58 |
| Goal Assists | 3.7/g | 2.5/g |
| Disposals | 167/g | 136/g |
| Inside 50s | 23.4/g | 19.4/g |
| Marks Inside 50 | 3.6/g | 1.7/g |
| Disposal Efficiency | 69.3% | 73.3% |

**Defenders** (Key & Medium Defenders)

|  | St Kilda | North Melbourne |
|---|---|---|
| Attack rank | 6th (strong) | 1st (strong) |
| Defence rank | 1st (strong) | 12th |
| Goals scored · conceded | 29 · 13 | 57 · 23 |
| Goal Assists | 2.2/g | 2.2/g |
| Disposals | 125/g | 131/g |
| Inside 50s | 13.2/g | 13.6/g |
| Marks Inside 50 | 1.2/g | 2.3/g |
| Disposal Efficiency | 77.3% | 78% |

**Who scores on North Melbourne** — Rucks 0.68/g (lg 0.51) +33% · Key Forwards 4.78/g (lg 3.61) +32% · Forwards 5.74/g (lg 4.45) +29%
**Who scores on St Kilda** — Midfielders 2.45/g (lg 2.36) +4% · Forwards 4.29/g (lg 4.45) -4% · Key Forwards 3.39/g (lg 3.61) -6%

_Goals conceded by position, last 3 seasons; positive = concedes above league average to that position._

### Goal Scorer History — Who Kicks The Goals

_Last 10 games, career record vs the opponent and at Marvel Stadium. ⚡ = our AI backs them to score; 🎯 = our AI's first-goal pick. 🏉 = scored in this game. Goal % = share of games with a goal, last 10 weighted double vs the 30 prior — historical frequency, not a market price._

**St Kilda** (team sheet)

| # | Player | Pos | 2025 | Last 10 | vs opp | Venue | Goal % | Alphr play | This game |
|---|---|---|---|---|---|---|---|---|---|
| – | Jack Higgins | FWD | 39 in 19g | 16/10g (5·0·1·1·0·1·2·0·2·4) | 5/6g | 92/63g | 80% | ⚡ Anytime Goal $1.06 AI 83% ✓ Scored; 🎯 First Goal $10.00 AI 7% ✗ Not first | 🏉 38' 81' |
| – | Cooper Sharman | KF | 26 in 17g | 13/10g (1·3·0·1·1·0·1·2·2·2) | 3/3g | 45/37g | 72% | ⚡ Anytime Goal $1.11 AI 78% ✓ Scored | 🏉 61' |
| – | Mitch Owens | KF | 24 in 18g | 10/10g (0·2·1·0·1·1·1·2·2·0) | 5/4g | 49/42g | 64% | ⚡ Anytime Goal $1.15 AI 72% ✓ Scored | 🏉 49' |
| – | Mason Wood | MID | 19 in 17g | 9/10g (2·0·0·1·3·0·0·0·2·1) | 5/5g | 82/79g | 52% | — | 🏉 88' |
| – | Max Hall | FWD | 19 in 19g | 11/10g (1·0·2·0·1·1·3·3·0·0) | 0/0g | 10/11g | 62% | ⚡ Anytime Goal $1.35 AI 69% ✓ Scored | 🏉 89' |
| – | Nasiah Wanganeen-Milera | MID | 15 in 19g | 9/10g (0·1·0·1·0·1·0·0·2·4) | 0/4g | 11/48g | 30% | — | — |
| – | Jack Sinclair | DEF | 8 in 19g | 2/10g (0·1·0·0·0·0·0·1·0·0) | 8/11g | 40/107g | 30% | — | — |
| – | Rowan Marshall | RUC | 8 in 19g | 6/10g (1·0·0·0·1·1·1·1·1·0) | 5/7g | 45/77g | 46% | — | 🏉 56' |
| – | Bradley Hill | DEF | 6 in 18g | 3/10g (0·0·0·1·1·0·0·0·0·1) | 9/15g | 21/81g | 30% | — | — |
| – | Anthony Caminiti | DEF | 4 in 19g | 1/10g (0·0·0·0·0·0·0·0·0·1) | 1/1g | 22/29g | 36% | — | — |
| – | Jack Steele | MID | 4 in 18g | 3/10g (0·1·0·0·0·0·0·1·0·1) | 6/10g | 40/97g | 24% | — | — |
| – | Marcus Windhager | MID | 4 in 19g | 2/10g (0·0·0·1·0·0·1·0·0·0) | 1/3g | 7/38g | 10% | — | — |
| – | Hugo Garcia | MID | 3 in 13g | 2/10g (0·0·0·0·1·0·0·0·0·1) | 0/1g | 3/13g | 19% | — | — |
| – | Ryan Byrnes | MID | 2 in 16g | 1/10g (0·0·0·0·0·0·1·0·0·0) | 1/4g | 5/42g | 12% | — | 🏉 69' |
| – | Alix Tauru | DEF | 1 in 6g | 1/6g (0·0·0·0·0·1) | 0/0g | 1/4g | 17% | — | — |
| – | Hugh Boxshall | MID | 1 in 7g | 1/7g (0·0·0·0·1·0·0) | 0/0g | 1/4g | 14% | — | 🏉 77' |
| – | Hunter Clark | DEF | 1 in 11g | 1/10g (0·0·1·0·0·0·0·0·0·0) | 0/5g | 10/59g | 14% | — | — |
| – | Jack Macrae | MID | 1 in 17g | 1/10g (0·0·0·0·0·0·1·0·0·0) | 5/14g | 28/133g | 10% | — | — |
| – | Max Heath | RUC | 1 in 2g | 1/2g (1·0) | 0/0g | 1/1g | 50% | — | 🏉 86' |
| – | Angus Hastie | DEF | 0 in 8g | 1/10g (1·0·0·0·0·0·0·0·0·0) | 1/1g | 1/6g | 9% | — | — |
| – | Callum Wilkie | DEF | 0 in 19g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/7g | 1/76g | 0% | — | — |
| – | Liam Stocker | DEF | 0 in 13g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/5g | 0/41g | 0% | — | — |
| – | Zak Jones | MID | 0 in 11g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 3/9g | 10/50g | 8% | — | — |

**North Melbourne** (team sheet)

| # | Player | Pos | 2025 | Last 10 | vs opp | Venue | Goal % | Alphr play | This game |
|---|---|---|---|---|---|---|---|---|---|
| – | Nick Larkey | KF | 38 in 16g | 21/10g (1·2·1·2·1·0·3·1·5·5) | 16/7g | 125/58g | 88% | ⚡ Anytime Goal $1.09 AI 91% ✓ Scored; 🎯 First Goal $11.00 AI 9% ✗ Not first | 🏉 29' 34' 65' |
| – | Cameron Zurhaar | DEF | 35 in 19g | 20/10g (4·3·2·0·3·0·2·3·0·3) | 11/7g | 93/62g | 78% | ⚡ Anytime Goal $1.20 AI 86% ✓ Scored; 🎯 First Goal $14.00 AI 7% ✗ Not first | 🏉 63' 85' |
| – | Paul Curtis | FWD | 30 in 16g | 15/10g (3·1·3·0·2·1·1·2·0·2) | 3/4g | 46/33g | 80% | ⚡ Anytime Goal $1.17 AI 79% ✗ No goal | — |
| – | Jack Darling | KF | 18 in 18g | 11/10g (2·2·0·0·1·1·0·3·1·1) | 29/16g | 59/39g | 68% | ⚡ Anytime Goal $1.40 AI 78% ✓ Scored | 🏉 61' |
| – | Colby McKercher | FWD | 10 in 19g | 5/10g (1·0·0·0·2·0·1·0·1·0) | 0/1g | 4/16g | 29% | — | 🏉 71' |
| – | Jacob Konstanty | FWD | 10 in 19g | 4/10g (1·1·0·1·0·1·0·0·0·0) | 0/0g | 3/8g | 45% | — | — |
| – | Luke Parker | DEF | 10 in 18g | 4/10g (1·0·0·1·2·0·0·0·0·0) | 12/14g | 34/39g | 40% | — | — |
| – | Cooper Harvey | DEF | 7 in 3g | 8/6g (1·0·0·1·4·2) | 0/1g | 1/3g | 67% | — | — |
| – | Harry Sheezel | MID | 5 in 19g | 4/10g (0·0·0·1·1·0·1·0·1·0) | 0/3g | 9/28g | 38% | — | 🏉 15' |
| – | Luke Davies-Uniacke | MID | 5 in 18g | 2/10g (0·1·0·0·1·0·0·0·0·0) | 0/7g | 21/54g | 28% | — | 🏉 9' |
| – | Tom Powell | FWD | 4 in 19g | 1/10g (0·1·0·0·0·0·0·0·0·0) | 1/3g | 14/40g | 22% | — | — |
| – | Zane Duursma | FWD | 4 in 8g | 4/10g (0·0·2·1·0·1·0·0·0·0) | 0/1g | 3/10g | 39% | — | — |
| – | Dylan Stephens | MID | 3 in 18g | 1/10g (0·0·0·0·1·0·0·0·0·0) | 0/3g | 0/20g | 8% | — | — |
| – | George Wardlaw | MID | 3 in 9g | 4/10g (1·1·1·1·0·0·0·0·0·0) | 1/1g | 6/15g | 33% | — | 🏉 67' |
| – | Robert Hansen Jr | DEF | 3 in 11g | 3/10g (0·0·0·0·0·1·1·1·0·0) | 0/0g | 4/8g | 31% | — | — |
| – | Brynn Teakle | RUC | 1 in 2g | 8/10g (2·0·1·1·1·2·0·0·1·0) | 0/1g | 6/8g | 52% | — | — |
| – | Finn O'Sullivan | MID | 1 in 18g | 1/10g (0·0·1·0·0·0·0·0·0·0) | 0/0g | 0/7g | 7% | — | — |
| – | Caleb Daniel | DEF | 0 in 19g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 2/9g | 30/96g | 6% | — | — |
| – | Charlie Comben | DEF | 0 in 16g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/1g | 5/20g | 6% | — | — |
| – | Griffin Logue | DEF | 0 in 12g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/6g | 2/22g | 12% | — | — |
| – | Riley Hardeman | DEF | 0 in 15g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/1g | 0/6g | 0% | — | — |
| – | Toby Pink | DEF | 0 in 13g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/1g | 3/12g | 16% | — | — |
| – | Zac Banch | FWD | 0 in 2g | 0/2g (0·0) | 0/0g | 0/1g | 0% | — | — |

### Player Props — Disposal Counts

_Bookmaker disposal lines vs our model's read. ⚡ = the validated under signal (model ≥10 points past the price) — everything else is market intel, not a tip. The ⚡ under signal's verified record: 57.7% of 1,278 flags in 2025._

**St Kilda**

| Player | Line | Under | AI Under | Actual |
|---|---|---|---|---|
| Nasiah Wanganeen-Milera | 30.5 | $1.90 | 58% | 36 ✗ |
| Jack Sinclair | 26.5 | $1.87 | 60% | 26 ✓ |
| Jack Macrae | 25.5 | $1.89 | 49% | 22 ✓ |
| Marcus Windhager ⚡ Under | 23.5 | $1.87 | 67% | 20 ✓ |
| Max Hall ⚡ Under | 21.5 | $1.87 | 89% | 14 ✓ |
| Bradley Hill | 20.5 | $1.90 | 51% | 17 ✓ |
| Callum Wilkie | 18.5 | $1.87 | 55% | 17 ✓ |
| Rowan Marshall | 18.5 | $1.88 | 51% | 24 ✗ |

**North Melbourne**

| Player | Line | Under | AI Under | Actual |
|---|---|---|---|---|
| Harry Sheezel ⚡ Under | 26.5 | $1.91 | 64% | 33 ✗ |
| Colby McKercher ⚡ Under | 26.5 | $1.95 | 74% | 36 ✗ |
| Luke Davies-Uniacke ⚡ Under | 25.5 | $1.92 | 69% | 21 ✓ |
| Caleb Daniel | 24.5 | $1.89 | 60% | 32 ✗ |
| Luke Parker ⚡ Under | 23.5 | $1.88 | 67% | 17 ✓ |
| Tom Powell ⚡ Under | 23.5 | $1.88 | 65% | 24 ✗ |
| George Wardlaw ⚡ Under | 16.5 | $1.87 | 70% | 17 ✗ |

**Prediction by Alphr** (https://alphr.com.au) — free AI predictions for every AFL, NRL & Super League match, published before kick-off and never edited. Verified track record: https://alphr.com.au/accuracy

---
Canonical URL: https://alphr.com.au/afl/match/2025-r21-st-kilda-v-north-melbourne
RSS feed: https://alphr.com.au/feed.xml
Prediction JSON API: today https://alphr.com.au/api/predictions/today · this week https://alphr.com.au/api/predictions/weekly
Markdown view for AI agents. Machine-readable index: https://alphr.com.au/llms.txt · full reference: https://alphr.com.au/llms-full.txt
All predictions are published before kick-off and verified after full time. Free, no login. 18+ gamble responsibly (AU).
Last updated: 2026-02-24 11:45 UTC (latest tip update)