A "weighted" Scoring System for Football (Part II)

Forgive me for starting a new thread for this, but as the method for the formula detailed here is significantly different than with the previous thread I thought it was appropriate to keep them separate.

Using a 10-year study (2008-2017) of the relevant stats for both baseball and football, and considering a ‘better fit’ for football categories relative to the wRC formula while also adjusting for a hypothetical league’s ‘Replacement Level’ for each position, I devised a different scoring formula to meet the objectives from my initial post on this in the previous thread. The process/formula/player scales for this new method of fantasy football scoring are as follows:
.

.
STEP 1: Setting Football Stats to the wRC Baseball Categories
Relative to the initial formula, I’ve kept all PAT’s (including 2-Pt Conversions) and FG’s made and missed to the SB/CS categories (with a 3-year study rather than a 10-year, as detailed in my latest post in that thread). These are the only stat categories that remain the same as with the initial formula. Further details in the methodology to factoring FG’s Made and Missed by Range can be found in my last post in the previous thread.

Also relative to the initial formula, I moved “Receiving Yards” to the ‘BB’ category- so now all yards (Pass, Rush, Receive, Return, & Turnover Return) are factored within the same category. Over the past 10-years, there have been 168,175 BB+HBP in baseball and 3,676,190 Pass+Rush+Receiving+Return+TOReturn Yards.

For AB’s and H’s (as the baseline for the 2B-3B-HR categories), I looked to better reflect MLB’s average (.256 over the past 10 years). To accomplish this, I set all 1st Downs (Passing, Rushing, and Receiving) in the ‘H’ category and set the ‘AB’ category as: Passing Attempts, Rushing Attempts, Incomplete Pass, Completed Pass (positive value), and Receptions (positive value). Over the past 10 years, there have been 151,260 Passing/Rushing/Receiving First Downs and 598,842 occurrences of the ‘AB’ football categories; so ‘H’/‘AB’ = 151260 / 598842 = 0.253. In other words, relative to the wRC fantasy baseball formula this occurrence factor is on-par between the two sports.

The ‘2B’ category was set as stats that describe negative Offensive plays (at a negative value, of course). These stats were Fumbles, Fumbles Lost, Passer Sack, and Passer Interception. The total 10-year occurrences of these was 24,238.

The ‘3B’ category was set as stats that describe basic Defensive efforts; so Solo Tackles, Assisted Tackles, and Fumbles Recovered were factored here. The total 10-year occurrences of these was 344,937.

The ‘HR’ category describes all “ultimate” Defensive and Special Teams plays- for Individual Defensive Players, these categories are Passes Defended, Tackles for Loss, Fumbles Forced, Defensive Sack, Defensive Interception, Defensive Touchdowns, and Safety’s while for Team Defensive/Special Team categories, these were Blocked Kicks, 3&Outs Forced, 4th Down Stops, and Kick-Off/Punt-Return TD’s (where the only option for this is as a Team stat). The total 10-year occurrences of these was 84,709.
.

.
STEP 2: Fitting the Football ‘2B’, ‘3B’, and ‘HR’ to ‘AB’ Relative to the MLB’s 10-Year History
To fit each football stat category to baseball’s rate of occurrence (in order to better reflect the wRC formula), a “Sport Divisor” was factored for the 2B-3B-HR categories.

MLB’s 10-Year Average:
* H/AB = 424,665/1,657,173 = 0.25626
* 2B/AB = 84,150/1,657,173 = 0.05078
* 3B/AB = 8,754/1,657,173 = 0.00528
* HR/AB = 49,490/1,657,173 = 0.02986

NFL 10-year:

  • “H” (all 1st Downs) / “AB” (PAtt+RAtt+IncPass+CompPass+Receptions)
    • 151,260 / 598,842 = 0.25259 (On-Par with MLB)
  • “2B” (Fum, FumbLost, PassSack, PassINT) / “AB”
    • 24,238 / 598,842 = 0.04047
      • “NFL 2B/AB” divided by “MLB 2B/AB”
        = 0.04047 / 0.05078 = 0.79706 NFL/MLB 2B Category Sport Divisor
  • “3B” (FumbRec, TackSolo, TackAsst) / “AB”
    • 344,937 / 598,842 = 0.57601
      • “NFL 3B/AB” divided by “MLB 3B/AB”
        = 0.57601 / 0.00528 = 109.092177 NFL/MLB 3B Category Sport Divisor
  • “HR” (FumbFrce, PassDef, TackLoss, DefSack, DefINT, D-TD, KO/PR TD, BlkKick, 3&Ofrce, 4thDwnFrce) / “AB”
    • 84,709 / 598,842 = 0.14145
      • “NFL HR/AB” divided by “MLB HR/AB”
        = 0.14145 / 0.02986 = 4.73726 NFL/MLB HR Category Sport Divisor
        .

.
STEP 3: Finding Each Category’s “NFL-to-MLB Frequency Multiplier”
In order to equate the ‘football universe’ with the ‘baseball universe’, a “Frequency Multiplier” was factored for each category (SB and CS are not shown here as they’ve already been figured- see the previous thread).

  • “NFL AB” / “MLB AB”
    • 598842 / 1657173 = 0.36136 AB Category Frequency Multiplier
  • “NFL H” / “MLB H”
    • 151260 / 424665 = 0.35619 H Category Frequency Multiplier
  • “NFL 2B” / “MLB 2B”
    • 24238 / 84150 = 0.28803 2B Category Frequency Multiplier
  • “NFL 3B” / “MLB 3B”
    • 344937 / 8754 = 39.40336 3B Category Frequency Multiplier
  • “NFL HR” / “MLB HR”
    • 84709 / 49490 = 1.71164 HR Category Frequency Multiplier
  • “MLB BB+HBP” / “NFL BB”
    • 168175 / 3676190 = 0.04575 BB Category Frequency Multiplier
      • This is the only category that divides MLB by NFL (rather than the other way around), due to the significantly large number of all-purpose yards vs walks between sports
        .

.
STEP 4: Using Each Category’s “Frequency Multiplier” to Find the Equivalent “wRC” Category Weight

  • AB Frequency Multiplier * AB Points
    • 0.36136 * -0.1 = -0.03614 ‘AB Category’ Football Points Weighting
  • H Frequency Multiplier * H Points
    • 0.35619 * 0.56 = 0.19946 ‘H Category’ Football Points Weighting
  • 2B Frequency Multiplier * 2B Points
    • 0.28803 * 0.29 = 0.08352 ‘2B Category’ Football Points Weighting
  • 3B Frequency Multiplier * 3B Points
    • 39.40336 * 0.57 = 22.45991 ‘3B Category’ Football Points Weighting
  • HR Frequency Multiplier * HR Points
    • 1.71164 * 0.94 = 1.60894 ‘HR Category’ Football Points Weighting
  • BB Frequency Multiplier * BB Points
    • 0.04575 * 0.3 = 0.01372 ‘BB Category’ Football Points Weighting
      • 1 Yard / ‘BB Category’ Football Weight = 72.86 Yards equals 1 Fantasy Point
        .

.
STEP 5: Using the “Sport Divisor” (from Step 2) to Fit the 2B, 3B, & HR Category Points Weights to the AB Category

  • 2B Points / Sport Divisor
    • 0.08352 / 0.79706 = 0.10479 ‘wRC-Adjusted 2B Category’ Football Points Weighting
  • 3B Points / Sport Divisor
    • 22.45991 / 109.092177 = 0.20588 ‘wRC-Adjusted 3B Category’ Football Points Weighting
  • HR Points / Sport Divisor
    • 1.60894 / 4.73726 = 0.33963 ‘wRC-Adjusted HR Category’ Football Points Weighting
      .

.
STEP 6: Find the “Replacement Level” for Each Position
This is the most arbitrary part of the design, and can be adjusted depending on the desired balance between positions and overall league size. My assumptions for the various parts of this step are:

First, in terms of Positions- as a way of building from the ‘ground-up’ while using a position that every NFL team needs- I am setting K’s as the baseline. As there are 32 NFL Teams, the “Average” Kicker is the 16th Place of our scoring pool. For this place, I am setting a “1 Pts/Gm Expected Value”- so, K’s ranked above the “16th Best” K will score better than 1 PpG and vice-versa for K’s ranked lower. The same is true for the other single-roster position roles of QB and DEF, where the 16th Rank is effectively the “Replacement Level” for the league.

Second, with K’s as the baseline on the low-end of the spectrum, I am setting QB’s as the ‘ceiling’ on the other end of the scale by a factor of 10. So, the hypothetical 16th-Place QB is worth roughly 10 Pts/Gm.

Third, I am making some additional roster assumptions. Assuming an 11x11 active roster set, where both a single QB, K (offense), and DEF (defense/special teams) active roster slot are given, we’ll need to figure how many “usable” players there are at each position. This ultimately depends on the roster settings for the league’s design; for this setup, I am factoring for 4 RB’s plus 4.5 WR’s plus 1.5 TE’s per team on Offense and 3 DL’s plus 4 DB’s plus 4 LB’s per team on Defense.

  • Non-QB or K Offensive Players: 10 (8.5 WR/RB, 1.5 TE)
    ~ RB Replacement Level = 4 RB * 16 = 64th-placed RB is “Replacement Level”
    ~ WR Replacement Level = 4.5 WR * 16 = 72nd-placed WR is “Replacement Level”
    ~ TE Replacement Level = 1.5 TE * 16 = 24th-placed TE is “Replacement Level”
  • Non-DEF/Individual Defensive Players: 11 (3 DL, 4 LB, 4 DB)
    ~ DL Replacement Level = 3 DL * 16 = 48th-placed DL in league is “Replacement Level”
    ~ LB Replacement Level = 4 LB * 16 = 64th-placed LB in league is “Replacement Level”
    ~ DB Replacement Level = 4 DB * 16 = 64th-placed DB in league is “Replacement Level”

Fourth, I am setting the DEF value as K * 2. Building from there, I am setting DL as DEF+1, DB as DL+1, and LB as DB+1; so the target ‘Replacement Level’ PpG on Defense is 2 DEF, 3 DL, 4 DB, and 5 LB.

  • Total Replacement Level Team Defensive Points per Game = 47
    ~ DEF: 2 PpG * 1 DEF = 2
    ~ DL: 3 PpG * 3 DL = 9
    ~ DB: 4 PpG * 4 DB = 16
    ~ LB: 5 PpG * 4 LB = 20

Fifth, I am building the Offense as TE’s = DB’s, then WR’s as TE+1 and RB’s as WR+1; so the target ‘Replacement Level’ PpG on Offense is 1 K, 4 TE, 5 WR, 6 RB, and 10 QB.

  • Total Replacement Level Offensive Points per Game = 63.5
    ~ K: 1 PpG * 1 K = 1
    ~ QB: 10 PpG * 1 QB = 10
    ~ TE: 4 PpG * 1.5 TE = 6
    ~ WR: 5 PpG * 4.5 WR = 22.5
    ~ RB: 6 PpG * 4 RB = 24

Now we can find the full-season/16-Week ‘Expected Replacement Level’ Total Points Output per Position:

  • K: 1 PpG * 16 Games = 16 Pts K Replacement Level (16th-Place K)
  • DEF: 2 PpG * 16 G’s = 32 Pts DEF Replacement Level (16th-Place DEF)
  • DL: 3 PpG * 16 G’s = 48 Pts DL Replacement Level (48th-Place DL)
  • DB: 4 PpG * 16 G’s = 64 Pts DB Replacement Level (64th-Place DB)
  • LB: 5 PpG * 16 G’s = 80 Pts LB Replacement Level (64th-Place LB)
  • TE: 4 PpG * 16 G’s = 64 Pts TE Replacement Level (24th-Place TE)
  • WR: 5 PpG * 16 G’s = 80 Pts WR Replacement Level (72nd-Place WR)
  • RB: 6 PpG * 16 G’s = 96 Pts RB Replacement Level (64th-Place RB)
  • QB: 10 PpG * 16 G’s = 160 Pts QB Replacement Level (16th-Place QB)
    .

.
STEP 7: Find the “Observed Replacement Level” for Each Position
After plugging-in the weighted stat factors from Steps 4 and 5 above, we can find the “observed replacement level” for players in each position. With Yahoo’s stats for the past-two seasons (the only years available in Y!'s drop-down)** and using the average from within a range of +/- 12.5% of replacement level with respect to the player rankings for each position in 2016 and 2017, we can compare to our desired/‘expected replacement level’ points output from Step 6 above (TE’s will not be considered here as they’re largely a factor of WR categories).
** The caveat to using Yahoo’s player pool is that they remove any player who retires or is otherwise removed from the list of official NFL players (e.g., passes away) from any prior season’s player stats listing; because of this, the leader-board for each position may be missing select players.

  • K, 14th-18th Avg Score (13.49, 2016; 13.736, 2017) = 13.613 Observed K Replacement Level
    • Expected K Replacement Level Score: 16 Points (Total Season)
  • DEF, 14th-18th Avg Score (15.64, 2016; 17.816, 2017) = 16.728 Observed DEF Replacement Level
    • Expected DEF Replacement Level Score: 32 Points
  • DL, 42nd-54th Avg Score (13.37, 2016; 14.079, 2017) = 13.725 Observed DL Replacement Level
    • Expected DL Replacement Level Score: 48 Points
  • DB, 56th-72nd Avg Score (17.648, 2016; 19.264, 2017) = 18.456 Observed DB Replacement Level
    • Expected DB Replacement Level Score: 64 Points
  • LB, 56th-72nd Avg Score (16.724, 2016; 18.642, 2017) = 17.683 Observed LB Replacement Level
    • Expected LB Replacement Level Score: 80 Points
  • WR, 63rd-81st Avg Score (14.682, 2016; 13.788, 2017) = 14.235 Observed WR Replacement Level
    • Expected WR Replacement Level Score: 80 Points
  • RB, 56th-72nd Avg Score (7.606, 2016; 9.380, 2017) = 8.493 Observed RB Replacement Level
    • Expected RB Replacement Level Score: 96 Points
  • QB, 14th-18th Avg Score (73.314, 2016; 66.138, 2017) = 69.726 Observed QB Replacement Level
    • Expected QB Replacement Level Score: 160 Points
      .

.
STEP 8: Fitting the ‘Observed’ to the ‘Expected’ Replacement Levels for Each Position
For this, I’m using select stat categories that ‘most relate’ to the positions being adjusted. Any category not used to fit each position’s replacement level will remain as it was factored from Steps 4 & 5 above.

  • QB Categories: Passing Attempts, Passing 1st Downs, Passing Yards, Pass Completions, Pass Incompletions, Passer Sacks, Passer INT’s
    • 160 expected replacement level / 69.726 observed replacement level = 2.294696 QB Replacement Level Positional Category Multiplier
      • PAtt, PInc = -0.036 * 2.295 = -0.083
      • PComp = 0.036 * 2.295 = 0.083
      • Pass1stDwns = 0.199 * 2.295 = 0.457
      • PassSacks, PassINTs = -0.105 * 2.295 = -0.241
      • PassYrds = 72.86 Yrds per Pt / 2.295 = 31.75 Yards per Point
  • RB Categories: Rushing Attempts, Rushing 1st Downs, Rushing Yards
    • 96 expected replacement level / 8.493 observed replacement level = 11.303426 RB Replacement Level Positional Category Multiplier
      • RAtt = -0.036 * 11.303 = -0.407
      • Rush1stDwns = 0.199 * 11.303 = 2.249
      • RushYrds = 72.86 / 11.303 = 6.45 Yards per Point
  • WR/TE Categories: Receptions, Receiving 1st Downs, Receiving Yards
    • 80 expected replacement level / 14.235 observed replacement level = 5.619951 WR Replacement Level Positional Category Multiplier
      • Rec = 0.036 * 5.62 = 0.202
      • Rec1stDwns = 0.199 * 5.62 = 1.118
      • RecYrds = 72.86 / 5.62 = 12.96 Yards per Point
  • LB Categories: Tackles Solo, Tackles Assisted
    • 80 expected replacement level / 17.683 observed replacement level = 4.524134 LB Replacement Level Positional Category Multiplier
      • TackSolo, TackAsst = 0.206 * 4.524 = 0.932
  • DB Categories: Defensive INT, Passes Defended
    • 64 expected replacement level / 18.456 observed replacement level = 3.467844 DB Replacement Level Positional Category Multiplier
      • INT, PDef = 0.340 * 3.468 = 1.179
  • DL Categories: Defensive Sack, Tackle for Loss
    • 48 expected replacement level / 13.724615 observed replacement level = 3.4973658 DB Replacement Level Positional Category Multiplier
      • Sack, TackLoss = 0.340 * 3.497 = 1.189
  • DEF Categories: 3&Outs Forced, 4th Down Stops
    • 32 expected replacement level / 16.728 observed replacement level = 1.91296 DEF Replacement Level Positional Category Multiplier
      • 3&OFrc, 4thDwnStp = 0.340 * 1.91296 = 0.650
  • K Categories: XPMade & Missed, FGMade & Missed (by Range)
    • 16 expected replacement level / 13.613 observed replacement level = 1.1753471 K Replacement Level Positional Category Multiplier
      • XPMade, FGMade (before Range factors) = 0.151 * 1.175 = 0.177
      • XPMissed, FGMissed (before Range factors) = -0.064 * 1.175 = -0.075
        .

.
TOTAL LIST OF STAT CATEGORIES & SCORING WEIGHTS
This is the complete list of stat categories being used in this setup with their category weights based on the calculations from above.

  • Passing
    • Passing Attempts: -0.083
    • Passing Completions: 0.083
    • Passing Incompletions: -0.083
    • Passing Yards: 31.75 Yards per Point
    • Passer 1st Downs: 0.457
    • Passer Interceptions: -0.241
    • Passer Sacks: -0.241
  • Rushing
    • Rushing Attempts: -0.407
    • Rushing Yards: 6.45 Yards per Point
    • Rushing 1st Downs: 2.249
  • Receiving
    • Receptions: 0.202
    • Receiving Yards: 12.96 Yards per Point
    • Receiving 1st Downs: 1.118
  • Kick/Punt Returns
    • Return Yards: 72.86 Yards per Point
  • Miscellaneous
    • Fumbles: -0.105
    • Fumbles Lost: -0.105
  • Individual Defensive Players
    • Tackles Solo: 0.932
    • Tackles Assisted: 0.932
    • Tackles for Loss: 1.189
    • Sacks: 1.189
    • Passes Defended: 1.179
    • Interceptions: 1.179
    • Fumbles Recovered: 0.206
    • Fumbles Forced: 0.340
    • Turnover Return Yards: 72.86 Yards per Point
    • Safety: 0.340
    • Defensive TD: 0.340
  • Defense/Special Teams
    • Block Kick: 0.340
    • 3 & Outs Forced: 0.650
    • 4th Down Stops: 0.650
    • Kick-Off/Punt-Return TD’s: 0.340
  • PAT’s & FG’s
    • 2-Pt Conversions: 0.177
    • Extra-Point Made: 0.177
    • Extra-Point Missed: -0.075
    • FG’s 0-19 Yards Made & Missed: 1.616 & -10.71
    • FG’s 20-29 Yards Made & Missed: 0.192 & -1.315
    • FG’s 30-39 Yards Made & Missed: 0.286 & -0.223
    • FG’s 40-49 Yards Made & Missed: 0.438 & -0.053
    • FG’s 50+ Yards Made & Missed: 1.376 & -0.021
      .

.
FANTASY PERFORMANCE SCALE per POSITION by TOTAL SEASON POINTS (16 Weeks), ADJUSTED for LEAGUE REPLACEMENT LEVEL
Using this setup, these are the rough full-season performance scales for each position:

  • QB
    • Excellent: >250
    • Good: 200-250
    • Average: 150-200
    • Poor: <150
  • RB
    • Excellent: >300
    • Good: 175-300
    • Average: 50-175
    • Poor: <50
  • WR
    • Excellent: >180
    • Good: 130-180
    • Average: 80-130
    • Poor: <80
  • TE
    • Excellent: >140
    • Good: 100-140
    • Average: 60-100
    • Poor: <60
  • LB
    • Excellent: >150
    • Good: 115-150
    • Average: 75-115
    • Poor: <75
  • DB
    • Excellent: >120
    • Good: 100-120
    • Average: 80-100
    • Poor: <80
  • DL
    • Excellent: >100
    • Good: 75-100
    • Average: 50-75
    • Poor: <50
  • DEF
    • Excellent: >40
    • Good: 35-40
    • Average: 30-35
    • Poor: <30
  • K
    • Excellent: >25
    • Good: 20-25
    • Average: 15-20
    • Poor: <15

To show the player pool based on this scoring, here is a link to the player pool for a “Dummy League” on Yahoo (sorted by ‘All Offense’ for the 2017 Season).

It’s important to note that not every football stat is accurately accounted for as part of the 10-year study referenced above. Where possible, I used Yahoo’s numbers (since it’s the service being used to design this setup) and averaged-out for any years that I couldn’t find figures for. Ultimately, as the occurrence for each football stat category is part of a “basket” of stats that are then fit into a “baseball equivalent” category and balanced relative to the occurrences between sports and then for the replacement level of each position within a hypothetical league, and since there are accurate figures available for most of the stats (especially the important ones), I do not consider any estimates to have a significant impact on the overall scoring formula.

Some additional thoughts: I’m not sure if this is offered by any fantasy service, but it occurred to me that a cool option to (rather than score each matchup as each team’s Offensive + Defensive scores) instead score matches as one team’s Offensive score MINUS the opposing team’s Defensive score. Another cool option would be the ability to weight Plays and Yards based on the Down they occurred, effectively creating a “leverage factor” for each play… but I’m not sure how possible that could really be.

OK- thus concludes my attempt to fit a “wRC” method around football categories… until something else sticks in my head about it :slight_smile:

Thanks (again) for the read!

3 Likes