Petty StatsPSPETTYSTATS
Petty StatsPSPETTYSTATS

Methodology · rules v1 · rebuttal rules v2

How a receipt earns its number

Everything below is a product choice, not an official league rule. Thresholds are centralised in code and displayed here exactly as applied.

What a receipt is

A receipt is one metric, for one team or player, over one exact window, compared with a cohort of peers in the same window. It stores the headline, the number, the numerator and denominator, the rank and cohort size, the evidence label, the caveats, the source fields and the calculation version. Receipts are immutable snapshots: a shared link never silently turns into today’s number.

Timeframes

Rates and counts

Every rate is the summed numerator divided by the summed denominator across the games in the window. We never average per-game rates. Zero denominators are undefined, not zero, and are excluded from rankings. Missing source values are excluded, never converted to zero. Standings and records come from final scores in the schedule, not from who played quarterback. A traded player’s rows from different teams are summed once.

Qualification thresholds (per window)

EntityRuleMinimum
Teamscompleted games for season rate rankings4
Teamsoffensive plays for per-play rates200
QBpass attempts for passing rates100
QBdropbacks (attempts + sacks) for sack rate100
RBrushing attempts50
WR / TEtargets25
Kfield goal attempts10
Teamsplayoff games for a playoff record3
Teamshead-to-head games before a rivalry record is more than descriptive3
Anyqualified peers before any rank is claimed8

Thresholds apply to the chosen window and never relax to force an answer. Single-game receipts use their own opportunity minimums (QB 10 attempts, RB 8 carries, WR/TE 4 targets, K 2 attempts) and are always “descriptive only”.

Ranking and ties

Within a qualified cohort, rank 1 is the worst (negative leaderboards). Ties share the best available rank and the tie count is shown (“tied 2nd-most of 32 teams”). Ordering is deterministic: value, then entity ID. A result counts as a supported weakness only when it ranks within the worst 25% of its qualified cohort and its whole tie group fits inside that quarter (a value shared by half the league is not a weakness). Middle-of-the-pack numbers are shown as “further results”, never dressed up as weaknesses.

Evidence labels

Labels describe coverage and opportunity. They are not confidence intervals and not proof of causation. There is no invented confidence percentage and no opaque player-quality score.

Candidate selection

For a case: reject incomplete or undefined results; keep supported weaknesses; order by evidence tier, then extremity (percentile from the worst end), then a fixed metric priority, then metric ID; keep one receipt per metric family (for example interception count and interception rate never both appear); stop at five. Weak evidence is never padded to five.

Cherry-pick warning

Custom windows, unusually narrow splits, and recent-form windows whose full-season result differs by more than 35 percentile points carry a cherry-pick notice that quotes the broader result. It is a context notice, not an accusation. We do not search thousands of splits to manufacture one.

Team finishing definitions

Metric registry

MetricApplies toDefinitionWorse when
Win percentage
team.win_pct@1
TeamsWins plus half of ties, divided by completed games, from final scores in the schedule. Ties are shown explicitly.lower
Points allowed per game
team.points_allowed_pg@1
TeamsOpponent points from final scores, divided by completed games. Includes points scored against the offense and special teams, not only the defense.higher
Points scored per game
team.points_scored_pg@1
TeamsTeam points from final scores, divided by completed games.lower
Scoring margin per game
team.scoring_margin@1
TeamsPoints scored minus points allowed, divided by completed games.lower
Giveaways
team.giveaways@1
TeamsInterceptions thrown plus fumbles lost (all units), summed across games.higher
Giveaway rate
team.giveaway_rate@1
TeamsGiveaways divided by offensive plays, where offensive plays = pass attempts + rushing attempts + sacks taken. Summed numerator over summed denominator.higher
Turnover margin
team.turnover_margin@1
TeamsTakeaways (defensive interceptions + opponent fumbles recovered) minus giveaways (interceptions thrown + fumbles lost), summed across games.lower
Sack rate allowed
team.sack_rate_allowed@1
TeamsSacks taken divided by dropbacks, where dropbacks = pass attempts + sacks taken (scrambles excluded). Summed over games.higher
Penalty yards per game
team.penalty_yards_pg@1
TeamsAccepted penalty yards against the team, divided by games with stats.higher
Blown double-digit leads
team.blown_leads@1
TeamsLosses in games where the team led by at least 10 points at any recorded score state (after a scoring play). Overtime losses count; ties do not. One per game.higher
Late fourth-quarter losses
team.late_losses@1
TeamsLosses in games where the team led or was tied at the last recorded score state before the final 5:00 of regulation.higher
Longest losing run
team.losing_run@1
TeamsLongest run of consecutive losses within the window (ties end a run). A run that starts at the beginning of coverage is reported as 'at least N'.higher
Playoff record
team.playoff_record@1
TeamsPostseason wins and losses from final scores within the covered seasons. Not a franchise all-time record.lower
Playoff eliminations
team.playoff_exits@1
TeamsPostseason losses within covered seasons (each is a season-ending elimination). Seasons without a playoff appearance are not eliminations and are not counted.higher
Record vs opponent
team.record_vs@1
TeamsWins, losses and ties against one opponent from final scores within the window. Regular season and playoffs are separated unless the window says otherwise.lower
Scoring margin vs opponent
team.margin_vs@1
TeamsPoints scored minus points allowed against one opponent, divided by head-to-head games in the window.lower
Interceptions thrown
qb.interceptions@1
QBPasses intercepted, summed across games in the window.higher
Interception rate
qb.int_rate@1
QBInterceptions divided by pass attempts. Summed numerator over summed denominator across games.higher
Completion percentage
qb.completion_pct@1
QBCompletions divided by pass attempts (sacks excluded). Summed numerator over summed denominator across games.lower
Yards per attempt
qb.yards_per_attempt@1
QBPassing yards divided by pass attempts (sack yardage excluded). Summed numerator over summed denominator.lower
Sack rate
qb.sack_rate@1
QBSacks taken divided by dropbacks, where dropbacks = pass attempts + sacks taken. Scrambles are not counted as dropbacks because the source weekly stats do not expose them.higher
Fumbles lost
qb.fumbles_lost@1
QBFumbles lost on sacks plus fumbles lost on rushes, as attributed to the quarterback by the source.higher
Yards per rush
rb.yards_per_rush@1
RB, FBRushing yards divided by rushing attempts. Summed numerator over summed denominator.lower
Fumbles lost
rb.fumbles_lost@1
RB, FBFumbles lost on rushes plus fumbles lost after receptions.higher
Yards per target
wr.yards_per_target@1
WR, TEReceiving yards divided by targets. Summed numerator over summed denominator.lower
Catch rate
wr.catch_rate@1
WR, TEReceptions divided by targets. This is not a drop rate: it depends on target depth, throw accuracy and coverage.lower
Fumbles lost
wr.fumbles_lost@1
WR, TEFumbles lost after receptions plus fumbles lost on rushes.higher
Field goals missed
k.fg_misses@1
KField goal attempts that were missed (wide or short). Blocked kicks are excluded and listed separately when present.higher
Field goal percentage
k.fg_pct@1
KField goals made divided by field goal attempts (blocked attempts count as attempts, as in the source).lower

Context metrics used only by rebuttals: Comeback wins from 10+ down, Late fourth-quarter wins, Takeaways, Pass attempts, Touches, Targets, Average depth of target, Share of misses from 50+ yards.

Case categories

“Overrated” measures only on-field weakness. No reputation, salary, draft position or consensus ranking is in the dataset, so none is claimed.

Talk Back: rebuttal rules

Rebuttals never simply negate a claim or attach an unrelated positive stat. Each rule names a related metric and how its scope relates to the claim, and the result is classified from actual numbers:

RuleApplies toChecksScope
team.points_allowed.giveawaysteam.points_allowed_pgOffensive giveaways that set up short fieldssame window
team.win_pct.marginteam.win_pct, team.losing_runScoring margin in the same windowsame window
team.margin.win_pctteam.scoring_marginRecord in the same windowsame window
team.giveaways.rateteam.giveawaysGiveaways per offensive playsame window
team.giveaways.marginteam.giveaways, team.giveaway_rateNet turnover marginsame window
team.turnover_margin.takeawaysteam.turnover_marginGiveaway ratesame window
team.blown_leads.comebacksteam.blown_leadsComeback wins from 10+ downsame window
team.late_losses.late_winsteam.late_lossesLate fourth-quarter winssame window
team.playoffs.reg_recordteam.playoff_record, team.playoff_exitsRegular-season record this seasonfull season (labelled)
team.rivalry.marginteam.record_vsHead-to-head scoring marginsame window
team.rivalry.recordteam.margin_vsHead-to-head recordsame window
team.rivalry.reg_splitteam.record_vs, team.margin_vsRegular-season games onlyREG split (labelled)
team.rivalry.post_splitteam.record_vs, team.margin_vsPlayoff games onlyPOST split (labelled)
qb.int.rateqb.interceptionsInterception rate on the same attemptssame window
qb.int_rate.volumeqb.int_rate, qb.sack_rate, qb.fumbles_lostWorkload (pass attempts)same window
qb.int_rate.ypaqb.int_rate, qb.interceptions, qb.completion_pct, qb.sack_rateYards per attempt in the same windowsame window
qb.ypa.completionqb.yards_per_attemptCompletion percentage in the same windowsame window
qb.ypa.int_rateqb.yards_per_attempt, qb.completion_pctInterception rate in the same windowsame window
rb.ypr.volumerb.yards_per_rush, rb.fumbles_lostWorkload (touches)same window
wr.catch_rate.adotwr.catch_rateAverage depth of targetsame window
wr.catch_rate.yptwr.catch_rateYards per target in the same windowsame window
wr.ypt.catch_ratewr.yards_per_targetCatch rate in the same windowsame window
wr.volumewr.yards_per_target, wr.fumbles_lost, wr.catch_rateWorkload (targets)same window
k.distancek.fg_misses, k.fg_pctDistance of the missessame window
k.misses.pctk.fg_missesAccuracy on the same attemptssame window
any.broader_seasonany short-window claimFull current seasonfull season (labelled)

“Fire back at their team” is a separate, labelled new attack and is never presented as a rebuttal.

What “Verified Petty” means

The stamp means the receipt passed this application’s checks against the published dataset: complete games only, defined denominators, stated window and cohort. It is not a league endorsement and not independent certification.

See also data coverage and status.