DOWN X DOWN › players › compare
Season over · final
2025
2025 season · final Every snap of the 2025 season, kept as it ended.Back to 2026 →

2025 season · compare · wide receivers

Compare players

Two or three players of the same position, side by side: where each one grades against the league, where the ball finds each of them, and how their weeks line up.

146 in the league pool
Who · up to three, same position groupStart over
84
Kendrick BourneWR · 49ers · graded
✕
10
Khalil ShakirWR · Bills · graded
✕

The address bar is the share link. Copy it, text it, post it: whoever opens it sees the same players. The Compare button on player pages builds on this set until you start over or switch positions.

Where they rank · among 146 wide receivers with 15 targets+League percentiles
Kendrick BourneKhalil Shakir
Target shareof team targets
11%35th
21%79th
Depth of targetair yards per target
11.043rd
3.72nd
After the catchyards per reception
4.566th
7.597th
Catch ratereceptions per target
70%80th
76%93rd
EPA per target
+0.3974th
+0.0829th
First downsper target
51%93rd
29%20th
Drop ratedrops per target, lower is better
11%4th
3%59th
Yards per game
34.455th
44.970th

Each bar is the league pool; the markers are the players. Right is better, the dashed line is the median. The best value in each row is marked green.

Playstyle · how each is used, against the league's wide receiversamong 146 wide receivers
Kendrick BourneKhalil Shakir
KendrickNot the red-zone optionPlay-action target
KhalilScreen gameYards after the catchRarely deep
Deep sharetargets 20+ yards downfield
13%28th
4%5th
Screensshare of his targets
2%31st
26%98th
Middle of the fieldtargets between the numbers
20%53rd
27%78th
After the catchshare of his yards after the catch
30%51st
72%98th
Third-down shareof team targets on 3rd down
8%33rd
26%89th
Red-zone shareof team targets inside the 20
2%9th
22%89th
Motiontargets with pre-snap motion
58%62nd
54%52nd
Play actiontargets off play action
27%85th
8%9th

Every trait is a share of his own targets, so volume does not move it. Each bar is the league's qualifying wide receivers; the markers are the players and the thin line is the median. Styles are not grades: a high or low share describes the role, not how well he plays it. The tags are each player's traits furthest from the middle.

The shape · percentile radarBigger and rounder is more complete
Target shareDepthYACCatch rateEPA / tgtFirst downsDropsYds / game
Where he wins · EPA per target by lane and depthSame scale across
Kendrick Bourne
Loading…
Khalil Shakir
Loading…

Green cells turn targets into points, red cells lose them. Cells with one target are left grey.

Where the EPA comes from · the season split by what happened on his playsReceiving EPA

Kendrick Bourne gets the most from the ball in the air (+27.3 EPA), Khalil Shakir gets the most after the catch (+73.8 EPA), and Khalil also gives the most back on targets he does not catch (−22.1).

Kendrick Bourne+20.5
Khalil Shakir+7.5
Air yardsAfter the catchIncompletionsInterceptionsTwo-point tries
PartKendrickKhalil
Air yardson catches+27.3+0.52 a target · 77th−37.6−0.40 a target · 2nd
After the catch+14.8+0.28 a target · 50th+73.8+0.78 a target · 99th
Incompletionstargets not caught−12.7−0.24 a target · 80th−22.1−0.23 a target · 82nd
Interceptionswhen targeted−8.9−0.17 a target · 30th−4.7−0.05 a target · 68th
Two-point triesnot in the rates–−1.9
Total+20.553 targets+7.595 targets

Every play is split by what happened: completions at the catch into air yards and yards after the catch (nflverse's air EPA), the cost of the ones that fell incomplete or were picked. Bars share one scale, gains right of the line and losses left. The rate is per target, with its percentile among the league's qualifying wide receivers; the best rate in each row is green.

Where the ball finds them · same scale, same fieldloading plays

Kendrick Bourne

Loading…

Khalil Shakir

Loading…

Targets placed by air yards and side of the field, from each team's play file.

On one field · every target, same fieldFilled is caught, a ring is not
Loading…
Depth butterfly · K.Bourne and K.ShakirSolid is caught
Loading…

Back to back by depth band. The widest band is where the offense goes to him; the gap between solid and faded is where it misses.

The race · cumulative yardsFlat steps are byes
Week by week · groupedSame Sunday, side by side
The shape of their seasons · each one's last 3 games, week by weekWeeks 1 to 18
Kendrick BourneKhalil Shakir

Targetslast 3 games

27
123456789101112131415161718
Kendrick 2.3Khalil 5.7

Rec yardslast 3 games

754
123456789101112131415161718
Kendrick 17.3Khalil 44.7

EPA / targetlast 3 games

-0.35+0.75
123456789101112131415161718
Kendrick -0.55Khalil +0.09

aDOTlast 3 games

6.314.6
123456789101112131415161718
Kendrick 10.9Khalil 3.4

Each line is a player's trailing 3 games (rates are pooled over the games, not averaged); the faint dots are single games. The shaded band is the league's middle half of single games at the position, the dashed line its median. A line that climbs out of the band is a role getting bigger.

Floor and ceiling · boom, solid or dud, week by weekBoom 54+ · dud under 7
K.Bourne
1Wk 132Wk 238Wk 317Wk 4142Wk 5142Wk 614Wk 744Wk 834Wk 919Wk 100Wk 110Wk 120Wk 1314Wk 1417Wk 1527Wk 1625Wk 170Wk 1819Wk 1920Wk 2021Wk 2122Wk 22
34 ± 43
K.Shakir
64Wk 112Wk 245Wk 369Wk 445Wk 533Wk 67Wk 788Wk 843Wk 958Wk 10-3Wk 11110Wk 125Wk 1316Wk 1465Wk 1534Wk 1635Wk 1718Wk 1819Wk 1920Wk 2021Wk 2122Wk 22
45 ± 29

Thresholds are the quartiles of every game week by qualified wide receivers this season (2044 player weeks). The right column is the average week and its swing.

Fantasy · points, rank and range, week by week
StandardK.BourneK.Shakir
Points a game3.4WR765.9WR45
Season55.1WR7494.4WR42
Most weeks0.0–3.83.3–9.0
Booms · busts2 · 1412+ · under 52 · 712+ · under 5
Half PPRK.BourneK.Shakir
Points a game4.6WR768.2WR42
Season73.6WR69130.4WR38
Most weeks0.0–5.84.8–12.5
Booms · busts2 · 1416+ · under 6.51 · 516+ · under 6.5
PPRK.BourneK.Shakir
Points a game5.8WR7210.4WR39
Season92.1WR68166.4WR36
Most weeks0.0–7.46.3–14.5
Booms · busts1 · 1420+ · under 81 · 520+ · under 8

Ranks are among players at each one's own position. A missing bar is a week he did not score: a bye or a missed game. The format you pick is remembered on this device.

Week by week · aligned
WeekK.BourneK.Shakir
Wk 1·64
Wk 23212
Wk 33845
Wk 41769
Wk 514245
Wk 614233
Wk 714·
Wk 84488
Wk 93443
Wk 101958
Wk 11·-3
Wk 12·110
Wk 1305
Wk 14·16
Wk 151765
Wk 162734
Wk 172535
Wk 180·
Season551719

Rows are league weeks, so byes and missed games show as gaps. The best value each week is marked green.

Season stats · side by side, with league rank
SeasonK.BourneK.Shakir
Targets5395
Receptions3772
Yards551719
Touchdowns04
Target share11%95th21%31st
Depth of target11.084th3.7144th
After the catch4.550th7.55th
Catch rate70%29th76%10th
EPA per target+0.3939th+0.08104th
First downs51%10th29%118th
Drop rate11%140th3%60th
Yards per game34.466th44.945th
Careers · receiving yards a game, season by seasonRegular season
Kendrick BourneKhalil Shakir
2550
20172019202120232025*
PlayerGRecYdsTDYds/gBest seasonThis season
Kendrick Bourne2017 to 2025 · 9 seasons1243294,2652234.42021: 80047.1 a game39.4above his career rate
Khalil Shakir2022 to 2025 · 4 seasons571972,3121140.62024: 82154.7 a game44.9above his career rate

Regular season only, from each player's career file. * 2025 is through Week 22; its dot is hollow because the season is not over. "This season" compares this year's rate with his earlier seasons. Hover a dot for the season's line.