Everything is built from public play-by-play and roster data
(nflverse, CC-BY 4.0). For each
player we estimate volume (targets, carries, attempts) and efficiency from
recent games — the recent past counts most, and older games fade steadily
rather than falling off a cliff. Opponent adjustments rebuild every week
from the same data, so by mid-season they describe this year's defenses, not
last year's.
recent form and opponent data update every week; we do not apply a live bias
correction on Saidmark
The projection is a distribution, not a point. That's what lets us
quote a floor, a ceiling, and the probability of clearing any line you name —
the same numbers serve a lineup decision and a prop question, because the unit
is a reception, a yard, a touchdown probability.
The record
Every projection is locked at the last publish before kickoff and
never revised. After the game, the same page shows the locked number against
what happened. Locks are written once; a missed lock stays missed rather than
being filled in later. The record contains no back-filled history — it starts
at the first number a stranger could actually load, and grows one week at a
time.
What we deliberately don't do
Injuries and inactives don't move the number — yet. We tried the
adjustment everyone assumes — half the vacated share to the next man on the
depth chart, first week of the spell. It made receiving projections worse.
We show you the evidence instead of guessing. If a player is out, his card
says so, and says the number assumes he plays.
We don’t project players who aren’t on an active roster.
Injured reserve, PUP, the practice squad, unsigned: no card, rather than a
number for a game he can’t play. That is availability, not an injury
adjustment — his teammates’ numbers are untouched.
We don't nudge this week because last week missed. The inputs get
more current as the season goes — recent games count more, opponent data
rebuilds weekly — that's this year's picture filling in, not us bending the
output toward whatever would have looked right last week. A new rule has to
prove itself on seasons we never tuned it on before it ships.
Weather is honest but crude. Strong sustained wind outdoors takes
a modest haircut off passing. Below that threshold, and for temperature, we
currently apply nothing — and we'd rather tell you that than pretend
otherwise.
Some intervals are known to be too wide. On high-volume receivers,
our stated ranges have caught more outcomes than a 50% band should, in every
season we measured. The cards say so. We publish the miss instead of hiding
the flag.
Tested and rejected
Most ideas that sound like improvements aren't. Every candidate gets the
same treatment: tried on one season, then judged on seasons it never saw.
Recent rejections:
Target depth (aDOT) in the projected mean. A receiver's typical
depth of target is one of the most stable things in football — and folding it
into the projection still made the numbers worse. Stable isn't the same as
useful.
The injury next-man-up rule described above — the adjustment
everyone assumes, measured, rejected.
And four more — an opponent-adjustment retune, two interval-width fixes, a
high-volume correction — same protocol, same verdict.
A projection source that never shows you its dead ends is asking you to take
its live ideas on faith. Ours are listed.