-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsearch.json
30 lines (30 loc) · 21.9 KB
/
search.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[
{
"objectID": "about.html",
"href": "about.html",
"title": "About",
"section": "",
"text": "Hello! I’m Tyler Brown, a Statistics & Data Analytics major at the University of Nebraska-Lincoln. Welcome to my sports blog! I’m passionate about data analysis across all sports, with a particular focus on the NFL. Through this blog, I aim to share my insights and explore the fascinating ways data can deepen our understanding of sports."
},
{
"objectID": "posts/Geno-Smith-Going-Under-The-Radar/index.html",
"href": "posts/Geno-Smith-Going-Under-The-Radar/index.html",
"title": "Does Geno Smith deserve to be considered a top tier quarterback?",
"section": "",
"text": "The comeback of Geno Smith has been an interesting story in the NFL the last couple of years. Geno claims he “ain’t write back though” to all the haters that had already written him off from the start of 2023. His 2023 season was a great sight to see if you’re a Seahawks fan like myself. However this begs the question, is Geno continuing this success into 2024? To go even further, does he deserve to be considered a top tier quarterback?\nTo try and answer this question, let’s look at some 2024 passing data.\nFirst, let’s look at simply passing yards. Who is getting the most passing yards through Week 12 of the 2024 season?\n\n\nCode\nlibrary(tidyverse)\nlibrary(rvest)\nlibrary(waffle)\nNFL2024PassingURL1 <- \"https://www.nfl.com/stats/player-stats/\"\nNFL2024PassingURL2 <- \"https://www.nfl.com/stats/player-stats/category/passing/2024/REG/all/passingyards/DESC?aftercursor=AAAAGQAAABlAm4AAAAAAADFleUp6WldGeVkyaEJablJsY2lJNld5SXhOell3SWl3aU16SXdNRFUwTkRFdE5EYzJNaTB3TXpRMExUTmhORFl0TWpZNVpqVmxOV1U0TlRSbElpd2lNakF5TkNKZGZRPT0=\"\n\nNFL2024Passing1 <- NFL2024PassingURL1 |>\n read_html() |>\n html_nodes(xpath = '//*[@id=\"main-content\"]/section[3]') |>\n html_table()\n\nNFL2024Passing2 <- NFL2024PassingURL2 |>\n read_html() |>\n html_nodes(xpath = '//*[@id=\"main-content\"]/section[3]') |>\n html_table()\n\nNFL2024Passing <- bind_rows(NFL2024Passing1, NFL2024Passing2)\n\nTop20NFL2024Passing <- NFL2024Passing |>\n top_n(20, `Pass Yds`)\n\nGeno <- NFL2024Passing |>\n filter(Player == \"Geno Smith\")\n\nLamar <- NFL2024Passing |>\n filter(Player == \"Lamar Jackson\")\n\nJosh <- NFL2024Passing |>\n filter(Player == \"Josh Allen\")\n\nggplot() + \n geom_bar(data=Top20NFL2024Passing, aes(x=reorder(Player, `Pass Yds`), weight=`Pass Yds`), fill=\"lightgrey\") +\n geom_bar(data=Geno, aes(x=reorder(Player, `Pass Yds`), weight=`Pass Yds`), fill=\"#69B140\") +\n geom_bar(data=Lamar, aes(x=reorder(Player, `Pass Yds`), weight=`Pass Yds`), fill=\"#241773\") +\n geom_bar(data=Josh, aes(x=reorder(Player, `Pass Yds`), weight=`Pass Yds`), fill=\"#D50032\") +\n coord_flip() +\n theme_minimal() +\n labs(\n title = \"Geno Smith soars to the top of the NFL in passing yards\",\n subtitle = \"The Seattle QB is behind only one of the MVP front runners\",\n x = NULL,\n y = \"Passing Yards\",\n caption = \"By: Tyler Brown | Source: nfl.com\"\n ) +\n theme(\n plot.title = element_text(face = \"bold\", size = 15),\n plot.subtitle = element_text(size = 12)\n )\n\n\n\n\n\n\n\n\n\nWow! Geno is above tons of big names like Patrick Mahomes, Joe Burrow, and Josh Allen. He sits only 18 yards behind one of the MVP front runners in Lamar Jackson.\nHowever, there is something else that might be playing a role here. Seattle has one of the most pass first offenses in the league. That may contribute to why Geno gets so many yards. Because of that, let’s look at something maybe more indicative of QB ability regardless of the type of offense, touchdown vs interception ratio. We’ll compare Geno to the two MVP front runners, Lamar Jackson and Josh Allen\n\n\nCode\nGenoTDInt <- c(\"Touchdowns\" = 12, \"Interceptions\" = 12, 4)\nLamarTDInt <- c(\"Touchdowns\" = 25, \"Interceptions\" = 3)\nJoshTDInt <- c(\"Touchdowns\" = 18, \"Interceptions\" = 5, 5)\n\niron(\n waffle(\n GenoTDInt,\n rows = 3,\n colors = c(\"#69B140\", \"#002244\",\"white\")\n ) +\n labs(\n title = \"Geno throwing the ball away instead of scoring TDs\",\n subtitle = \"Smith is scoring less and throwing more interceptions than Jackson and Allen \"\n ) +\n theme(\n plot.title = element_text(size = 16, face = \"bold\"),\n axis.title = element_text(size = 10),\n axis.title.y = element_blank(),\n plot.subtitle = element_text(size = 12)\n ),\n waffle(\n LamarTDInt,\n rows = 3,\n colors = c(\"#241773\", \"#FCB514\")\n ),\n waffle(\n JoshTDInt,\n rows = 3,\n colors = c(\"#00338D\", \"#C60C30\",\"white\")\n ) +\n labs(\n x = \"1 square = 1 touchdown or interception\",\n caption = \"By: Tyler Brown | Source: nfl.com\"\n )\n)\n\n\n\n\n\n\n\n\n\nOuch. Not looking good for Geno here. He has an even touchdown to interception ratio. That is not very good. Lamar Jackson and Josh Allen have him beat here by a lot.\nLet’s look at one more thing. How effective is Geno at getting the ball far downfield, but also connecting with his receivers when doing so?\n\n\nCode\nGeno <- NFL2024Passing |>\n filter(Player == \"Geno Smith\")\n\nLamar <- NFL2024Passing |>\n filter(Player == \"Lamar Jackson\")\n\nJosh <- NFL2024Passing |>\n filter(Player == \"Josh Allen\")\n\nAvgYPA <- mean(NFL2024Passing$`Yds/Att`)\nAvgCmpPCT <- mean(NFL2024Passing$`Cmp %`)\n\nggplot() + \n geom_point(data = NFL2024Passing, aes(x = `Yds/Att`, y = `Cmp %`), color = \"grey\") +\n geom_point(data = Geno, aes(x = `Yds/Att`, y = `Cmp %`), color = \"#69B140\") +\n geom_point(data = Lamar, aes(x = `Yds/Att`, y = `Cmp %`), color = \"#241773\") +\n geom_point(data = Josh, aes(x = `Yds/Att`, y = `Cmp %`), color = \"#C60C30\") +\n geom_vline(xintercept = 6.992, color = \"black\",size = 1) +\n geom_hline(yintercept = 64.524, color = \"black\",size = 1) +\n geom_text(aes(x = 6.992, y = max(NFL2024Passing$`Cmp %`) + 0.5, label = \"Average Yards Per Attempt\"),\n color = \"black\", vjust = 0, hjust = 0.55) +\n geom_text(aes(x = max(NFL2024Passing$`Yds/Att`) - 0.5, y = 64.524, label = \"Average Completion Percentage\"),\n color = \"black\",vjust = 1.1, hjust = 0.6) +\n geom_text(data = Geno, aes(x = `Yds/Att`, y = `Cmp %`, label = \"Geno Smith\"),\n color = \"#69B140\", vjust = -1, hjust = 0.5, size = 3.5) +\n geom_text(data = Lamar, aes(x = `Yds/Att`, y = `Cmp %`, label = \"Lamar Jackson\"),\n color = \"#241773\", vjust = -1, hjust = 0.5, size = 3.5) +\n geom_text(data = Josh, aes(x = `Yds/Att`, y = `Cmp %`, label = \"Josh Allen\"),\n color = \"#C60C30\", vjust = -1, hjust = 0.5, size = 3.5) +\n geom_text(aes(x = 8.9, y = 71, label = \"Throwing Long And Connecting\"), \n color = \"grey\", size = 4, fontface = \"bold\") +\n geom_text(aes(x = 8.7, y = 55, label = \"Throwing Long And Not Connecting\"), \n color = \"grey\", size = 4, fontface = \"bold\") +\n geom_text(aes(x = 5.7, y = 55, label = \"Not Throwing Long And Not Connecting\"), \n color = \"grey\", size = 4, fontface = \"bold\") +\n geom_text(aes(x = 5.5, y = 71, label = \"Not Throwing Long But Connecting\"), \n color = \"grey\", size = 4, fontface = \"bold\") +\n theme_minimal() +\n labs(\n title = \"Geno launching it downfield and connecting\",\n subtitle = \"Smith is able to throw it deep and complete passes at a high percentage\",\n x = \"Yards Per Attempt\",\n y = \"Completion Percentage\",\n caption = \"By: Tyler Brown | Source: nfl.com\"\n ) +\n theme(\n plot.title = element_text(face = \"bold\", size = 15),\n plot.subtitle = element_text(size = 12)\n )\n\n\n\n\n\n\n\n\n\nHey, what do you know. He’s pretty good in this category, up in that first quadrant of guys who are able to throw it long and connect with receivers at a high rate. He’s got a better completion percentage than both Jackson and Allen.\nSo what’s the conclusion? It seems that Geno is a pretty good NFL QB. He gets lots of passing yards (even for being in a pass first offense), and has the high completion percentage while throwing it deep to boot. However, he seems to struggle with giving the ball to the other team too much, and with making it to the end zone. It’ll be interesting to see if he can clean up the turnovers and throw some more touchdowns. If he can, he might just earn a spot among the NFL’s top-tier quarterbacks."
},
{
"objectID": "posts/2008-Lions-vs-2017-Browns/index.html",
"href": "posts/2008-Lions-vs-2017-Browns/index.html",
"title": "2008 Lions vs 2017 Browns, which winless team was more awful?",
"section": "",
"text": "0-16, the worst NFL record possible, has only been attained by 2 NFL teams in history. It was done by the Detroit Lions in 2008, and the Cleveland Browns in 2017. I don’t think there’s any argument that both these teams were awful, but the better question is, who was MORE awful.\nTo figure this out, let’s look at some numbers.\nFirst of all, let’s answer a simple question, which team’s offense moved the ball less? Specifically, which team gained the least amount of yardage throughout their respective season?\n\n\nCode\nlibrary(tidyverse)\nlibrary(nflfastR)\nlibrary(patchwork)\nlibrary(waffle)\npbp2008 <- nflfastR::load_pbp(2008)\npbp2017 <- nflfastR::load_pbp(2017)\n\nRushingYards2008 <- pbp2008 |>\n group_by(game_id, home_team, away_team) |>\n summarise(\n home_rushing_yards2008 = sum(rushing_yards[posteam_type == \"home\"], na.rm = TRUE),\n away_rushing_yards2008 = sum(rushing_yards[posteam_type == \"away\"], na.rm = TRUE)\n )\n\ntotal_rushing2008 <- RushingYards2008 |>\n summarise(\n team = home_team,\n total_rushing_yards2008 = sum(home_rushing_yards2008, na.rm = TRUE)\n ) |>\n bind_rows(\n RushingYards2008 |>\n summarise(\n team = away_team,\n total_rushing_yards2008 = sum(away_rushing_yards2008, na.rm = TRUE)\n )\n ) |>\n group_by(team) |>\n summarise(total_rushing_yards2008 = sum(total_rushing_yards2008, na.rm = TRUE)) |>\n arrange(total_rushing_yards2008)\n\naverage_rushing_yards2008 <- mean(total_rushing2008$total_rushing_yards2008)\n\nRushingYards2017 <- pbp2017 |>\n group_by(game_id, home_team, away_team) |>\n summarise(\n home_rushing_yards2017 = sum(rushing_yards[posteam_type == \"home\"], na.rm = TRUE),\n away_rushing_yards2017 = sum(rushing_yards[posteam_type == \"away\"], na.rm = TRUE)\n )\n\ntotal_rushing2017 <- RushingYards2017 |>\n summarise(\n team = home_team,\n total_rushing_yards2017 = sum(home_rushing_yards2017, na.rm = TRUE)\n ) |>\n bind_rows(\n RushingYards2017 |>\n summarise(\n team = away_team,\n total_rushing_yards2017 = sum(away_rushing_yards2017, na.rm = TRUE)\n )\n ) |>\n group_by(team) |>\n summarise(total_rushing_yards2017 = sum(total_rushing_yards2017, na.rm = TRUE)) |>\n arrange(total_rushing_yards2017)\n\naverage_rushing_yards2017 <- mean(total_rushing2017$total_rushing_yards2017)\n\nLions2008RushingYards <- total_rushing2008 |>\n filter(team == \"DET\")\n\nBrowns2017RushingYards <- total_rushing2017 |>\n filter(team == \"CLE\")\n\ncolnames(Lions2008RushingYards)[2] <- 'total_rushing_yards'\ncolnames(Browns2017RushingYards)[2] <- 'total_rushing_yards'\n\n\nBrownsLionsRushingYards <- rbind(Lions2008RushingYards, Browns2017RushingYards)\n\nPassingYards2008 <- pbp2008 |>\n group_by(game_id, home_team, away_team) |>\n summarise(\n home_passing_yards2008 = sum(passing_yards[posteam_type == \"home\"], na.rm = TRUE),\n away_passing_yards2008 = sum(passing_yards[posteam_type == \"away\"], na.rm = TRUE)\n )\n\ntotal_passing2008 <- PassingYards2008 |>\n summarise(\n team = home_team,\n total_passing_yards2008 = sum(home_passing_yards2008, na.rm = TRUE)\n ) |>\n bind_rows(\n PassingYards2008 |>\n summarise(\n team = away_team,\n total_passing_yards2008 = sum(away_passing_yards2008, na.rm = TRUE)\n )\n ) |>\n group_by(team) |>\n summarise(total_passing_yards2008 = sum(total_passing_yards2008, na.rm = TRUE)) |>\n arrange(total_passing_yards2008)\n\naverage_passing_yards2008 <- mean(total_passing2008$total_passing_yards2008)\n\nPassingYards2017 <- pbp2017 |>\n group_by(game_id, home_team, away_team) |>\n summarise(\n home_passing_yards2017 = sum(passing_yards[posteam_type == \"home\"], na.rm = TRUE),\n away_passing_yards2017 = sum(passing_yards[posteam_type == \"away\"], na.rm = TRUE)\n )\n\ntotal_passing2017 <- PassingYards2017 |>\n summarise(\n team = home_team,\n total_passing_yards2017 = sum(home_passing_yards2017, na.rm = TRUE)\n ) |>\n bind_rows(\n PassingYards2017 |>\n summarise(\n team = away_team,\n total_passing_yards2017 = sum(away_passing_yards2017, na.rm = TRUE)\n )\n ) |>\n group_by(team) |>\n summarise(total_passing_yards2017 = sum(total_passing_yards2017, na.rm = TRUE)) |>\n arrange(total_passing_yards2017)\n\naverage_passing_yards2017 <- mean(total_passing2017$total_passing_yards2017)\n\nLions2008passingYards <- total_passing2008 |>\n filter(team == \"DET\")\n\nBrowns2017passingYards <- total_passing2017 |>\n filter(team == \"CLE\")\n\ncolnames(Lions2008passingYards)[2] <- 'total_passing_yards'\ncolnames(Browns2017passingYards)[2] <- 'total_passing_yards'\n\nBrownsLionsRushingYards <- rbind(Lions2008RushingYards, Browns2017RushingYards)\nBrownsLionspassingYards <- rbind(Lions2008passingYards, Browns2017passingYards)\n\nBrownsLionsPassingandRushingYards <- left_join(BrownsLionsRushingYards, BrownsLionspassingYards, by = \"team\")\n\nruahingmean2008 <- mean(total_rushing2008$total_rushing_yards2008)\npassingmean2008 <- mean(total_passing2008$total_passing_yards2008)\nrushingmean2017 <- mean(total_rushing2017$total_rushing_yards2017)\npassingmean2017 <- mean(total_passing2017$total_passing_yards2017)\n\nlong_data <- BrownsLionsPassingandRushingYards |>\n pivot_longer(\n cols = starts_with(\"total_\"),\n names_to = \"Stat Type\",\n values_to = \"Yards\"\n )\n\nggplot() + \n geom_bar(data=long_data, aes(x=reorder(team, Yards), weight=Yards, fill=`Stat Type`)) + \n coord_flip() +\n scale_fill_manual(values = c(\n \"total_rushing_yards\" = \"#4C9B3E\", \n \"total_passing_yards\" = \"sandybrown\"\n ),\n labels = c(\n \"total_rushing_yards\" = \"Total Rushing Yards\", \n \"total_passing_yards\" = \"Total Passing Yards\"\n ),\n name = NULL\n ) +\n theme_minimal() +\n scale_x_discrete(labels = c(\"DET\" = \"2008 Lions\", \"CLE\" = \"2017 Browns\")) + \n labs(\n x = NULL,\n y = \"Yards\",\n title = \"2008 Lions lag behind 2017 Browns in rushing & passing yards\",\n subtitle = \"The '08 Lions total yardage was even worse than the '17 Browns.\",\n caption = \"By: Tyler Brown | Source: nflfastR\"\n ) +\n theme(\n plot.title = element_text(size = 14,\n face = \"bold\"),\n plot.subtitle = element_text(size = 12)\n ) + geom_hline(yintercept = 5762.7035, linetype = \"dashed\", color = \"grey\", size = 1) +\n geom_text(aes(x = 0, y = 5762.7035, label = \"Average of 2008 & 2017\"), \n color = \"darkgrey\", \n vjust = -1.5, hjust = .9, size = 4, fontface = \"bold\")\n\n\n\n\n\n\n\n\n\nThe 2008 Lions gained less rushing, passing, and total yardage than the 2017 Browns, by a decent margin too. 629 yards to be exact. Being around two full games worth of yardage behind another one of history’s worst teams is not a good look for sure.\nBut hey, that’s just offense. Let’s look at a more balanced between offense and defense stat, turnover differential. Who was the worst at both creating turnovers and holding onto the ball?\n\n\nCode\nLions2008Turnovers <- c(\"Turnovers Recovered\" = 20, \"Turnovers Committed\" = 35)\nBrowns2017Turnovers <- c(\"Turnovers Recovered\" = 13, \"Turnovers Committed\" = 37, 5 )\n\niron(\n waffle(\n Lions2008Turnovers,\n rows = 5,\n colors = c(\"#0076B6\", \"#A5ACAF\")\n ) +\n labs(\n title = \"2017 Browns defeated by their turnovers\",\n subtitle = \"Cleveland in '17 had a worse turnover differential than Detroit in '08\"\n ) +\n theme(\n plot.title = element_text(size = 16, face = \"bold\"),\n axis.title = element_text(size = 10),\n axis.title.y = element_blank(),\n plot.subtitle = element_text(size = 12)\n ),\n waffle(\n Browns2017Turnovers,\n rows = 5,\n colors = c(\"#FF3C00\", \"#311D00\",\"white\")\n ) +\n labs(\n x = \"1 square = 1 turnover\",\n caption = \"By: Tyler Brown | Source: nfl.com\"\n )\n)\n\n\n\n\n\n\n\n\n\nLooks like the ’17 Browns are a little worse here. They committed 2 more turnovers, and recovered a WHOPPING 13 less turnovers than the ’08 Lions.\nOkay so the 2017 Browns seem to have been a little more careless, and definitely way too conservative on defense.\nBoth of these are just individual stats though right? Let’s look into straight up how many points each team scored, and how many points each team gave up.\n\n\nCode\nPointsData <- read_csv(\"FiveThirtyEight.csv\")\n\nLessColumnsPointsData <- PointsData |>\n select(event_date, season, tm_name, opp_name, tm_score, opp_score)\n\nPointsDataLionsBrowns <- LessColumnsPointsData |>\n rename(Week = event_date) |>\n filter(\n (season == 2008 & (tm_name == \"Lions\" | opp_name == \"Lions\")) |\n (season == 2017 & (tm_name == \"Browns\" | opp_name == \"Browns\"))\n )\n\nPointsDataLions <- PointsDataLionsBrowns |>\n filter(season == 2008) |>\n mutate(Week = row_number())\n\nPointsDataBrowns <- PointsDataLionsBrowns |>\n filter(season == 2017) |>\n mutate(Week = row_number())\n\nPointsDataLionsNew <- PointsDataLions |>\n mutate(\n Lions_Points_Scored = case_when(\n tm_name == \"Lions\" ~ tm_score,\n opp_name == \"Lions\" ~ opp_score,\n ),\n Lions_Points_Allowed = case_when(\n tm_name == \"Lions\" ~ opp_score,\n opp_name == \"Lions\" ~ tm_score,\n )\n )\n\nChartReadyLionsData <- PointsDataLionsNew |>\n mutate(Team = \"Lions\") |>\n select(Week, Team, Lions_Points_Scored, Lions_Points_Allowed)\n\nPointsDataBrownsNew <- PointsDataBrowns |>\n mutate(\n Browns_Points_Scored = case_when(\n tm_name == \"Browns\" ~ tm_score,\n opp_name == \"Browns\" ~ opp_score,\n ),\n Browns_Points_Allowed = case_when(\n tm_name == \"Browns\" ~ opp_score,\n opp_name == \"Browns\" ~ tm_score,\n )\n )\n\nChartReadyBrownsData <- PointsDataBrownsNew |>\n mutate(Team = \"Browns\") |>\n select(Week, Team, Browns_Points_Scored, Browns_Points_Allowed)\n\nChartReadyLionsData_Long <- ChartReadyLionsData |>\n pivot_longer(cols = c(Lions_Points_Scored, Lions_Points_Allowed), \n names_to = \"Category\", \n values_to = \"Points\")\nChartReadyBrownsData_Long <- ChartReadyBrownsData |>\n pivot_longer(cols = c(Browns_Points_Scored, Browns_Points_Allowed), \n names_to = \"Category\", \n values_to = \"Points\")\n\nLionsLineChart <- ggplot(ChartReadyLionsData_Long, aes(x = Week, y = Points, color = Category)) + \n geom_line() + \n scale_y_continuous(limits = c(0, 50), breaks = seq(0, 50, by = 5)) +\n scale_x_continuous(breaks = 1:16) +\n scale_color_manual(values = c(\"Lions_Points_Scored\" = \"#0076B6\", \n \"Lions_Points_Allowed\" = \"#A5ACAF\"),\n labels = c(\"Points Allowed\", \"Points Scored\")) +\n theme_minimal() +\n labs(title = \"2008 Lions thrashed by huge blowouts\", \n subtitle = \"Detroit in 2008 (top graphic) had a hard time reaching anywhere near their opponent's score,\\nwhile Cleveland in 2017 (bottom graphic) stayed closer\",\n x = NULL, \n y = \"Points\", \n color = \"\") +\n theme(\n plot.title = element_text(\n size = 20,\n face = \"bold\"\n ),\n plot.subtitle = element_text(\n size = 11\n )\n )\n\nBrownsLineChart <- ggplot(ChartReadyBrownsData_Long, aes(x = Week, y = Points, color = Category)) + \n geom_line() + \n scale_y_continuous(limits = c(0, 50), breaks = seq(0, 50, by = 5)) +\n scale_x_continuous(breaks = 1:16) +\n scale_color_manual(values = c(\"Browns_Points_Scored\" = \"#FF3C00\", \n \"Browns_Points_Allowed\" = \"#311D00\"),\n labels = c(\"Points Allowed\", \"Points Scored\")) +\n theme_minimal() +\n labs(caption = \"By: Tyler Brown | Source: nflscraPy\", \n x = \"Week\", \n y = \"Points\", \n color = \"\")\n\nLionsLineChart / BrownsLineChart\n\n\n\n\n\n\n\n\n\nWow, look at that huge gap each game for the Lions. It looks like they were not even competitive most games, just getting hammered a good percentage of the time.\nAnd look at the Browns. Looks like almost every one of their games was pretty tight, implying they were actually competing in a lot of them.\nSo what’s the conclusion here? It looks like the Browns seemed to have thrown away a lot of their games; bad turnover differential and close games, but it seems like the Lions just could never get anything going; low yardage and getting blown out.\nMy conclusion is the 2017 Browns likely made bad decisions and cost themselves a lot of close games, but the 2008 Lions were just simply awful and couldn’t match up with any of their competition. The real losers here?\nThese Team’s Fans…"
},
{
"objectID": "index.html",
"href": "index.html",
"title": "TylerSportsBlog",
"section": "",
"text": "Does Geno Smith deserve to be considered a top tier quarterback?\n\n\n\n\n\n\nNFL\n\n\n\n\n\n\n\n\n\nNov 26, 2024\n\n\nTyler Brown\n\n\n\n\n\n\n\n\n\n\n\n\n2008 Lions vs 2017 Browns, which winless team was more awful?\n\n\n\n\n\n\nNFL\n\n\n\n\n\n\n\n\n\nNov 17, 2024\n\n\nTyler Brown\n\n\n\n\n\n\nNo matching items"
}
]