Opponent vs. Position App

Knowing the rank of opponents versus position as presented by DraftKings or FanDuel is simply not enough information. How much worse is the 30th ranked defense against point guards than the 29th ranked defense? How should we discount defenses that play in a division or conference of positional strength, are they really that bad, or do they just play a lot of really good small forwards? Just because FanDuel considers James Harden a shooting guard, should his production while playing point guard be counted against his opponents' defense against the shooting guard position? Our Opponent vs. Position app aims to add additional information to the ranks that are so blindly relied upon in the DraftKings and FanDuel lobbies.

App User Guide

App interface
  1. Site input: Select site scoring scheme to compare players over. DraftKings or FanDuel only, can't select multiple.
  2. OVP type input: This is the difference maker in our app. We have data on the percentage of minutes played by each player at each position and use this to inform our analysis of opponents versus positions. Selecting the "raw opponent vs. position" (rOVP) produces a table of the average fantasy points allowed by a team to each position, with consideration for players' minutes proportion at each position. For example, Russell Westbrook logs about half his minutes as the Thunder point guard, half as the shooting guard, ceding point guard duties to Dennis Schroder. Thus, half of his fantasy points scored against an opponent count towards points allowed to point guards, half to points allowed to shooting guards. This is an improvement over the discrete "rank vs. position" that you'll see in draft lobbies, but we still feel falls short of optimal information. The defaulted input is “true opponent vs. position” (tOVP), which is a +/- metric we have created that better captures teams’ ability to prevent players at each position from generating their expected value fantasy production.  The equation for tOVP is as follows, it is calculated per position and per game: Sum(game fantasy points_i * position%_j) - Sum(game minutes_i * avg fantasy points per minute_i * position%_j); where i = {all players} and j = {all positions}.  If the math doesn’t quite make sense, on the left side of the subtraction, we calculate how many fantasy points are scored in a game from each position, making the assumption described above, that a player who plays x% at position A and y% at position B splits their fantasy total accordingly; this is the equation used to calculate rOVP.  On the right side of the subtraction, we calculate how many fantasy points are expected at each position if every player scores their season per-minute average in the minutes they played at each position, again, assuming that players split their minutes according to their season position proportions.  We feel that the right side of the tOVP formula controls for a necessary piece of information that is lost in raw opponent vs. position calculations.  That is, how to we discount or inflate metrics based on a team’s baseline positional talent or efficiency (this is the average fantasy points per minute component) and the volume that that talent plays in a specific games (the minutes component).  If the Warriors-Nuggets game goes into double overtime and Kevin Durant plays 42 minutes, it seems like the Nuggets should be given a discount in terms of their allowance of fantasy points to small forward, because KD (a very good player) played with an unusually high volume.  Conversely, if the KD was inactive and Alfonzo McKinnie put up a KD-like 40-fantasy-point performance, it seems like the Nuggets should be penalized for allowing a less skilled player to put up huge numbers.  This is the thought process behind our tOVP calculation.  Keep in mind that tOVP is a +/- metric for an entire positional unit.  So in a Phoenix-Minnesota matchup, where Phoenix has a Center DKP tOVP close to +5, it would be foolish to inflate Karl-Anthony Towns' expectation by +5.  Rather, we expect Timberwolves centers to score culmulatively five more DKP than their average.  So if we expect KAT to play 34 minutes (of a possible 48, assuming MIN runs single-center lineups), we can multiply through 4.67*34/48 to give KAT a +3.37 DKP expectation.  There are some dangers to using this calculation religiously, as there might be other factors that affect how we project a player on any given night, this should be seen as an “all else equal” level-setting metric.
  3. Positions input: Select the positions you want to view opponent vs. position for.  Keep in mind that these are positions as defined by our proportional position data.  So even though FanDuel considers Russell Westbrook a point guard (he actually plays about half his minutes at shooting guard), the effect an opposing defense will have on him should fall between their tOVP for point guard and shooting guard.
  4. Teams input: This input is defaulted to show the teams that are playing each night. You can add specific teams by adding them to the input, or if you want to view all teams, you can add "All" to the input.
  5. Players input: This input is used control the players shown in the "Player Positions" tab, see (7). This tab contains the percentage breakout of each player at each position. The default input is blank, which will show all players.
  6. OVP data download button: Clicking this button downloads a .csv file called "ASA NBA OVP.csv"; this file can be opened in Microsoft Excel. The file contains the same data available through the app, but all columns based on possible combinations of site input (1) and OVP type input (2).  If you have your own projection models this file could prove a useful input into such models.
  7. OVP and Player Positions tabs: Use these tabs to toggle back an forth between OVP nd player position breakout tables.
  8. OVP columns output: These are the columns that are defined by inputs (1-3).  In the example above, note the blue arrow in the “PG DKP tOVP” column; every column is sortable, allowing you to easily find the best and worst teams against each position.
  9. Position breakout columns: These columns show the proportion of playing time each player plays at each of the five positions. This proportion can sometimes be different from DraftKings/FanDuel position designation.