The numbers behind
the calls.
Descriptive analytics. Clear definitions. No subjective “good ref” or “bad ref” score.
What this release covers
2026 regular season through Week 4: 64 completed games, 17 crews and 32 teams. Updated 2026-10-07. Scheduled games are excluded until scores and play-by-play are available.
Where the data comes from
Play-by-play comes from nflverse-data, licensed under CC BY 4.0. Schedules and referee names come from the public nfldata game CSV. We normalize and aggregate these sources; the resulting statistics are our calculations. We do not scrape Pro Football Reference.
What counts as an accepted penalty?
We parse each explicit penalty event in the play description. Declined and offsetting events are stored but excluded from rankings. For replay reversals, only the final ruling is counted. Multiple accepted penalties on a play count separately. Placement-only kickoff penalties carry the source’s recorded zero penalty yards; field-position effects are not added.
The denominators matter
Accepted penalties per game = accepted events ÷ games played or officiated. Crew rates include both teams; team rates include only the selected team. Yards per game use the same denominator. The crew league average is total accepted events ÷ completed games; the team average is half that rate.
Home/away refers to the schedule designation, including neutral venues. Offense/defense uses possession at the play; kick, punt and try plays are classified separately as special teams. Unknown classifications are retained, never reassigned by guesswork.
Validation and limitations
Each import checks identifiers, team relationships, duplicate plays, penalty types, referee assignments and yard ranges. Failed imports do not replace the last valid dataset. Read the validation report ↗
The NE–SEA Week 1 sample matches the official gamebook: NE 7 accepted for 50 yards, SEA 10 for 98. Independent verification is a sample check, not a certification of every event. Small samples, opponent behavior and game situations affect crew rates. A referee name identifies the crew; this source does not identify which individual official threw a flag. Penalty frequency does not establish bias or call accuracy.
Free by design
This site serves a static snapshot. Ingestion runs locally and requires no paid API, database, analytics service or background worker. Updates require re-ingestion and a new build. Hosting is not a live NFL feed.
