How does your model adjust for the talent around the QB?
Great question.
I’ve actually built hundreds of small models that evaluate context for each QB metric. For every quarterback in the database, I measure how their performance changes based on fluctuations in the environment around them.
For example, if a QB’s left tackle typically has a pass-blocking grade of 65, but in a given game it drops to 55, my model can estimate how much that change likely impacted the QB’s performance—say, lowering their PFF pass grade by about a point. Same idea with receivers: if their usual receiving grade is around 60 but dips to 50 in one game, Net AYA might drop by about a yard. Next, I plug in a league‑average receiving grade (e.g. 65) into the model to see what the QB’s Net AYA would look like under average receiving talent, then adjust the raw Net AYA by that difference and I scale each metric accordingly.
When I'm evaluating a QB or building something forward-looking like a projected QBR, I can adjust for things like:
- Teammate pass-blocking
- Teammate receiving
- Teammate run-blocking
- Opponent overall defense (SP+)
- Opponent pass-rushing
- Opponent coverage
I also factor in situational details—how many receivers were on the field, whether it was a screen or play-action, etc. Plays like those tend to boost stats like Completion% and AYA, so they need to be accounted for when isolating QB performance.
As an example: Joe Milton had a top-15 raw passing grade in 2023. But once you adjust for the fact that he threw more screens than any other QB that season, his ranking drops to the mid-20s.
Pardon the essay, but hope that answers your question.