

NRL Fantasy Projection Model: How Are They Built?
The fantasy projection model is built around the idea that a useful projection should be specific to the role a player is expected to play, rather than being a straight reading of his season average or recent scores.
Base And Upside
The core feature of this model is that fantasy scores are now split into base and upside before the projection is built. Base is intended to capture the repeatable part of a player's scoring profile: tackles, run metres, kick metres, and conversions. Upside is everything left after base has been removed, which means it includes both positive attacking events and negative events such as missed tackles, errors, penalties, and other volatile scoring outcomes.
The base calculation is:
base = floor(kick metres / 30)
+ floor(run metres / 10)
+ tackles
+ conversions * 2This split matters because a recent change in base is usually more informative than a recent change in upside. If a player's tackles, run metres, or kick metres have moved materially in recent games, that often points to a real change in role, minutes, involvement, or team usage, and can be relied on more to remain consistent than upside. If a player's upside has spiked or dried up over a short run, that is treated more cautiously because tries, assists, line breaks, errors, and missed tackles are much more volatile from week to week.
Position History Comes First
The model begins with position-specific history, because the same player can have a very different fantasy profile depending on where he is used. A middle forward, edge forward, hooker, half, centre, winger, or fullback can be exposed to different workloads even when the player's underlying ability has not changed, so the model gives priority to games played in the same role as the current projection.
That position history is not treated as equally reliable in every case. A player with twenty recent games in a role gives the model a stronger signal than a player with two games there, so the model uses "effective games" rather than raw appearances. Effective games are still date-weighted, which means a stale sample is trusted less even if the player's scoring signal itself is calculated from the sequence of games he actually played.
The trust calculation is:
trust = effective games / (effective games + 5)This means a small sample is blended heavily with broader information, while a larger and more recent sample is allowed to drive more of the projection.
Recency, EWMA And Half-Lives
The model uses exponentially weighted moving averages, or EWMAs, to make recent games count more than older games without completely discarding the older sample. For scoring signals, the EWMA is game-based rather than date-based: a player's most recent appearance is treated as his most recent game, even if there was a long calendar gap before it.
The half-life controls how quickly older games lose influence. A 12-game half-life means a game 12 appearances ago carries roughly half the weight of the latest appearance, while a game 24 appearances ago carries roughly a quarter of the weight. This is better suited to player performance than calendar decay, because an injury or suspension should reduce confidence in the sample, but it should not make the player's last actual game disappear from the form line.
Different parts of the projection use different game-based half-lives because not all stats should react at the same speed. General scoring form uses a 12-game half-life. Minutes use a faster 4-game half-life, because rotation and role changes can become relevant quickly. Base stats also use a 4-game half-life, because a recent change in tackles, metres, or kick metres is often evidence that the player's role has changed. Upside is split into a recent 4-game signal and a longer 12-game signal, with recent deviations shrunk back toward the longer-term level.
Credibility is the exception. Trust still uses a 365-day date-based half-life, so old or sparse samples are treated with less confidence even though the scoring averages are calculated from games played rather than days elapsed.
Upside is handled differently. The model compares recent upside with longer-term upside, but it shrinks recent deviations heavily back toward the player's historical level. A recent upside spike is only partly trusted, because a run of tries or assists is not as stable as a run of extra tackles or kick metres. A recent upside drought is also only lightly punished, because a few quiet attacking games should not erase the player's longer-term attacking expectation.
In practical terms, the model treats recent base movement as directional, while treating recent upside movement as mean-reverting:
base up recently -> positive signal
base down recently -> negative signal
upside up recently -> small positive signal, heavily shrunk toward history
upside down recently -> small negative signal, mostly reverted toward historyThe Fallback Layers
The base and upside components each move through the same fallback structure. The model first looks at the player's history in the projected position, then the player's overall history, then the team-position baseline, and finally the league-wide position baseline.
The fallback order is:
player in this position
-> player overall
-> team at this position
-> league position averageThe point of the structure is not to force every player into a generic baseline, but to use the most specific evidence available while controlling how much confidence is placed in it. A player with strong recent base numbers in the same role should be allowed to move meaningfully, while a player with a short upside-heavy scoring run should be pulled back toward a more sustainable expectation.
Minutes And Role Changes
For forwards and bench players, minutes are handled separately from scoring rate, because a change in role often shows up first as a change in playing time rather than a change in points per minute. The model estimates points per minute and expected minutes, then combines them into a role-adjusted signal:
role-adjusted signal = points per minute * expected minutesThis is applied to the base and upside components rather than only to total fantasy points. Base points per minute are allowed to respond quickly when a forward's workload changes, while upside points per minute are still shrunk back toward the longer-term upside profile.
Backs are treated differently because most are expected to play close to the full match. Games below 80 minutes are scaled to an 80-minute rate, which reduces the impact of early injuries or unusual reduced-minute appearances when estimating a winger, centre, fullback, or half.
Opponent Difficulty
Opponent difficulty is included as a controlled adjustment rather than a dominant input. The model measures how many fantasy points each team concedes by position, compares that with the league average for the same position, and applies a multiplier to reflect whether the matchup is easier or harder than average.
Because opponent splits can be noisy, that multiplier is shrunk toward neutral and capped at 10% in either direction. The adjustment is designed to nudge a projection when the matchup evidence is useful, not to override a player's role, minutes, base profile, and longer-term upside expectation.
What The Final Projection Blends
The final projection is the sum of projected base and projected upside after both have been blended through the position, overall, team-position, and league-position layers. The weighting between those layers changes depending on how much relevant evidence the player has in the role being projected.
Before official lineups are available, the model still needs a role assumption for each player, so the pre-lineup version assumes the player will play the same position he most recently played. That is a practical starting point based on the latest available role evidence, but it should be reviewed once teams are named, especially when a player changes position, moves to the bench, returns from injury, or enters a different minutes profile.
Where Judgement Still Matters
The model removes a large amount of manual work by quantifying the checks that usually have to be done player by player: position history, base involvement, recent scoring, minutes trend, injury-affected games, team role, and opponent context. It does not, however, know everything that matters before kickoff.
Late role changes, weather, minor injuries, coaching comments, bench balance, and teammate availability can still alter the projection in ways that are difficult to quantify cleanly. Those are the areas where manual review remains useful, particularly when the model is projecting from a role assumption rather than a confirmed team list.
What Comes Next
The next improvement is to make the model more aware of the team structure around each player. For example, if a high-minute forward is unavailable, the projection should be able to reflect the likely redistribution of minutes and workload across the rest of the pack, rather than only reacting once those changes appear in historical data.
That teammate and rotation context is the clearest remaining gap. The current model understands the player, the role, the base profile, the upside profile, the team-position baseline, and the opponent; the next step is improving how it understands the way one player's absence or role change affects the rest of the side.