Kyle Okposo#21

RW with Buffalo, 2016–17 to 2023–24

No. 21Shoots RHeight 6'0"Weight 218 lbsBorn April 16, 1988Hometown St. Paul, MN, USA
On-Ice Impact, 2023–24 5v5
45.4%
xGF% ON ICE
51.3%
CF% ON ICE

On-ice PDO 1.004 (5v5 on-ice shooting plus save percentage). PDO over one season is noisy, it regresses hard toward 1.000, so read it as recent puck luck rather than a skill.

Buffalo's 5v5 xGF% rose most with Greenway (+21.2) and fell most with Thompson (-12.3).

See the full teammate breakdown
Recent Form
Last 10
Last 20
Points
2 to 4
4Hot
7 
Individual xG
0.09 to 0.25
0.25Hot
0.23 
On-Ice xGF%
42.7% to 57.6%
53.8%Steady
52.2% 
Game Score
0.36 to 0.76
0.64Hot
0.55 

Each line is the metric's rolling 10-game value across the last 20 games, so it ends on the Last 10 figure. The dashed line is the player's season average (50% for On-Ice xGF%), with navy shading for time spent above it and gray for below. Gold ticks mark goal games. Descriptive only, small samples swing.

Playoffs

Career With Buffalo

516 games, 8 seasons
103
G
34th all-time
142
A
44th all-time
245
PTS
41st all-time
242
PIM
75th all-time
15:22
TOI/G

All-time is the rank among the 529 skaters with a regular-season game for Buffalo since 1970–71. Ties share a rank.

Season by Season

Chart:
Drag to zoom

These stats don’t share a natural scale, so each line is normalized to its own 0-100% range for shape comparison. Hover a point for its real value.

0112120162017201820192020202120222023SeasonGoalsaging curve

The dashed line is a league-typical aging curve for a forward, scaled to this player's own level. Above it means producing more than a typical player that age; the line falling away faster than the curve means declining faster than the aging curve alone would explain.

SeasonAgeGPGAPTS+/-PIMPen +/-/60PPSHGWGSOGS%FO%TOI/GP/60ixGxG/60GAxCF%FF%GF%xG%PDO
2016–172865192645-724-0.1070215612.2%54.5%18:58
2.19
75th pct
20.1
0.98
80th pct
-1.1
39th pct
47.0%
23rd pct
45.9%49.2%49.6%1.007
2017–182976152944-34400.006021619.3%46.0%17:02
2.04
67th pct
18.0
0.83
64th pct
-3.0
17th pct
46.4%
20th pct
45.0%38.2%43.4%0.976
2018–193078141529-941-0.397021479.5%47.0%13:47
1.62
52nd pct
12.3
0.69
43rd pct
+1.7
77th pct
47.8%
30th pct
47.5%46.9%45.1%0.997
2019–20*315291019-3280.001028211.0%53.5%12:51
1.71
55th pct
8.9
0.80
59th pct
+0.1
55th pct
50.7%
52nd pct
51.1%52.5%53.3%1.006
2020–21*323521113-10+0.37010454.4%54.2%13:53
1.61
52nd pct
4.3
0.54
20th pct
-2.3
23rd pct
44.3%
5th pct
43.3%44.8%42.9%0.998
2021–223374212445-1543-0.2482117412.1%49.7%16:47
2.17
75th pct
15.6
0.75
55th pct
+5.4
92nd pct
47.3%
31st pct
45.7%45.8%44.6%1.003
2022–233475111728-7340.001131507.3%46.9%14:40
1.53
47th pct
16.8
0.91
74th pct
-5.8
3rd pct
52.6%
92nd pct
51.8%45.9%51.2%0.983
2023–243561121022+132-0.2921010611.3%47.6%13:37
1.59
50th pct
10.6
0.77
56th pct
+1.4
75th pct
51.3%
80th pct
51.2%52.4%45.4%1.004
Total516103142245-7524232512102110.1%15:221.85

* Shortened season. Weigh its totals against a full 82-game year with that in mind.

pct under a P/60, xG/60, GAx and CF% figure is where that season ranks, as a percentile, among every Sabres forward season since 2016–17 with at least 12 games; a season under that floor isn't ranked. xG/60, GAx and CF% come from this site's own xG model and shift-chart reconstruction, not an NHL feed; P/60 is from official NHL totals. Higher is better throughout.

Actual vs Expected

One row per season: the gold dot is the expected total, the navy dot is what actually happened.

xGGoals
061218242016–172016–17: 20.1 xG2016–17: 19 Goals (-1.1 vs expected)19 / 20.12017–182017–18: 18.0 xG2017–18: 15 Goals (-3.0 vs expected)15 / 18.02018–192018–19: 12.3 xG2018–19: 14 Goals (+1.7 vs expected)14 / 12.32019–202019–20: 8.9 xG2019–20: 9 Goals (+0.1 vs expected)9 / 8.92020–212020–21: 4.3 xG2020–21: 2 Goals (-2.3 vs expected)2 / 4.32021–222021–22: 15.6 xG2021–22: 21 Goals (+5.4 vs expected)21 / 15.62022–232022–23: 16.8 xG2022–23: 11 Goals (-5.8 vs expected)11 / 16.82023–242023–24: 10.6 xG2023–24: 12 Goals (+1.4 vs expected)12 / 10.6

Shot Map

Every shot attempt across every season shown here, to scale, always attacking right. Pick one season to see that year alone, or leave it on Career for the full picture.

xG range
Shot on goal (size = xG)GoalMissed shot×Blocked shot

With or Without You

Buffalo's 5v5 shot-attempt (CF%) and expected-goal (xGF%) share with Okposo on the ice, split by whether each teammate was out there too. Δ is the with-minus-apart gap: a positive number means the pair drove play better together than Okposo did without that teammate. That gap is always measured from the named player's side, so the same pair can read positive on one player's table and negative on the other's. 2023–24 regular season, minimum 20:00 together. Together counts every 5v5 second the two share, whoever else is on the ice, so a pair's time and xGF% here differ slightly from the Line Combinations table, which counts only the seconds that exact pair or trio was the unit.

Teammate
TOGETHER
OKPOSO APART
IMPACT
TOI TogetherCF%xGF%CF%xGF%Δ CF%Δ xGF%
Krebs
294:5852.0%43.7%
50.7%46.5%
+1.3-2.8
Girgensons
275:0151.3%39.1%
51.3%49.0%
0.0-9.9
Dahlin
231:4953.5%47.2%
50.0%44.6%
+3.5+2.6
Clifton
225:4846.7%40.6%
53.3%48.0%
-6.6-7.4
Power
220:2953.9%43.9%
49.9%46.2%
+4.0-2.3
Jokiharju
185:5248.3%43.7%
52.4%46.1%
-4.1-2.4
Johnson
145:3250.4%45.7%
51.5%45.3%
-1.1+0.4
Johnson
144:0653.5%50.3%
50.7%44.2%
+2.8+6.1
Robinson
127:4354.3%47.7%
50.5%44.7%
+3.8+3.0
Samuelsson
126:1453.1%50.5%
50.9%44.3%
+2.2+6.2
Skinner
112:1547.1%38.7%
52.2%47.0%
-5.1-8.3
Jost
91:5644.1%43.3%
52.1%45.6%
-8.0-2.3
Mittelstadt
89:3453.8%49.0%
50.9%44.8%
+2.9+4.2
Olofsson
79:4055.4%63.5%
50.7%43.2%
+4.7+20.3
Thompson
73:2844.9%34.6%
52.2%46.9%
-7.3-12.3
Greenway
71:1652.6%64.5%
51.1%43.3%
+1.5+21.2
Bryson
54:0248.0%44.0%
51.6%45.5%
-3.6-1.5
Cozens
35:3450.6%41.9%
51.3%45.8%
-0.7-3.9
Benson
29:1465.2%54.9%
50.5%44.9%
+14.7+10.0

Shift Rhythm Profile

How Okposo's shift length lines up with on-ice results, 2023–24 regular season. A shift under 0:30 is a quick change, usually right off a whistle. 0:30 to 0:45 is a short shift and 0:45 to 1:00 a typical one. 1:00 or more is a long shift, more likely during a delayed line change, a d-zone lockdown, or a penalty kill that ran long. Shift length is an outcome before it is a cause: a shift runs long because the unit could not change. Most of a long shift is ordinary play, though; the stretch past the one-minute mark is where a unit is really pinned, and each game page counts that time on its own. Empty-net goals against are left out.

119 of 218 of Okposo's shifts over a minute were hemmed-in shifts (mostly even strength, more than 60 seconds of unbroken play).

Shift LengthShiftsCF%xG%GFGA
Quick (<0:30)22146.2%49.9%1514
Short (0:30-0:45)29254.9%42.2%55
Typical (0:45-1:00)36052.8%58.0%115
Long (1:00+)21850.8%44.3%17
0:46
AVG SHIFT
121
PP SHIFTS
111
PK SHIFTS
+1s
LONG-CHANGE GAP
119
HEMMED-IN SHIFTS
22
SHORT-REST SHIFTS