xJawn NHL expected goals

← Players

NSH Ryan O'Reilly

C · 2025-26 · regular season · 81 GP · 1,148 min 5v5 TOI

On-ice xGF% 5v5
50.6%(58th)
On-ice GF / GA 5v5
57 / 45
G / xG 5v5
17 / 14.2
RAPM net xG/60 · 3-season pooled
+0.27
Shooter rating modeled
+0.16(93rd)

On-ice xG shot map

How to read this map

One rink, both ends while Ryan O'Reilly is on the ice: what the team generates on the left, what it concedes on the right. Every attempt is a Gaussian bump of height = its model xG, summed per 60 minutes of ice time (a player's exposure is time, not games). The controls switch the surface (xG heatmapvs league, the league baseline per team-hour at the same strength) and the markers: × goal · on net · missed · small blocked — and own shots narrows the left end's markers to attempts Ryan O'Reilly took.

The page opens at 5v5; empty-net attempts are excluded throughout. The league-spread histograms and the xGF% percentile rank against the other skaters over the display floor at the selected strength — a non-strength filter (rush, period, …) moves the player's markers but keeps that strength's spread as the backdrop. On-ice membership comes from the shift charts; attempts without usable shift coverage are absent from both ends. Blocked-shot membership cannot be cross-checked against the play-by-play, so treat blocked-marker detail as softer than the rest.

on-ice for◀ 5v5 offense
on-ice against5v5 defense ▶
Goals55.9%57
44.1%45
xG50.6%51.5
49.4%50.3
xG/6050.6%2.69
49.4%2.63
Shots49.8%534
50.2%539
Attempts52.6%1,150
47.4%1,037

Rolling on-ice xGF%

Strength splits

On-ice rates are per 60 minutes at that strength (real time-on-ice), own perspective — a skater's PP row is their team's power play while they are out there.

StrengthTOI/gmxGFxGAxGF%xGF/60xGA/60GFGA
5v514.2 51.550.350.6% 2.692.635745
Power play3.3 38.83.591.7% 8.750.79391
Penalty kill2.2 2.121.49.0% 0.717.19316

Isolated impact (RAPM)

The regression-isolated version of the on-ice rates — Ryan O'Reilly's own contribution at 5v5 once teammates, competition, zone starts, score state and home ice are controlled away, relative to league average, per 60. Defense is sign-flipped so positive = good on both axes; Net = Off + Def. The attempts/60 (Corsi) axis is on a ~15× coarser scale and is the more reliable of the two. Single-season RAPM is a rough read, not a ranking — the pooled window is the honest default.

OffDefNet
xG/60 impact +0.16 +0.11 +0.27
attempts/60 impact +1.3 +4.7 +6.0

Modeled shooting

The decontaminated finishing rating from the joint shooter/goalie fit: Ryan O'Reilly's per-shot logit margin above what the chance was worth, multi-season, time-decayed, positive = good — +0.16 (93rd percentile, 4,293 shots informing it). Per-shot quality only: it says nothing about how many attempts a player generates or faces.

On-ice numbers pair the regular-season shot set with shift-chart membership; skaters and goalies under the display floors are fit but not shown. RAPM comes from fit rapm__5f979b40 on flat__joint_structure_xg__08293508 (the joint-xg structural baseline). Ratings come from joint__baseline_xg__bbd50047 (as of 2026-06-14). Both are separate surfaces from the box-score xG model badged in the footer.