# Port Adelaide v Sydney Swans — AFL Round 15 2025 AI Prediction by Alphr

## Full Time: Port Adelaide 52 – 71 Sydney Swans

_Sydney Swans sail past Port Adelaide._

Half time: 16 – 34 · Alphr AI pre-game win probability: Port Adelaide 45% / Sydney Swans 55% · Adelaide Oval · Sat, 21 June, 04:15 pm AEST

**Goal Kickers** — Port Adelaide: Jason Horne-Francis (32'), Willie Rioli (72' Tipped ⚡), Mitch Georgiades (75' Tipped ⚡), Darcy Byrne-Jones (84'), Sam Powell-Pepper (85' Tipped ⚡), Joe Richards (90') · Sydney Swans: Nick Blakey (30' 1st), Will Hayward (45' ×3 Tipped ⚡), Isaac Heeney (65' ×2 Tipped ⚡), Hayden McLean (79' Tipped ⚡), Braeden Campbell (82')

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

| Team | Pre-game AI win probability | Result |
|---|---|---|
| Sydney Swans | 55% | Won |
| Port Adelaide | 45% | Lost |

Model call: **Correct** · Margin: 5.6 predicted → 19 actual · Markets hit: 3/3

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

### Full-Time Report

**Port Adelaide Power vs Sydney Swans Prediction & Tips | AFL Round 15 2025**

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

Port Adelaide 52–71 Sydney Swans in AFL Round 15 at Adelaide Oval. Here's how the result stacked up against the model's call, with the win-probability story and where the value landed.

Nineteen points separated Sydney Swans and Port Adelaide at the final siren, 71 to 52, and on paper that reads like a fairly routine away win. Look a bit closer and it complicates itself fast. Port actually won the marking count 97 to 95 and out-tackled Sydney 52 to 49. This wasn't a case of one side getting run off its feet around the ground. It was a case of one side doing more with the moments that actually matter.

The gap opened early and never closed. Sydney led 12-2 at quarter time, already a ten-point buffer inside the first term, and had it out to 34-16 by half time. Port managed only 14 more points in the third quarter to Sydney's 12, so the margin actually tightened slightly, 46-30 at the three-quarter time break, before Sydney finished the job. Port were still down 16 points heading into the last term, and the final quarter saw Sydney add 25 to Port's 22. The margin never seriously threatened to swing back.

The stats behind that scoreline explain it better than the score itself. Sydney won clearances 36 to 31 and smashed Port at the source of it all, contested possession, 125 to 102. That number probably tells the real story more than anything on the ledger. Port had plenty of the ball, 334 disposals to Sydney's 344 isn't a big gap, but a lot of that was clean, uncontested stuff that didn't hurt anyone.

Where it really cost them was inside 50. Sydney went inside 50 a massive 51 times to Port's 35, and backed that up defensively with 57 intercepts to 43. Port's marks inside 50 were actually competitive, 19 to 18, which suggests when the ball did get forward for them, they made reasonable use of it. The problem was volume: Sydney simply generated more entries and cut off more of Port's ball going the other way. Disposal efficiency added another layer, Sydney at 70.9% to Port's 67.9%, meaning when Sydney had it, they generally kept it.

It's a fair reversal of what the pre-match numbers pointed to. Port went in rated stronger going forward, 1112 to 965, and their hit-out numbers were competitive too, losing that battle only 35 to 30 despite Sydney being rated the stronger ruck outfit, 1058 to 1057. On paper this had the shape of a tighter contest than it turned out to be.

Alphr's model had Sydney as 55% favourites and got the winner right, part of a clean sweep on all three picks for the match. But the margin model undercooked this one badly, tipping Sydney by 5.6 points when the actual gap was 19. The total also ran well under expectations, 123 points scored against a projected 158, a reminder that these two sides can grind a game down far tighter, defensively, than the market expected walking in.

**Scoring by Quarter**

| Team | Q1 | Q2 | Q3 | Q4 | T |
|---|---|---|---|---|---|
| Port Adelaide | 2 | 14 | 14 | 22 | 52 |
| Sydney Swans | 12 | 22 | 12 | 25 | 71 |

**Key Match Stats**

| Port Adelaide | Stat | Sydney Swans |
|---|---|---|
| 334 | Disposals | **344** |
| 102 | Contested poss. | **125** |
| 31 | Clearances | **36** |
| 35 | Inside 50s | **51** |
| **97** | Marks | 95 |
| **19** | Marks inside 50 | 18 |
| **52** | Tackles | 49 |
| 30 | Hit-outs | **35** |
| 43 | Intercepts | **57** |
| 67.9% | Disposal eff. | **70.9%** |

**Model Report Card**

Our model correctly predicted Sydney Swans to win at 55% probability. The margin model missed here, predicting 5.6 but the actual margin was 19 points. The game's 123 points came in 35 points lower than the predicted 158. 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:** Sydney Swans to win @ $1.97 (edge +4.7%) — model probability 55.4% — result: WON
- **Line / Spread:** Sydney Swans -3.5 @ $1.91 (edge +4.7%) — result: WON
- **Total (Over/Under):** Under 168.5 @ $1.91 (edge +2.6%) — result: WON
- Predicted margin: Sydney Swans by 6 · Predicted total: 158

### Positional Matchup

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

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

|  | Port Adelaide | Sydney Swans |
|---|---|---|
| Attack rank | 11th | 16th (weak) |
| Defence rank | 12th | 10th |
| Goals scored · conceded | 95 · 113 | 78 · 106 |
| Goal Assists | 4/g | 3.2/g |
| Disposals | 105/g | 107/g |
| Inside 50s | 17.2/g | 16.2/g |
| Marks Inside 50 | 8.1/g | 5.9/g |
| Disposal Efficiency | 69.3% | 69.3% |

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

|  | Port Adelaide | Sydney Swans |
|---|---|---|
| Attack rank | 14th (weak) | 4th (strong) |
| Defence rank | 11th | 14th (weak) |
| Goals scored · conceded | 27 · 38 | 51 · 41 |
| Goal Assists | 2.7/g | 3/g |
| Disposals | 146/g | 137/g |
| Inside 50s | 22.2/g | 24.3/g |
| Marks Inside 50 | 2.5/g | 2.8/g |
| Disposal Efficiency | 69.7% | 66.5% |

**Defenders** (Key & Medium Defenders)

|  | Port Adelaide | Sydney Swans |
|---|---|---|
| Attack rank | 6th (strong) | 8th |
| Defence rank | 15th (weak) | 11th |
| Goals scored · conceded | 20 · 19 | 14 · 16 |
| Goal Assists | 1.2/g | 1.4/g |
| Disposals | 109/g | 107/g |
| Inside 50s | 12.6/g | 13.2/g |
| Marks Inside 50 | 1.5/g | 0.6/g |
| Disposal Efficiency | 76.2% | 76.2% |

**Who scores on Sydney Swans** — Rucks 0.59/g (lg 0.5) +18% · Midfielders 2.38/g (lg 2.38) +0% · Forwards 4.41/g (lg 4.44) -1%
**Who scores on Port Adelaide** — Defenders 1.48/g (lg 1.29) +15% · Forwards 4.48/g (lg 4.44) +1% · Rucks 0.5/g (lg 0.5) +0%

_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 Adelaide Oval. ⚡ = 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._

**Port Adelaide** (team sheet)

| # | Player | Pos | 2025 | Last 10 | vs opp | Venue | Goal % | Alphr play | This game |
|---|---|---|---|---|---|---|---|---|---|
| – | Mitch Georgiades | KF | 32 in 13g | 26/10g (3·3·3·2·1·2·1·3·1·7) | 8/5g | 82/45g | 90% | ⚡ Anytime Goal $1.04 AI 91% ✓ Scored; 🎯 First Goal $8.62 AI 9% ✗ Not first | 🏉 75' |
| – | Willie Rioli | FWD | 18 in 12g | 14/10g (0·0·3·3·1·2·0·2·2·1) | 10/7g | 56/33g | 80% | ⚡ Anytime Goal $1.19 AI 76% ✓ Scored | 🏉 72' |
| – | Sam Powell-Pepper | FWD | 15 in 13g | 12/10g (1·2·2·1·1·2·2·0·0·1) | 8/8g | 69/84g | 74% | ⚡ Anytime Goal $1.30 AI 67% ✓ Scored | 🏉 85' |
| – | Darcy Byrne-Jones | DEF | 13 in 12g | 11/10g (2·0·1·3·0·2·1·0·0·2) | 3/11g | 39/114g | 64% | — | 🏉 84' |
| – | Jason Horne-Francis | MID | 9 in 11g | 8/10g (1·1·3·0·0·1·0·1·0·1) | 2/6g | 32/35g | 68% | — | 🏉 32' |
| – | Connor Rozee | MID | 8 in 13g | 6/10g (0·2·1·1·0·1·0·0·1·0) | 10/8g | 76/77g | 46% | — | — |
| – | Joe Richards | FWD | 8 in 12g | 7/10g (1·0·2·2·0·0·1·0·1·0) | 0/1g | 6/7g | 52% | — | 🏉 90' |
| – | Jeremy Finlayson | KF | 5 in 7g | 6/10g (1·0·0·0·1·0·3·0·1·0) | 9/9g | 52/37g | 60% | — | — |
| – | Jase Burgoyne | MID | 3 in 13g | 1/10g (0·0·0·0·0·0·0·0·0·1) | 1/3g | 8/25g | 16% | — | — |
| – | Miles Bergman | DEF | 3 in 13g | 3/10g (0·1·0·0·0·0·0·1·0·1) | 1/5g | 12/53g | 20% | — | — |
| – | Jackson Mead | FWD | 2 in 13g | 2/10g (0·2·0·0·0·0·0·0·0·0) | 0/5g | 2/30g | 14% | — | — |
| – | Jordon Sweet | RUC | 2 in 9g | 2/10g (0·1·0·0·0·0·0·0·1·0) | 1/3g | 2/15g | 21% | — | — |
| – | Kane Farrell | DEF | 2 in 11g | 2/10g (1·0·0·0·0·0·0·0·1·0) | 1/5g | 23/56g | 16% | — | — |
| – | Willem Drew | MID | 2 in 13g | 2/10g (0·1·1·0·0·0·0·0·0·0) | 1/6g | 10/67g | 16% | — | — |
| – | Christian Moraes | FWD | 1 in 10g | 1/10g (0·0·0·0·0·0·0·0·0·1) | 0/1g | 0/6g | 10% | — | — |
| – | Ryan Burton | DEF | 1 in 7g | 3/10g (0·1·1·0·0·1·0·0·0·0) | 2/8g | 13/66g | 26% | — | — |
| – | Brandon Zerk-Thatcher | DEF | 0 in 3g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/5g | 0/20g | 0% | — | — |
| – | Dante Visentini | RUC | 0 in 5g | 1/10g (0·0·0·0·1·0·0·0·0·0) | 0/0g | 0/5g | 10% | — | — |
| – | Esava Ratugolea | DEF | 0 in 10g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 4/10g | 2/25g | 6% | — | — |
| – | Josh Sinn | DEF | 0 in 11g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/2g | 1/13g | 3% | — | — |
| – | Lachie Jones | DEF | 0 in 9g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/4g | 6/38g | 0% | — | — |
| – | Mani Liddy | MID | 0 in 1g | 0/1g (0) | 0/0g | 0/1g | 0% | — | — |
| – | Zak Butters | MID | 0 in 10g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 3/6g | 29/70g | 26% | — | — |

**Sydney Swans** (team sheet)

| # | Player | Pos | 2025 | Last 10 | vs opp | Venue | Goal % | Alphr play | This game |
|---|---|---|---|---|---|---|---|---|---|
| – | Will Hayward | FWD | 17 in 13g | 14/10g (4·1·2·0·1·2·1·1·1·1) | 7/8g | 8/10g | 82% | ⚡ Anytime Goal $1.26 AI 76% ✓ Scored | 🏉 45' 46' 65' |
| – | Hayden McLean | KF | 15 in 10g | 15/10g (2·1·3·2·1·1·1·1·2·1) | 5/4g | 7/6g | 84% | ⚡ Anytime Goal $1.25 AI 77% ✓ Scored | 🏉 79' |
| – | Isaac Heeney | MID | 15 in 13g | 13/10g (0·2·2·1·1·0·2·3·1·1) | 15/10g | 24/12g | 74% | ⚡ Anytime Goal $1.30 AI 75% ✓ Scored | 🏉 65' 62' |
| – | Chad Warner | MID | 14 in 13g | 9/10g (2·0·0·2·0·0·2·1·0·2) | 4/5g | 2/6g | 68% | — | — |
| – | Joel Amartey | KF | 11 in 6g | 17/10g (2·1·3·0·3·0·2·4·0·2) | 3/3g | 11/4g | 72% | ⚡ Anytime Goal $1.13 AI 82% ✗ No goal; 🎯 First Goal $11.00 AI 7% ✗ Not first | — |
| – | Braeden Campbell | FWD | 10 in 13g | 8/10g (1·1·0·2·0·1·1·1·1·0) | 0/4g | 3/5g | 40% | — | 🏉 82' |
| – | James Jordon | MID | 6 in 13g | 6/10g (0·0·0·1·2·0·0·0·0·3) | 0/7g | 1/10g | 30% | — | — |
| – | Nick Blakey | DEF | 6 in 13g | 5/10g (0·0·0·3·1·0·0·1·0·0) | 2/8g | 2/10g | 22% | — | 🏉 30' |
| – | Aaron Francis | KF | 5 in 6g | 5/10g (0·0·0·0·3·0·1·0·0·1) | 4/5g | 1/7g | 22% | — | — |
| – | Angus Sheldrick | MID | 4 in 10g | 4/10g (0·0·1·1·1·1·0·0·0·0) | 0/0g | 1/1g | 35% | — | — |
| – | Brodie Grundy | RUC | 3 in 13g | 3/10g (0·0·0·0·0·1·1·0·0·1) | 5/13g | 2/11g | 16% | — | — |
| – | James Rowbottom | FWD | 3 in 13g | 2/10g (0·0·1·0·1·0·0·0·0·0) | 1/8g | 1/10g | 22% | — | — |
| – | Justin McInerney | MID | 2 in 9g | 2/10g (0·0·0·0·0·0·1·1·0·0) | 0/6g | 1/6g | 32% | — | — |
| – | Tom McCartin | DEF | 2 in 13g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/8g | 1/9g | 4% | — | — |
| – | Callum Mills | DEF | 1 in 2g | 3/10g (0·1·1·0·0·0·0·0·1·0) | 1/9g | 2/10g | 34% | — | — |
| – | Matt Roberts | MID | 1 in 12g | 1/10g (0·1·0·0·0·0·0·0·0·0) | 0/3g | 0/4g | 10% | — | — |
| – | Riley Bice | DEF | 1 in 12g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/1g | 0/1g | 5% | — | — |
| – | Tom Papley | FWD | 1 in 3g | 14/10g (2·1·4·0·2·3·1·1·0·0) | 11/8g | 15/10g | 82% | ⚡ Anytime Goal $1.26 AI 79% ✗ No goal; 🎯 First Goal $14.00 AI 6% ✗ Not first | — |
| – | Dane Rampe | DEF | 0 in 13g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 1/14g | 0/12g | 4% | — | — |
| – | Errol Gulden | MID | no games | 5/10g (0·1·1·0·1·0·2·0·0·0) | 1/5g | 1/6g | 52% | — | — |
| – | Harry Cunningham | DEF | 0 in 1g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 5/12g | 7/11g | 4% | — | — |
| – | Lewis Melican | DEF | 0 in 7g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/4g | 0/3g | 2% | — | — |
| – | Sam Wicks | DEF | 0 in 11g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/4g | 1/6g | 28% | — | — |

### 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._

**Port Adelaide**

| Player | Line | Under | AI Under | Actual |
|---|---|---|---|---|
| Connor Rozee | 26.5 | $1.87 | 51% | 25 ✓ |
| Zak Butters | 26.5 | $1.80 | 51% | 28 ✗ |
| Jason Horne-Francis | 22.5 | $2.00 | 58% | 16 ✓ |
| Miles Bergman ⚡ Under | 21.5 | $1.95 | 76% | 14 ✓ |
| Ryan Burton | 19.5 | $1.79 | 51% | 21 ✗ |
| Willem Drew | 19.5 | $1.78 | 62% | 17 ✓ |
| Jase Burgoyne | 19.5 | $1.83 | 52% | 20 ✗ |
| Kane Farrell | 18.5 | $1.77 | 56% | 20 ✗ |

**Sydney Swans**

| Player | Line | Under | AI Under | Actual |
|---|---|---|---|---|
| Errol Gulden | 25.5 | $1.83 | 64% | 18 ✓ |
| Chad Warner | 24.5 | $1.80 | 65% | 17 ✓ |
| Isaac Heeney | 22.5 | $1.92 | 56% | 28 ✗ |
| Justin McInerney ⚡ Under | 22.5 | $2.00 | 67% | 22 ✓ |
| Angus Sheldrick ⚡ Under | 20.5 | $1.86 | 99% | 21 ✗ |
| Nick Blakey | 19.5 | $1.96 | 61% | 22 ✗ |
| Callum Mills | 19.5 | $1.93 | 57% | 27 ✗ |
| James Rowbottom ⚡ Under | 18.5 | $1.94 | 62% | 14 ✓ |

**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-r15-port-adelaide-v-sydney-swans
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)