# Roosters v Storm — NRL Round 20 2026 AI Prediction by Alphr

## Full Time: Roosters 14 – 6 Storm

_Roosters strut past Storm._

Half time: 8 – 0 · Alphr AI pre-game win probability: Roosters 69% / Storm 31% · Allianz Stadium, Sydney · Fri, 17 July, 08:00 pm AEST

**Try Scorers** — Roosters: Siua Wong (6' 1st), Billy Smith (26' Tipped ⚡), Daniel Tupou (74' Tipped ⚡) · Storm: Stefano Utoikamanu (58')

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

| Team | Pre-game AI win probability | Result |
|---|---|---|
| Roosters | 69% | Won |
| Storm | 31% | Lost |

Model call: **Correct** · Margin: 10.8 predicted → 8 actual · Markets hit: 4/4

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

### Full-Time Report

**Sydney Roosters vs Melbourne Storm Prediction & Tips | NRL Round 20 2026**

_By Ben Dunlop · Published: 14 July 2026, 06:43 pm · Last updated: 17 July 2026, 09:47 pm_

Roosters 14–6 Storm in NRL Round 20 at Allianz Stadium, Sydney. Here's how the result stacked up against the model's call, with the win-probability story and where the value landed.

At half-time, the Roosters were ahead 8-0 against the Storm at Allianz Stadium. Siua Wong and Billy Smith scored early, setting the Roosters up for a strong position. The Storm had a chance to regroup in the second half, but despite Stefano Utoikamanu's try just before the hour mark, they couldn't turn the game around. The Roosters held firm, sealing the match 14-6 with a late try by Daniel Tupou.

The Roosters had 54% possession, giving them a slight edge in territory. Both teams completed their sets at 80%, so the game was more about capitalising on opportunities than handling errors. The Roosters made the most of their chances, converting possession into points.

In the forwards, the Roosters dominated with 1,783 run metres, including 658 post-contact metres, keeping the Storm on the defensive. They broke through tackles 27 times compared to the Storm's 17, using their physicality to create scoring opportunities.

Defensively, the Roosters were more effective, with a 92.2% tackle success rate compared to the Storm's 90.4%. This slight edge was significant, as the Storm missed 27 tackles. The Roosters' defence ensured their first-half lead was solid and not easily overturned.

The Storm's attack showed promise at times, with Utoikamanu scoring in the second half to spark hopes of a comeback. However, they couldn't maintain momentum, and the Roosters' defence held strong.

Before the match, Alphr's model predicted a Roosters win with a 69% probability and a margin of 10.8 points. The actual margin was 8 points, reflecting the Roosters' effective execution. The match's total points were 22 below the predicted 42, highlighting the defensive efforts. The Storm covered the 11.5-point spread, and the game fit into the 1-12 margin band, with total points under 45.5.

The Roosters demonstrated why their pre-match ratings were higher in every position. They outperformed the Storm in key areas, giving the home crowd plenty to celebrate. The Storm showed effort and skill in moments, but the Roosters owned the night. A model prediction that mostly held true, a lead maintained, and a victory secured.

**Scoring by Half**

| Team | H1 | H2 | T |
|---|---|---|---|
| Roosters | 8 | 6 | 14 |
| Storm | 0 | 6 | 6 |

**Key Match Stats**

| Roosters | Stat | Storm |
|---|---|---|
| **54%** | Possession | 46% |
| 80% | Completion rate | 80% |
| **1,783** | Run metres | 1,420 |
| **658** | Post-contact metres | 453 |
| **3** | Line breaks | 2 |
| **27** | Tackle breaks | 17 |
| 8 | Offloads | **9** |
| **92.2%** | Effective tackle % | 90.4% |
| **17** | Missed tackles | 27 |
| 13 | Errors | **11** |
| **2** | Penalties conceded | 3 |
| 809 | Kick metres | **827** |

**Model Report Card**

Our model correctly predicted Roosters to win at 69% probability. The margin model was sharp, predicting Roosters by 10.8 vs the actual margin of 8 points. The game's 20 points came in 22 points lower than the predicted 42. The model went 6/17 on this match. Storm covered the 11.5-point line. The 1-12 margin band call landed. The under 45.5 total call was correct.

**Referee Watch**

Gerard Sutton officiated this match (397 career games). The combined score of 20 points was 22 points below Gerard Sutton's career average of 42. Roosters bucked the trend, Storm historically win 73% of games under Gerard Sutton, but couldn't convert that edge today. Roosters's home victory fits Gerard Sutton's profile, home teams win 56% of the time under this referee. 62% of his career sin bins go against away teams, a statistically significant away-team bias.

**Key moments (momentum model)**

- 5' Try — Siua Wong (Roosters) — 4-0 · win-prob swing +5 pts
- 25' Try — Billy Smith (Roosters) — 8-0 · win-prob swing +6 pts
- 57' Try — Stefano Utoikamanu (Storm) — 8-4 · win-prob swing -5 pts
- 74' Try — Daniel Tupou (Roosters) — 12-6 · win-prob swing +5 pts

_Official NRL match stats · Generated by Alphr's model_

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

- **Head to Head:** Roosters to win @ $1.29 (edge -4.6%) — model probability 69.2% — result: WON
- **Line / Spread:** Storm +11.5 @ $1.91 (edge +0.0%) — result: WON
- **Margin Band:** Roosters 1-12 @ $2.55 (edge +0.0%) — result: WON
- **Total (Over/Under):** Under 45.5 @ $1.91 (edge +0.0%) — result: WON
- Predicted margin: Roosters by 11 · Predicted total: 42

### Match Preview (pre-match read)

The model is firm on Roosters here: 69% to see off Storm. The heaviest factor is the ratings gap: Roosters sit 97 ELO points clear, 1601 to 1504.

Roosters own the matchup too, leading 6 of 7 factors including ELO Difference, Forward Pack and Backline Quality. The margin model has Roosters by 10.8, with the two sides combining for about 42. Roosters to win, and win clearly. The model isn't hedging.

Storm have won 8 of the last 10 between these two, and Roosters took the most recent meeting 14-6 in 2026 Round 20.

Roosters have won 3 straight. Storm have put up 126 points in four games. Roosters have won 6 games this season after trailing at half-time.

On the ladder it's Roosters 3rd against Storm 10th.

The market has Roosters favourites, Roosters $1.29 and Storm $3.64, with the line at Roosters -11.5 and the total at 45.5.

Gerard Sutton has the whistle: 17.4 penalties a game (whistle-happy), 0.7 sin bins a game.

**By the numbers**

|  |  |
|---|---|
| H2H (last 10) | Roosters 2 · Storm 8 |
| Last meeting | Roosters 14-6 |
| Roosters last 4 | LWWW · 113 for, 67 against |
| Roosters at home | 10-4 this season |
| Storm last 4 | WLWW · 126 for, 82 against |
| Storm away | 4-8 this season |
| Ladder | Roosters 3rd · Storm 10th |
| Finals odds | Roosters 100% · Storm 0% |
| Market | Roosters $1.29 · Storm $3.64 |
| Line | Roosters -11.5 · total 45.5 |
| Referee | Gerard Sutton · 17.4 pens/g · 0.7 bins/g |

_Pre-match read · Alphr model_

### Referee Indicator — Favours Storm

**Gerard Sutton** — 397 career games since 2012.

| Team | Record under Gerard Sutton | Win rate |
|---|---|---|
| Roosters | 33W–27L | 55% |
| Storm | 48W–18L | 73% |

Avg total: 41.5 pts · Home win %: 56% · Home bias: Leans home

When Gerard Sutton officiates, Storm have won 48 of 66 games (73%), significantly stronger than Roosters's 33 from 60 (55%). Home teams win 56% of his matches (vs ~52% league avg).

Penalises away teams more, 5.3 against home vs 6 against away. Storm get a +0.3 penalty advantage under Gerard Sutton vs Roosters's -1.2. 62% of his 168 career sin bins go to away teams.

### Recent Form (Last 5)

| Roosters | Stat | Storm |
|---|---|---|
| 4.0 | Wins (Last 5) | 4.0 |
| 23.0pts | Avg Score | 23.6pts |
| 17.2pts | Avg Conceded | 20.4pts |
| 5.8pts | Avg Margin | 3.2pts |
| 1730.2m | Run Metres | 1737.0m |
| 4.6 | Line Breaks | 5.8 |
| 341.2 | Tackles | 321.6 |
| 11.6 | Errors | 8.8 |

### Form & History

_Last 5 games, oldest → newest._

| Team | Last 5 | Avg Pts |
|---|---|---|
| Roosters | R14 W · R15 L · R16 W · R17 W · R19 W | 23.0 |
| Storm | R13 W · R14 W · R16 W · R17 L · R19 W | 23.6 |

### H2H History (Last 5) — Storm lead 4-1

| Season | Round | Home | Score | Away | Alphr's read |
|---|---|---|---|---|---|
| 2026 | R13 | Storm | 18 – 4 | Roosters | Roosters 55% ✗ |
| 2025 | R26 | Storm | 10 – 40 | Roosters | not priced |
| 2025 | R21 | Roosters | 30 – 34 | Storm | not priced |
| 2024 | PF | Storm | 48 – 18 | Roosters | not priced |
| 2024 | R20 | Storm | 24 – 8 | Roosters | not priced |

_Alphr's pre-match read was wrong in the one decided meeting it priced._

### Positional Matchup

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

**Field Matchup** — where one team attacks vs where the other concedes:
- Roosters' best path is the right edge: NRL's 1st-ranked right edge attack (2.13 tries/game) runs at a Storm defence ranked 13th there (1.41 conceded/game). Key man: Nawaqanitawase, 12 tries in that channel this season.
- Storm's best path is the middle: NRL's 4th-ranked middle attack (1.94 tries/game) runs at a Roosters defence ranked 9th there (1.63 conceded/game). Key man: Faalogo, 13 tries in that channel this season.

| Channel | Roosters | Storm |
|---|---|---|
| Left | 0.94/g (att 15th (weak)) · concedes 1.31/g (def 6th (strong)) | 0.82/g (att 17th (weak)) · concedes 1.53/g (def 13th (weak)) |
| Middle | 1.5/g (att 8th) · concedes 1.63/g (def 9th) | 1.94/g (att 4th (strong)) · concedes 1.18/g (def 3rd (strong)) |
| Right | 2.13/g (att 1st (strong)) · concedes 0.69/g (def 1st (strong)) | 1.53/g (att 3rd (strong)) · concedes 1.41/g (def 13th (weak)) |

**Attack Spine** (Halfback · Five-Eighth · Hooker)

|  | Roosters | Storm |
|---|---|---|
| Attack rank | 5th (strong) | 2nd (strong) |
| Defence rank | 7th | 5th (strong) |
| Tries scored · conceded | 12 · 8 | 14 · 8 |
| Try Assists | 1.5/g | 2/g |
| Run Metres | 192m/g | 232m/g |
| Tackle Breaks | 3.6/g | 6.3/g |
| Line Breaks | 0.6/g | 1.3/g |
| Tackle Efficiency | 87.9% | 84.7% |

**Outside Backs** (Fullback · Wingers · Centres)

|  | Roosters | Storm |
|---|---|---|
| Attack rank | 4th (strong) | 9th |
| Defence rank | 4th (strong) | 10th |
| Tries scored · conceded | 52 · 36 | 47 · 45 |
| Try Assists | 2.4/g | 0.9/g |
| Run Metres | 737m/g | 692m/g |
| Tackle Breaks | 16.8/g | 17.3/g |
| Line Breaks | 3.6/g | 3.1/g |
| Tackle Efficiency | 81% | 74.6% |

**Forwards** (Props · 2nd Rows · Lock)

|  | Roosters | Storm |
|---|---|---|
| Attack rank | 16th (weak) | 13th (weak) |
| Defence rank | 4th (strong) | 17th (weak) |
| Tries scored · conceded | 6 · 9 | 10 · 20 |
| Try Assists | 0.1/g | 0.2/g |
| Run Metres | 555m/g | 505m/g |
| Tackle Breaks | 10.1/g | 9.7/g |
| Line Breaks | 0.3/g | 0.7/g |
| Tackle Efficiency | 90% | 91.7% |

**Who scores on Storm** — Wingers 1.35/g (lg 1.28) +5% · Centres 0.69/g (lg 0.72) -4% · 2nd Rows 0.42/g (lg 0.47) -11%
**Who scores on Roosters** — Five-Eighths 0.38/g (lg 0.27) +41% · Props 0.18/g (lg 0.16) +13% · Fullbacks 0.46/g (lg 0.41) +12%

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

### Try Scorer History — Who Crosses The Line

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

**Roosters** (team sheet)

| # | Player | Pos | 2026 | Last 10 | vs opp | Venue | Try % | Alphr play | This game |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Cody Ramsey | FB | 1 in 13g | 1/10g (0·0·0·0·0·0·1·0·0·0) | 1/3g | 0/6g | 20% | — | — |
| 2 | Daniel Tupou | WG | 11 in 11g | 11/10g (1·0·1·2·0·2·1·1·0·3) | 14/26g | 79/104g | 60% | ⚡ Anytime Try $1.63 AI 86% ✓ Scored; 🎯 First Try $7.00 AI 20% ✗ Not first | 🏉 74' |
| 3 | Billy Smith | CE | 6 in 8g | 6/10g (0·0·1·0·1·0·0·1·2·1) | 1/4g | 5/11g | 40% | ⚡ Anytime Try $2.20 AI 70% ✓ Scored | 🏉 26' |
| 4 | Hugo Savala | CE | 6 in 12g | 6/10g (2·0·1·1·1·0·1·0·0·0) | 0/2g | 5/13g | 31% | ⚡ Anytime Try $2.45 AI 45% ✗ No try | — |
| 5 | Mark Nawaqanitawase | WG | 12 in 12g | 11/10g (0·2·0·2·2·0·3·2·0·0) | 4/2g | 17/17g | 53% | ⚡ Anytime Try $1.61 AI 86% ✗ No try; 🎯 First Try $7.50 AI 20% ✗ Not first | — |
| 6 | Daly Cherry-Evans | 5/8 | 4 in 16g | 1/10g (0·1·0·0·0·0·0·0·0·0) | 2/29g | 5/29g | 18% | — | — |
| 7 | Sam Walker | HB | 6 in 14g | 6/10g (1·1·2·1·0·0·0·0·0·1) | 1/9g | 11/25g | 28% | — | — |
| 8 | Naufahu Whyte | PR | 0 in 16g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/8g | 2/31g | 4% | — | — |
| 9 | Reece Robson | HK | 3 in 12g | 3/10g (0·0·1·1·0·0·0·1·0·0) | 2/9g | 2/6g | 18% | — | — |
| 10 | Spencer Leniu | PR | 0 in 12g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/12g | 1/21g | 4% | — | — |
| 11 | Nat Butcher | 2R | 1 in 15g | 1/10g (0·0·1·0·0·0·0·0·0·0) | 1/17g | 4/33g | 12% | — | — |
| 12 | Siua Wong | 2R | 2 in 16g | 1/10g (1·0·0·0·0·0·0·0·0·0) | 3/5g | 3/20g | 12% | — | 🏉 6' |
| 13 | Victor Radley | LK | 1 in 10g | 1/10g (1·0·0·0·0·0·0·0·0·0) | 0/15g | 7/46g | 18% | — | — |
| 14 | Connor Watson | INT | 1 in 16g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/15g | 7/49g | 10% | — | — |
| 15 | Salesi Foketi | INT | 0 in 16g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/2g | 0/15g | 2% | — | — |
| 16 | Egan Butcher | INT | 0 in 13g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/9g | 1/24g | 4% | — | — |
| 17 | Taylor Losalu | RES | 0 in 2g | 0/8g (0·0·0·0·0·0·0·0) | 0/0g | 0/4g | 0% | — | — |

**Storm** (team sheet)

| # | Player | Pos | 2026 | Last 10 | vs opp | Venue | Try % | Alphr play | This game |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Sualauvi Faalogo | FB | 13 in 17g | 4/10g (1·1·1·0·0·0·0·1·0·0) | 1/2g | 0/0g | 42% | — | — |
| 2 | Will Warbrick | WG | 16 in 17g | 9/10g (0·0·2·0·0·1·1·3·1·1) | 2/8g | 0/1g | 56% | ⚡ Anytime Try $1.99 AI 78% ✗ No try; 🎯 First Try $10.00 AI 29% ✗ Not first | — |
| 3 | Jack Howarth | CE | 5 in 14g | 3/10g (1·0·0·0·0·1·0·0·0·1) | 3/5g | 1/2g | 26% | ⚡ Anytime Try $4.60 AI 36% ✗ No try; 🎯 First Try $21.00 AI 9% ✗ Not first | — |
| 4 | Nick Meaney | CE | 3 in 13g | 3/10g (0·0·2·0·0·0·0·0·0·1) | 4/14g | 1/2g | 26% | ⚡ Anytime Try $4.25 AI 29% ✗ No try | — |
| 6 | Tyran Wishart | 5/8 | 1 in 12g | 1/10g (0·0·0·0·0·0·1·0·0·0) | 1/7g | 0/2g | 18% | — | — |
| 7 | Trent Toelau | HB | 1 in 9g | 1/10g (0·0·0·0·0·0·0·1·0·0) | 0/1g | 0/0g | 9% | — | — |
| 8 | Stefano Utoikamanu | PR | 1 in 17g | 1/10g (0·0·0·0·0·0·1·0·0·0) | 1/6g | 1/3g | 8% | — | 🏉 58' |
| 9 | Harry Grant | HK | 6 in 16g | 3/10g (0·0·0·1·1·1·0·0·0·0) | 4/11g | 1/2g | 34% | — | — |
| 10 | Josh King | PR | 2 in 17g | 2/10g (0·0·0·1·1·0·0·0·0·0) | 2/14g | 2/3g | 14% | — | — |
| 11 | Cooper Clarke | 2R | 2 in 17g | 1/10g (0·0·0·1·0·0·0·0·0·0) | 0/1g | 0/0g | 11% | — | — |
| 12 | Oryn Keeley | 2R | 0 in 11g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/4g | 0/0g | 8% | — | — |
| 13 | Trent Loiero | LK | 1 in 14g | 1/10g (0·0·0·0·0·0·1·0·0·0) | 0/12g | 0/2g | 10% | — | — |
| 14 | Gabriel Satrick | RES | 0 in 1g | 0/1g (0) | 0/0g | 0/0g | 0% | — | — |
| 15 | Jack Hetherington | INT | 0 in 12g | 0/10g (0·0·0·0·0·0·0·0·0·0) | 0/7g | 0/1g | 2% | — | — |
| 16 | Josiah Pahulu | RES | 0 in 7g | 1/10g (0·0·1·0·0·0·0·0·0·0) | 0/1g | 0/0g | 5% | — | — |
| 17 | Alec MacDonald | INT | 1 in 13g | 1/10g (0·0·0·0·0·0·0·0·0·1) | 0/7g | 0/1g | 8% | — | — |

### Prediction Breakdown — Pure Alpha Model

**Team ELO Ratings** — Roosters 1601 · Storm 1504 · ELO difference: 97 in favour of Roosters

**Positional Matchups** — lineup ELO by unit

| Unit | Roosters | Storm | Edge |
|---|---|---|---|
| Forwards | 1117 | 1005 | Roosters +112 |
| Backs | 1139 | 996 | Roosters +143 |
| Halves | 1110 | 1030 | Roosters +80 |
| Hooker | 1120 | 1001 | Roosters +119 |

**Key Prediction Factors** — what the model weighted most

| # | Factor | Weight | Favours |
|---|---|---|---|
| 1 | ELO Difference | 14.0% | Roosters |
| 2 | Forward Pack | 12.0% | Roosters |
| 3 | Backline Quality | 10.0% | Roosters |
| 4 | Halves Control | 9.0% | Roosters |
| 5 | Recent Win Rate | 9.0% | Roosters |
| 6 | Referee Tendency | 7.0% | Storm |
| 7 | Venue Advantage | 7.0% | Roosters |

**Model Confidence: 69%** — Roosters predicted to win by 11 points · Predicted total: 42 pts

**Record:** 4/4 match predictions correct

**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/nrl/match/2026-r20-roosters-v-storm
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-07-17 11:47 UTC (latest tip update)