On-ice results
5v5 Corsi For % (CF%) Leaders
2023-24All situationsThrough 82 team games
Corsi For percentage is the share of all shot attempts (goals, saves, misses and blocks) that went toward the opponent's net while a skater was on the ice. It is the oldest possession proxy in hockey analytics and still the fastest to stabilise, because attempts happen about ten times as often as goals.
Attempts are counted from the NHL play-by-play and credited to every skater on the ice using the shift charts, at 5-on-5 by default.
Leader in 2023-24: Matthew Tkachuk (FLA), 66.1% CF%.
5v5 CF% leaderboard
| # | Player | Team | |||||
|---|---|---|---|---|---|---|---|
| 1 | Matthew TkachukFFLA | FLA | 66.1% | 1,492 | 89.3 | 45.9 | 100%▲2.7 |
| 2 | Zach HymanFEDM | EDM | 65.3% | 1,560 | 85.3 | 45.4 | 98%▼1.4 |
| 3 | Carter VerhaegheFFLA | FLA | 65.0% | 1,365 | 86.2 | 46.5 | 73%▲1 |
| 4 | Stefan NoesenFCAR | CAR | 64.9% | 961 | 75.4 | 40.8 | 0.1% |
| 5 | Evan BouchardDEDM | EDM | 64.8% | 1,863 | 80.1 | 43.5 | 100% |
| 6 | Matt BoldyFMIN | MIN | 64.5% | 1,418 | 82.4 | 45.4 | 100% |
| 7 | Connor McDavidFEDM | EDM | 64.4% | 1,623 | 82.8 | 45.7 | 100%▲1.5 |
| 8 | Artemi PanarinFNYR | NYR | 64.2% | 1,650 | 85.1 | 47.5 | 98%▼1.2 |
| 9 | Andrei SvechnikovFCAR | CAR | 64.0% | 1,002 | 83.7 | 47.1 | 97%▲8.5 |
| 10 | Tyler ToffoliFNJD/WPG | NJD/WPG | 64.0% | 1,340 | 83.9 | 47.3 | 38%▼17 |
| 11 | Jack HughesFNJD | NJD | 63.6% | 1,300 | 81.6 | 46.7 | 100% |
| 12 | Nathan MacKinnonFCOL | COL | 62.8% | 1,871 | 82.7 | 49.1 | 100%▲0.8 |
| 13 | Andrei KuzmenkoFVAN/CGY | VAN/CGY | 62.7% | 1,072 | 76.6 | 45.5 | 11%▲9.8 |
| 14 | Jake GuentzelFPIT/CAR | PIT/CAR | 62.7% | 1,341 | 86.6 | 51.5 | 100% |
| 15 | Teuvo TeravainenFCAR | CAR | 62.5% | 1,247 | 72.6 | 43.6 | 13%▲8.6 |
| 16 | Evan RodriguesFFLA | FLA | 62.5% | 1,213 | 77.1 | 46.3 | 8.3%▲6.5 |
| 17 | Michael BuntingFCAR/PIT | CAR/PIT | 62.5% | 1,271 | 79.4 | 47.7 | 4.5%▲1.8 |
| 18 | Jack DruryFCAR | CAR | 62.4% | 909 | 70.1 | 42.1 | 5.6%▲5.4 |
| 19 | Kirill KaprizovFMIN | MIN | 62.4% | 1,618 | 79.5 | 47.8 | 98%▼0.8 |
| 20 | Brady TkachukFOTT | OTT | 62.3% | 1,551 | 82.4 | 49.8 | 100%▲2.2 |
| 21 | Jonathan DrouinFCOL | COL | 62.3% | 1,437 | 78.3 | 47.4 | 0.5% |
| 22 | Quinn HughesDVAN | VAN | 62.3% | 2,024 | 73.5 | 44.6 | 100% |
| 23 | Mats ZuccarelloFMIN | MIN | 62.2% | 1,304 | 78.3 | 47.5 | 50%▲28 |
| 24 | Jason RobertsonFDAL | DAL | 62.1% | 1,503 | 76.4 | 46.6 | 100%▲0.5 |
| 25 | Aleksander BarkovFFLA | FLA | 62.1% | 1,433 | 78.6 | 48.1 | 97%▲7.2 |
| 26 | Sam BennettFFLA | FLA | 61.9% | 1,146 | 81.6 | 50.3 | 83%▲4 |
| 27 | Martin NecasFCAR | CAR | 61.8% | 1,336 | 77.5 | 47.9 | 100%▲1.3 |
| 28 | Kevin FialaFLAK | LAK | 61.8% | 1,479 | 72.9 | 45.1 | 67%▼8.4 |
| 29 | Brandon MontourDFLA | FLA | 61.8% | 1,548 | 76.7 | 47.5 | 83%▲10 |
| 30 | Filip ForsbergFNSH | NSH | 61.7% | 1,550 | 80.6 | 49.9 | 99%▲1.4 |
| 31 | Sam ReinhartFFLA | FLA | 61.5% | 1,665 | 77.3 | 48.3 | 99% |
| 32 | Sebastian AhoFCAR | CAR | 61.4% | 1,531 | 74.2 | 46.6 | 99%▲0.9 |
| 33 | Arthur KaliyevFLAK | LAK | 61.4% | 602 | 73.5 | 46.3 | — |
| 34 | Tommy NovakFNSH | NSH | 61.2% | 1,008 | 77.3 | 49.0 | 11%▲9.1 |
| 35 | Jesperi KotkaniemiFCAR | CAR | 61.1% | 1,025 | 75.4 | 47.9 | 3.2%▲3.1 |
| 36 | Mikko RantanenFCOL | COL | 61.1% | 1,832 | 80.1 | 50.9 | 99%▲0.7 |
| 37 | Nikita KucherovFTBL | TBL | 61.1% | 1,755 | 78.6 | 50.0 | 100% |
| 38 | Jesper BrattFNJD | NJD | 61.1% | 1,583 | 78.5 | 50.0 | 96%▲11 |
| 39 | Leon DraisaitlFEDM | EDM | 61.1% | 1,676 | 76.1 | 48.5 | 100% |
| 40 | Sidney CrosbyFPIT | PIT | 61.0% | 1,647 | 85.2 | 54.5 | 100%▲2.4 |
| 41 | Brent BurnsDCAR | CAR | 60.9% | 1,763 | 76.8 | 49.2 | 50%▼14 |
| 42 | Miro HeiskanenDDAL | DAL | 60.9% | 1,742 | 74.2 | 47.7 | 100%▲4.5 |
| 43 | Luke HughesDNJD | NJD | 60.7% | 1,761 | 74.9 | 48.5 | 84%▲40 |
| 44 | Jesper FastFCAR | CAR | 60.5% | 920 | 68.3 | 44.6 | — |
| 45 | Auston MatthewsFTOR | TOR | 60.4% | 1,698 | 79.2 | 52.0 | 99% |
| 46 | Luke EvangelistaFNSH | NSH | 60.3% | 1,116 | 73.1 | 48.2 | 70%▲23 |
| 47 | Evgeni MalkinFPIT | PIT | 60.2% | 1,524 | 76.3 | 50.4 | 82%▲10 |
| 48 | Jordan EberleFSEA | SEA | 60.2% | 1,361 | 71.5 | 47.2 | 30%▲2.6 |
| 49 | Roope HintzFDAL | DAL | 60.2% | 1,379 | 75.5 | 49.9 | 85%▲7.6 |
| 50 | Jordan SpenceDLAK | LAK | 60.2% | 1,024 | 70.1 | 46.5 | 21%▲17 |
| 51 | John TavaresFTOR | TOR | 60.1% | 1,429 | 79.8 | 53.1 | 96%▲9.3 |
| 52 | Jalen ChatfieldDCAR | CAR | 60.0% | 1,094 | 64.2 | 42.7 | 4.1%▲3.4 |
| 53 | Daniil MiromanovDCGY/VGK | CGY/VGK | 60.0% | 497 | 73.1 | 48.7 | 0.1% |
| 54 | Seth JarvisFCAR | CAR | 60.0% | 1,519 | 72.6 | 48.5 | 95%▲1.5 |
| 55 | Brayden PointFTBL | TBL | 59.9% | 1,623 | 76.5 | 51.2 | 95%▲7.7 |
| 56 | Erik KarlssonDPIT | PIT | 59.8% | 1,990 | 78.4 | 52.7 | 95% |
| 57 | Quinton ByfieldFLAK | LAK | 59.8% | 1,319 | 70.6 | 47.5 | 86%▲18 |
| 58 | Roman JosiDNSH | NSH | 59.7% | 2,020 | 77.0 | 52.0 | 98% |
| 59 | Ryan Nugent-HopkinsFEDM | EDM | 59.6% | 1,570 | 75.9 | 51.6 | 77%▲15 |
| 60 | Conor GarlandFVAN | VAN | 59.5% | 1,192 | 66.0 | 44.8 | 10%▲7.4 |
| 61 | Nazem KadriFCGY | CGY | 59.5% | 1,511 | 75.8 | 51.7 | 70%▼9.7 |
| 62 | Dmitry OrlovDCAR | CAR | 59.5% | 1,420 | 65.0 | 44.3 | 35%▲21 |
| 63 | Adam FoxDNYR | NYR | 59.4% | 1,688 | 73.7 | 50.3 | 99%▲6.5 |
| 64 | Kailer YamamotoFSEA | SEA | 59.4% | 708 | 66.6 | 45.5 | 0.2% |
| 65 | Rickard RakellFPIT | PIT | 59.3% | 1,156 | 75.1 | 51.5 | 82%▲9.9 |
| 66 | Oliver BjorkstrandFSEA | SEA | 59.1% | 1,327 | 73.1 | 50.5 | 20% |
| 67 | Joe PavelskiFDAL | DAL | 59.1% | 1,378 | 74.1 | 51.3 | — |
| 68 | Sean CouturierFPHI | PHI | 59.1% | 1,319 | 72.8 | 50.5 | 9.2%▲7.2 |
| 69 | Brock BoeserFVAN | VAN | 59.0% | 1,507 | 72.8 | 50.6 | 63%▼5.5 |
| 70 | David PastrnakFBOS | BOS | 59.0% | 1,634 | 72.1 | 50.1 | 100%▲1.2 |
| 71 | Nikolaj EhlersFWPG | WPG | 58.9% | 1,302 | 72.0 | 50.2 | 93%▲7.9 |
| 72 | Tyson FoersterFPHI | PHI | 58.8% | 1,330 | 70.6 | 49.4 | 42%▲38 |
| 73 | Oliver Ekman-LarssonDFLA | FLA | 58.8% | 1,472 | 70.9 | 49.7 | 43%▲32 |
| 74 | Vincent TrocheckFNYR | NYR | 58.7% | 1,759 | 77.4 | 54.4 | 88%▼5.5 |
| 75 | Steven StamkosFTBL | TBL | 58.7% | 1,440 | 74.0 | 52.0 | 94%▼3.7 |
| 76 | Artturi LehkonenFCOL | COL | 58.7% | 831 | 72.0 | 50.7 | 54%▲37 |
| 77 | Chris KreiderFNYR | NYR | 58.7% | 1,540 | 76.5 | 53.8 | 62%▲29 |
| 78 | Morgan FrostFPHI | PHI | 58.5% | 1,124 | 70.9 | 50.2 | 23%▲17 |
| 79 | Jonathan HuberdeauFCGY | CGY | 58.5% | 1,411 | 75.7 | 53.7 | 17%▲12 |
| 80 | Cole PerfettiFWPG | WPG | 58.5% | 965 | 65.7 | 46.6 | 36%▲32 |
| 81 | Jordan MartinookFCAR | CAR | 58.5% | 1,201 | 67.7 | 48.1 | 4.3%▲2.7 |
| 82 | Valeri NichushkinFCOL | COL | 58.4% | 1,153 | 73.6 | 52.4 | 60% |
| 83 | Drake BathersonFOTT | OTT | 58.2% | 1,490 | 72.7 | 52.1 | 97%▲7.4 |
| 84 | Alexis LafrenièreFNYR | NYR | 58.2% | 1,416 | 73.9 | 53.0 | 82%▲13 |
| 85 | Jordan KyrouFSTL | STL | 58.2% | 1,503 | 70.3 | 50.6 | 79%▲2.9 |
| 86 | Justin SchultzDSEA | SEA | 58.0% | 1,153 | 65.6 | 47.4 | — |
| 87 | Gustav NyquistFNSH | NSH | 58.0% | 1,437 | 76.3 | 55.2 | 0.0% |
| 88 | Nico HischierFNJD | NJD | 58.0% | 1,383 | 74.1 | 53.7 | 98%▲3 |
| 89 | Tim StützleFOTT | OTT | 57.9% | 1,584 | 73.2 | 53.2 | 100%▲0.8 |
| 90 | Elias PetterssonFVAN | VAN | 57.9% | 1,611 | 69.6 | 50.7 | 87%▼5.8 |
| 91 | Pierre-Luc DuboisFLAK | LAK | 57.9% | 1,288 | 68.7 | 50.0 | 41%▲32 |
| 92 | Connor ZaryFCGY | CGY | 57.8% | 962 | 71.3 | 52.1 | 10%▲10 |
| 93 | Travis KonecnyFPHI | PHI | 57.8% | 1,508 | 76.4 | 55.8 | 92%▲9.9 |
| 94 | Jeff SkinnerFBUF | BUF | 57.8% | 1,184 | 72.4 | 53.0 | 0.1% |
| 95 | James van RiemsdykFBOS | BOS | 57.7% | 959 | 70.6 | 51.7 | 0.3% |
| 96 | Rasmus DahlinDBUF | BUF | 57.7% | 2,059 | 71.2 | 52.3 | 100%▲1 |
| 97 | Owen TippettFPHI | PHI | 57.6% | 1,294 | 73.6 | 54.2 | 78%▼6.7 |
| 98 | Shea TheodoreDVGK | VGK | 57.5% | 1,038 | 70.8 | 52.3 | 91%▲28 |
| 99 | Josh MorrisseyDWPG | WPG | 57.4% | 1,959 | 69.1 | 51.2 | 99%▲3.3 |
| 100 | Mathew BarzalFNYI | NYI | 57.4% | 1,611 | 74.8 | 55.5 | 83%▲10 |
Minimum sample: 492 min (it scales with games played). 307 below the minimum are hidden.
How to read it
50% is even. Above 55% over a full season is top-line territory; below 45% usually means heavy defensive usage or a struggling line.
How reliable is it?
CF% stabilises faster than any goal-based stat, but it ignores shot quality: pair it with xGF% before drawing conclusions.
CF% in the stat glossary →Related leaderboards
- 5v5 xGF%50% is break-even. 55% means the skater's team took 55% of the expected goals while he was on the ice.
- Line CF%Shot-attempt share while exactly these three forwards were on the ice together at 5-on-5.
- D-pair CF%Shot-attempt share with exactly these two defencemen on the ice at 5-on-5.
- Team CF%50% is even; the league spread is usually about 45% to 55%.