Giter Site home page Giter Site logo

jjti / ff Goto Github PK

View Code? Open in Web Editor NEW
44.0 7.0 9.0 24.58 MB

fantasy football draft assistant with projections from ESPN, CBS, and NFL

Home Page: https://www.ffdraft.app

HTML 0.17% CSS 10.36% TypeScript 64.03% Python 24.99% Makefile 0.17% Shell 0.28%
forecasting fantasy football draft espn fantasy-football cbs yahoo

ff's Introduction

ffdraft.app

Screen Shot 2022-08-06 at 9 41 54 AM

An app for drafting the best fantasy football team possible: www.ffdraft.app.

Uses projections from ESPN, CBS, and NFL and value over replacement estimates to optimize your roster.

Buy Me A Coffee

Value over replacement

The app ranks players by their value over replacement (VOR). Players' VOR is the difference between their expected season-end projection and that of the n+1th ranked player (where n in the count of starters in that position in the league).

Why is this useful? Because it tells you, the drafter, how to prioritize players across positions. You'll be informed when choosing between the RB or QB in round 6.

Example

If there are 10 teams we expect the VOR of the best QB to be his expected season-end points minus the points of the 11th best QB. In the example below, it's better to pick the RB because his expected value far exceeds the replacement player who will be available from waivers. The RB1 offers 62 points of greater value over the season (136 - 74).

QB1: projection = 394, vor = 74 (394 - 320)
QB11: projection = 320, vor = 0 (320 - 320)

RB1: projection = 253, vor = 136 (253 - 117)
RB31: projection = 117, vor = 0 (117 - 117)

Details

Calculating VOR is tricky because:

  • it depends on the league size. Eg: if the league has 16 teams, RB values tend to increase a lot
  • it depends on the league roster format. Eg: if the league has 2 QBs per team, that improves QB values
  • it depends on league scoring. Eg: if rushing touchdowns are 4pts and recieving touchdowns 6pts, that improves WR's values
  • it depends on other drafters. Eg: if the first 6 rounds are all RB picks, that improves the RB's values. The waiver RB for replacement will be worse

The app adjusts for each of the complexities above. It calculates player's VOR dynamically based on:

  • league size
  • league roster format
  • league scoring
  • average draft position

Sources

Player projections are updated daily from ESPN, CBS, and NFL. These projections are as granular as the number of rushing touchdowns and fumbles expected per season. That granularity - versus a static ranking - is needed to adjust for league-specific scoring.

Each player's season-end projection is the average from across ESPN, CBS, and NFL. I expect the average of all sources to be more accurate than any on their own.

Average draft position are retrieved from Fantasy Pros.

Suggestions

Tags next to players indicate:

  1. pick recommendations
  2. whether the player will be drafted soon
  3. BYE week overlap with other players on roster
  4. RB handcuffs

While the suggestions are useful, it's usually enough to just draft the top player ranked by VOR.

Controls

Clicking on a player drafts him to the active team (currently drafting). You can skip the current turn (not drafting a player), undo the last round's pick (if they make a mistake), or remove a player (if the player was drafted already but you missed it).

ff's People

Contributors

dependabot[bot] avatar jjti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ff's Issues

Variable Rosters

First off, nice work, I am planning to try this out tonight. I have used the paid pones in the past, but I love your methodology and simple clean design. Thanks for making this!

So we have a unique league and our roster limits use a min/max starters as follows:

QB 1 min 1 max
RB 2 min 3 max
WR 2 min 3 max
TE 1 min 2 max
Flex (WR/TE/RB) 1 min 1 max
K 1 min 1 max
DST 1 min 1 max

Based on the above, we allow for 9 max starters in the lineup and a total of 18 players drafted on to the roster.

Is there a way to code for this? If not, what would you suggest I use to get the best draft picks available?

TODO

[ ] highlight picks in history that are your own
[ ] keep/include free-agents in scraping
[ ] use localStorage to keep draft history between tabs/reloads

Website SSL Error

I normally rely on your app every year for draft day, but I'm now getting this error, and today is my draft day :( bummer. Was going to try to clone and run, but I would need the .env file. Any assistance would be great.

image

2023 bugs / improvements

  • if searching, then click, return focus to search
  • if sub-selecting for positions, then searching in text, clear the sub-selection of positions
    • esp if you're selected a player it should clear
  • add a link to the README: https://www.ffdraft.app/
  • add def players

Get data for 2018

Scrape rankings from ESPN, CBS, NFL and FOX.
Get Madden 2018 stats.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.