The NRL Fantasy scoring system

Where fantasy points actually come from — and why time on field beats everything else.

NRL Fantasy scores players on what they do with the ball and in defence, not on whether their team wins. Points accumulate across a long list of statistics — runs, tackles, offloads, line breaks, tries and try assists on the positive side; errors, missed tackles and penalties on the negative side. Understanding which of those actually drive scores is what makes you good at the game.

{# TODO(tim): verify — the current (2022+) stat-to-points table is NOT computed in this codebase; fantasy_points_total is scraped from the NRL feed (fantasy_app/models.py, PlayerMatchStat.fantasy_points_total, ~line 3108, and fantasy_app/nrlw_scoring.py which states NRL publishes the total directly). The only scoring table in the repo is the pre-2022 legacy rescaling in PlayerMatchStat.calculate_adjusted_points() (~line 3169), which should NOT be published as current rules. I have therefore deliberately avoided stating any specific per-stat point values on this page. If you want a values table here, please supply the current official figures. #}

Minutes are the engine

If you take one thing from this guide, take this: time on field is the single biggest driver of fantasy scoring. Almost every scoring statistic accumulates with minutes. A player who runs the ball, makes tackles and plays the full eighty will reliably out-score a more talented player capped at forty, because the less talented player simply gets twice as many opportunities to accrue points.

This is why role changes matter more than form. A middle forward promoted from a 25-minute bench stint to a 50-minute starting rotation has roughly doubled their scoring potential without improving as a player at all. It is also why yafss builds projections from points per minute multiplied by projected minutes rather than from raw scoring averages — see how projections work.

Base stats versus attacking stats

Fantasy scoring splits usefully into two categories, and they behave very differently:

  • Base stats — tackles, runs, metres, offloads, play-the-balls. These accumulate steadily every game regardless of context. A hooker will make tackles whether their team is winning by 30 or losing by 30.
  • Attacking stats — tries, try assists, line breaks, line break assists. These are worth a lot per event but happen unpredictably, and depend on team performance and field position.

The practical implication is about consistency, not just average. Two players can average the same score with completely different distributions: the base-stat player produces something close to their average most weeks, while the attacking player alternates between quiet games and huge ones. For most squad slots you want the base-stat player, because a reliable floor is worth more than an occasional ceiling. The exception is the captaincy and genuine points of difference, where you are deliberately buying variance.

Why certain positions dominate

Positional scoring differences in NRL Fantasy are large and persistent, and they flow directly from base-stat volume:

  • Hookers combine very high tackle counts with high involvement in attack, and typically play long minutes — the highest-volume role on the field.
  • Middle forwards rack up runs, metres and tackles. Their limitation is minutes: many are rotated, so the ones who play extended stints are disproportionately valuable.
  • Halves score through involvement — kicks, assists and general playmaking — which makes them more matchup- and team-dependent.
  • Outside backs earn heavily from run metres and tries, giving them high ceilings but noticeably more week-to-week variance.

Because the positions score at genuinely different rates, comparing raw averages across positions is misleading. What matters is how a player compares to the others available at their position — which is exactly what position tiers are for.

Compare players within their position

Negative stats and the invisible tax

Errors, missed tackles, penalties conceded and time in the bin all subtract from a score. Individually they are small, but they are one of the main reasons a player's scoring falls short of what their positive stats suggest. Two forwards with identical run and tackle numbers can differ by a meaningful margin purely on discipline and ball security — and that difference tends to be a stable trait rather than random noise.

Reading a scoring breakdown on yafss

Every player page on yafss carries a full scoring history and a stat-by-stat breakdown, so you can see exactly where a score came from rather than just its total. That distinction matters when you are deciding whether a big week is repeatable:

  • A 70 built on tackles, runs and metres is largely a function of minutes and role — if both hold, expect something similar next week.
  • A 70 built on two tries is not a scoring rate, it's an event. The base underneath it is what will show up again.

Player Finder — filter the pool on scoring and minutes Position vs Team — which defences concede points to which positions

Once you can separate the repeatable part of a score from the lucky part, most of the hard trade decisions get much easier — and you stop paying premium prices for one good week.

Frequently asked questions

Minutes played. Almost every scoring stat accumulates with time on field, so a mid-tier player who plays 80 minutes will usually out-score a better player capped at 40.

Tackle-heavy roles accumulate a high volume of base stats every game regardless of whether their team is winning, which makes their scores far more consistent than attacking positions that depend on tries and line breaks.