Jon Solow
commited on
Commit
·
ddb39cb
1
Parent(s):
dd64f21
Remove all yfdashboard specific that wont carry over
Browse files- src/Home.py +4 -7
- src/config.py +0 -2
- src/maximum_roster_strategy/__init__.py +0 -0
- src/maximum_roster_strategy/data_loader.py +0 -19
- src/page_selector.py +0 -40
- src/pages/10_Player_News.py +0 -53
- src/pages/11_Next_Gen_Stats.py +0 -70
- src/pages/1_Keepers.py +0 -178
- src/pages/3_ECR.py +0 -88
- src/pages/4_Practice_Reports.py +0 -66
- src/pages/50_League_Simulation.py +0 -26
- src/pages/5_Targets.py +0 -56
- src/pages/6_Redzone_Opportunities.py +0 -56
- src/pages/7_Snap_Counts.py +0 -69
- src/pages/80_Maximum_Roster_Strategy.py +0 -165
- src/pages/8_FTN_Charting.py +0 -40
- src/pages/99_Keeper_Rules.py +0 -37
- src/pages/9_Team_Formations.py +0 -83
- src/queries/footballguys/__init__.py +0 -0
- src/queries/footballguys/constants.py +0 -34
- src/queries/footballguys/helpers.py +0 -130
- src/queries/footballguys/refresh.py +0 -46
- src/queries/nbcsports/player_news.py +0 -52
- src/queries/nfl_teams/__init__.py +0 -0
- src/queries/nfl_teams/practice_reports.py +0 -123
- src/shared_page.py +1 -2
- tests/contract/test_nbcsports_player_news.py +0 -13
- tests/contract/test_nfl_teams_practice_reports.py +0 -9
- tests/mocks/2023_keepers.csv +0 -222
src/Home.py
CHANGED
@@ -1,17 +1,16 @@
|
|
1 |
import streamlit as st
|
2 |
|
3 |
-
from config import DEFAULT_ICON
|
4 |
from login_component import get_authorization_button
|
5 |
-
from page_selector import remove_seasonal_pages
|
6 |
|
7 |
|
8 |
def get_app():
|
9 |
-
keeper_title =
|
10 |
st.set_page_config(page_title=keeper_title, page_icon=DEFAULT_ICON)
|
11 |
get_authorization_button()
|
12 |
st.markdown(
|
13 |
-
|
14 |
-
Welcome
|
15 |
|
16 |
Navigate between pages using the left sidebar.
|
17 |
|
@@ -20,8 +19,6 @@ def get_app():
|
|
20 |
"""
|
21 |
)
|
22 |
|
23 |
-
remove_seasonal_pages()
|
24 |
-
|
25 |
|
26 |
if __name__ == "__main__":
|
27 |
get_app()
|
|
|
1 |
import streamlit as st
|
2 |
|
3 |
+
from config import DEFAULT_ICON
|
4 |
from login_component import get_authorization_button
|
|
|
5 |
|
6 |
|
7 |
def get_app():
|
8 |
+
keeper_title = "NFL Playoff Challenge"
|
9 |
st.set_page_config(page_title=keeper_title, page_icon=DEFAULT_ICON)
|
10 |
get_authorization_button()
|
11 |
st.markdown(
|
12 |
+
"""
|
13 |
+
Welcome!
|
14 |
|
15 |
Navigate between pages using the left sidebar.
|
16 |
|
|
|
19 |
"""
|
20 |
)
|
21 |
|
|
|
|
|
22 |
|
23 |
if __name__ == "__main__":
|
24 |
get_app()
|
src/config.py
CHANGED
@@ -1,3 +1 @@
|
|
1 |
-
LEAGUE_NAME = "LOFG"
|
2 |
DEFAULT_ICON = "🏉"
|
3 |
-
LEAGUE_NUMBER_TEAMS = 12
|
|
|
|
|
1 |
DEFAULT_ICON = "🏉"
|
|
src/maximum_roster_strategy/__init__.py
DELETED
File without changes
|
src/maximum_roster_strategy/data_loader.py
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
import os
|
2 |
-
import pandas as pd
|
3 |
-
|
4 |
-
|
5 |
-
MRS_SHEET_ID = os.environ.get("MRS_SHEET_ID")
|
6 |
-
|
7 |
-
|
8 |
-
def get_google_sheet_data() -> pd.DataFrame:
|
9 |
-
return get_sheet_data(0)
|
10 |
-
|
11 |
-
|
12 |
-
def get_sheet_data(sheet_id: int = 0):
|
13 |
-
sheet_url = f"https://docs.google.com/spreadsheet/ccc?key={MRS_SHEET_ID}&output=csv&gid={sheet_id}"
|
14 |
-
df = pd.read_csv(sheet_url)
|
15 |
-
return df
|
16 |
-
|
17 |
-
|
18 |
-
def get_timeslot_labels() -> pd.DataFrame:
|
19 |
-
return get_sheet_data(1875906423)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/page_selector.py
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
from streamlit.source_util import _on_pages_changed, get_pages
|
2 |
-
|
3 |
-
# Adapted from https://discuss.streamlit.io/t/how-to-hide-all-pages-before-login/32508
|
4 |
-
# Note this code is intended to remove pages at app load time, not based on login
|
5 |
-
|
6 |
-
SEASON_MODE = "season"
|
7 |
-
OFFSEASON_MODE = "offseason"
|
8 |
-
|
9 |
-
CURRENT_MODE = SEASON_MODE
|
10 |
-
|
11 |
-
MAIN_PAGE_FILE = "Home.py"
|
12 |
-
|
13 |
-
MODE_PAGE_EXCLUSION_MAP = {
|
14 |
-
SEASON_MODE: [
|
15 |
-
"Keepers",
|
16 |
-
"ECR",
|
17 |
-
"League_Simulation",
|
18 |
-
"Keeper_Rules",
|
19 |
-
"Maximum_Roster_Strategy",
|
20 |
-
],
|
21 |
-
OFFSEASON_MODE: [
|
22 |
-
"Practice_Reports",
|
23 |
-
"League_Simulation",
|
24 |
-
"Maximum_Roster_Strategy",
|
25 |
-
],
|
26 |
-
}
|
27 |
-
|
28 |
-
|
29 |
-
def remove_seasonal_pages():
|
30 |
-
all_pages = get_pages(MAIN_PAGE_FILE)
|
31 |
-
pages_to_remove = MODE_PAGE_EXCLUSION_MAP[CURRENT_MODE]
|
32 |
-
|
33 |
-
page_keys_to_remove = []
|
34 |
-
for k, v in all_pages.items():
|
35 |
-
if v["page_name"] in pages_to_remove:
|
36 |
-
page_keys_to_remove.append(k)
|
37 |
-
for k_remove in page_keys_to_remove:
|
38 |
-
del all_pages[k_remove]
|
39 |
-
|
40 |
-
_on_pages_changed.send()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/10_Player_News.py
DELETED
@@ -1,53 +0,0 @@
|
|
1 |
-
import datetime
|
2 |
-
import streamlit as st
|
3 |
-
|
4 |
-
from config import DEFAULT_ICON
|
5 |
-
from shared_page import common_page_config
|
6 |
-
|
7 |
-
from queries.nbcsports.player_news import get_player_news_window_hours
|
8 |
-
|
9 |
-
|
10 |
-
@st.cache_data(ttl=60 * 60 * 24)
|
11 |
-
def load_data():
|
12 |
-
data = get_player_news_window_hours(24)
|
13 |
-
teams_list = sorted(filter(None, data.Team.unique()))
|
14 |
-
position_list = data.Position.unique()
|
15 |
-
data_load_time_str = datetime.datetime.utcnow().strftime("%m/%d/%Y %I:%M %p")
|
16 |
-
return data, teams_list, position_list, data_load_time_str
|
17 |
-
|
18 |
-
|
19 |
-
def get_page():
|
20 |
-
page_title = "Player News - Last 24 Hours"
|
21 |
-
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide")
|
22 |
-
common_page_config()
|
23 |
-
st.title(page_title)
|
24 |
-
if st.button("Refresh Data"):
|
25 |
-
st.cache_data.clear()
|
26 |
-
data, teams_list, position_list, data_load_time_str = load_data()
|
27 |
-
st.write(f"Data loaded as of: {data_load_time_str} UTC")
|
28 |
-
|
29 |
-
teams_selected = st.multiselect("Team:", teams_list, placeholder="Select a team to filter") or teams_list
|
30 |
-
|
31 |
-
with st.container():
|
32 |
-
filtered_data = data[(data.Team.isin(teams_selected))]
|
33 |
-
st.dataframe(
|
34 |
-
filtered_data,
|
35 |
-
hide_index=True,
|
36 |
-
height=35 * (len(filtered_data) + 1) + 12,
|
37 |
-
use_container_width=True,
|
38 |
-
column_order=[
|
39 |
-
"Date/Time",
|
40 |
-
"Name",
|
41 |
-
"Headline",
|
42 |
-
"Team",
|
43 |
-
"Position",
|
44 |
-
],
|
45 |
-
column_config={
|
46 |
-
"Date/Time": st.column_config.DatetimeColumn(format="MM-DD HH:mm"),
|
47 |
-
"Team": st.column_config.TextColumn(width="small"),
|
48 |
-
},
|
49 |
-
)
|
50 |
-
|
51 |
-
|
52 |
-
if __name__ == "__main__":
|
53 |
-
get_page()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/11_Next_Gen_Stats.py
DELETED
@@ -1,70 +0,0 @@
|
|
1 |
-
import streamlit as st
|
2 |
-
|
3 |
-
from config import DEFAULT_ICON
|
4 |
-
from shared_page import common_page_config
|
5 |
-
|
6 |
-
from streamlit_filter import get_multiselect_for_df_column
|
7 |
-
from queries.nflverse.github_data import get_nextgen_stats, get_current_tables, SEASON
|
8 |
-
|
9 |
-
|
10 |
-
hide_columns = [
|
11 |
-
"season",
|
12 |
-
"season_type",
|
13 |
-
"player_gsis_id",
|
14 |
-
"player_first_name",
|
15 |
-
"player_last_name",
|
16 |
-
"player_jersey_number",
|
17 |
-
"player_short_name",
|
18 |
-
]
|
19 |
-
|
20 |
-
|
21 |
-
def get_page():
|
22 |
-
page_title = f"Next Gen Stats - {SEASON}"
|
23 |
-
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide")
|
24 |
-
common_page_config()
|
25 |
-
st.title(page_title)
|
26 |
-
|
27 |
-
stat_category = st.selectbox("Stat Category", ["Passing", "Rushing", "Receiving"])
|
28 |
-
ngs_table_name = f"nextgen_stats_ngs_{stat_category.lower()}"
|
29 |
-
current_tables_list = get_current_tables()
|
30 |
-
|
31 |
-
if ngs_table_name not in current_tables_list:
|
32 |
-
st.write("Data not loaded.")
|
33 |
-
st.write("Check loaded data [here](./Load_Data)")
|
34 |
-
return
|
35 |
-
data = get_nextgen_stats(SEASON, stat_category)
|
36 |
-
|
37 |
-
season_or_week = st.selectbox("Season or Weekly Stats", ["Season", "Week"])
|
38 |
-
if season_or_week == "Season":
|
39 |
-
data = data[data["week"] == 0]
|
40 |
-
data.drop(columns=["week"], inplace=True)
|
41 |
-
else:
|
42 |
-
data = data[data["week"] > 0]
|
43 |
-
week_selection = st.slider(
|
44 |
-
"Filter Week Range:",
|
45 |
-
min_value=data["week"].min(),
|
46 |
-
max_value=data["week"].max(),
|
47 |
-
value=(data["week"].min(), data["week"].max()),
|
48 |
-
step=1,
|
49 |
-
)
|
50 |
-
data = data[data["week"].between(*week_selection)]
|
51 |
-
|
52 |
-
data.drop(columns=hide_columns, inplace=True)
|
53 |
-
positions_selected = get_multiselect_for_df_column(data, "player_position")
|
54 |
-
teams_selected = get_multiselect_for_df_column(data, "team_abbr")
|
55 |
-
|
56 |
-
data = data[(data["player_position"].isin(positions_selected) & data["team_abbr"].isin(teams_selected))]
|
57 |
-
|
58 |
-
with st.container():
|
59 |
-
filtered_data = data
|
60 |
-
st.dataframe(
|
61 |
-
filtered_data,
|
62 |
-
hide_index=True,
|
63 |
-
# height=35 * (len(filtered_data) + 1) + 12,
|
64 |
-
use_container_width=False,
|
65 |
-
column_config={},
|
66 |
-
)
|
67 |
-
|
68 |
-
|
69 |
-
if __name__ == "__main__":
|
70 |
-
get_page()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/1_Keepers.py
DELETED
@@ -1,178 +0,0 @@
|
|
1 |
-
import os
|
2 |
-
import numpy as np
|
3 |
-
import pandas as pd
|
4 |
-
import streamlit as st
|
5 |
-
|
6 |
-
from config import DEFAULT_ICON, LEAGUE_NAME, LEAGUE_NUMBER_TEAMS
|
7 |
-
from shared_page import common_page_config
|
8 |
-
from streamlit_filter import filter_dataframe
|
9 |
-
|
10 |
-
|
11 |
-
KEEPER_DATA_URL = "../../tests/mocks/2023_keepers.csv"
|
12 |
-
HEADSHOT_DATA_URL = "../../tests/mocks/2023_player_headshots.csv"
|
13 |
-
|
14 |
-
|
15 |
-
def load_player_ids() -> pd.DataFrame:
|
16 |
-
df = pd.read_csv(r"https://raw.githubusercontent.com/dynastyprocess/data/master/files/db_playerids.csv")
|
17 |
-
df["merge_id"] = df["yahoo_id"].combine_first(df["stats_id"])
|
18 |
-
return df
|
19 |
-
|
20 |
-
|
21 |
-
def load_adp() -> pd.DataFrame:
|
22 |
-
df = pd.read_csv(r"https://raw.githubusercontent.com/dynastyprocess/data/master/files/db_fpecr_latest.csv")
|
23 |
-
df = df.loc[
|
24 |
-
df.fp_page == "/nfl/rankings/ppr-superflex-cheatsheets.php",
|
25 |
-
[
|
26 |
-
"yahoo_id",
|
27 |
-
"ecr",
|
28 |
-
"sd",
|
29 |
-
],
|
30 |
-
]
|
31 |
-
return df
|
32 |
-
|
33 |
-
|
34 |
-
def convert_ecr_to_round_val(ecr_float: float, round_offset: float = 1.0, pick_offset: float = -1.0) -> float:
|
35 |
-
# As a float, store pick 1 of round 1 as 1.0
|
36 |
-
return round_offset + (ecr_float + pick_offset) / LEAGUE_NUMBER_TEAMS
|
37 |
-
|
38 |
-
|
39 |
-
def add_opinionated_keeper_value(df: pd.DataFrame):
|
40 |
-
# Manual Hack for overranking of backup QBs
|
41 |
-
df.loc[
|
42 |
-
df["name"].isin(
|
43 |
-
[
|
44 |
-
"Teddy Bridgewater",
|
45 |
-
"Davis Mills",
|
46 |
-
"Andy Dalton",
|
47 |
-
"Tyler Huntley",
|
48 |
-
"Mike White",
|
49 |
-
"Gardner Minshew",
|
50 |
-
"Colt McCoy",
|
51 |
-
"Sam Darnold",
|
52 |
-
"Carson Wentz",
|
53 |
-
"Trey Lance",
|
54 |
-
"Taylor Heinicke",
|
55 |
-
]
|
56 |
-
),
|
57 |
-
["ecr"],
|
58 |
-
] = np.nan
|
59 |
-
|
60 |
-
df["ecr"] = df["ecr"].apply(convert_ecr_to_round_val)
|
61 |
-
# Convert sd without offset to show as pure pick diff
|
62 |
-
df["sd"] = df["sd"].apply(lambda x: convert_ecr_to_round_val(x, 0, 0))
|
63 |
-
# assumes midround keeper
|
64 |
-
# fill -99 for players that are not ranked in ecr
|
65 |
-
df["value_keeper"] = (df["keeper_cost"] + 0.5 - df["ecr"]).fillna(-99)
|
66 |
-
|
67 |
-
|
68 |
-
@st.cache_data(ttl=60 * 60 * 24)
|
69 |
-
def load_data():
|
70 |
-
data = pd.read_csv(os.path.join(os.path.dirname(__file__), KEEPER_DATA_URL), index_col=0)
|
71 |
-
# Hack to get position, replace with better position from yahoo api in future
|
72 |
-
data["position"] = data["eligible_positions"].apply(lambda x: eval(x)[0])
|
73 |
-
data.columns = data.columns.str.lower()
|
74 |
-
teams_list = sorted(list(data["team_name"].unique()))
|
75 |
-
|
76 |
-
# Merge player ids
|
77 |
-
df_player_ids = load_player_ids()
|
78 |
-
data = data.merge(df_player_ids, how="left", left_on="player_id", right_on="merge_id", suffixes=("", "_ids"))
|
79 |
-
|
80 |
-
# Merge ADP
|
81 |
-
df_adp = load_adp()
|
82 |
-
data = data.merge(df_adp, how="left", left_on="player_id", right_on="yahoo_id", suffixes=("", "_adp"))
|
83 |
-
add_opinionated_keeper_value(data)
|
84 |
-
return data, teams_list
|
85 |
-
|
86 |
-
|
87 |
-
def filtered_keeper_dataframe(data: pd.DataFrame, teams_list: list[str]):
|
88 |
-
teams_selected = st.multiselect("Team:", teams_list, placeholder="Select a user team to filter")
|
89 |
-
teams_filter = data["team_name"].isin(teams_selected) if teams_selected else data["team_name"].isin(teams_list)
|
90 |
-
|
91 |
-
eligible_options = [True, False]
|
92 |
-
is_eligible_selected = st.multiselect(
|
93 |
-
"Keeper Eligible:", eligible_options, placeholder="Select True to filter eligible only"
|
94 |
-
)
|
95 |
-
eligible_filter = (
|
96 |
-
data["eligible"].isin(is_eligible_selected) if is_eligible_selected else data["eligible"].isin(eligible_options)
|
97 |
-
)
|
98 |
-
is_advanced = st.checkbox("Show Advanced View")
|
99 |
-
|
100 |
-
id_cols = [
|
101 |
-
"team_name",
|
102 |
-
"headshot_url",
|
103 |
-
"name",
|
104 |
-
]
|
105 |
-
|
106 |
-
id_cols_advanced = [
|
107 |
-
"team",
|
108 |
-
"position",
|
109 |
-
]
|
110 |
-
|
111 |
-
cost_cols = [
|
112 |
-
"keeper_cost",
|
113 |
-
"eligible",
|
114 |
-
]
|
115 |
-
|
116 |
-
cost_cols_advanced = [
|
117 |
-
"years_eligible",
|
118 |
-
]
|
119 |
-
|
120 |
-
adp_cols: list[str] = []
|
121 |
-
|
122 |
-
adp_cols_advanced = [
|
123 |
-
"ecr",
|
124 |
-
"value_keeper",
|
125 |
-
]
|
126 |
-
|
127 |
-
if is_advanced:
|
128 |
-
show_columns = id_cols + id_cols_advanced + cost_cols + cost_cols_advanced + adp_cols + adp_cols_advanced
|
129 |
-
else:
|
130 |
-
show_columns = id_cols + cost_cols + adp_cols
|
131 |
-
|
132 |
-
data_with_filters_applied = data.loc[teams_filter & eligible_filter, show_columns]
|
133 |
-
|
134 |
-
filtered_data = filter_dataframe(data_with_filters_applied)
|
135 |
-
st.dataframe(
|
136 |
-
filtered_data,
|
137 |
-
hide_index=True,
|
138 |
-
height=35 * (len(filtered_data) + 1) + 12,
|
139 |
-
use_container_width=True,
|
140 |
-
column_config={
|
141 |
-
"team_name": st.column_config.TextColumn(label="League Team", help="Name of fantasy League team."),
|
142 |
-
"headshot_url": st.column_config.ImageColumn(label="", help="Player image"),
|
143 |
-
"name": st.column_config.TextColumn(label="Name", help="Player's name"),
|
144 |
-
"team": st.column_config.TextColumn(label="NFL Team"),
|
145 |
-
"position": st.column_config.TextColumn(label="Position", help="Player's position"),
|
146 |
-
"keeper_cost": st.column_config.NumberColumn(
|
147 |
-
label="Keeper Cost", help="Draft Round Cost to keep player. See Rules for details."
|
148 |
-
),
|
149 |
-
"eligible": st.column_config.CheckboxColumn(label="Eligible", help="Is player eligible to be keeper?"),
|
150 |
-
"years_eligible": st.column_config.NumberColumn(
|
151 |
-
label="Years Eligible",
|
152 |
-
help="Number of further consecutive seasons player can be kept (subject to maximum of 2)",
|
153 |
-
),
|
154 |
-
"ecr": st.column_config.NumberColumn(
|
155 |
-
label="ECR",
|
156 |
-
help="Player's average draft round.pick Expert Consensus Rank (ECR) for PPR - Superflex League",
|
157 |
-
),
|
158 |
-
"value_keeper": st.column_config.NumberColumn(
|
159 |
-
label="Value Keeper",
|
160 |
-
help="Approx. number of draft rounds of keeper value vs ECR PPR - Superflex League",
|
161 |
-
),
|
162 |
-
},
|
163 |
-
)
|
164 |
-
|
165 |
-
|
166 |
-
def get_keeper_app():
|
167 |
-
keeper_title = f"{LEAGUE_NAME} Keeper Options"
|
168 |
-
st.set_page_config(page_title=keeper_title, page_icon=DEFAULT_ICON, layout="wide")
|
169 |
-
common_page_config()
|
170 |
-
st.title(keeper_title)
|
171 |
-
data, teams_list = load_data()
|
172 |
-
|
173 |
-
with st.container():
|
174 |
-
filtered_keeper_dataframe(data, teams_list)
|
175 |
-
|
176 |
-
|
177 |
-
if __name__ == "__main__":
|
178 |
-
get_keeper_app()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/3_ECR.py
DELETED
@@ -1,88 +0,0 @@
|
|
1 |
-
import os
|
2 |
-
import pandas as pd
|
3 |
-
import streamlit as st
|
4 |
-
|
5 |
-
from config import DEFAULT_ICON
|
6 |
-
from shared_page import common_page_config
|
7 |
-
from streamlit_filter import filter_dataframe
|
8 |
-
|
9 |
-
|
10 |
-
KEEPER_DATA_URL = "../../tests/mocks/2023_keepers.csv"
|
11 |
-
HEADSHOT_DATA_URL = "../../tests/mocks/2023_player_headshots.csv"
|
12 |
-
|
13 |
-
|
14 |
-
def load_adp() -> pd.DataFrame:
|
15 |
-
df = pd.read_csv(r"https://raw.githubusercontent.com/dynastyprocess/data/master/files/db_fpecr_latest.csv")
|
16 |
-
df["ranking_type"] = df["fp_page"].apply(lambda x: os.path.split(x)[-1].replace(".php", ""))
|
17 |
-
return df
|
18 |
-
|
19 |
-
|
20 |
-
@st.cache_data(ttl=60 * 60 * 24)
|
21 |
-
def load_data():
|
22 |
-
# Merge ADP
|
23 |
-
data = load_adp()
|
24 |
-
ranking_type_list = sorted(list(data.ranking_type.unique()))
|
25 |
-
return data, ranking_type_list
|
26 |
-
|
27 |
-
|
28 |
-
def filtered_ecr_dataframe(data: pd.DataFrame, ranking_type_list: list[str]):
|
29 |
-
default_ix = ranking_type_list.index("ppr-superflex-cheatsheets")
|
30 |
-
ranking_type_selected = st.selectbox("ECR Format:", ranking_type_list, index=default_ix)
|
31 |
-
ranking_type_filter = data["ranking_type"] == ranking_type_selected
|
32 |
-
|
33 |
-
is_advanced = st.checkbox("Show Advanced View")
|
34 |
-
|
35 |
-
id_cols = [
|
36 |
-
# "player_square_image_url",
|
37 |
-
"player",
|
38 |
-
"pos",
|
39 |
-
"team",
|
40 |
-
]
|
41 |
-
|
42 |
-
id_cols_advanced = [
|
43 |
-
"bye",
|
44 |
-
"player_owned_yahoo",
|
45 |
-
]
|
46 |
-
|
47 |
-
adp_cols: list[str] = [
|
48 |
-
"ecr",
|
49 |
-
]
|
50 |
-
|
51 |
-
adp_cols_advanced = ["sd", "best", "worst"]
|
52 |
-
|
53 |
-
if is_advanced:
|
54 |
-
show_columns = id_cols + id_cols_advanced + adp_cols + adp_cols_advanced
|
55 |
-
else:
|
56 |
-
show_columns = id_cols + adp_cols
|
57 |
-
|
58 |
-
data_filtered_by_ranking_type = data.loc[ranking_type_filter]
|
59 |
-
latest_scrape_date = data_filtered_by_ranking_type.scrape_date.max()
|
60 |
-
st.write(f"Scraped data as of: {latest_scrape_date}")
|
61 |
-
|
62 |
-
filtered_data = filter_dataframe(data.loc[ranking_type_filter, show_columns])
|
63 |
-
st.dataframe(
|
64 |
-
filtered_data,
|
65 |
-
hide_index=True,
|
66 |
-
height=35 * (len(filtered_data) + 1) + 12,
|
67 |
-
use_container_width=True,
|
68 |
-
column_config={
|
69 |
-
# "player_square_image_url": st.column_config.ImageColumn(label="", help="Player image"),
|
70 |
-
},
|
71 |
-
)
|
72 |
-
|
73 |
-
st.write("Source: https://github.com/dynastyprocess/data")
|
74 |
-
|
75 |
-
|
76 |
-
def get_keeper_app():
|
77 |
-
keeper_title = "Expert Consensus Rankings"
|
78 |
-
st.set_page_config(page_title=keeper_title, page_icon=DEFAULT_ICON, layout="wide")
|
79 |
-
common_page_config()
|
80 |
-
st.title(keeper_title)
|
81 |
-
data, ecr_type_list = load_data()
|
82 |
-
|
83 |
-
with st.container():
|
84 |
-
filtered_ecr_dataframe(data, ecr_type_list)
|
85 |
-
|
86 |
-
|
87 |
-
if __name__ == "__main__":
|
88 |
-
get_keeper_app()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/4_Practice_Reports.py
DELETED
@@ -1,66 +0,0 @@
|
|
1 |
-
import datetime
|
2 |
-
import streamlit as st
|
3 |
-
|
4 |
-
from config import DEFAULT_ICON
|
5 |
-
from shared_page import common_page_config
|
6 |
-
|
7 |
-
from queries.nfl_teams.practice_reports import scrape_all_team_injury_report, CURRENT_SEASON, CURRENT_WEEK
|
8 |
-
from streamlit_filter import filter_dataframe
|
9 |
-
|
10 |
-
|
11 |
-
@st.cache_data(ttl=60 * 60 * 1)
|
12 |
-
def load_data():
|
13 |
-
data = scrape_all_team_injury_report()
|
14 |
-
teams_list = list(data.Team.unique())
|
15 |
-
position_list = list(data.Position.unique())
|
16 |
-
status_list = list(data.game_status.unique())
|
17 |
-
last_practice_day_list = list(data["Last Practice Day"].unique())
|
18 |
-
data_load_time_str = datetime.datetime.utcnow().strftime("%m/%d/%Y %I:%M %p")
|
19 |
-
return data, teams_list, position_list, status_list, last_practice_day_list, data_load_time_str
|
20 |
-
|
21 |
-
|
22 |
-
def get_page():
|
23 |
-
page_title = f"Team Practice Reports - {CURRENT_SEASON} Week {CURRENT_WEEK}"
|
24 |
-
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide")
|
25 |
-
common_page_config()
|
26 |
-
st.title(page_title)
|
27 |
-
if st.button("Refresh Data"):
|
28 |
-
st.cache_data.clear()
|
29 |
-
data, teams_list, position_list, status_list, last_practice_day_list, data_load_time_str = load_data()
|
30 |
-
st.write(f"Data loaded as of: {data_load_time_str} UTC")
|
31 |
-
teams_selected = st.multiselect("Team:", teams_list, placeholder="Select a team to filter") or teams_list
|
32 |
-
positions_selected = (
|
33 |
-
st.multiselect("Position:", position_list, placeholder="Select a position to filter") or position_list
|
34 |
-
)
|
35 |
-
status_selected = (
|
36 |
-
st.multiselect("Game Status:", status_list, placeholder="Select a game status to filter") or status_list
|
37 |
-
)
|
38 |
-
last_practice_day_selected = (
|
39 |
-
st.multiselect(
|
40 |
-
"Last Practice Day:", last_practice_day_list, placeholder="Select a day of last team practice to filter"
|
41 |
-
)
|
42 |
-
or last_practice_day_list
|
43 |
-
)
|
44 |
-
|
45 |
-
with st.container():
|
46 |
-
filtered_data = filter_dataframe(
|
47 |
-
data[
|
48 |
-
(
|
49 |
-
data.Team.isin(teams_selected)
|
50 |
-
& data.Position.isin(positions_selected)
|
51 |
-
& data.game_status.isin(status_selected)
|
52 |
-
& data["Last Practice Day"].isin(last_practice_day_selected)
|
53 |
-
)
|
54 |
-
]
|
55 |
-
)
|
56 |
-
st.dataframe(
|
57 |
-
filtered_data,
|
58 |
-
hide_index=True,
|
59 |
-
height=35 * (len(filtered_data) + 1) + 12,
|
60 |
-
use_container_width=False,
|
61 |
-
column_config={},
|
62 |
-
)
|
63 |
-
|
64 |
-
|
65 |
-
if __name__ == "__main__":
|
66 |
-
get_page()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/50_League_Simulation.py
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
import streamlit as st
|
2 |
-
|
3 |
-
from config import DEFAULT_ICON
|
4 |
-
from shared_page import common_page_config
|
5 |
-
|
6 |
-
from login_component import is_token_in_session
|
7 |
-
|
8 |
-
|
9 |
-
def get_page():
|
10 |
-
page_title = "Yahoo FF League Simulation"
|
11 |
-
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide")
|
12 |
-
common_page_config()
|
13 |
-
st.title(page_title)
|
14 |
-
|
15 |
-
if not is_token_in_session():
|
16 |
-
st.write(
|
17 |
-
"You must authorize the application to access your account in order to use this feature."
|
18 |
-
" Please click Login button above."
|
19 |
-
)
|
20 |
-
|
21 |
-
else:
|
22 |
-
st.write("Logged in. Feature to go here")
|
23 |
-
|
24 |
-
|
25 |
-
if __name__ == "__main__":
|
26 |
-
get_page()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/5_Targets.py
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
import datetime
|
2 |
-
import numpy as np
|
3 |
-
import streamlit as st
|
4 |
-
|
5 |
-
from config import DEFAULT_ICON
|
6 |
-
from shared_page import common_page_config
|
7 |
-
|
8 |
-
from queries.footballguys.constants import YEAR
|
9 |
-
from queries.footballguys.refresh import request_stat
|
10 |
-
from streamlit_filter import filter_dataframe
|
11 |
-
|
12 |
-
|
13 |
-
@st.cache_data(ttl=60 * 60 * 24)
|
14 |
-
def load_data():
|
15 |
-
stat_name = "targets"
|
16 |
-
data = request_stat(stat_name)
|
17 |
-
data_load_time_str = datetime.datetime.utcnow().strftime("%m/%d/%Y %I:%M %p")
|
18 |
-
return data, data_load_time_str
|
19 |
-
|
20 |
-
|
21 |
-
def get_page():
|
22 |
-
page_title = f"Player Targets - {YEAR}"
|
23 |
-
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide")
|
24 |
-
common_page_config()
|
25 |
-
st.title(page_title)
|
26 |
-
if st.button("Refresh Data"):
|
27 |
-
st.cache_data.clear()
|
28 |
-
data, data_load_time_str = load_data()
|
29 |
-
st.write(f"Data loaded as of: {data_load_time_str} UTC")
|
30 |
-
|
31 |
-
selected_subtotals = st.selectbox("Show:", ["Player Totals", "Position Totals"], index=0)
|
32 |
-
if selected_subtotals == "Player Totals":
|
33 |
-
data = data[~data.name.str.contains(" Totals")]
|
34 |
-
elif selected_subtotals == "Position Totals":
|
35 |
-
data = data[data.name.str.contains(" Totals")]
|
36 |
-
|
37 |
-
value_types = st.selectbox("Counts / Percent:", ["Counts", "Percent"], index=0)
|
38 |
-
if value_types == "Percent":
|
39 |
-
numerical_data = data.select_dtypes(include=np.number)
|
40 |
-
numerical_cols = numerical_data.columns
|
41 |
-
df_percent_values = numerical_data / data.groupby("TEAM").transform(sum).select_dtypes(include=np.number)
|
42 |
-
data.loc[:, numerical_cols] = df_percent_values
|
43 |
-
|
44 |
-
with st.container():
|
45 |
-
filtered_data = filter_dataframe(data)
|
46 |
-
st.dataframe(
|
47 |
-
filtered_data,
|
48 |
-
hide_index=True,
|
49 |
-
height=35 * (len(filtered_data) + 1) + 12,
|
50 |
-
use_container_width=False,
|
51 |
-
column_config={},
|
52 |
-
)
|
53 |
-
|
54 |
-
|
55 |
-
if __name__ == "__main__":
|
56 |
-
get_page()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/6_Redzone_Opportunities.py
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
import datetime
|
2 |
-
import numpy as np
|
3 |
-
import streamlit as st
|
4 |
-
|
5 |
-
from config import DEFAULT_ICON
|
6 |
-
from shared_page import common_page_config
|
7 |
-
|
8 |
-
from queries.footballguys.constants import YEAR
|
9 |
-
from queries.footballguys.refresh import request_stat
|
10 |
-
from streamlit_filter import filter_dataframe
|
11 |
-
|
12 |
-
|
13 |
-
@st.cache_data(ttl=60 * 60 * 24)
|
14 |
-
def load_data():
|
15 |
-
stat_name = "redzone"
|
16 |
-
data = request_stat(stat_name)
|
17 |
-
data_load_time_str = datetime.datetime.utcnow().strftime("%m/%d/%Y %I:%M %p")
|
18 |
-
return data, data_load_time_str
|
19 |
-
|
20 |
-
|
21 |
-
def get_page():
|
22 |
-
page_title = f"Player Redzone Opportunities - {YEAR}"
|
23 |
-
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide")
|
24 |
-
common_page_config()
|
25 |
-
st.title(page_title)
|
26 |
-
if st.button("Refresh Data"):
|
27 |
-
st.cache_data.clear()
|
28 |
-
data, data_load_time_str = load_data()
|
29 |
-
st.write(f"Data loaded as of: {data_load_time_str} UTC")
|
30 |
-
|
31 |
-
selected_subtotals = st.selectbox("Show:", ["Player Totals", "Position Totals"], index=0)
|
32 |
-
if selected_subtotals == "Player Totals":
|
33 |
-
data = data[~data.name.str.contains(" Totals")]
|
34 |
-
elif selected_subtotals == "Position Totals":
|
35 |
-
data = data[data.name.str.contains(" Totals")]
|
36 |
-
|
37 |
-
value_types = st.selectbox("Counts / Percent:", ["Counts", "Percent"], index=0)
|
38 |
-
if value_types == "Percent":
|
39 |
-
numerical_data = data.select_dtypes(include=np.number)
|
40 |
-
numerical_cols = numerical_data.columns
|
41 |
-
df_percent_values = numerical_data / data.groupby("TEAM").transform(sum).select_dtypes(include=np.number)
|
42 |
-
data.loc[:, numerical_cols] = df_percent_values
|
43 |
-
|
44 |
-
with st.container():
|
45 |
-
filtered_data = filter_dataframe(data)
|
46 |
-
st.dataframe(
|
47 |
-
filtered_data,
|
48 |
-
hide_index=True,
|
49 |
-
height=35 * (len(filtered_data) + 1) + 12,
|
50 |
-
use_container_width=False,
|
51 |
-
column_config={},
|
52 |
-
)
|
53 |
-
|
54 |
-
|
55 |
-
if __name__ == "__main__":
|
56 |
-
get_page()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/7_Snap_Counts.py
DELETED
@@ -1,69 +0,0 @@
|
|
1 |
-
import datetime
|
2 |
-
import streamlit as st
|
3 |
-
|
4 |
-
from config import DEFAULT_ICON
|
5 |
-
from shared_page import common_page_config
|
6 |
-
|
7 |
-
from queries.footballguys.constants import YEAR
|
8 |
-
from queries.nflverse.github_data import get_snap_counts, get_current_tables, SEASON
|
9 |
-
|
10 |
-
|
11 |
-
def load_data():
|
12 |
-
data = get_snap_counts(YEAR)
|
13 |
-
data = data[data.fantasy_position]
|
14 |
-
teams_list = sorted(data.team.unique())
|
15 |
-
position_list = data.position.unique()
|
16 |
-
weeks_list = sorted(data.week.unique())
|
17 |
-
data_load_time_str = datetime.datetime.utcnow().strftime("%m/%d/%Y %I:%M %p")
|
18 |
-
return data, teams_list, position_list, weeks_list, data_load_time_str
|
19 |
-
|
20 |
-
|
21 |
-
def get_page():
|
22 |
-
page_title = f"Snap Counts and Percentages - {YEAR}"
|
23 |
-
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide")
|
24 |
-
common_page_config()
|
25 |
-
st.title(page_title)
|
26 |
-
if f"snap_counts_snap_counts_{SEASON}" not in get_current_tables():
|
27 |
-
st.write("Data not loaded.")
|
28 |
-
st.write("Check loaded data [here](./Load_Data)")
|
29 |
-
return
|
30 |
-
data, teams_list, position_list, weeks_list, data_load_time_str = load_data()
|
31 |
-
st.write(f"Data loaded as of: {data_load_time_str} UTC")
|
32 |
-
teams_selected = st.multiselect("Team:", teams_list, placeholder="Select a team to filter") or teams_list
|
33 |
-
positions_selected = (
|
34 |
-
st.multiselect("Position:", position_list, placeholder="Select a position to filter") or position_list
|
35 |
-
)
|
36 |
-
weeks_selected = st.multiselect("Week:", weeks_list, placeholder="Select a week to filter") or weeks_list
|
37 |
-
|
38 |
-
with st.container():
|
39 |
-
filtered_data = data[
|
40 |
-
(data.team.isin(teams_selected) & data.position.isin(positions_selected) & data.week.isin(weeks_selected))
|
41 |
-
]
|
42 |
-
st.dataframe(
|
43 |
-
filtered_data,
|
44 |
-
hide_index=True,
|
45 |
-
# height=35 * (len(filtered_data) + 1) + 12,
|
46 |
-
use_container_width=False,
|
47 |
-
column_order=[
|
48 |
-
"season",
|
49 |
-
"game_type",
|
50 |
-
"week",
|
51 |
-
"player",
|
52 |
-
"position",
|
53 |
-
"team",
|
54 |
-
"opponent",
|
55 |
-
"offense_snaps",
|
56 |
-
"offense_pct",
|
57 |
-
"defense_snaps",
|
58 |
-
"defense_pct",
|
59 |
-
"st_snaps",
|
60 |
-
"st_pct",
|
61 |
-
],
|
62 |
-
column_config={
|
63 |
-
"season": st.column_config.TextColumn(help="Year of NFL Season"),
|
64 |
-
},
|
65 |
-
)
|
66 |
-
|
67 |
-
|
68 |
-
if __name__ == "__main__":
|
69 |
-
get_page()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/80_Maximum_Roster_Strategy.py
DELETED
@@ -1,165 +0,0 @@
|
|
1 |
-
import pandas as pd
|
2 |
-
import streamlit as st
|
3 |
-
import streamlit.components.v1 as components
|
4 |
-
|
5 |
-
|
6 |
-
from config import DEFAULT_ICON
|
7 |
-
from shared_page import common_page_config, get_local_style
|
8 |
-
from maximum_roster_strategy import data_loader
|
9 |
-
|
10 |
-
|
11 |
-
MINIMUM_WEEK = 6
|
12 |
-
MAXIMUM_WEEK = 7
|
13 |
-
|
14 |
-
MIN_TIER = 1
|
15 |
-
MAX_TIER = 4
|
16 |
-
|
17 |
-
POSITION_OPTIONS = ["RB", "WR", "TE", "QB"]
|
18 |
-
|
19 |
-
POSITION_ABBR_FULL_NAME_MAP = {
|
20 |
-
"RB": "Running Backs",
|
21 |
-
"WR": "Wide Receivers",
|
22 |
-
"TE": "Tight Ends",
|
23 |
-
"QB": "Quarterbacks (Superflex / 2QB Leagues Only)",
|
24 |
-
}
|
25 |
-
|
26 |
-
|
27 |
-
@st.cache_data(ttl=5 * 60)
|
28 |
-
def load_data():
|
29 |
-
return data_loader.get_google_sheet_data(), data_loader.get_timeslot_labels()
|
30 |
-
|
31 |
-
|
32 |
-
def get_player_grid_div(player_series: pd.Series) -> str:
|
33 |
-
player_notes = player_series["Hold Condition"]
|
34 |
-
if (outcome := player_series["Outcome"]) == "Drop":
|
35 |
-
player_class = "drop-player"
|
36 |
-
elif outcome == "Light Hold":
|
37 |
-
player_class = "light-hold-player"
|
38 |
-
elif outcome == "Hold":
|
39 |
-
player_class = "hold-player"
|
40 |
-
else:
|
41 |
-
player_class = "undetermined-player"
|
42 |
-
|
43 |
-
if isinstance(player_weekly_note := player_series["Article Notes"], str):
|
44 |
-
player_notes += "<br><br>" + player_weekly_note
|
45 |
-
return f"""
|
46 |
-
<details class="mrs-grid-player content">
|
47 |
-
<summary class="{player_class}">
|
48 |
-
{player_series["Formatted"]}
|
49 |
-
</summary>
|
50 |
-
<p>
|
51 |
-
{player_notes}
|
52 |
-
</p>
|
53 |
-
</details>
|
54 |
-
"""
|
55 |
-
|
56 |
-
|
57 |
-
def get_time_slot_div(time_slot_list: list[str]) -> str:
|
58 |
-
code_str = ""
|
59 |
-
for time_slot_idx, time_slot in enumerate(time_slot_list):
|
60 |
-
code_str += f"""<div class="timeslot{time_slot_idx + 1} timeslot">{time_slot}</div>\n"""
|
61 |
-
return code_str
|
62 |
-
|
63 |
-
|
64 |
-
def get_tier_div(tier_str: str | int, tier_num: str | int) -> str:
|
65 |
-
return f"""<div class="tier{tier_num} tier">Tier {tier_str}</div>"""
|
66 |
-
|
67 |
-
|
68 |
-
def get_player_container(df_players: pd.DataFrame, slot_number: int | str) -> str:
|
69 |
-
if len(df_players) == 0:
|
70 |
-
player_code_str = "<br>"
|
71 |
-
else:
|
72 |
-
player_code_str = "\n".join(df_players.apply(get_player_grid_div, axis=1).tolist())
|
73 |
-
return f"""<div class="playerslot{slot_number} playerslot">{player_code_str}</div>"""
|
74 |
-
|
75 |
-
|
76 |
-
def get_position_breakdown(df: pd.DataFrame, position_abbr: str, position_full_str: str, time_slots: list[str]):
|
77 |
-
with st.container():
|
78 |
-
st.header(position_full_str)
|
79 |
-
df_pos = df[df["Position"] == position_abbr]
|
80 |
-
|
81 |
-
grid_code_str = ""
|
82 |
-
grid_code_str += get_time_slot_div(time_slots)
|
83 |
-
|
84 |
-
tier_list = list(range(MIN_TIER, MAX_TIER + 1))
|
85 |
-
slot_number = 0
|
86 |
-
for tier_idx, tier in enumerate(tier_list):
|
87 |
-
grid_code_str += get_tier_div(tier, tier_idx + 1)
|
88 |
-
for time_slot in time_slots:
|
89 |
-
df_tier_slot = df_pos[(df_pos["TimeSlotName"] == time_slot) & (df_pos["Tier"] == tier)]
|
90 |
-
slot_number += 1
|
91 |
-
grid_code_str += get_player_container(df_tier_slot, slot_number)
|
92 |
-
|
93 |
-
components.html(
|
94 |
-
f"""
|
95 |
-
{get_local_style()}
|
96 |
-
<div class="grid-container-{len(time_slots)}">
|
97 |
-
{grid_code_str}
|
98 |
-
</div>
|
99 |
-
<br>
|
100 |
-
<div class="grid-legend">Colors Legend:
|
101 |
-
<div class="drop-player">Drop Player</div> |
|
102 |
-
<div class="light-hold-player">Light Hold Player</div> |
|
103 |
-
<div class="hold-player">Strong Hold Player</div>
|
104 |
-
</div>
|
105 |
-
""",
|
106 |
-
height=1000,
|
107 |
-
scrolling=True,
|
108 |
-
)
|
109 |
-
|
110 |
-
|
111 |
-
def get_page():
|
112 |
-
page_title = "Maximum Roster Strategy"
|
113 |
-
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide")
|
114 |
-
common_page_config()
|
115 |
-
st.title(page_title)
|
116 |
-
|
117 |
-
with st.expander(label="Instructions"):
|
118 |
-
st.write(
|
119 |
-
"""
|
120 |
-
To get started with MRS: https://solowfantasyfootball.wordpress.com/2023/09/07/maximum-roster-strategy-explained/
|
121 |
-
|
122 |
-
Players are organized by game time slot, position, and tier.
|
123 |
-
|
124 |
-
Pick up a player during their game's time slot for potential upside if particular circumstances are met.
|
125 |
-
|
126 |
-
After the game, players will be colored by outcome: Drop (Red), Light Hold (Yellow), or Strong Hold (Green)."""
|
127 |
-
)
|
128 |
-
col_select, week_select = st.columns(2, gap="small")
|
129 |
-
url_params = st.experimental_get_query_params()
|
130 |
-
initial_position_index = 0
|
131 |
-
if url_position := url_params.get("position"):
|
132 |
-
selected_position = url_position[0]
|
133 |
-
if selected_position in POSITION_OPTIONS:
|
134 |
-
initial_position_index = POSITION_OPTIONS.index(selected_position)
|
135 |
-
|
136 |
-
week_options = list(range(MAXIMUM_WEEK, MINIMUM_WEEK - 1, -1))
|
137 |
-
initial_week_index = 0
|
138 |
-
if url_week := url_params.get("week"):
|
139 |
-
try:
|
140 |
-
selected_week = int(url_week[0])
|
141 |
-
except Exception:
|
142 |
-
st.warning("Week parameter must be integer value", icon="⚠️")
|
143 |
-
selected_week = MAXIMUM_WEEK
|
144 |
-
if selected_week in week_options:
|
145 |
-
initial_week_index = week_options.index(selected_week)
|
146 |
-
|
147 |
-
with col_select:
|
148 |
-
position = st.selectbox(label="Position", options=POSITION_OPTIONS, index=initial_position_index)
|
149 |
-
with week_select:
|
150 |
-
week = st.selectbox(label="Week", options=week_options, index=initial_week_index)
|
151 |
-
url_params.update({"position": position, "week": week})
|
152 |
-
st.experimental_set_query_params(**url_params)
|
153 |
-
if st.experimental_get_query_params().get("refresh"):
|
154 |
-
st.cache_data.clear()
|
155 |
-
df_mrs, all_time_slots_df = load_data()
|
156 |
-
df_mrs = df_mrs[df_mrs["Week"] == week]
|
157 |
-
current_week_timeslots = (
|
158 |
-
all_time_slots_df[all_time_slots_df["Week"] == week].sort_values("WeekTimeSlotIndex").TimeSlotName.tolist()
|
159 |
-
)
|
160 |
-
|
161 |
-
get_position_breakdown(df_mrs, position, POSITION_ABBR_FULL_NAME_MAP[position], current_week_timeslots)
|
162 |
-
|
163 |
-
|
164 |
-
if __name__ == "__main__":
|
165 |
-
get_page()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/8_FTN_Charting.py
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
import datetime
|
2 |
-
import streamlit as st
|
3 |
-
|
4 |
-
from config import DEFAULT_ICON
|
5 |
-
from shared_page import common_page_config
|
6 |
-
|
7 |
-
from queries.footballguys.constants import YEAR
|
8 |
-
from queries.nflverse.github_data import get_ftn_charting, get_current_tables, SEASON
|
9 |
-
|
10 |
-
|
11 |
-
def load_data():
|
12 |
-
data = get_ftn_charting(YEAR)
|
13 |
-
data_load_time_str = datetime.datetime.utcnow().strftime("%m/%d/%Y %I:%M %p")
|
14 |
-
return data, data_load_time_str
|
15 |
-
|
16 |
-
|
17 |
-
def get_page():
|
18 |
-
page_title = f"FTN Charting - {YEAR}"
|
19 |
-
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide")
|
20 |
-
common_page_config()
|
21 |
-
st.title(page_title)
|
22 |
-
if f"ftn_charting_ftn_charting_{SEASON}" not in get_current_tables():
|
23 |
-
st.write("Data not loaded.")
|
24 |
-
st.write("Check loaded data [here](./Load_Data)")
|
25 |
-
return
|
26 |
-
data, data_load_time_str = load_data()
|
27 |
-
st.write(f"Data loaded as of: {data_load_time_str} UTC")
|
28 |
-
|
29 |
-
with st.container():
|
30 |
-
filtered_data = data
|
31 |
-
st.dataframe(
|
32 |
-
filtered_data,
|
33 |
-
hide_index=True,
|
34 |
-
# height=35 * (len(filtered_data) + 1) + 12,
|
35 |
-
use_container_width=False,
|
36 |
-
)
|
37 |
-
|
38 |
-
|
39 |
-
if __name__ == "__main__":
|
40 |
-
get_page()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/99_Keeper_Rules.py
DELETED
@@ -1,37 +0,0 @@
|
|
1 |
-
import streamlit as st
|
2 |
-
|
3 |
-
from config import DEFAULT_ICON, LEAGUE_NAME
|
4 |
-
from shared_page import common_page_config
|
5 |
-
|
6 |
-
|
7 |
-
page_title = f"{LEAGUE_NAME} Keeper Rules"
|
8 |
-
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON)
|
9 |
-
common_page_config()
|
10 |
-
st.title(page_title)
|
11 |
-
st.markdown(
|
12 |
-
"""
|
13 |
-
***Note: First LOFG keeper season was 2019***
|
14 |
-
|
15 |
-
1. Teams can keep up to 3 players from the prior season.
|
16 |
-
- Note: changed from 2 to 3 beginning with 2022 season
|
17 |
-
2. Players are kept at the expense of a draft pick.
|
18 |
-
- The round of that draft pick will depend on when the player was drafted in the prior season.
|
19 |
-
3. Players drafted in the 1st round of the prior season will not be eligible to keep.
|
20 |
-
4. Players drafted in rounds 2 and after can be kept at the expense of one higher round
|
21 |
-
- Ex: player drafted in round 2 can be kept for your 1st round pick.
|
22 |
-
5. Players who were not drafted and were picked up during the season can be kept for 10th round picks (FA Keeper cost)
|
23 |
-
- Changed beginning 2022 from 9th round
|
24 |
-
6. Post-Draft Acquired Keeper cost Minimum -
|
25 |
-
- Players drafted by other teams have a keeper cost of minimum of round player drafted and FA Keeper Cost.
|
26 |
-
- This rewards people who drafted the players, versus those who picked them up off waivers.
|
27 |
-
7. If you select 2 players with the same keeper cost, one of the players would count as one round higher.
|
28 |
-
- Ex: Two players both have keeper cost of 10th round.
|
29 |
-
- One of those players would instead be counted as your 9th round pick if both are kept.
|
30 |
-
8. Players can not be kept for more than 2 consecutive seasons
|
31 |
-
- Ex: player drafted in 2019 in 6th round, 2020 for 5th round, and 2021 for 4th round - can't be kept in 2022
|
32 |
-
- Exception to the above rule is that players originally drafted in 2nd round can only be kept for one season.
|
33 |
-
9. Players traded in a season are not subject to the FA Keeper cost minimum cost
|
34 |
-
In other words, keeper rights transfer with the trade
|
35 |
-
|
36 |
-
"""
|
37 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/pages/9_Team_Formations.py
DELETED
@@ -1,83 +0,0 @@
|
|
1 |
-
import datetime
|
2 |
-
import pandas as pd
|
3 |
-
import streamlit as st
|
4 |
-
|
5 |
-
from config import DEFAULT_ICON
|
6 |
-
from shared_page import common_page_config
|
7 |
-
|
8 |
-
from queries.footballguys.constants import YEAR
|
9 |
-
from queries.nflverse.github_data import get_pbp_participation, get_current_tables, SEASON
|
10 |
-
|
11 |
-
|
12 |
-
def load_data():
|
13 |
-
data = get_pbp_participation(YEAR)
|
14 |
-
teams_list = sorted(filter(None, data.possession_team.unique()))
|
15 |
-
# position_list = data.position.unique()
|
16 |
-
# weeks_list = sorted(data.week.unique())
|
17 |
-
data_load_time_str = datetime.datetime.utcnow().strftime("%m/%d/%Y %I:%M %p")
|
18 |
-
return data, teams_list, data_load_time_str
|
19 |
-
|
20 |
-
|
21 |
-
def get_page():
|
22 |
-
page_title = f"Team Formations - {YEAR}"
|
23 |
-
st.set_page_config(page_title=page_title, page_icon=DEFAULT_ICON, layout="wide")
|
24 |
-
common_page_config()
|
25 |
-
st.title(page_title)
|
26 |
-
if f"ftn_charting_ftn_charting_{SEASON}" not in get_current_tables():
|
27 |
-
st.write("Data not loaded.")
|
28 |
-
st.write("Check loaded data [here](./Load_Data)")
|
29 |
-
return
|
30 |
-
data, teams_list, data_load_time_str = load_data()
|
31 |
-
st.write(f"Data loaded as of: {data_load_time_str} UTC")
|
32 |
-
default_groups = [
|
33 |
-
"down",
|
34 |
-
"play_type",
|
35 |
-
"offense_personnel",
|
36 |
-
]
|
37 |
-
group_options = [
|
38 |
-
"week",
|
39 |
-
"down",
|
40 |
-
"qtr",
|
41 |
-
"ydstogo",
|
42 |
-
"play_type",
|
43 |
-
"pass_length",
|
44 |
-
"pass_location",
|
45 |
-
"possession_team",
|
46 |
-
"offense_formation",
|
47 |
-
"offense_personnel",
|
48 |
-
"number_of_pass_rushers",
|
49 |
-
"defenders_in_box",
|
50 |
-
"defense_personnel",
|
51 |
-
]
|
52 |
-
group_by_selected = st.multiselect("Group by:", group_options) or default_groups
|
53 |
-
team_selected = st.selectbox("Team:", teams_list)
|
54 |
-
week_selection = st.slider(
|
55 |
-
"Filter Week Range:",
|
56 |
-
min_value=data["week"].min(),
|
57 |
-
max_value=data["week"].max(),
|
58 |
-
value=(data["week"].min(), data["week"].max()),
|
59 |
-
step=1,
|
60 |
-
)
|
61 |
-
|
62 |
-
with st.container():
|
63 |
-
filtered_data = data[
|
64 |
-
(data.possession_team == team_selected)
|
65 |
-
& (data.play_type.isin(["pass", "run"]))
|
66 |
-
& (data["week"].between(*week_selection))
|
67 |
-
]
|
68 |
-
|
69 |
-
st.dataframe(
|
70 |
-
pd.pivot_table(
|
71 |
-
filtered_data,
|
72 |
-
values="count_col",
|
73 |
-
index=group_by_selected,
|
74 |
-
columns="week",
|
75 |
-
aggfunc={"count_col": "sum"},
|
76 |
-
# margins=True,
|
77 |
-
),
|
78 |
-
use_container_width=False,
|
79 |
-
)
|
80 |
-
|
81 |
-
|
82 |
-
if __name__ == "__main__":
|
83 |
-
get_page()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/queries/footballguys/__init__.py
DELETED
File without changes
|
src/queries/footballguys/constants.py
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
from typing import List, Mapping
|
2 |
-
|
3 |
-
# constants relevant to parsing from footballguys
|
4 |
-
|
5 |
-
SNAP_PAGE_POSITON_ORDER: List[str] = [
|
6 |
-
"QB",
|
7 |
-
"RB",
|
8 |
-
"WR",
|
9 |
-
"TE",
|
10 |
-
"DT",
|
11 |
-
"DE",
|
12 |
-
"ILB",
|
13 |
-
"OLB",
|
14 |
-
"CB",
|
15 |
-
"S",
|
16 |
-
]
|
17 |
-
|
18 |
-
POSITIONS_TO_OFFENSE_DEFENSE: Mapping[str, str] = {
|
19 |
-
"QB": "OFF",
|
20 |
-
"RB": "OFF",
|
21 |
-
"WR": "OFF",
|
22 |
-
"TE": "OFF",
|
23 |
-
"DT": "DEF",
|
24 |
-
"DE": "DEF",
|
25 |
-
"ILB": "DEF",
|
26 |
-
"OLB": "DEF",
|
27 |
-
"S": "DEF",
|
28 |
-
"CB": "DEF",
|
29 |
-
}
|
30 |
-
|
31 |
-
|
32 |
-
BASE_URL = "https://www.footballguys.com/stats"
|
33 |
-
|
34 |
-
YEAR = 2023
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/queries/footballguys/helpers.py
DELETED
@@ -1,130 +0,0 @@
|
|
1 |
-
from io import StringIO
|
2 |
-
import lxml.html
|
3 |
-
import pandas as pd
|
4 |
-
import requests
|
5 |
-
from typing import List
|
6 |
-
from queries.footballguys import constants as fbgc
|
7 |
-
|
8 |
-
|
9 |
-
def url_to_pandas(url) -> List[pd.DataFrame]:
|
10 |
-
page = requests.get(url)
|
11 |
-
table = pd.read_html(StringIO(page.text.replace("<br>", "-")))
|
12 |
-
return table
|
13 |
-
|
14 |
-
|
15 |
-
def create_html_table_from_header_body(header_html_str: str, body_html_str: str):
|
16 |
-
return f"""
|
17 |
-
<table>
|
18 |
-
{header_html_str}
|
19 |
-
{body_html_str}
|
20 |
-
</table>
|
21 |
-
"""
|
22 |
-
|
23 |
-
|
24 |
-
def extract_snaps_to_pandas(url: str):
|
25 |
-
root = lxml.html.document_fromstring(requests.get(url).text)
|
26 |
-
table_element_list = root.xpath("""//*[@id="stats_snapcounts_data"]/div/table""")
|
27 |
-
assert isinstance(table_element_list, list)
|
28 |
-
table_element = table_element_list[0]
|
29 |
-
assert isinstance(table_element, lxml.html.HtmlElement)
|
30 |
-
table_child_list = table_element.getchildren()
|
31 |
-
assert len(table_child_list) % 2 == 0 # check is even
|
32 |
-
half_len = int(len(table_child_list) / 2)
|
33 |
-
df_list = []
|
34 |
-
for i in range(half_len):
|
35 |
-
table_html = create_html_table_from_header_body(
|
36 |
-
lxml.html.tostring(table_child_list[2 * i]), lxml.html.tostring(table_child_list[2 * i + 1])
|
37 |
-
).replace("\\n", "")
|
38 |
-
df = pd.read_html(table_html)[0]
|
39 |
-
# First column contains name and is initially labeled as each position, example "Quarterback"
|
40 |
-
# Insert column at front called POS and fill with current first column label
|
41 |
-
position_name = df.columns[0]
|
42 |
-
df.insert(0, "POS", position_name)
|
43 |
-
df.rename(columns={position_name: "name"}, inplace=True)
|
44 |
-
df_list.append(df)
|
45 |
-
return df_list
|
46 |
-
|
47 |
-
|
48 |
-
def add_snap_off_def_column(team_snap_df: pd.DataFrame):
|
49 |
-
off_def = team_snap_df["POS"].apply(lambda x: fbgc.POSITIONS_TO_OFFENSE_DEFENSE[x])
|
50 |
-
team_snap_df.insert(0, "OFF/DEF", off_def)
|
51 |
-
|
52 |
-
|
53 |
-
def add_snap_position_column(
|
54 |
-
team_snap_df_list: List[pd.DataFrame],
|
55 |
-
position_name_array: List[str] = fbgc.SNAP_PAGE_POSITON_ORDER,
|
56 |
-
):
|
57 |
-
# blank player names between positions, so we can use cumsum
|
58 |
-
# 8/22/23 - We are currently failing here because snap counts are incorrectly not split by position atm
|
59 |
-
assert len(team_snap_df_list) == len(position_name_array)
|
60 |
-
for pos_idx, pos_df in enumerate(team_snap_df_list):
|
61 |
-
pos_df.insert(0, "POS", position_name_array[pos_idx])
|
62 |
-
|
63 |
-
|
64 |
-
def set_multilevel_columns(df):
|
65 |
-
new_cols = [tuple(x.split("-")) if "-" in x else (x, x) for x in df.columns]
|
66 |
-
df.columns = pd.MultiIndex.from_tuples(new_cols)
|
67 |
-
|
68 |
-
|
69 |
-
def parse_snaps(team_short_name: str, base_url: str = fbgc.BASE_URL, year: int = fbgc.YEAR) -> pd.DataFrame:
|
70 |
-
print(f"Attempting to parse snaps for {team_short_name}")
|
71 |
-
team_snap_df_list = parse_team_page(team_short_name, base_url, "snap-counts", year)
|
72 |
-
team_snap_df = pd.concat(team_snap_df_list)
|
73 |
-
# add_snap_off_def_column(team_snap_df)
|
74 |
-
split_snap_count_percents(team_snap_df)
|
75 |
-
team_snap_df.dropna(subset=["name"], inplace=True)
|
76 |
-
# set_multilevel_columns(team_snap_df)
|
77 |
-
return team_snap_df
|
78 |
-
|
79 |
-
|
80 |
-
def add_targets_position(team_df: pd.DataFrame):
|
81 |
-
# fill blanks up by reversing index, fill down, and re-reversing
|
82 |
-
positions = team_df.name.apply(lambda x: x.replace(" Totals", "") if " Totals" in x else None)[::-1].ffill()[::-1]
|
83 |
-
team_df.insert(0, "POS", positions)
|
84 |
-
|
85 |
-
|
86 |
-
def parse_targets(team_short_name: str, base_url: str = fbgc.BASE_URL, year: int = fbgc.YEAR) -> pd.DataFrame:
|
87 |
-
# snaps are index 2
|
88 |
-
print(f"Attempting to parse targets for {team_short_name}")
|
89 |
-
team_df = parse_team_page(team_short_name, base_url, "targets", year)[0]
|
90 |
-
add_targets_position(team_df)
|
91 |
-
return team_df[team_df.name.notna()]
|
92 |
-
|
93 |
-
|
94 |
-
def parse_redzone(team_short_name: str, base_url: str = fbgc.BASE_URL, year: int = fbgc.YEAR) -> pd.DataFrame:
|
95 |
-
# snaps are index 3
|
96 |
-
print(f"Attempting to parse redzone for {team_short_name}")
|
97 |
-
team_df = parse_team_page(team_short_name, base_url, "redzone", year)[0]
|
98 |
-
add_targets_position(team_df)
|
99 |
-
return team_df[team_df.name.notna()]
|
100 |
-
|
101 |
-
|
102 |
-
def split_snap_count_percents(team_snap_df: pd.DataFrame):
|
103 |
-
for week in range(1, 18):
|
104 |
-
if f"Wk {week}" not in team_snap_df.columns:
|
105 |
-
continue
|
106 |
-
# if values are all NaN column will be dtype float 64 and should skip
|
107 |
-
if team_snap_df[f"Wk {week}"].dtype == float:
|
108 |
-
team_snap_df[f"{week}-count"] = 0
|
109 |
-
team_snap_df[f"{week}-%"] = 0.0
|
110 |
-
else:
|
111 |
-
week_split = team_snap_df[f"Wk {week}"].astype(str).str.split("-")
|
112 |
-
week_count = week_split.apply(lambda x: 0 if len(x) == 1 or x[0] == "" else int(x[0]))
|
113 |
-
week_pct = week_split.apply(lambda x: 0.0 if len(x) == 1 else float(x[1].strip("%")) / 100.0)
|
114 |
-
team_snap_df[f"{week}-count"] = week_count
|
115 |
-
team_snap_df[f"{week}-%"] = week_pct
|
116 |
-
team_snap_df.drop(columns=f"Wk {week}", inplace=True)
|
117 |
-
|
118 |
-
|
119 |
-
def parse_team_page(
|
120 |
-
team_short_name: str,
|
121 |
-
base_url: str,
|
122 |
-
stat_name: str,
|
123 |
-
year: int,
|
124 |
-
) -> List[pd.DataFrame]:
|
125 |
-
url = f"{base_url}/{stat_name}/teams?team={team_short_name}&year={year}"
|
126 |
-
if stat_name == "snap-counts":
|
127 |
-
all_tables = extract_snaps_to_pandas(url)
|
128 |
-
else:
|
129 |
-
all_tables = url_to_pandas(url)
|
130 |
-
return all_tables
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/queries/footballguys/refresh.py
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
from domain.teams import NFLTeam, ALL_TEAMS
|
2 |
-
from queries.footballguys.helpers import parse_snaps, parse_targets, parse_redzone
|
3 |
-
from typing import List, Callable, Optional
|
4 |
-
import pandas as pd
|
5 |
-
|
6 |
-
|
7 |
-
def add_team_name_columns(team_df: pd.DataFrame, team_short_name: str, team_name: str):
|
8 |
-
team_df.insert(0, "TEAM", team_short_name)
|
9 |
-
team_df.insert(1, "TEAM_NAME", team_name)
|
10 |
-
|
11 |
-
|
12 |
-
def apply_intended_column_sorting(df: pd.DataFrame, first_columns: List[str]) -> pd.DataFrame:
|
13 |
-
first_columns_in_df = [col for col in first_columns if col in df.columns]
|
14 |
-
remaining_columns = [col for col in df.columns if col not in first_columns_in_df]
|
15 |
-
return df[first_columns_in_df + remaining_columns]
|
16 |
-
|
17 |
-
|
18 |
-
def get_all_teams_stat_type(
|
19 |
-
all_teams_list: List[NFLTeam],
|
20 |
-
parsing_function: Callable,
|
21 |
-
store_key: str,
|
22 |
-
intended_first_columns: Optional[List[str]] = None,
|
23 |
-
):
|
24 |
-
team_df_list = []
|
25 |
-
for team in all_teams_list:
|
26 |
-
team_df = parsing_function(team.footballguys_short_name)
|
27 |
-
add_team_name_columns(team_df, team.team_short_name, team.team_name)
|
28 |
-
team_df_list.append(team_df)
|
29 |
-
df = pd.concat(team_df_list)
|
30 |
-
if intended_first_columns:
|
31 |
-
df = apply_intended_column_sorting(df, intended_first_columns)
|
32 |
-
print(f"footballguy {store_key} loaded")
|
33 |
-
return df
|
34 |
-
|
35 |
-
|
36 |
-
def request_stat(stat_name: str) -> pd.DataFrame:
|
37 |
-
intended_col_sort = None
|
38 |
-
if stat_name == "targets":
|
39 |
-
parse_fxn = parse_targets
|
40 |
-
intended_col_sort = ["TEAM", "TEAM_NAME", "POS", "name", "total"]
|
41 |
-
elif stat_name == "snap-counts":
|
42 |
-
parse_fxn = parse_snaps
|
43 |
-
elif stat_name == "redzone":
|
44 |
-
parse_fxn = parse_redzone
|
45 |
-
intended_col_sort = ["TEAM", "TEAM_NAME", "POS", "name", "total"]
|
46 |
-
return get_all_teams_stat_type(ALL_TEAMS, parse_fxn, stat_name, intended_col_sort)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/queries/nbcsports/player_news.py
DELETED
@@ -1,52 +0,0 @@
|
|
1 |
-
from bs4 import BeautifulSoup
|
2 |
-
import datetime
|
3 |
-
import pandas as pd
|
4 |
-
import requests
|
5 |
-
from typing import Mapping
|
6 |
-
|
7 |
-
NEWS_URL = "https://www.nbcsports.com/fantasy/football/player-news"
|
8 |
-
|
9 |
-
|
10 |
-
def find_soup_text_with_default(soup, element: str, find_search_map: Mapping[str, str]):
|
11 |
-
find_result = soup.find(element, find_search_map)
|
12 |
-
if not find_result:
|
13 |
-
return ""
|
14 |
-
return find_result.text.strip()
|
15 |
-
|
16 |
-
|
17 |
-
def parse_player_div(player_div):
|
18 |
-
return {
|
19 |
-
"Date/Time": player_div.find("div", {"class": "PlayerNewsPost-date"}).get("data-date"),
|
20 |
-
"Name": find_soup_text_with_default(player_div, "div", {"class": "PlayerNewsPost-name"}),
|
21 |
-
"Team": find_soup_text_with_default(player_div, "span", {"class": "PlayerNewsPost-team-abbr"}).upper(),
|
22 |
-
"Position": find_soup_text_with_default(player_div, "span", {"class": "PlayerNewsPost-position"}).title(),
|
23 |
-
"Headline": find_soup_text_with_default(player_div, "div", {"class": "PlayerNewsPost-headline"}),
|
24 |
-
"Analysis": find_soup_text_with_default(player_div, "div", {"class": "PlayerNewsPost-analysis"}),
|
25 |
-
}
|
26 |
-
|
27 |
-
|
28 |
-
def get_nfl_player_news(page_number: int = 1) -> pd.DataFrame:
|
29 |
-
url = f"{NEWS_URL}?p={page_number}"
|
30 |
-
request_page = requests.get(url)
|
31 |
-
soup = BeautifulSoup(request_page.content)
|
32 |
-
player_div_list = soup.find_all("div", {"class": "PlayerNewsPost"})
|
33 |
-
if not player_div_list:
|
34 |
-
return pd.DataFrame()
|
35 |
-
parsed_player_list = [parse_player_div(d) for d in player_div_list]
|
36 |
-
df = pd.DataFrame(parsed_player_list)
|
37 |
-
df["Date/Time"] = pd.to_datetime(df["Date/Time"])
|
38 |
-
return df
|
39 |
-
|
40 |
-
|
41 |
-
def get_player_news_window_hours(hours: int = 1):
|
42 |
-
end_date = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(hours=hours)
|
43 |
-
page = 1
|
44 |
-
max_pages = 20
|
45 |
-
date_reached = False
|
46 |
-
df_list = []
|
47 |
-
while page < max_pages and not date_reached:
|
48 |
-
last_news = get_nfl_player_news(page)
|
49 |
-
df_list.append(last_news)
|
50 |
-
date_reached = min(last_news["Date/Time"]) < end_date
|
51 |
-
page += 1
|
52 |
-
return pd.concat(df_list)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/queries/nfl_teams/__init__.py
DELETED
File without changes
|
src/queries/nfl_teams/practice_reports.py
DELETED
@@ -1,123 +0,0 @@
|
|
1 |
-
from bs4 import BeautifulSoup
|
2 |
-
import datetime
|
3 |
-
from multiprocessing import Pool
|
4 |
-
import numpy as np
|
5 |
-
import pandas as pd
|
6 |
-
from pydantic import BaseModel, Field
|
7 |
-
import requests
|
8 |
-
from typing import Optional
|
9 |
-
from urllib.parse import urljoin
|
10 |
-
|
11 |
-
from domain.teams import ALL_TEAMS, NFLTeam
|
12 |
-
|
13 |
-
|
14 |
-
MULTIPROCESSING_ENABLED = False
|
15 |
-
|
16 |
-
PRACTICE_WEEK = {
|
17 |
-
"Mon": 0,
|
18 |
-
"Tue": 1,
|
19 |
-
"Wed": 2,
|
20 |
-
"Thu": 3,
|
21 |
-
"Fri": 4,
|
22 |
-
"Sat": 5,
|
23 |
-
"Sun": 6,
|
24 |
-
"Monday": 0,
|
25 |
-
"Tuesday": 1,
|
26 |
-
"Wednesday": 2,
|
27 |
-
"Thursday": 3,
|
28 |
-
"Friday": 4,
|
29 |
-
"Saturday": 5,
|
30 |
-
"Sunday": 6,
|
31 |
-
}
|
32 |
-
|
33 |
-
|
34 |
-
DAY_OF_WEEK_STRING_MAPPING = {
|
35 |
-
"Monday": "Mon",
|
36 |
-
"Tuesday": "Tue",
|
37 |
-
"Wednesday": "Wed",
|
38 |
-
"Thursday": "Thu",
|
39 |
-
"Friday": "Fri",
|
40 |
-
"Saturday": "Sat",
|
41 |
-
"Sunday": "Sun",
|
42 |
-
}
|
43 |
-
|
44 |
-
|
45 |
-
WEEK_1_BEGIN_DATE = datetime.datetime(2023, 9, 4)
|
46 |
-
CURRENT_DATE = datetime.datetime.now()
|
47 |
-
CURRENT_WEEK = max(1, int(1 + (CURRENT_DATE - WEEK_1_BEGIN_DATE).days / 7))
|
48 |
-
CURRENT_SEASON = 2023
|
49 |
-
|
50 |
-
|
51 |
-
class PracticeReportRawRow(BaseModel):
|
52 |
-
Team: str
|
53 |
-
Player: str
|
54 |
-
Position: str
|
55 |
-
Injury: str
|
56 |
-
Sun: Optional[str] = None
|
57 |
-
Mon: Optional[str] = None
|
58 |
-
Tue: Optional[str] = None
|
59 |
-
Wed: Optional[str] = None
|
60 |
-
Thu: Optional[str] = None
|
61 |
-
Fri: Optional[str] = None
|
62 |
-
Sat: Optional[str] = None
|
63 |
-
game_status: str = Field(alias="Game Status")
|
64 |
-
|
65 |
-
@classmethod
|
66 |
-
def replace_nan(self, value) -> str:
|
67 |
-
if isinstance(value, float):
|
68 |
-
if np.isnan(value):
|
69 |
-
return ""
|
70 |
-
return value
|
71 |
-
|
72 |
-
@classmethod
|
73 |
-
def from_raw(cls, input_dict) -> "PracticeReportRawRow":
|
74 |
-
return cls(**{DAY_OF_WEEK_STRING_MAPPING.get(k, k): cls.replace_nan(v) for k, v in input_dict.items()})
|
75 |
-
|
76 |
-
|
77 |
-
def get_injury_report_dataframe(team: NFLTeam):
|
78 |
-
injury_report_url = urljoin(team.injury_report_url, f"week/REG-{CURRENT_WEEK}")
|
79 |
-
report_request = requests.get(injury_report_url)
|
80 |
-
report_soup = BeautifulSoup(report_request.content)
|
81 |
-
team_names_spans = report_soup.find_all("span", {"class": "nfl-o-injury-report__club-name"})
|
82 |
-
assert team_names_spans
|
83 |
-
team_names_str = [x.get_text() for x in team_names_spans]
|
84 |
-
assert team_names_str[0] == team.team_full_name
|
85 |
-
tables = report_soup.find_all("table")
|
86 |
-
df_report = pd.read_html(str(tables))[0]
|
87 |
-
return df_report
|
88 |
-
|
89 |
-
|
90 |
-
def scrape_team_injury_report(team: NFLTeam) -> pd.DataFrame:
|
91 |
-
print(f"Scraping Injury Report for: {team.team_full_name}")
|
92 |
-
try:
|
93 |
-
team_report = get_injury_report_dataframe(team)
|
94 |
-
except Exception:
|
95 |
-
print(f"Failed to scrape practice report for: {team.team_full_name}")
|
96 |
-
return pd.DataFrame()
|
97 |
-
validated_row_list = []
|
98 |
-
for df_row_dict in team_report.to_dict("records"):
|
99 |
-
row_to_add = df_row_dict
|
100 |
-
row_to_add["Team"] = team.team_full_name
|
101 |
-
validated_row_list.append(PracticeReportRawRow.from_raw(row_to_add))
|
102 |
-
validated_df = pd.DataFrame([x.dict() for x in validated_row_list])
|
103 |
-
# drop all na columns
|
104 |
-
validated_df.dropna(axis=1, how="all", inplace=True)
|
105 |
-
# replace day of week with practice day from 1-3
|
106 |
-
day_idx = 1
|
107 |
-
last_practice_day = None
|
108 |
-
for col in validated_df.columns:
|
109 |
-
if col in PRACTICE_WEEK:
|
110 |
-
validated_df.rename(columns={col: str(day_idx)}, inplace=True)
|
111 |
-
day_idx += 1
|
112 |
-
last_practice_day = col
|
113 |
-
validated_df["Last Practice Day"] = last_practice_day
|
114 |
-
return validated_df
|
115 |
-
|
116 |
-
|
117 |
-
def scrape_all_team_injury_report() -> pd.DataFrame:
|
118 |
-
if MULTIPROCESSING_ENABLED:
|
119 |
-
with Pool() as pool:
|
120 |
-
team_df_list = pool.map(scrape_team_injury_report, ALL_TEAMS)
|
121 |
-
else:
|
122 |
-
team_df_list = [scrape_team_injury_report(team) for team in ALL_TEAMS]
|
123 |
-
return pd.concat(team_df_list)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/shared_page.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
import os
|
2 |
import streamlit as st
|
3 |
|
4 |
-
|
5 |
from login_component import get_authorization_button
|
6 |
|
7 |
|
@@ -19,4 +19,3 @@ def local_css():
|
|
19 |
def common_page_config():
|
20 |
local_css()
|
21 |
get_authorization_button()
|
22 |
-
remove_seasonal_pages()
|
|
|
1 |
import os
|
2 |
import streamlit as st
|
3 |
|
4 |
+
|
5 |
from login_component import get_authorization_button
|
6 |
|
7 |
|
|
|
19 |
def common_page_config():
|
20 |
local_css()
|
21 |
get_authorization_button()
|
|
tests/contract/test_nbcsports_player_news.py
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
import pytest
|
2 |
-
|
3 |
-
from queries.nbcsports import player_news
|
4 |
-
|
5 |
-
|
6 |
-
@pytest.mark.parametrize("page_number", [(1), (2)])
|
7 |
-
def test_get_nfl_player_news(page_number: int):
|
8 |
-
_ = player_news.get_nfl_player_news(page_number)
|
9 |
-
|
10 |
-
|
11 |
-
@pytest.mark.parametrize("hours", [(1), (10)])
|
12 |
-
def test_get_player_news_window_hours(hours: int):
|
13 |
-
_ = player_news.get_player_news_window_hours(hours)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tests/contract/test_nfl_teams_practice_reports.py
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
import pytest
|
2 |
-
|
3 |
-
from domain import teams
|
4 |
-
from queries.nfl_teams import practice_reports
|
5 |
-
|
6 |
-
|
7 |
-
@pytest.mark.parametrize("team", [(x) for x in teams.ALL_TEAMS])
|
8 |
-
def test_scrape_team_injury_report(team):
|
9 |
-
_ = practice_reports.scrape_team_injury_report(team)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tests/mocks/2023_keepers.csv
DELETED
@@ -1,222 +0,0 @@
|
|
1 |
-
,player_id,name,is_keeper,headshot_url,position_type,eligible_positions,selected_position,team_key,team_name,manager,status,season,pick,round,team_key_draft,years_eligible,keeper_cost,eligible
|
2 |
-
0,25812,Kirk Cousins,False,https://s.yimg.com/iu/api/res/1.2/1ru7GVFJz3q2wjSqH_klXA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/25812.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,52.0,5.0,414.l.474186.t.6,2,4.0,True
|
3 |
-
1,32692,Justin Jefferson,True,https://s.yimg.com/iu/api/res/1.2/uKAl5.v0hNtF.Gofx7AY5w--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/32692.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,148.0,13.0,414.l.474186.t.6,0,12.0,False
|
4 |
-
2,29399,Tyreek Hill,False,https://s.yimg.com/iu/api/res/1.2/IziJ.2wiZw0IpFOiD2kLsg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/29399.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,21.0,2.0,414.l.474186.t.6,2,1.0,True
|
5 |
-
3,30120,Mike Williams,True,https://s.yimg.com/iu/api/res/1.2/i9Vi4Ipm6kqfxD38LGUQeA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/30120.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,76.0,7.0,414.l.474186.t.6,1,6.0,True
|
6 |
-
4,30423,Austin Ekeler,False,https://s.yimg.com/iu/api/res/1.2/Wsn35gKIUHOaQEseGWkfRw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/30423.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,4.0,1.0,414.l.474186.t.6,2,0.0,False
|
7 |
-
5,31906,Devin Singletary,False,https://s.yimg.com/iu/api/res/1.2/NBqz6HmEaIx19gOlB39KPw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08152023/31906.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,100.0,9.0,414.l.474186.t.6,2,8.0,True
|
8 |
-
6,30259,George Kittle,False,https://s.yimg.com/iu/api/res/1.2/OaU1XRgACHFYep3esYgmSw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09062022/30259.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,45.0,4.0,414.l.474186.t.6,2,3.0,True
|
9 |
-
7,33514,Chuba Hubbard,False,https://s.yimg.com/iu/api/res/1.2/Dbzue7q8.gz13D7Jx.oddQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08232022/33514.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,193.0,17.0,414.l.474186.t.9,2,10.0,True
|
10 |
-
8,32010,Gardner Minshew,False,https://s.yimg.com/iu/api/res/1.2/W5BQWsS0IkvLsIXQTVziuQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08172023/32010.png,O,"['QB', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,,,,2,10.0,True
|
11 |
-
9,34007,George Pickens,False,https://s.yimg.com/iu/api/res/1.2/2.Q7wW_ectu5_akSvvUDvA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/34007.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,124.0,11.0,414.l.474186.t.6,2,10.0,True
|
12 |
-
10,32723,Jalen Hurts,True,https://s.yimg.com/iu/api/res/1.2/ZdHzqdvnato.MAwHy9jiWQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/32723.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,93.0,8.0,414.l.474186.t.6,0,7.0,False
|
13 |
-
11,33971,Jahan Dotson,False,https://s.yimg.com/iu/api/res/1.2/rY7UBr8dJhyBD2zKeDnkAQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08172023/33971.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,172.0,15.0,414.l.474186.t.6,2,14.0,True
|
14 |
-
12,32719,Chase Claypool,False,https://s.yimg.com/iu/api/res/1.2/GDmycY7ed0Qgt7AIyKjswg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08082023/32719.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,117.0,10.0,414.l.474186.t.6,2,9.0,True
|
15 |
-
13,33408,Kadarius Toney,False,https://s.yimg.com/iu/api/res/1.2/YgPRacRoiUOxNMcGvJ1qnw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08152023/33408.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,130.0,11.0,414.l.474186.t.7,2,10.0,True
|
16 |
-
14,31928,Dawson Knox,False,https://s.yimg.com/iu/api/res/1.2/WJptQ610wbYZVND2GLJ1iQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08162022/31928.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,89.0,8.0,414.l.474186.t.1,2,7.0,True
|
17 |
-
15,27540,Odell Beckham Jr.,False,https://s.yimg.com/iu/api/res/1.2/oIT1EIDlFGEwA81VkFcX7A--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/02162023/27540.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,,,,2,10.0,True
|
18 |
-
16,31137,Daniel Carlson,False,https://s.yimg.com/iu/api/res/1.2/60tYJJYqBaWMBgRufxtW2A--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/31137.png,K,['K'],K,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,196.0,17.0,414.l.474186.t.6,2,16.0,True
|
19 |
-
17,100017,New England,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/nwe.gif,DT,['DEF'],DEF,414.l.474186.t.6,Just Enough Cooks,Gabe,,2022,208.0,18.0,414.l.474186.t.11,2,10.0,True
|
20 |
-
18,32671,Joe Burrow,False,https://s.yimg.com/iu/api/res/1.2/QJXYvZ8pWkDD6JymTnrKBw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08242022/32671.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,15.0,2.0,414.l.474186.t.7,2,1.0,True
|
21 |
-
19,27581,Davante Adams,False,https://s.yimg.com/iu/api/res/1.2/UTwCcrglF9.BGBwncQo1Qg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08142023/27581.1.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,10.0,1.0,414.l.474186.t.7,2,0.0,False
|
22 |
-
20,31883,A.J. Brown,True,https://s.yimg.com/iu/api/res/1.2/n1WlNUDEwJAfqfgp0shFNw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/31883.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,63.0,6.0,414.l.474186.t.7,0,5.0,False
|
23 |
-
21,31268,Allen Lazard,False,https://s.yimg.com/iu/api/res/1.2/MHhzpDypkk5FcSkgaIwydw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08022023/31268.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,82.0,7.0,414.l.474186.t.7,2,6.0,True
|
24 |
-
22,30117,Leonard Fournette,False,https://s.yimg.com/iu/api/res/1.2/YKNFujBNRe_snft4cpYzyA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09082022/30117.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.7,Short Stafford,Adam Bush,NA,2022,34.0,3.0,414.l.474186.t.7,2,2.0,True
|
25 |
-
23,34357,Zonovan Knight,False,https://s.yimg.com/iu/api/res/1.2/th5obr_yU_FnvBc.oRysIQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/34357.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,,,,2,10.0,True
|
26 |
-
24,31019,Dallas Goedert,True,https://s.yimg.com/iu/api/res/1.2/2EigEb4xahJnP3QtYDZg2w--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/31019.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,106.0,9.0,414.l.474186.t.7,1,8.0,True
|
27 |
-
25,33996,Kenneth Walker III,False,https://s.yimg.com/iu/api/res/1.2/P3hgQ_501q_FSeopp00fXQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07252023/33996.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,111.0,10.0,414.l.474186.t.7,2,9.0,True
|
28 |
-
26,34030,Desmond Ridder,False,https://s.yimg.com/iu/api/res/1.2/DUrt_8tP5WTT_gHETdjCzg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08192022/34030.png,O,"['QB', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,188.0,16.0,414.l.474186.t.3,2,10.0,True
|
29 |
-
27,24060,Colt McCoy,False,https://s.yimg.com/iu/api/res/1.2/ad_RXu.DQLICW71zcK05SQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/24060.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.7,Short Stafford,Adam Bush,Q,2022,,,,2,10.0,True
|
30 |
-
28,33989,Christian Watson,False,https://s.yimg.com/iu/api/res/1.2/6IIpLPG5eq.B8RZTCtwmhQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08302022/33989.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,183.0,16.0,414.l.474186.t.7,2,15.0,True
|
31 |
-
29,29360,Demarcus Robinson,False,https://s.yimg.com/iu/api/res/1.2/M2p6MNVcinIE1ybyAMI5yw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/11282022/29360.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.7,Short Stafford,Adam Bush,Q,2022,,,,2,10.0,True
|
32 |
-
30,33443,Pat Freiermuth,False,https://s.yimg.com/iu/api/res/1.2/8K1q_4oL5zFCQOAUbcU_TQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09062022/33443.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.7,Short Stafford,Adam Bush,Q,2022,160.0,14.0,414.l.474186.t.11,2,10.0,True
|
33 |
-
31,30153,Curtis Samuel,False,https://s.yimg.com/iu/api/res/1.2/3RkjwLTDVeSKnGZAIaPL0Q--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08172023/30153.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,,,,2,10.0,True
|
34 |
-
32,32846,K.J. Osborn,False,https://s.yimg.com/iu/api/res/1.2/FHiM_yRbyAmJAkQwfopEDQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/32846.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,215.0,18.0,414.l.474186.t.10,2,10.0,True
|
35 |
-
33,30426,Younghoe Koo,False,https://s.yimg.com/iu/api/res/1.2/5SBc_xWFvSQDka.GZA77pw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08192022/30426.png,K,['K'],K,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,201.0,17.0,414.l.474186.t.11,2,10.0,True
|
36 |
-
34,100021,Philadelphia,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/phi.gif,DT,['DEF'],DEF,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,202.0,17.0,414.l.474186.t.7,2,16.0,True
|
37 |
-
35,100019,New York,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/nyg_2.gif,DT,['DEF'],BN,414.l.474186.t.7,Short Stafford,Adam Bush,,2022,,,,2,10.0,True
|
38 |
-
36,33991,Breece Hall,False,https://s.yimg.com/iu/api/res/1.2/fknRjJHFW3aHaUGO8ssHZg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/33991.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",IR,414.l.474186.t.7,Short Stafford,Adam Bush,Q,2022,39.0,4.0,414.l.474186.t.7,2,3.0,True
|
39 |
-
37,30123,Patrick Mahomes,False,https://s.yimg.com/iu/api/res/1.2/uGaZr6pMT6iteP6VNUutXA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/30123.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.1,Solow Red Cups,Jon,Q,2022,8.0,1.0,414.l.474186.t.1,2,0.0,False
|
40 |
-
38,31896,DK Metcalf,False,https://s.yimg.com/iu/api/res/1.2/fQ3vz6SwKcRb0sOGr6xjUA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07252023/31896.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.1,Solow Red Cups,Jon,,2022,41.0,4.0,414.l.474186.t.1,2,3.0,True
|
41 |
-
39,33500,Amon-Ra St. Brown,True,https://s.yimg.com/iu/api/res/1.2/znSCRKLz1GvciatCpJ40Hw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08302022/33500.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.1,Solow Red Cups,Jon,,2022,200.0,17.0,414.l.474186.t.1,1,16.0,True
|
42 |
-
40,32523,Greg Dortch,False,https://s.yimg.com/iu/api/res/1.2/1n5zauQsXxaPrKLMTsOFlw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/32523.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.1,Solow Red Cups,Jon,,2022,,,,2,10.0,True
|
43 |
-
41,30972,Saquon Barkley,False,https://s.yimg.com/iu/api/res/1.2/mfHTfkJ107RvBncwqjnr9A--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09102022/30972.1.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.1,Solow Red Cups,Jon,,2022,17.0,2.0,414.l.474186.t.1,2,1.0,True
|
44 |
-
42,33508,Rhamondre Stevenson,False,https://s.yimg.com/iu/api/res/1.2/y3pOEJ5ze52.TwQwLfzJUw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/33508.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.1,Solow Red Cups,Jon,,2022,56.0,5.0,414.l.474186.t.1,2,4.0,True
|
45 |
-
43,31127,Tyler Conklin,False,https://s.yimg.com/iu/api/res/1.2/4melcS_WZ1rv3aEFcKLvkw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/31127.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.1,Solow Red Cups,Jon,,2022,,,,2,10.0,True
|
46 |
-
44,33413,Travis Etienne Jr.,True,https://s.yimg.com/iu/api/res/1.2/D1RbhndjK1UiNP_iBg119g--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/33413.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.1,Solow Red Cups,Jon,,2022,113.0,10.0,414.l.474186.t.1,1,9.0,True
|
47 |
-
45,30977,Josh Allen,True,https://s.yimg.com/iu/api/res/1.2/2QJbc1u1X6VJqFGDiBcSHw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08162022/30977.png,O,"['QB', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.1,Solow Red Cups,Jon,,2022,32.0,3.0,414.l.474186.t.1,0,2.0,False
|
48 |
-
46,31857,Marquise Brown,False,https://s.yimg.com/iu/api/res/1.2/.CMTa_qhHj5x9VgqxEceSg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08222022/31857.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.1,Solow Red Cups,Jon,,2022,65.0,6.0,414.l.474186.t.1,2,5.0,True
|
49 |
-
47,34047,Rachaad White,False,https://s.yimg.com/iu/api/res/1.2/WwOHaEZZDPASCr3MR7iLEw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08182023/34047.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.1,Solow Red Cups,Jon,,2022,128.0,11.0,414.l.474186.t.1,2,10.0,True
|
50 |
-
48,33975,Kenny Pickett,False,https://s.yimg.com/iu/api/res/1.2/4FNm5KnyTOOqgi8IPlu2yg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/33975.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.1,Solow Red Cups,Jon,,2022,152.0,13.0,414.l.474186.t.1,2,12.0,True
|
51 |
-
49,30199,Kareem Hunt,False,https://s.yimg.com/iu/api/res/1.2/qImyalciOvrIvq611mTuxQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09132022/30199.1.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.1,Solow Red Cups,Jon,NA,2022,72.0,6.0,414.l.474186.t.1,2,5.0,True
|
52 |
-
50,33538,Kenneth Gainwell,False,https://s.yimg.com/iu/api/res/1.2/Qa8DZYmDuoB9.VvFRQ6bBA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/33538.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.1,Solow Red Cups,Jon,,2022,137.0,12.0,414.l.474186.t.1,2,11.0,True
|
53 |
-
51,32877,Isaiah Hodgins,False,https://s.yimg.com/iu/api/res/1.2/_20CSLAepNKXOc.ELTKcpg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/11142022/32877.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.1,Solow Red Cups,Jon,,2022,,,,2,10.0,True
|
54 |
-
52,34079,Isaiah Spiller,False,https://s.yimg.com/iu/api/res/1.2/UtIYVmtNsvlANKEF2kwS.A--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/34079.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.1,Solow Red Cups,Jon,,2022,209.0,18.0,414.l.474186.t.1,2,17.0,True
|
55 |
-
53,9526,Graham Gano,False,https://s.yimg.com/iu/api/res/1.2/7_9bZ4Hysr0w4YsNg8rUOg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09102022/9526.1.png,K,['K'],K,414.l.474186.t.1,Solow Red Cups,Jon,,2022,,,,2,10.0,True
|
56 |
-
54,100012,Kansas City,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/kan.gif,DT,['DEF'],DEF,414.l.474186.t.1,Solow Red Cups,Jon,,2022,,,,2,10.0,True
|
57 |
-
55,33998,Wan'Dale Robinson,False,https://s.yimg.com/iu/api/res/1.2/0Z.sjWpUZoE4iq.6_wPWzA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/33998.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",IR,414.l.474186.t.1,Solow Red Cups,Jon,Q,2022,161.0,14.0,414.l.474186.t.1,2,13.0,True
|
58 |
-
56,33399,Justin Fields,True,https://s.yimg.com/iu/api/res/1.2/bBjs6pBZ9oDYeFwr4OeCiA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08032022/33399.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.2,Gold Standard,Daniel,,2022,86.0,8.0,414.l.474186.t.2,1,7.0,True
|
59 |
-
57,28534,Stefon Diggs,True,https://s.yimg.com/iu/api/res/1.2/80tJkiyYc0vrrvUjfh2auw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/10012020/28534.1.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.2,Gold Standard,Daniel,,2022,35.0,3.0,414.l.474186.t.2,0,2.0,False
|
60 |
-
58,33398,DeVonta Smith,False,https://s.yimg.com/iu/api/res/1.2/6hdcVBZqvse4ZSmDUfFEdQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/33398.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.2,Gold Standard,Daniel,,2022,83.0,7.0,414.l.474186.t.2,2,6.0,True
|
61 |
-
59,33965,Garrett Wilson,False,https://s.yimg.com/iu/api/res/1.2/VSzU4ioKKF77t7yr5uQLNg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/33965.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.2,Gold Standard,Daniel,,2022,206.0,18.0,414.l.474186.t.2,2,17.0,True
|
62 |
-
60,32732,AJ Dillon,True,https://s.yimg.com/iu/api/res/1.2/Fuzt08n6yShzPhmZk3dGPQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08302022/32732.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.2,Gold Standard,Daniel,,2022,62.0,6.0,414.l.474186.t.2,1,5.0,True
|
63 |
-
61,30202,D'Onta Foreman,False,https://s.yimg.com/iu/api/res/1.2/xwIHvz1F6dEQPoWawE5Vrg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08082023/30202.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.2,Gold Standard,Daniel,,2022,198.0,17.0,414.l.474186.t.5,2,10.0,True
|
64 |
-
62,30136,Evan Engram,False,https://s.yimg.com/iu/api/res/1.2/o6Ww.Q9ytv48B9LNAHMv8A--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/30136.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.2,Gold Standard,Daniel,,2022,,,,2,10.0,True
|
65 |
-
63,34207,Isiah Pacheco,False,https://s.yimg.com/iu/api/res/1.2/MLVZ02I_Cn_qG5u2gcG3iw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/34207.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.2,Gold Standard,Daniel,Q,2022,134.0,12.0,414.l.474186.t.2,2,11.0,True
|
66 |
-
64,27560,Teddy Bridgewater,False,https://s.yimg.com/iu/api/res/1.2/V4npHYJxJlm0HzNwXMTnag--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/27560.png,O,"['QB', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.2,Gold Standard,Daniel,,2022,,,,2,10.0,True
|
67 |
-
65,32756,Zack Moss,False,https://s.yimg.com/iu/api/res/1.2/WxwF7udgeEEeuQ0Wdmo85w--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08172023/32756.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.2,Gold Standard,Daniel,,2022,,,,2,10.0,True
|
68 |
-
66,30295,Aaron Jones,False,https://s.yimg.com/iu/api/res/1.2/ez8dGQIh4snWNJ.0GsSe3Q--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08302022/30295.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.2,Gold Standard,Daniel,,2022,14.0,2.0,414.l.474186.t.2,2,1.0,True
|
69 |
-
67,26804,Latavius Murray,False,https://s.yimg.com/iu/api/res/1.2/QbmUSNHnwM45rtIqakYvfQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08012023/26804.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.2,Gold Standard,Daniel,,2022,,,,2,10.0,True
|
70 |
-
68,31107,Dalton Schultz,False,https://s.yimg.com/iu/api/res/1.2/UKeiRn.vKvlPKMjjXmQAwQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08152023/31107.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.2,Gold Standard,Daniel,,2022,59.0,5.0,414.l.474186.t.2,2,4.0,True
|
71 |
-
69,30285,Isaiah McKenzie,False,https://s.yimg.com/iu/api/res/1.2/ElcW35CLgX7r2P_CB_7yJw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08162022/30285.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.2,Gold Standard,Daniel,,2022,110.0,10.0,414.l.474186.t.2,2,9.0,True
|
72 |
-
70,30266,Jake Elliott,False,https://s.yimg.com/iu/api/res/1.2/cJxU0FO_kfryoXKrAKY9iA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/30266.png,K,['K'],K,414.l.474186.t.2,Gold Standard,Daniel,,2022,,,,2,10.0,True
|
73 |
-
71,100028,Washington,False,https://s.yimg.com/cv/apiv2/default/nfl/20200909/50x50/cr/washington.gif,DT,['DEF'],DEF,414.l.474186.t.2,Gold Standard,Daniel,,2022,,,,2,10.0,True
|
74 |
-
72,100002,Buffalo,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/buf.gif,DT,['DEF'],BN,414.l.474186.t.2,Gold Standard,Daniel,,2022,107.0,9.0,414.l.474186.t.2,2,8.0,True
|
75 |
-
73,32675,Tua Tagovailoa,True,https://s.yimg.com/iu/api/res/1.2/S0TI9tF0kmgmb5qpOEbV8w--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/32675.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.10,The Jenbots,Jen,,2022,98.0,9.0,414.l.474186.t.10,1,8.0,True
|
76 |
-
74,27277,Adam Thielen,False,https://s.yimg.com/iu/api/res/1.2/eB_EQ1lpxyq3QGcTGyk1mQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07272023/27277.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.10,The Jenbots,Jen,,2022,74.0,7.0,414.l.474186.t.10,2,6.0,True
|
77 |
-
75,33394,Jaylen Waddle,True,https://s.yimg.com/iu/api/res/1.2/H7eEPYlww.bcZ9r9gY8fPg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/33394.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.10,The Jenbots,Jen,,2022,122.0,11.0,414.l.474186.t.10,1,10.0,True
|
78 |
-
76,30994,DJ Moore,False,https://s.yimg.com/iu/api/res/1.2/3K7Sh.Q0fLpdyh7g2QD.nA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08082023/30994.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.10,The Jenbots,Jen,,2022,47.0,4.0,414.l.474186.t.10,2,3.0,True
|
79 |
-
77,31005,Nick Chubb,False,https://s.yimg.com/iu/api/res/1.2/btOicZxjBcHhRuOC9nIV1g--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09132022/31005.1.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.10,The Jenbots,Jen,,2022,23.0,2.0,414.l.474186.t.10,2,1.0,True
|
80 |
-
78,29238,Ezekiel Elliott,False,https://s.yimg.com/iu/api/res/1.2/DUODUN2PLd2SHxwOt85rLg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08092022/29238.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.10,The Jenbots,Jen,,2022,26.0,3.0,414.l.474186.t.10,2,2.0,True
|
81 |
-
79,34036,Greg Dulcich,False,https://s.yimg.com/iu/api/res/1.2/BpDTU3QlurqLMDIerAVnnQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08262022/34036.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.10,The Jenbots,Jen,Q,2022,,,,2,10.0,True
|
82 |
-
80,31905,David Montgomery,False,https://s.yimg.com/iu/api/res/1.2/wRdrI7HtYiZfB8U243TfhQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08112023/31905.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.10,The Jenbots,Jen,,2022,50.0,5.0,414.l.474186.t.10,2,4.0,True
|
83 |
-
81,29235,Jared Goff,False,https://s.yimg.com/iu/api/res/1.2/Ho6Q1LTikrPbhrhWo2bwCQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08302022/29235.png,O,"['QB', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.10,The Jenbots,Jen,,2022,71.0,6.0,414.l.474186.t.10,2,5.0,True
|
84 |
-
82,29341,Chris Moore,False,https://s.yimg.com/iu/api/res/1.2/UDZSy6kjfiMqc.GHwYV9WQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/29341.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.10,The Jenbots,Jen,,2022,,,,2,10.0,True
|
85 |
-
83,30247,Jamaal Williams,False,https://s.yimg.com/iu/api/res/1.2/NIDjtpLVqfsxwMAUB.yA9Q--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08082023/30247.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.10,The Jenbots,Jen,,2022,143.0,12.0,414.l.474186.t.10,2,11.0,True
|
86 |
-
84,30995,Hayden Hurst,False,https://s.yimg.com/iu/api/res/1.2/Rdja2nigOEqsGZjx6nNDtw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07272023/30995.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.10,The Jenbots,Jen,,2022,,,,2,10.0,True
|
87 |
-
85,24822,Andy Dalton,False,https://s.yimg.com/iu/api/res/1.2/Ohoq1e_3muN0RKhB63.mVw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07272023/24822.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.10,The Jenbots,Jen,,2022,,,,2,10.0,True
|
88 |
-
86,34008,Alec Pierce,False,https://s.yimg.com/iu/api/res/1.2/8OKDszvwdUD9QqJoN5h6DA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09012022/34008.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.10,The Jenbots,Jen,,2022,,,,2,10.0,True
|
89 |
-
87,33477,Nico Collins,False,https://s.yimg.com/iu/api/res/1.2/e6yVOlCA1IHCbRbTinF_5A--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/33477.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.10,The Jenbots,Jen,Q,2022,146.0,13.0,414.l.474186.t.10,2,12.0,True
|
90 |
-
88,33973,Treylon Burks,False,https://s.yimg.com/iu/api/res/1.2/HY6f8mRVR6_LrFEFNrwfFA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08182023/33973.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.10,The Jenbots,Jen,,2022,136.0,12.0,414.l.474186.t.11,2,10.0,True
|
91 |
-
89,34344,Cameron Dicker,False,https://s.yimg.com/iu/api/res/1.2/XAI1iHGCrUs2Y71Z4dZOAA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08112023/34344.png,K,['K'],K,414.l.474186.t.10,The Jenbots,Jen,,2022,,,,2,10.0,True
|
92 |
-
90,100007,Denver,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/den.gif,DT,['DEF'],DEF,414.l.474186.t.10,The Jenbots,Jen,,2022,170.0,15.0,414.l.474186.t.10,2,14.0,True
|
93 |
-
91,33637,Ben Skowronek,False,https://s.yimg.com/iu/api/res/1.2/uLa2iCk.CU0BqrQxRABn7g--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09082022/33637.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",IR,414.l.474186.t.10,The Jenbots,Jen,Q,2022,,,,2,10.0,True
|
94 |
-
92,29369,Dak Prescott,False,https://s.yimg.com/iu/api/res/1.2/KE1Rw3r7nA8anql98tZI4Q--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08092022/29369.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,20.0,2.0,414.l.474186.t.3,2,1.0,True
|
95 |
-
93,30197,Chris Godwin,False,https://s.yimg.com/iu/api/res/1.2/roNVzlSNZyCVTP_YD2gH.Q--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08182023/30197.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,68.0,6.0,414.l.474186.t.3,2,5.0,True
|
96 |
-
94,32798,Gabe Davis,False,https://s.yimg.com/iu/api/res/1.2/FpnVozvf7BEniT.DSR1bbg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08162022/32798.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,29.0,3.0,414.l.474186.t.3,2,2.0,True
|
97 |
-
95,34659,Rashid Shaheed,False,https://s.yimg.com/iu/api/res/1.2/Yv.lEisn6gZ.6d9gJUFRhg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09112022/34659.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,,,,2,10.0,True
|
98 |
-
96,30154,Dalvin Cook,False,https://s.yimg.com/iu/api/res/1.2/PEteLdlAzix1arTWEMNdqQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/30154.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.3,Don’t Fear the Keeper,David,Q,2022,5.0,1.0,414.l.474186.t.3,2,0.0,False
|
99 |
-
97,26652,Cordarrelle Patterson,True,https://s.yimg.com/iu/api/res/1.2/iGQ1kha0acy.9HNIc2OXiw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08192022/26652.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,101.0,9.0,414.l.474186.t.3,1,8.0,True
|
100 |
-
98,29269,Hunter Henry,False,https://s.yimg.com/iu/api/res/1.2/NEm1DAWA.yuFGnX1llY2CA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/29269.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,167.0,14.0,414.l.474186.t.10,2,10.0,True
|
101 |
-
99,31051,Michael Gallup,True,https://s.yimg.com/iu/api/res/1.2/rc2qooGsh7s6eFSb2i4UIg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08092022/31051.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.3,Don’t Fear the Keeper,David,Q,2022,116.0,10.0,414.l.474186.t.3,1,9.0,True
|
102 |
-
100,33389,Trevor Lawrence,False,https://s.yimg.com/iu/api/res/1.2/dTvmt7jY2XE8d0K6jMnytQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/33389.png,O,"['QB', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,44.0,4.0,414.l.474186.t.3,2,3.0,True
|
103 |
-
101,32736,Antonio Gibson,False,https://s.yimg.com/iu/api/res/1.2/6ofK.flGUG.stOTsHIfLjQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08172023/32736.1.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.3,Don’t Fear the Keeper,David,Q,2022,53.0,5.0,414.l.474186.t.3,2,4.0,True
|
104 |
-
102,32003,Darius Slayton,False,https://s.yimg.com/iu/api/res/1.2/E8si81KuaPrD2lFQ0GtLbw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09102022/32003.1.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,,,,2,10.0,True
|
105 |
-
103,28839,Taylor Heinicke,False,https://s.yimg.com/iu/api/res/1.2/89aG76v4MRKpCk2hfNizJw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07272023/28839.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,,,,2,10.0,True
|
106 |
-
104,31934,Alexander Mattison,False,https://s.yimg.com/iu/api/res/1.2/4Td_gb.cVkIChxsrHAqvjA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/31934.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,125.0,11.0,414.l.474186.t.3,2,10.0,True
|
107 |
-
105,33113,Juwan Johnson,False,https://s.yimg.com/iu/api/res/1.2/_eJHA9kCwXPo6vNRfEt2sQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09112022/33113.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,,,,2,10.0,True
|
108 |
-
106,30973,Sam Darnold,False,https://s.yimg.com/iu/api/res/1.2/IIsm16mUSjOkQICx7Duc8w--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07262023/30973.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,,,,2,10.0,True
|
109 |
-
107,29236,Carson Wentz,False,https://s.yimg.com/iu/api/res/1.2/CZ4byGFTeTX_PjRU9.kRuQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/29236.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.3,Don’t Fear the Keeper,David,NA,2022,149.0,13.0,414.l.474186.t.3,2,12.0,True
|
110 |
-
108,8432,Nick Folk,False,https://s.yimg.com/iu/api/res/1.2/F0y5frwLiZA3eW7iKP_jMw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/8432.png,K,['K'],K,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,,,,2,10.0,True
|
111 |
-
109,100027,Tampa Bay,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/tam.gif,DT,['DEF'],DEF,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,140.0,12.0,414.l.474186.t.3,2,11.0,True
|
112 |
-
110,33437,Rondale Moore,False,https://s.yimg.com/iu/api/res/1.2/yx6mu2I6XLuhhF0bScblZA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/33437.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",IR,414.l.474186.t.3,Don’t Fear the Keeper,David,,2022,164.0,14.0,414.l.474186.t.3,2,13.0,True
|
113 |
-
111,7200,Aaron Rodgers,False,https://s.yimg.com/iu/api/res/1.2/wBl5RxV59_1mMQkQHhlz_A--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08022023/7200.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.11,Fired on my day off,Cobi,,2022,33.0,3.0,414.l.474186.t.11,2,2.0,True
|
114 |
-
112,32687,CeeDee Lamb,True,https://s.yimg.com/iu/api/res/1.2/AaMdFg_1O0IbpNi3gFRxGg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08092022/32687.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.11,Fired on my day off,Cobi,,2022,81.0,7.0,414.l.474186.t.11,0,6.0,False
|
115 |
-
113,32695,Brandon Aiyuk,True,https://s.yimg.com/iu/api/res/1.2/mLlExLggroKYPjOXnGp50A--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09062022/32695.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.11,Fired on my day off,Cobi,,2022,88.0,8.0,414.l.474186.t.11,0,7.0,False
|
116 |
-
114,29288,Tyler Boyd,False,https://s.yimg.com/iu/api/res/1.2/8eGzZ4Z.xXR0iPQotLXLRQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08242022/29288.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.11,Fired on my day off,Cobi,Q,2022,129.0,11.0,414.l.474186.t.11,2,10.0,True
|
117 |
-
115,30218,James Conner,True,https://s.yimg.com/iu/api/res/1.2/3XWaWcJhci_WmQzjkaJk2w--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/30218.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.11,Fired on my day off,Cobi,,2022,64.0,6.0,414.l.474186.t.11,1,5.0,True
|
118 |
-
116,32722,Cam Akers,True,https://s.yimg.com/iu/api/res/1.2/yt8Azi2B44fcaSIY45M3WQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09082022/32722.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.11,Fired on my day off,Cobi,,2022,118.0,10.0,414.l.474186.t.8,1,9.0,True
|
119 |
-
117,32713,Cole Kmet,False,https://s.yimg.com/iu/api/res/1.2/5OVkUh_qhJlTyp6RY6xXXQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08032022/32713.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.11,Fired on my day off,Cobi,,2022,95.0,8.0,414.l.474186.t.10,2,7.0,True
|
120 |
-
118,33412,Najee Harris,False,https://s.yimg.com/iu/api/res/1.2/OR95VsfQ4o4K6THKBgp5yA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09062022/33412.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.11,Fired on my day off,Cobi,,2022,9.0,1.0,414.l.474186.t.11,2,0.0,False
|
121 |
-
119,25785,Russell Wilson,False,https://s.yimg.com/iu/api/res/1.2/FAeFxNvgxIInhiyZhYp6FQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08262022/25785.png,O,"['QB', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.11,Fired on my day off,Cobi,Q,2022,16.0,2.0,414.l.474186.t.11,2,1.0,True
|
122 |
-
120,34107,Tyler Allgeier,False,https://s.yimg.com/iu/api/res/1.2/5tRMs86CGOTiPIS1sSl.qw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08192022/34107.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.11,Fired on my day off,Cobi,,2022,171.0,15.0,414.l.474186.t.8,2,10.0,True
|
123 |
-
121,31852,Noah Fant,False,https://s.yimg.com/iu/api/res/1.2/DjDtCvS.YcRZ1AIzoA8OAw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09082022/31852.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.11,Fired on my day off,Cobi,,2022,,,,2,10.0,True
|
124 |
-
122,28654,Raheem Mostert,False,https://s.yimg.com/iu/api/res/1.2/5B8rSiAkQu_C.T1FzwOuYQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/10132022/28654.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.11,Fired on my day off,Cobi,,2022,112.0,10.0,414.l.474186.t.11,2,9.0,True
|
125 |
-
123,33422,Elijah Moore,True,https://s.yimg.com/iu/api/res/1.2/Vkh0utH3qjiaFHtrNHSQRQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08022023/33422.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.11,Fired on my day off,Cobi,,2022,114.0,10.0,414.l.474186.t.4,1,9.0,True
|
126 |
-
124,30182,Cooper Kupp,False,https://s.yimg.com/iu/api/res/1.2/r4cot0junNdG6BI.2PKXDA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09082022/30182.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.11,Fired on my day off,Cobi,Q,2022,2.0,1.0,414.l.474186.t.10,2,0.0,False
|
127 |
-
125,33391,Trey Lance,True,https://s.yimg.com/iu/api/res/1.2/H0GY3TXYTlkKJdLioJmvig--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09062022/33391.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.11,Fired on my day off,Cobi,,2022,91.0,8.0,414.l.474186.t.5,1,7.0,True
|
128 |
-
126,31977,Matt Gay,False,https://s.yimg.com/iu/api/res/1.2/lHuyp4cfi0SGZO3XhtX5PA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08172023/31977.png,K,['K'],K,414.l.474186.t.11,Fired on my day off,Cobi,,2022,182.0,16.0,414.l.474186.t.2,2,10.0,True
|
129 |
-
127,100030,Jacksonville,False,https://s.yimg.com/xe/ipt/50x50w.3.gif,DT,['DEF'],DEF,414.l.474186.t.11,Fired on my day off,Cobi,,2022,,,,2,10.0,True
|
130 |
-
128,100024,Los Angeles,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/sdg3.jpg,DT,['DEF'],BN,414.l.474186.t.11,Fired on my day off,Cobi,,2022,211.0,18.0,414.l.474186.t.5,2,10.0,True
|
131 |
-
129,31833,Kyler Murray,False,https://s.yimg.com/iu/api/res/1.2/.c7dDweSvYsX9He5BCXNBw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/31833.png,O,"['QB', 'Q/W/R/T']",IR,414.l.474186.t.11,Fired on my day off,Cobi,Q,2022,11.0,1.0,414.l.474186.t.2,2,0.0,False
|
132 |
-
130,34218,Brock Purdy,False,https://s.yimg.com/iu/api/res/1.2/g0DerZ8KoS3DfFhcmgN6eA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09062022/34218.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.5,Only Bad Juju Here,Will,Q,2022,,,,2,10.0,True
|
133 |
-
131,30175,JuJu Smith-Schuster,False,https://s.yimg.com/iu/api/res/1.2/VkzzBWy2DIUaQe_tV7U4vw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08082023/30175.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,54.0,5.0,414.l.474186.t.5,2,4.0,True
|
134 |
-
132,33393,Ja'Marr Chase,True,https://s.yimg.com/iu/api/res/1.2/BW26kQyt4fyE_Jh6VoLb_g--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08242022/33393.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,43.0,4.0,414.l.474186.t.5,1,3.0,True
|
135 |
-
133,32704,Michael Pittman Jr.,True,https://s.yimg.com/iu/api/res/1.2/NraGNpZU47CL52KvePBgBQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09012022/32704.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,115.0,10.0,414.l.474186.t.5,1,9.0,True
|
136 |
-
134,27624,Jerick McKinnon,False,https://s.yimg.com/iu/api/res/1.2/v.6YTAtt5Bx_r8IsbuF4Gw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/27624.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,,,,2,10.0,True
|
137 |
-
135,30161,Joe Mixon,False,https://s.yimg.com/iu/api/res/1.2/UmC_omZu1fTvyauPzw.TiA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08242022/30161.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,6.0,1.0,414.l.474186.t.5,2,0.0,False
|
138 |
-
136,26686,Travis Kelce,False,https://s.yimg.com/iu/api/res/1.2/ROLrLEfO0ysGN.bsgSza3Q--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/26686.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,19.0,2.0,414.l.474186.t.5,2,1.0,True
|
139 |
-
137,32725,J.K. Dobbins,True,https://s.yimg.com/iu/api/res/1.2/TM_L8PnmPlQ5lh_cDwmqNw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08222022/32725.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,99.0,9.0,414.l.474186.t.8,1,8.0,True
|
140 |
-
138,32685,Jerry Jeudy,False,https://s.yimg.com/iu/api/res/1.2/bPjROeGlioyNPk0xHBu7_w--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08262022/32685.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,78.0,7.0,414.l.474186.t.5,2,6.0,True
|
141 |
-
139,33966,Chris Olave,False,https://s.yimg.com/iu/api/res/1.2/YZPLrSB.eOYS8Q5zM_uLrg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09112022/33966.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,102.0,9.0,414.l.474186.t.5,2,8.0,True
|
142 |
-
140,32231,Jakobi Meyers,False,https://s.yimg.com/iu/api/res/1.2/9wyBwt_A4z1ltXnpNbKD5g--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/32231.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,174.0,15.0,414.l.474186.t.5,2,14.0,True
|
143 |
-
141,30150,Zay Jones,False,https://s.yimg.com/iu/api/res/1.2/I3r.AujpA.yEcNZPQr26jw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/30150.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,,,,2,10.0,True
|
144 |
-
142,31803,John Wolford,False,https://s.yimg.com/iu/api/res/1.2/Tv_XW9BxUjJ4.U8FJN3IGQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07272023/31803.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,,,,2,10.0,True
|
145 |
-
143,30614,Taysom Hill,False,https://s.yimg.com/iu/api/res/1.2/p.1N.FtMvV4GHcMxHdjUww--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09112022/30614.png,O,"['QB', 'TE', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,,,,2,10.0,True
|
146 |
-
144,33455,Davis Mills,False,https://s.yimg.com/iu/api/res/1.2/DDzxF1vCU7TQ6cMzzRhyhA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/33455.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,158.0,14.0,414.l.474186.t.2,2,10.0,True
|
147 |
-
145,31074,Nyheim Hines,False,https://s.yimg.com/iu/api/res/1.2/TIZ15raJKQHYY1QNCMTPSg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08012023/31074.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.5,Only Bad Juju Here,Will,NA,2022,126.0,11.0,414.l.474186.t.5,2,10.0,True
|
148 |
-
146,33537,Evan McPherson,False,https://s.yimg.com/iu/api/res/1.2/hwv0TonIqav8wiFggZSj6g--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08242022/33537.png,K,['K'],K,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,150.0,13.0,414.l.474186.t.5,2,12.0,True
|
149 |
-
147,100025,San Francisco,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/sfo.gif,DT,['DEF'],DEF,414.l.474186.t.5,Only Bad Juju Here,Will,,2022,139.0,12.0,414.l.474186.t.5,2,11.0,True
|
150 |
-
148,32993,Tyler Huntley,False,https://s.yimg.com/iu/api/res/1.2/alizLiWws0hc6yNV_gUqEQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08222022/32993.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.12,Watson Watsoff,Ely,,2022,,,,2,10.0,True
|
151 |
-
149,26699,Keenan Allen,False,https://s.yimg.com/iu/api/res/1.2/gCbEcOZk_Lh8EHBnSx1isQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/26699.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.12,Watson Watsoff,Ely,,2022,36.0,3.0,414.l.474186.t.12,2,2.0,True
|
152 |
-
150,26664,Robert Woods,False,https://s.yimg.com/iu/api/res/1.2/yqQBSqw646fbFVhB.jGzHQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08152023/26664.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.12,Watson Watsoff,Ely,,2022,84.0,7.0,414.l.474186.t.12,2,6.0,True
|
153 |
-
151,31981,Hunter Renfrow,False,https://s.yimg.com/iu/api/res/1.2/u8BAIFQqXyupdqQAw_Hm6Q--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/31981.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.12,Watson Watsoff,Ely,,2022,77.0,7.0,414.l.474186.t.3,2,6.0,True
|
154 |
-
152,31885,Miles Sanders,False,https://s.yimg.com/iu/api/res/1.2/9lD_ronp9xhQnVee4jjypA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07272023/31885.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.12,Watson Watsoff,Ely,,2022,61.0,6.0,414.l.474186.t.12,2,5.0,True
|
155 |
-
153,30180,Alvin Kamara,False,https://s.yimg.com/iu/api/res/1.2/viS6OEQEIhOpJ7DMpz6dBw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09112022/30180.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.12,Watson Watsoff,Ely,,2022,13.0,2.0,414.l.474186.t.12,2,1.0,True
|
156 |
-
154,28592,Darren Waller,False,https://s.yimg.com/iu/api/res/1.2/huxiwRVZLOt1t2B.XWU0zg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08072023/28592.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.12,Watson Watsoff,Ely,,2022,60.0,5.0,414.l.474186.t.12,2,4.0,True
|
157 |
-
155,34054,Brian Robinson,False,https://s.yimg.com/iu/api/res/1.2/Ryadq.naQHcX5OZnqTXSZQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08172023/34054.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.12,Watson Watsoff,Ely,Q,2022,157.0,14.0,414.l.474186.t.12,2,13.0,True
|
158 |
-
156,5228,Tom Brady,False,https://s.yimg.com/iu/api/res/1.2/Ol_o6nNm9irLqsJ.2ZxQHg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09082022/5228.png,O,"['QB', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.12,Watson Watsoff,Ely,NA,2022,37.0,4.0,414.l.474186.t.12,2,3.0,True
|
159 |
-
157,26650,DeAndre Hopkins,False,https://s.yimg.com/iu/api/res/1.2/BSf2ob2XIUFixJRPTv850w--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/26650.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.12,Watson Watsoff,Ely,,2022,109.0,10.0,414.l.474186.t.12,2,9.0,True
|
160 |
-
158,30118,Corey Davis,False,https://s.yimg.com/iu/api/res/1.2/9VJg4F5pJoJ32he4nwbCsw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/30118.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.12,Watson Watsoff,Ely,,2022,,,,2,10.0,True
|
161 |
-
159,31960,Tony Pollard,False,https://s.yimg.com/iu/api/res/1.2/S63xm6zuI1a5XIIfzYtO3w--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08092022/31960.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.12,Watson Watsoff,Ely,Q,2022,85.0,8.0,414.l.474186.t.12,2,7.0,True
|
162 |
-
160,31002,Lamar Jackson,True,https://s.yimg.com/iu/api/res/1.2/0hA844ZfAfY8qn_CfORdtw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08222022/31002.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.12,Watson Watsoff,Ely,,2022,12.0,1.0,414.l.474186.t.12,1,0.0,False
|
163 |
-
161,29344,Tyler Higbee,False,https://s.yimg.com/iu/api/res/1.2/H7IhC3F_OhDIHM.6hyR4PQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09082022/29344.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.12,Watson Watsoff,Ely,,2022,,,,2,10.0,True
|
164 |
-
162,31424,Gus Edwards,False,https://s.yimg.com/iu/api/res/1.2/QRCYxnhZdLNzkmTD37IyYQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08222022/31424.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.12,Watson Watsoff,Ely,,2022,205.0,18.0,414.l.474186.t.12,2,17.0,True
|
165 |
-
163,26534,Justin Tucker,False,https://s.yimg.com/iu/api/res/1.2/J2_kNRYOP0qqVUjUAmlY5w--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08222022/26534.png,K,['K'],K,414.l.474186.t.12,Watson Watsoff,Ely,,2022,132.0,11.0,414.l.474186.t.12,2,10.0,True
|
166 |
-
164,7520,Robbie Gould,False,https://s.yimg.com/iu/api/res/1.2/2zhwD2efs8sK15WRX0dwjw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09062022/7520.png,K,['K'],BN,414.l.474186.t.12,Watson Watsoff,Ely,NA,2022,,,,2,10.0,True
|
167 |
-
165,100006,Dallas,False,https://s.yimg.com/cv/apiv2/default/nfl/20200908/50x50/cr/cowboys.png,DT,['DEF'],DEF,414.l.474186.t.12,Watson Watsoff,Ely,,2022,181.0,16.0,414.l.474186.t.12,2,15.0,True
|
168 |
-
166,27591,Jarvis Landry,False,https://s.yimg.com/iu/api/res/1.2/MRwafrUVqUkGohu_PCZ8.A--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09112022/27591.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",IR,414.l.474186.t.12,Watson Watsoff,Ely,NA,2022,144.0,12.0,414.l.474186.t.9,2,10.0,True
|
169 |
-
167,26662,Geno Smith,False,https://s.yimg.com/iu/api/res/1.2/E9txpiDl4SjiijhfG_larA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07252023/26662.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,162.0,14.0,414.l.474186.t.4,2,13.0,True
|
170 |
-
168,32703,Tee Higgins,True,https://s.yimg.com/iu/api/res/1.2/eelMCXUfHYBxtuwYpAzObQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08242022/32703.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,31.0,3.0,414.l.474186.t.4,1,2.0,True
|
171 |
-
169,31210,Richie James,False,https://s.yimg.com/iu/api/res/1.2/G3M0VC0mAmv2kt.xlBAmAQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08152023/31210.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,,,,2,10.0,True
|
172 |
-
170,31898,Diontae Johnson,True,https://s.yimg.com/iu/api/res/1.2/rWYS3gd7L1OSmCvaDD5O_g--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09062022/31898.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,42.0,4.0,414.l.474186.t.4,1,3.0,True
|
173 |
-
171,29279,Derrick Henry,False,https://s.yimg.com/iu/api/res/1.2/axybdmTm92jaZUw5ZMNwog--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08182023/29279.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,7.0,1.0,414.l.474186.t.4,2,0.0,False
|
174 |
-
172,32705,D'Andre Swift,False,https://s.yimg.com/iu/api/res/1.2/MKPJLDRXqjHsT2XLdZ0aJg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08042023/32705.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,18.0,2.0,414.l.474186.t.4,2,1.0,True
|
175 |
-
173,31840,T.J. Hockenson,False,https://s.yimg.com/iu/api/res/1.2/gDcUMhQ1yyyobQf7E8QcxA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08092023/31840.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,90.0,8.0,414.l.474186.t.4,2,7.0,True
|
176 |
-
174,33605,Khalil Herbert,False,https://s.yimg.com/iu/api/res/1.2/qdOtFpdIP3YkVtjGnwskIg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08032022/33605.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,127.0,11.0,414.l.474186.t.4,2,10.0,True
|
177 |
-
175,31838,Daniel Jones,False,https://s.yimg.com/iu/api/res/1.2/kZt6H9OCdJ_0aE3Bq3eC7g--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09102022/31838.1.png,O,"['QB', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,55.0,5.0,414.l.474186.t.4,2,4.0,True
|
178 |
-
176,33465,Joshua Palmer,False,https://s.yimg.com/iu/api/res/1.2/JAFW6yNN.sTLPmKLZ8T.0Q--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/33465.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,186.0,16.0,414.l.474186.t.4,2,15.0,True
|
179 |
-
177,28457,Tyler Lockett,False,https://s.yimg.com/iu/api/res/1.2/NYan.iJFfM0a3h1aJ_Qb.w--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07252023/28457.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,103.0,9.0,414.l.474186.t.4,2,8.0,True
|
180 |
-
178,33403,Mac Jones,False,https://s.yimg.com/iu/api/res/1.2/VVXTgj1Tqq52qPX_2eEPFA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09122022/33403.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,151.0,13.0,414.l.474186.t.4,2,12.0,True
|
181 |
-
179,30142,David Njoku,False,https://s.yimg.com/iu/api/res/1.2/eGmGNbYH6BDTB6ZQQnFJQw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09132022/30142.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,138.0,12.0,414.l.474186.t.4,2,11.0,True
|
182 |
-
180,32814,DeeJay Dallas,False,https://s.yimg.com/iu/api/res/1.2/bGFcLBcr0zcHTeUMUOCsmQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07252023/32814.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,,,,2,10.0,True
|
183 |
-
181,32858,Tyler Bass,False,https://s.yimg.com/iu/api/res/1.2/bG28u.Fasm8RfRkARyNM.g--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08162022/32858.png,K,['K'],K,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,199.0,17.0,414.l.474186.t.4,2,16.0,True
|
184 |
-
182,100005,Cleveland,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/cle.gif,DT,['DEF'],DEF,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,,,,2,10.0,True
|
185 |
-
183,100004,Cincinnati,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/cin_2.gif,DT,['DEF'],BN,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,210.0,18.0,414.l.474186.t.4,2,17.0,True
|
186 |
-
184,100016,Minnesota,False,https://s.yimg.com/xe/ipt/50x50w.6.gif,DT,['DEF'],BN,414.l.474186.t.4,Show Me the Mooney,Jeff,,2022,,,,2,10.0,True
|
187 |
-
185,27564,Derek Carr,True,https://s.yimg.com/iu/api/res/1.2/k2EXQR3Hz7GtngIYEn3VIQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08082023/27564.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,121.0,11.0,414.l.474186.t.9,0,10.0,False
|
188 |
-
186,28392,Amari Cooper,False,https://s.yimg.com/iu/api/res/1.2/T2xt0gxTthA0vH6ako9vrw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09132022/28392.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,Q,2022,80.0,7.0,414.l.474186.t.9,2,6.0,True
|
189 |
-
187,32727,Van Jefferson,False,https://s.yimg.com/iu/api/res/1.2/nOtC5FZStdnLKxi6eX9H9Q--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09082022/32727.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,,,,2,10.0,True
|
190 |
-
188,31010,Courtland Sutton,True,https://s.yimg.com/iu/api/res/1.2/qjs5FP7W_un0vxmqlUowUQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08262022/31010.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,73.0,7.0,414.l.474186.t.9,1,6.0,True
|
191 |
-
189,34019,James Cook,False,https://s.yimg.com/iu/api/res/1.2/Kwq2eYBk7s_hzE.QTsZXaA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08102022/34019.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,97.0,9.0,414.l.474186.t.9,2,8.0,True
|
192 |
-
190,33495,Michael Carter,False,https://s.yimg.com/iu/api/res/1.2/Qm1_5db1YOsD5hWtGXQlUg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/33495.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,96.0,8.0,414.l.474186.t.9,2,7.0,True
|
193 |
-
191,31056,Mark Andrews,False,https://s.yimg.com/iu/api/res/1.2/y5Rn0Y2I20WZF_AhPnbrIA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08222022/31056.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,25.0,3.0,414.l.474186.t.9,2,2.0,True
|
194 |
-
192,31394,Jeff Wilson Jr.,False,https://s.yimg.com/iu/api/res/1.2/We7VtHVodVD_TH5jUJmmmg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/11072022/31394.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,168.0,14.0,414.l.474186.t.9,2,13.0,True
|
195 |
-
193,30125,Deshaun Watson,False,https://s.yimg.com/iu/api/res/1.2/6I6UVE5j_yQKbJvBeWm9zQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09132022/30125.png,O,"['QB', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,195.0,17.0,414.l.474186.t.8,2,10.0,True
|
196 |
-
194,33473,Amari Rodgers,False,https://s.yimg.com/iu/api/res/1.2/2RZA8J2wPaxhCTkKX07_bQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/11232022/33473.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,,,,2,10.0,True
|
197 |
-
195,31868,Deebo Samuel,False,https://s.yimg.com/iu/api/res/1.2/OGE5MT8Euxg9JAackPF6pw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09062022/31868.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,24.0,2.0,414.l.474186.t.9,2,1.0,True
|
198 |
-
196,32711,Jonathan Taylor,False,https://s.yimg.com/iu/api/res/1.2/G7TZVr_1W8fZLPEuYpLwkg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09012022/32711.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,Q,2022,1.0,1.0,414.l.474186.t.9,2,0.0,False
|
199 |
-
197,34063,Dameon Pierce,False,https://s.yimg.com/iu/api/res/1.2/FOZCdiPoZ3wxE6WNqFVA4g--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/34063.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,Q,2022,48.0,4.0,414.l.474186.t.9,2,3.0,True
|
200 |
-
198,30227,Samaje Perine,False,https://s.yimg.com/iu/api/res/1.2/t09WyiAn4WAEPdK8fOopUQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08102023/30227.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,179.0,15.0,414.l.474186.t.2,2,10.0,True
|
201 |
-
199,33423,Javonte Williams,False,https://s.yimg.com/iu/api/res/1.2/u7lRRElEY9wFdB4IDuRPBw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08262022/33423.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,Q,2022,28.0,3.0,414.l.474186.t.6,2,2.0,True
|
202 |
-
200,30997,Rashaad Penny,True,https://s.yimg.com/iu/api/res/1.2/VaIszPrtdc5voaBaitswxg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08042023/30997.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,119.0,10.0,414.l.474186.t.10,1,9.0,True
|
203 |
-
201,30346,Harrison Butker,False,https://s.yimg.com/iu/api/res/1.2/kRja96cMmbAodp9m4xmo2Q--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09052022/30346.png,K,['K'],K,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,212.0,18.0,414.l.474186.t.3,2,10.0,True
|
204 |
-
202,100033,Baltimore,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/bal_2.gif,DT,['DEF'],DEF,414.l.474186.t.9,Sutton On The Dock Of The Bay,Devin,,2022,185.0,16.0,414.l.474186.t.1,2,10.0,True
|
205 |
-
203,34042,Malik Willis,False,https://s.yimg.com/iu/api/res/1.2/.htls9vA4b6ZtFaw0_rmbw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08182023/34042.png,O,"['QB', 'Q/W/R/T']",QB,414.l.474186.t.8,Robotron 7000,Ben,,2022,153.0,13.0,414.l.474186.t.11,2,10.0,True
|
206 |
-
204,27535,Mike Evans,False,https://s.yimg.com/iu/api/res/1.2/.7Fzudy9HGhlMQCxWxBAEg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08182023/27535.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.8,Robotron 7000,Ben,,2022,22.0,2.0,414.l.474186.t.8,2,1.0,True
|
207 |
-
205,31017,Christian Kirk,False,https://s.yimg.com/iu/api/res/1.2/Wom.mgKC6gbvZILJMAEiJQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/31017.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.8,Robotron 7000,Ben,Q,2022,75.0,7.0,414.l.474186.t.8,2,6.0,True
|
208 |
-
206,33963,Drake London,False,https://s.yimg.com/iu/api/res/1.2/I2R4uFJcaejHiOMt_q6tIw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08192022/33963.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",WR,414.l.474186.t.8,Robotron 7000,Ben,,2022,104.0,9.0,414.l.474186.t.1,2,8.0,True
|
209 |
-
207,31856,Josh Jacobs,False,https://s.yimg.com/iu/api/res/1.2/6q.PFWRMhuvredK21Mel5Q--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/31856.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.8,Robotron 7000,Ben,,2022,51.0,5.0,414.l.474186.t.8,2,4.0,True
|
210 |
-
208,30121,Christian McCaffrey,False,https://s.yimg.com/iu/api/res/1.2/NMM4SpK6RcmQaRbcmxcRUA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/07262023/30121.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",RB,414.l.474186.t.8,Robotron 7000,Ben,,2022,3.0,1.0,414.l.474186.t.8,2,0.0,False
|
211 |
-
209,30157,Gerald Everett,False,https://s.yimg.com/iu/api/res/1.2/X6vxfBP9CfXbn3X6T5.ulg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/30157.png,O,"['TE', 'W/R/T', 'Q/W/R/T']",TE,414.l.474186.t.8,Robotron 7000,Ben,,2022,,,,2,10.0,True
|
212 |
-
210,31908,Terry McLaurin,False,https://s.yimg.com/iu/api/res/1.2/6ubX.FQD1vkEgx_QRp0BIQ--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08172023/31908.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",W/R/T,414.l.474186.t.8,Robotron 7000,Ben,,2022,27.0,3.0,414.l.474186.t.8,2,2.0,True
|
213 |
-
211,32676,Justin Herbert,True,https://s.yimg.com/iu/api/res/1.2/MkjpSwRr3oxLnp364DoFQw--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09092022/32676.png,O,"['QB', 'Q/W/R/T']",Q/W/R/T,414.l.474186.t.8,Robotron 7000,Ben,Q,2022,94.0,8.0,414.l.474186.t.8,0,7.0,False
|
214 |
-
212,31141,Mike White,False,https://s.yimg.com/iu/api/res/1.2/Pipjb9dyDTzyvf1DNmvaQg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08102023/31141.png,O,"['QB', 'Q/W/R/T']",BN,414.l.474186.t.8,Robotron 7000,Ben,,2022,,,,2,10.0,True
|
215 |
-
213,34120,Kyren Williams,False,https://s.yimg.com/iu/api/res/1.2/eXr3FPJ36vxaxtgECBvrrA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09082022/34120.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.8,Robotron 7000,Ben,,2022,,,,2,10.0,True
|
216 |
-
214,34088,Romeo Doubs,False,https://s.yimg.com/iu/api/res/1.2/PNVAqx8vKPCkvep7QF55xg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08302022/34088.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.8,Robotron 7000,Ben,,2022,142.0,12.0,414.l.474186.t.8,2,11.0,True
|
217 |
-
215,34009,Skyy Moore,False,https://s.yimg.com/iu/api/res/1.2/UNwknWtbcShl2pH_EzW.9A--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/34009.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.8,Robotron 7000,Ben,,2022,159.0,14.0,414.l.474186.t.7,2,10.0,True
|
218 |
-
216,33967,Jameson Williams,False,https://s.yimg.com/iu/api/res/1.2/Yf4GNRg6hfpOwcphhsWmuA--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/08302022/33967.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.8,Robotron 7000,Ben,SUSP,2022,190.0,16.0,414.l.474186.t.8,2,15.0,True
|
219 |
-
217,30996,Calvin Ridley,False,https://s.yimg.com/iu/api/res/1.2/YiOVcPN_6AWTwPob4gWpRg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/12072022/30996.png,O,"['WR', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.8,Robotron 7000,Ben,,2022,,,,2,10.0,True
|
220 |
-
218,34078,Zamir White,False,https://s.yimg.com/iu/api/res/1.2/4ynGBO1xwnxQipSY6Gszbg--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09022022/34078.png,O,"['RB', 'W/R/T', 'Q/W/R/T']",BN,414.l.474186.t.8,Robotron 7000,Ben,,2022,,,,2,10.0,True
|
221 |
-
219,27369,Brett Maher,False,https://s.yimg.com/iu/api/res/1.2/Jd6XOuB8nwONFYN9ZDnkog--~C/YXBwaWQ9eXNwb3J0cztjaD0yMzM2O2NyPTE7Y3c9MTc5MDtkeD04NTc7ZHk9MDtmaT11bGNyb3A7aD02MDtxPTEwMDt3PTQ2/https://s.yimg.com/xe/i/us/sp/v/nfl_cutout/players_l/09222022/27369.png,K,['K'],K,414.l.474186.t.8,Robotron 7000,Ben,,2022,,,,2,10.0,True
|
222 |
-
220,100020,New York,False,https://s.yimg.com/lq/i/us/sp/v/nfl/teams/1/50x50w/nyj.gif,DT,['DEF'],DEF,414.l.474186.t.8,Robotron 7000,Ben,,2022,,,,2,10.0,True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|