NFL offense · 2015–2025 · 11 seasons

Run ItBack

Over eleven seasons, NFL offenses threw less, ran more, and handed a growing share of the run game to their quarterbacks.

Passing yards per team-game
−13.2%

From 259.1 in 2015 to 224.9 in 2025, the lowest of the period

▶ Run the passing play
Rushing yards per team-game
+7.6%

108.7 → 117.0, as yards per carry climbed

▶ Run the rushing play
QB share of rushing yards
15.2%

in 2025, up from 11.8% in 2015

▶ Run a QB scramble
Scroll
The short version

Summary

This report analyzes 66,228 game-by-game stat lines for every quarterback, running back, wide receiver and tight end who appeared in an NFL game from the 2015 through 2025 seasons: 1,900 players on 32 teams across 3,028 regular-season and playoff games, drawn from the open-source nflverse project. It measures how offensive production changed by season, position, team and venue. The main finding is that the league now passes less. Passing yards per team-game fell 13.2%, and 300-yard passing games dropped from 132 to 68. Rushing rose to 117.0 yards per team-game, and quarterbacks carried more of it: their share of rushing yards grew from 11.8% to 15.2%. Offenses also gave the ball away less often and were sacked more often. Home teams out-gained visitors in every season except 2020, when most stadiums were closed to fans.

66,228
Player-games
One row = one player’s stat line in one game
1,900
Players
QBs, RBs, WRs and TEs with at least one game
3,028
Games
32 teams, regular season + playoffs
11
Seasons
2015–2025; 16 games/team through 2020, 17 after
2.17M
Offensive yards
Passing + rushing yards, all games
14,725
Touchdowns scored
Rushing + receiving + return TDs
▶ Watch a touchdown
Field of play · interactive

Every trend, run as a play

Pick a play and a season. The plays run on that season’s real league averages. A run gains exactly the league’s yards per carry. A completed pass gains exactly its yards per attempt. The faint lines behind a play are one route per pass attempt (or one lane per carry) in an average team-game. Hover a yard line, or click a player for that position’s numbers.

Motion is off: showing the play as a diagram
Seasonhover to preview · click to lock
Your call

Before you read: draw how you think passing changed

In 2015, NFL teams averaged 259.1 passing yards per game. Drag across the chart to sketch where you think that number went over the next ten seasons, then reveal the real line.

Keyboard: focus the chart, use ←/→ to pick a season and ↑/↓ to set it, and Enter to reveal.

Passing yards per team-game, regular season

Your guess vs. the data

I. The air game

01Passing volume

Passing volume fell to its lowest level of the period in 2025

In 2015, the average NFL team threw for 259.1 passing yards per game. By 2025 that figure was 224.9, down 13.2% and the lowest of the 11 seasons. 2015 was the high point.

The decline is mostly about volume, not efficiency. Pass attempts fell from 35.7 to 32.0 per team-game (−10.3%), while yards per attempt moved only from 7.25 to 7.02. Teams are simply choosing to throw less.

259.1pass yds / team-game, 2015
224.9pass yds / team-game, 2025
32.0attempts / team-game in 2025

Passing yards per team-game, regular season

Σ passing yards ÷ team-games played, by season

Note: y-axis does not start at zero. Passing yards are gross (sack yardage not subtracted).

Show the numbers
02Big passing games

The 300-yard passing game has nearly been cut in half

Quarterbacks posted 132 regular-season games of 300 or more passing yards in 2015. In 2025 they managed 68, a 48.5% drop, even though the schedule grew from 16 to 17 games per team in 2021.

As a share of all team-games, a 300-yard passer went from roughly one game in four (25.8%) to one in eight (12.5%). Across the whole period there were 1,206 such games.

132300-yd games, 2015
68300-yd games, 2025
12.5%of team-games in 2025

Regular-season games with 300+ passing yards by one player

Count of player-games with passing_yards ≥ 300

Hover a column for the rate per team-game.

Show the numbers
03Pass protection

Quarterbacks are getting sacked more often

Fewer throws have not meant cleaner pockets. The sack rate (sacks per dropback, where a dropback is a pass attempt or a sack) rose from 6.09% in 2015 to 6.87% in 2025, peaking at 7.15% in 2023.

Comparing five-season blocks smooths out year-to-year noise: 6.33% of dropbacks ended in a sack in 2015–2019, against 6.76% in 2021–2025. Pressure on the passer is one plausible reason teams now lean on the run and on mobile quarterbacks (findings 5 and 6).

6.09%sack rate, 2015
7.15%peak, 2023
6.87%sack rate, 2025

Sack rate by season, regular season

Σ sacks ÷ (Σ pass attempts + Σ sacks)

Show the numbers
04Ball security

Offenses gave the ball away less than ever in 2025

Interceptions plus lost fumbles by skill-position players fell from 1.43 per team-game in 2015 to 1.14 in 2025, the lowest of any season in the data.

Both parts improved. The interception rate slipped from 2.38% of pass attempts to 2.18%. Lost fumbles dropped from 0.58 to 0.44 per team-game, a 23.6% decline.

1.14giveaways / team-game, 2025
2.18%interception rate, 2025
0.44fumbles lost / team-game

Giveaways per team-game, regular season

(Σ interceptions thrown + Σ fumbles lost) ÷ team-games

Note: y-axis does not start at zero. Fumbles by non-skill players (e.g. linemen, returners listed at other positions) are not in the dataset.

Show the numbers

II. The ground game

05Rushing

The run game gained ground, and got more efficient doing it

Rushing yards per team-game climbed from 108.7 in 2015 to 117.0 in 2025 (+7.6%), peaking at 121.5 in 2022.

Teams did not run much more often: carries per team-game barely moved (26.3 → 26.8). What changed is what each carry produced, with yards per carry rising from 4.13 to 4.36. The number of 1,000-yard rushers grew from 7 to 17, though the extra 17th game makes that milestone easier to reach after 2020.

117.0rush yds / team-game, 2025
4.36yards per carry, 2025
171,000-yd rushers, 2025

Rushing yards per team-game, regular season

Σ rushing yards ÷ team-games played, by season

Note: y-axis does not start at zero.

Show the numbers
06Quarterbacks

Quarterbacks became a bigger part of the run game

In 2015, quarterbacks gained 11.8% of all rushing yards by skill-position players. By 2024 that share had reached 16.9%, and in 2025 it stood at 15.2%.

In raw terms, QB rushing yards rose from 6,562 to 9,686 (+47.6%), topping out at 11,015 in 2024. QB carries grew from 1,624 to 2,215. These counts include designed runs, scrambles and kneel-downs (which count as carries with negative yards).

11.8%QB share of rush yds, 2015
16.9%peak, 2024
9,686QB rushing yards, 2025

Quarterbacks’ share of rushing yards, regular season

Σ QB rushing yards ÷ Σ rushing yards by all QBs, RBs, WRs and TEs

Note: y-axis does not start at zero.

Show the numbers
07Target share

Tight ends reclaimed targets as running backs lost them

Wide receivers still see most of the targets (58.0% in 2025), but the balance behind them shifted. Tight ends’ share fell to 20.1% in 2018, then climbed to 24.0% in 2025, the highest of the period.

Running backs moved the other way. They drew 21.7% of targets in 2017, but only 17.4% in 2024 and 18.0% in 2025. The running back of this era gains more on the ground (finding 5) and catches fewer passes.

24.0%TE share, 2025
18.0%RB share, 2025
58.0%WR share, 2025

Share of targets by position, regular season

Σ targets for each position ÷ Σ targets for all four positions

    QB targets (trick plays) are under 0.2% in every season and are too thin to see.

    Show the numbers

    III. Where & who

    08Home vs away

    Home offenses out-gain visitors, except in 2020, the season without crowds

    Across all 11 regular seasons, offenses averaged 364.5 yards per game at home and 352.5 on the road, a home edge of 11.9 yards. They also scored 2.54 touchdowns per game at home against 2.31 away.

    That edge showed up in every season but one. In 2020, when most stadiums were closed to fans because of COVID-19, visiting offenses averaged 377.8 yards to the home side’s 369.0. The largest home edge came in 2023 (+22.6).

    +11.9home yds/game edge, all seasons
    −8.8home edge in 2020
    +22.6largest edge, 2023

    Home minus away offensive yards per team-game

    (passing + rushing yards) at home − on the road; regular season

    Above zero = home offenses gained more.

    Show the numbers
    09Teams

    Kansas City Chiefs produced the most yards, by the slimmest of margins

    Over 181 regular-season games each, the Kansas City Chiefs averaged 382.9 offensive yards per game, just ahead of TB (382.7). The league average was 358.5.

    At the bottom, the New York Jets averaged 320.1, a gap of 62.8 yards per game to the top. That is roughly one long touchdown drive, every week, for 11 years. The best single season belonged to DAL in 2019 (440.9).

    382.9KC, yds / game
    358.5league average
    320.1NYJ, yds / game
    Head-to-headPick any two teams
    VS

    2015–2025 regular season, per team-game. Same numbers as the chart.

    Offensive yards per game by team, 2015–2025

    (Σ passing + Σ rushing yards) ÷ team-games; regular season; ranked

    Top & bottom team All others

    Franchises that relocated are shown under their current name (Raiders, Chargers, Rams).

    Show the numbers
    10Fantasy points

    Quarterbacks are the most dependable fantasy scorers

    Measured in PPR fantasy points per player-game, quarterbacks averaged 14.04. That is 64% more than wide receivers (8.55), with running backs (8.46) and tight ends (6.24) further behind.

    The shape of the distribution matters as much as the average. The QB median (14.1) sits right on the mean, so a typical QB game looks like an average one. For RBs and WRs the medians (6.2 and 6.4) sit far below the means, pulled up by a few big games. QBs hit 20+ points in 25.6% of games, versus 9.7% for RBs, 9.3% for WRs and 3.9% for TEs.

    14.04QB avg PPR / game
    8.55WR avg PPR / game
    25.6%QB games with 20+ pts

    PPR fantasy points per player-game, by position

    Regular season, games where the player recorded a stat; percentiles of the distribution

    Show the numbers
    11Players

    Derrick Henry is the era’s yardage leader

    No player gained more scrimmage yards (rushing + receiving) in the 2015–2025 regular seasons than Derrick Henry: 14,819 yards in 152 games with a recorded stat. Christian McCaffrey is second with 12,979, and he needed only 112 games. His 115.9 yards per game is the best rate in the top 10.

    The top 10 is split between 4 running backs, 5 wide receivers and 1 tight end. Durable receivers can pile up totals over many seasons, while backs need fewer games to get there.

    Most regular-season scrimmage yards, 2015–2025

    Σ rushing yards + Σ receiving yards per player; teams in order played for

    Headshots: NFL via nflverse. Initials are shown if an image is unavailable.

    Show the numbers
    The moment

    Six points, by the numbers

    Touchdown.
    14,725touchdowns scored, 2015–2025, all games

    The play is illustrative. The statistic is real, from the same data as the rest of this report.

    Data & methodology

    How these numbers were made

    Every figure on this page is computed by one script, analysis/analysis.py, from the cleaned dataset in this project’s repository. The same file feeds the charts, so the text and the graphics cannot disagree. The interactive dashboard recomputes the same measures in your browser, and a test script checks that both pages agree.

    1Data source

    Weekly player statistics from the nflverse open-data project (the same data returned by nflreadr::load_player_stats()), downloaded 28 September 2026. nflverse compiles NFL play-by-play into per-player, per-game box scores. NFL data belongs to its respective owners.

    2What one row is

    One player’s stat line in one game: for example, Patrick Mahomes in Week 5 of 2023. The file has 66,228 rows and 40 columns, covering 1,900 players, 32 teams and 3,028 games. A player only has a row for games where he appeared in the stat sheet. Weeks he didn’t play are absent, not zero.

    3Time period

    The 2015 through 2025 NFL seasons (11 complete seasons), regular season and playoffs. The 2026 season is excluded because it is still in progress. Teams played 16 regular-season games through 2020 and 17 from 2021, so seasons are compared per team-game, not by raw totals.

    4Cleaning

    • Combined 11 season files with an identical schema (199,868 raw rows × 150 columns), and kept 40 columns.
    • Added home_away from the game ID, mapping historic team codes (OAK→LV, SD→LAC, STL→LA).
    • Added team name, conference and division; derived scrimmage yards, total yards and total TDs; converted sack yards to positive numbers.
    • Validated the result: no duplicate player-games, no missing values, completions ≤ attempts, receptions ≤ targets.

    5Rows removed & excluded

    • 236 rows removed with no player ID. These are team-level placeholder rows, not players.
    • 133,404 rows removed for defensive, special-teams and offensive-line players. Those positions almost never record offensive statistics, and the project studies offensive production.
    • 2026 season not loaded, because it was incomplete at download time.
    • Kept but flagged: 6,530 rows where a player appeared but recorded no offensive stat. They add zero to totals and are excluded from per-player-game averages and medians.
    • Postseason rows (2,841) are kept in the data and the dashboard. The report’s findings use the regular season only (63,387 rows), because playoff length differs by team and changed in 2020.

    6How every measure is calculated

    Rates are always a ratio of sums, never an average of per-game ratios, so big and small games are weighted by their volume. A team-game is one team’s side of one game: 512 per regular season through 2020, 544 from 2021 (542 in 2022, when one game was cancelled).

    MeasureFormulaUsed in
    Per team-gameΣ stat ÷ number of distinct (game, team) pairsFindings 1, 4, 5, 8, 9; dashboard
    Offensive yardsΣ passing_yards + Σ rushing_yardsFindings 8, 9; KPIs. Receiving yards are not added, because they duplicate passing yards.
    Touchdowns scoredΣ (total_tds − passing_tds)= rushing + receiving + return TDs; passing TDs would double count receiving TDs.
    300-yard gamescount of rows with passing_yards ≥ 300Finding 2; rate = count ÷ team-games
    Yards per attemptΣ passing_yards ÷ Σ attemptsFinding 1
    Yards per carryΣ rushing_yards ÷ Σ carriesFinding 5
    1,000-yard rushersplayers with Σ rushing_yards ≥ 1,000 in a regular seasonFinding 5
    QB rushing shareΣ rushing_yards (QB) ÷ Σ rushing_yards (all four positions)Finding 6
    Target shareΣ targets (position) ÷ Σ targets (all)Finding 7
    Interception rateΣ interceptions ÷ Σ attemptsFinding 4
    Giveaways per team-game(Σ interceptions + Σ fumbles_lost) ÷ team-gamesFinding 4
    Sack rateΣ sacks ÷ (Σ attempts + Σ sacks)Finding 3
    Home edgeoffensive yards per home team-game − per away team-gameFinding 8
    Average / median per player-gamemean / median of the stat over rows where no_stats_flag = FalseFinding 10; dashboard
    Percentiles10th, 25th, 50th, 75th, 90th percentile (linear interpolation)Finding 10
    Scrimmage yardsΣ rushing_yards + Σ receiving_yardsFinding 11; ranking = sort descending
    Completion % / catch rateΣ completions ÷ Σ attempts; Σ receptions ÷ Σ targetsDashboard
    % change(last ÷ first − 1) × 100Throughout
    Draw-it scoremean of |your guess − actual| over the seasons you drew“Your call”; head-to-head gap = yds/game difference × 181 games
    Animated playsrun gain = season yards per carry; completion gain = season yards per attempt; faint traces = round(attempts or carries per team-game); sack tag = 1 in round(100 ÷ sack rate) dropbacksField of Play, play insets, touchdown moment. Formations and routes are illustrative; every number shown on them is data
    3D column heightvalue ÷ highest team value (from zero); zoomed: (value − min) ÷ (max − min)Dashboard 3D stadium; exact values in tooltips and the table

    7Limitations

    • Only QBs, RBs, WRs and TEs are included. Team totals therefore leave out the rare offensive stat by another position (for example, a trick-play pass by a punter). Official team statistics will differ slightly.
    • Passing yards are gross (sack yardage is not subtracted), unlike the NFL’s official net passing figure.
    • Teams are shown under their current franchise code for all years (LV = Oakland Raiders through 2019; LAC = San Diego through 2016; LA = St. Louis in 2015).
    • These are descriptive trends. The report does not claim to explain why they happened.
    Your turn

    Explore the data yourself

    Filter all 66,228 player-games by season, team, position, conference, venue, season type or player. Switch the stat and the breakdown, and check every number in the table.

    • 7 filters with one-click reset
    • 6 live summary numbers
    • 6 interactive charts, including a 3D stadium
    • Click any bar to filter · shareable links
    • Sortable, searchable data table
    Open the dashboard →