How yafss projections work

A look under the hood at how every projection on the site is built — and how much to trust it.

Every projected score on yafss is built the same way: estimate how many minutes a player will get, estimate how many points they score per minute, and multiply. This page explains how each half of that is worked out, and — just as importantly — what a projection can and cannot tell you.

To keep it concrete, one real player runs through the whole page: Payne Haas, a Broncos prop, as he was projected for Round 21 of 2026. Every number below is the one the model actually used.

The example

Payne Haas — Broncos, Prop, priced at $756k with a breakeven of 50. Ten games into 2026 he was averaging 60. The question the model has to answer is: what should we expect this week?

Step one: projected minutes

Minutes are projected differently depending on where a player lines up:

  • Backs — fullback, wing, centre, five-eighth and halfback — are projected to play the full game, because they are rarely rotated.
  • Forwards share a fixed pool of minutes across each team's pack. Every forward gets an initial estimate from their own history, then those estimates are scaled so the pack's total comes out right. Heavy rotation reduces everyone; a short bench concentrates minutes into the starters. Those estimates are also pulled slightly towards the pack's average before they're shared out, because checking projections against what players actually went on to play showed the model spreading forwards too far apart — the big-minute forwards were being projected a few minutes high and the rotation players a few minutes low, every week.

Each player's individual starting estimate comes from their recent minutes, weighted so newer games count for more, with the current season weighted above previous ones. Where a player has no usable history, the model falls back progressively — current season, then all seasons, then players in the same position group — rather than guessing.

Props and locks are treated as one pool, because most middle forwards move between the two. That helps until someone is genuinely promoted: a rotation prop who plays around forty-five minutes gets named at lock, where the same player might play seventy-five, and judging him on the pool alone describes the job he just left. So his games at the position he's actually named at are given extra weight — but only in proportion to how many of them there are. Three or four good games at lock are still only three or four games, and testing showed that leaning on them heavily made projections worse, not better, even though it looked more accurate on average. A player who has been there all season gets judged on it; a player with a handful of games gets a nudge, not a rewrite.

One rule sits above all of this: a projection never looks at the round it is projecting. Both steps below read completed rounds only. A projection is a pre-game number, so it holds steady once the round kicks off — a forward who limps off after twenty-five minutes on the Friday keeps the projection he started the round with, rather than having his own bad night quietly folded into it. That game starts counting from the next round's projections.

Rather than trimming unusual games, the model deals with the specific reasons a game can misrepresent a player's role:

  • Sin bins are added back. Ten minutes in the bin doesn't mean a smaller role, so those minutes are credited back (up to a full game) before the average is taken.
  • Send-offs are ignored — the player was gone for the rest of the match for reasons that say nothing about next week.
  • Origin backups are ignored. A player who backs up for their club within days of an Origin game is usually managed through a shortened stint. That game is dropped from the minutes estimate, though their actual minutes still count towards their scoring rate.
  • Obvious injury cameos are dropped — a handful of minutes before someone limps off says nothing about their role. The cutoff scales with the position, at roughly 30% of what players there average, so it lands near fifteen minutes for a starting forward and on a flat ten-minute floor for interchange players, where a short stint is the job rather than a sign of injury.
  • A short-but-real night is kept, and it will move the projection. The cutoff above is deliberately a low bar. A forward who medians eighty and lasts twenty-five minutes clears it, so that game stays in and pulls his projected minutes down — by around fifteen at present, because the most recent game carries close to a third of the weight. Dropping games like it has been tested repeatedly and every version made projections worse: a forward who limped off last week is more likely to be managed or rotated the next one, so a short night is real information about the week ahead rather than noise to be deleted. It is the least satisfying part of the model, and the one most likely to look wrong on a player you own.
  • Covering for an early exit is discounted. When a team-mate's night ends early, the forwards still on the field absorb the minutes he didn't play. That's the same event seen from the other side, so a forward who goes well past his usual workload in a game where a pack-mate went off is pulled partway back towards his own role rather than being read as promoted. "His own role" is measured at the position being projected, so a real promotion isn't mistaken for cover: a hooker who moves from the bench into the starting side is judged against his starts, not against the interchange cameos he has left behind. The same now holds for a rotation prop named at lock — once he has a handful of games at thirteen, his lock starts are judged against his lock minutes rather than against the shorter front-row shifts he plays the rest of the time.
  • The bench can only stretch so far. When a pack is short, the minutes have to come from somewhere — but a bench forward plays about thirty-five minutes whoever is missing, so there is a limit to how much of the gap he can absorb. Beyond that the extra work goes to the starters, which is where it actually lands on the field.

With those handled explicitly, the rest of the variation is left alone: real rotation is genuine signal, and keeping it means the projection reacts faster when a role actually changes.

What this week's team list changes

Everything above describes the role a player has had. Once the team lists are out, two things about the week ahead are also known, and both adjust the projection:

  • Middle forwards who aren't playing. A pack has a fixed amount of work to get through, so when a team's regular big-minute middles are missing, the forwards who are named absorb it. Across recent seasons the remaining middles play around three minutes above their own usual workload with one missing, and closer to six with two. This is also what handles Origin: a forward whose two front-rowers are in camp is projected for the bigger role he is about to be given, rather than the one he had last month.
  • A hooker whose partner isn't named. Hookers work as a two-man rotation, so the single most useful thing about a starting hooker's minutes is whether the other dummy-half is playing. When he isn't, the starter plays around nine minutes above his own recent average. It matters which kind of partner is missing — teams often name a second hooker and use him as a middle forward, in which case he was never taking dummy-half minutes and the starter's night barely changes.

Both only apply once the lists are actually released. Before that, an empty team sheet means "not named yet", not "everyone is out", so neither adjustment moves anything during the pre-team-list part of the week.

Haas — step one

His 2026 minutes going into Round 21:

Round 123567 13141720
Minutes 785772556933 80808074

Note the model does not throw out the 33 in Round 7. The injury-cameo cutoff for a prop sits around fifteen minutes, and 33 is a real, if short, shift — so it stays in and simply carries less weight than the recent games. Those recent games (80, 80, 80, 74) dominate, and his own estimate lands on 70 minutes.

Then the pack is normalised. The Broncos' other named forwards don't soak up the full 480, so Haas is scaled up to 75 minutes. This is why a projection can move without the player himself doing anything — a team-mate's absence redistributes the pool.

Step two: points per minute

Scoring rate is calculated per minute rather than per game, which keeps it comparable across players with very different roles. The model blends three things:

  • Recent form — the player's own points per minute, with the last handful of games counted at full weight and older games decaying away.
  • Longer-term history — the same player over a much larger sample, so one hot month doesn't fully define them.
  • A positional baseline — how players at that position typically score, used as an anchor.

Rare events count for less — but only if they are rare for you

A try is never worth just its eight points. A player who scores one almost always records the line break that produced it and a couple of tackle breaks along the way, so the game ends up worth around fourteen points more than a try-less one at the same minutes. That is a lot of a single scoreline, and it is the least repeatable part of it.

The problem with a try is not that it is a try — it is that most players score so few that a single one tells you almost nothing. One try in thirty games is a coin landing heads, not a scoring threat. Fifteen tries in thirty games is a fact about the player.

So each attacking statistic is judged on how often that player actually produces it. Someone with one try to his name keeps almost none of his own try rate and is projected at what his position typically manages; a regular try-scorer keeps most of his. The same rule applies to line breaks, tackle breaks and assists, which means tackle breaks — which everyone racks up several of every week — are barely adjusted at all, while the genuinely rare things are heavily discounted.

This is why the same statistic is treated differently for different players, and why outside backs keep more of their attacking record than forwards do: they simply produce more of it, so there is more evidence to go on.

It is worth being clear about the size of this, because the intuition usually runs the other way: one try does not swing a projection by fourteen points. The last five games all count equally in the recent-form window, so no single game dominates — and for a forward with a single try in his record, that try is worth well under a point.

Why small samples get pulled towards average

When a player has few minutes on record, their own numbers are weak evidence, so the model shrinks their rate towards the positional baseline. A player with two enormous games will be projected well below those games; a player with two poor ones will be projected above them. As minutes accumulate, the player's own record progressively takes over.

This is the single most common source of "the projection looks wrong" — and it is usually the projection being appropriately cautious rather than being broken. Genuine debutants are anchored to a rookie-specific baseline rather than to established players at their position.

Rookies: reserve grade counts

A baseline built from other people's debuts gives every cheapie in the competition the same starting number, which can't be right — some of them have been tearing up NSW Cup and some haven't. So for a player inside their first five NRL games at a position, the rookie baseline is adjusted towards their own recent reserve grade scoring rate (NSW Cup and Hostplus Cup), scaled onto NRL terms.

Cup form transfers better than you might expect. Across debut stints since 2016, the players in the top fifth of cup scoring rate went on to score at roughly twice the rate of the bottom fifth in their opening NRL games. It's a genuine separator, so it's used.

Three limits are worth knowing. Only cup games from the last eighteen months count, and only if there are about three full games of them — below that the player keeps the plain rookie baseline. That window also means an established NRL player who's simply been named at a new position isn't judged on cup football he played years ago. And it affects scoring rate only, not minutes: how long a player lasted in reserve grade says little about the role his NRL coach has in mind.

What this doesn't do

Strong cup form lifts a rookie's projected scoring rate, not his minutes — and minutes are usually what decides whether a cheapie is worth owning. A flying NSW Cup season doesn't help much off a twenty-minute bench role.

Haas — step two
  • Recent form: 0.91 points per minute
  • His own longer record (last 30 games at prop): 1.08
  • The prop baseline: 0.87

Blending his recent form back towards his own longer record gives 0.96. The prop baseline never gets used: that only comes into play for players with less than about a season of minutes on record, and Haas has years. Notice the direction — his 2026 form is below his career rate, so the blend pulls him up, not down. A player mid-purple-patch would be pulled the other way.

Putting the two halves together

Haas — the projection

0.96 points per minute × 75 minutes = 72

So Haas is projected for 72 — above his season average of 60, because both halves say so: he's playing bigger minutes now than he was in March, and his scoring rate is being pulled up towards a career rate his 2026 hasn't matched yet.

His breakeven is 50. A projection of 72 clears it by 22, so on these numbers he should make money — and that comparison, not the raw 72, is the decision.

What a projection is — and isn't

Read it this way

A projection is an expected average, not a prediction of Saturday's score. Real NRL scores scatter widely around any expectation. The projection is a tool for ranking players and for judging whether a breakeven is beatable — not for calling an exact number.

It follows that the right way to use projections is comparatively. "Is A projected above B?" is a question projections answer well. "Will A score exactly 58?" is not.

When projections appear — and when they don't

Projections on yafss are tied to team lists. A player only gets a projection for a round once they've been named in it, which avoids showing a confident number for someone who isn't playing. Players with a recorded absence are handled separately rather than being projected as if available.

Being on the team sheet isn't the same as being in the side. Clubs name the 17 who play plus a few reserves, and a reserve scores nothing unless the coach promotes him — so your squad page and the lineup optimiser count him as 0, with his projection shown as what he'd be worth if he did come into the 17. The position on the team list is what decides this, not the jersey number: a reserve elevated into the side keeps his squad number, and a player dropped after numbers were handed out keeps his too.

A team sheet has a fixed shape — one hooker, two centres, four on the interchange — and yafss holds the list to it, because during the week the reserves aren't always labelled as such. Team lists are published with a six-man interchange, and the two who don't take the field are only marked as reserves once the game kicks off. Only four can play, so yafss treats the extras as reserves all week: no minutes, no projected points, and counted as 0 in your lineup.

Which two miss out is a judgement call until the side is confirmed — yafss goes by squad number, which is right more often than not but not always. If a bench forward you were expecting has no projection, that's why, and the team list page shows where he sits.

This week's team lists

Putting projections to work

  • Against breakeven. Projection comfortably above breakeven means the player should make money; comfortably below means they should lose it. yafss surfaces this directly as hold / watch / sell signals on player pages.
  • Against price. Compare projection to the player's priced-at score (see the magic number) to judge value independently of recent price movement.
  • Against their position. Position tiers rank every player by projection within their position, so you can see where the real drop-offs are.
  • Across a whole squad. The optimiser and bye planner both run on projections, which is what lets them choose a lineup or plan bye coverage rounds ahead.

Position Tiers Optimiser Player Finder

Where projections struggle

Being honest about the failure modes makes them easier to work around:

  • Announced role changes. A player moving to a new position or a new starting job has history that describes their old role. The model catches up over a few weeks; you can see it immediately in the team list.
  • Returning from long absences. Minutes are often managed on return, and that intent isn't in the historical data.
  • Late changes. A projection reflects the named side. Positional reshuffles after a late withdrawal can change a player's outlook substantially.

In each case the fix is the same: use the projection as the baseline, then adjust for the information you have that the model doesn't.

Frequently asked questions

A projection is an expected average, not a prediction of one score. Individual games vary hugely; the value of a projection is in comparing players and in judging whether a breakeven is beatable, not in calling an exact number.

Players with few games are pulled toward a positional baseline, because a two-game sample is not strong evidence. The projection rises as they build a real body of work.

A projection for a round never looks at that round's own results. It is a pre-game number, so it stays put while the round is on — a forward who limps off after 25 minutes keeps the projection he started the round with. That game starts counting from the next round's projections.

Only the 17 who take the field are projected. Team lists are published during the week with a six-man interchange, and the two who don't play are only marked as reserves once the game kicks off — so yafss holds the list to the shape of a team sheet all week. A player beyond those 17 is counted as 0 rather than given minutes that belong to the side.