← Boston Bruins
2026-27 season preview
Boston Bruins
43-31-1096 pts10th of 32
Goals for
3.19
10th in the league
Goals against
3.03
14th in the league
Power play
23.4%
9th in the league
Kodo projects the Boston Bruins for 43-31-10 (96 pts), carried by 9th-ranked power play. The fantasy engine runs through David Pastrnak and Charlie McAvoy on PP1. 3 core skaters project to rise and 0 to slip. Jeremy Swayman is the projected starter.
Your categories · using the preset above
Regression watch
finishing/on-ice luck ran hot — expect some pullback off last year's line
The crease
Jeremy Swayman
Jeremy Swayman projects the crease (~54 starts)
Contents · 12 sections
TransactionPavel Zacha added to BOS roster · NHL transactions2026-08-13
TransactionConnor Clifton added to BOS roster · NHL transactions2026-08-13
TransactionHampus Lindholm added to BOS roster · NHL transactions2026-08-13
TransactionMason Lohrei added to BOS roster · NHL transactions2026-08-13
TransactionCharlie McAvoy added to BOS roster · NHL transactions2026-08-13
Each item names its source. Kodo's own projected line changes are not reported here.
Carried into camp
Charlie McAvoy — Out — Suspension · CBS2026-05-13 · 99d
Nikita Zadorov — Probable for start of season — Knee · CBS2026-05-02 · 110d
Reported more than 30 days ago, so listed as a standing condition rather than news. The date is the one the injury feed carries, which is the game the player was expected to miss — not the day anything was last checked.
25-2626-27Change
Goals for3.2710th3.1911th-0.08▼1
Goals against3.0114th3.0316th+0.02▼2
Power play23.49th20.1219th-3.28▼10
Penalty kill7724th77.9631st+0.96▼7
Faceoffs53.14th50.769th-2.34▼5
Points percentage0.618th0.57110th-0.039▼2
How these projections are made
Both bars share one scale per row — the wider of the two league ranges — so a bar that moves is a number that moved. The grey tick is that column's league average, and the arrow is the change in league rank. Goals-against and expected-goals-against rank ascending, so low is good and green always means improved.
Goals for, goals against and points percentage come from the roster: summed player projections over the real 26-27 schedule, last season's expected goals against regressed toward the league and adjusted for projected goaltending, and a game-by-game simulation of that schedule.
The special teams are projected from how much each number actually carries over year to year, measured across 298 team-season pairs going back to 2010-11. The power play uses one prior season shrunk 0.36; the penalty kill uses three, weighted .5/.3/.2 and shrunk 0.38. Special teams barely persist, so a league-worst penalty kill is mostly bad luck and comes most of the way back, while the faceoff dot is a repeatable team skill. How far a club moves depends on how far from the mean it started: Vancouver sits near league average on both the power play and the faceoff dot and barely shifts, while Edmonton's 30.6% power play comes back to the middle and this penalty kill, worst in the league, is the biggest riser of all 32.
The penalty kill averages three seasons because one measures it so badly. Split a single season's spread into ability and sampling noise — a kill rate is a binomial over about 250 opportunities, so the noise is known rather than guessed — and only 33% of the gap between clubs is real. Divide the year-over-year correlation by that and the ability underneath comes out near 1.0: penalty killing is almost perfectly persistent and merely hard to see in one season. The cure for a noisy measurement is more of it, and three seasons beat one by 4.3% out of sample. Because averaging reorders clubs, that row's rank is a real forecast; the rows marked = are single-season regressions, which compress the values but keep them in order, so their rank is last season's by construction and only the value is a prediction.
A roster-aware faceoff model was built and rejected on the evidence. Draw counts are not stored, but they can be recovered exactly from the per-game percentages, and with real draws a club's number reconstructs from its own centres. It still does not predict better: given a club's first half to learn from and even handed the second half's draw distribution, it scored 2.24 against the plain regression's 2.26 across 32 clubs, and the best blend of the two puts almost no weight on it. A team's faceoff percentage already carries who takes its draws. Expected goals has no team projection at all, so that row shows last season alone.
Goals for, goals against and points percentage come from the roster: summed player projections over the real 26-27 schedule, last season's expected goals against regressed toward the league and adjusted for projected goaltending, and a game-by-game simulation of that schedule.
The special teams are projected from how much each number actually carries over year to year, measured across 298 team-season pairs going back to 2010-11. The power play uses one prior season shrunk 0.36; the penalty kill uses three, weighted .5/.3/.2 and shrunk 0.38. Special teams barely persist, so a league-worst penalty kill is mostly bad luck and comes most of the way back, while the faceoff dot is a repeatable team skill. How far a club moves depends on how far from the mean it started: Vancouver sits near league average on both the power play and the faceoff dot and barely shifts, while Edmonton's 30.6% power play comes back to the middle and this penalty kill, worst in the league, is the biggest riser of all 32.
The penalty kill averages three seasons because one measures it so badly. Split a single season's spread into ability and sampling noise — a kill rate is a binomial over about 250 opportunities, so the noise is known rather than guessed — and only 33% of the gap between clubs is real. Divide the year-over-year correlation by that and the ability underneath comes out near 1.0: penalty killing is almost perfectly persistent and merely hard to see in one season. The cure for a noisy measurement is more of it, and three seasons beat one by 4.3% out of sample. Because averaging reorders clubs, that row's rank is a real forecast; the rows marked = are single-season regressions, which compress the values but keep them in order, so their rank is last season's by construction and only the value is a prediction.
A roster-aware faceoff model was built and rejected on the evidence. Draw counts are not stored, but they can be recovered exactly from the per-game percentages, and with real draws a club's number reconstructs from its own centres. It still does not predict better: given a club's first half to learn from and even handed the second half's draw distribution, it scored 2.24 against the plain regression's 2.26 across 32 clubs, and the best blend of the two puts almost no weight on it. A team's faceoff percentage already carries who takes its draws. Expected goals has no team projection at all, so that row shows last season alone.
They held about the same pace all year — -8 points of win percentage between the first quarter and the last.
Oct–Nov10-08 – 11-15
60%12-8
for3.40
against3.30
Nov–Jan11-17 – 12-31
43%9-12
for2.95
against3.24
Jan–Mar01-03 – 03-05
65%13-7
for3.75
against3.00
Mar–Apr03-07 – 04-14
52%11-10
for3.19
against2.67
Why the shape matters more than the total
Every rate on the board above is a season average, and an average cannot tell a club that was good all year from one that was excellent for six weeks and ordinary after. Those are different teams to draft into: the second one probably changed — an injury, a call-up, a coach — and whatever changed is likelier to still be true in October than the average is.
Read it against the roster movement section. A club that faded and then lost its best defenceman is not going to bounce; one that faded while carrying injuries and got everybody back is a different case entirely.
Quarters are equal shares of the games actually played, so the windows differ slightly by club depending on scheduling.
Read it against the roster movement section. A club that faded and then lost its best defenceman is not going to bounce; one that faded while carrying injuries and got everybody back is a different case entirely.
Quarters are equal shares of the games actually played, so the windows differ slightly by club depending on scheduling.
Light nights
28.6%16th
24 of 84 games
Four-game weeks
627th
3 weeks of two or fewer
Back-to-backs
1431st
roughly one backup start each
Playoff-week games
930th
over 3 weeks · 1 back-to-back
Games per week
2026-09-28on light nights2027-04-05
Games by month
Sep*
1Oct
14Nov
11Dec
14Jan
15Feb
9Mar
14Apr*
6* part of a month — the season opens and closes mid-month.
Why these three and not a schedule score
They answer different formats, so combining them would hide the answer rather than give it. Four-game weeks decide weekly-lineup leagues: the same player produces a third more in a four-game week than a three-game one, and clubs differ by several such weeks across a season. Light nights decide daily leagues and streaming — a light night is one carrying no more than the league's median number of games (6 this season), so your man is a far larger share of everything available than he is on a sixteen-game Tuesday. Playoff-week games counts the last three weeks of the season excluding the final one — most head-to-head leagues have crowned a champion before the NHL finishes, and that last week is short and full of rested stars. Back-to-backs decide the crease, because a starter rarely takes both ends, so each one is roughly a start handed to the backup.
Ranks are against all 32 clubs, and the whole thing is read off the published slate — no projection is involved.
Ranks are against all 32 clubs, and the whole thing is read off the published slate — no projection is involved.
Lineup notes
This is the lineup the club can ice on opening night, not its best-case group. A player expected to miss more than the opening month is left out and his slot goes to whoever takes it — he keeps his projection below, he is out of the lineup, not out of the season.
Projected ice time totals 298.1 of the 300 skater-minutes a game has. Power play 3.16′ on the first unit, 1.79′ on the second; the kill 2.35′, 1.67′ and 1′ across three units — all measured.Change this lineup →
Forward lines
L1
L2
L3
L4
Defence pairs
D1
D2
D3
Special teams
Scratches & depth
0.78 points a game and 14.6 minutes walked out of the lineup — about 10 points over a season.
Stepped up without him
playerwithw/outswing
Points per game with him in the lineup against the games he missed. Not a controlled experiment — absences cluster around injuries, so some of these games were missing other players too. Every absence for this club →
In Borgen, Kuraly, Zacha, Geekie, Eyssimont, Lohrei, Khusnutdinov, Aspirot, Peterka, Hagens, Lindholm, Minten
Callup Letourneau, Hagens
Out Arvidsson, Peeke, Viel→TBL, Beecher→FLA
18→20.2 +2.2
15.2→17 +1.8
16.9→18.5 +1.6
17.9→16.6 -1.3
17.4→16 -1.4
21.6→19.9 -1.7
17.8→16 -1.8
20.9→18.3 -2.6
Biggest projected minute changes either way — a club's ice time is a fixed budget, so the departures above are what free it up. Full board →
First lineUNDERDEPLOYED5.3 pts at stake
holds it
44 proj pts · 17′ · 1.9′ PP
vs
pushing
58 proj pts · 16′ · 3′ PP
Casey Mittelstadtmodel favours the challengerMorgan Geekie
1.40 more min/game on L1 (role-model baseline), at the challenger's own scoring rate over a full season. Power-play gaps come from measured PP minutes last season; even-strength gaps from the role model that drives every projection on this page.
Top power-play unit — forward slot5 pts at stake
holds it
51 proj pts · 16.6′ · 2.7′ PP
vs
pushing
54 proj pts · 15.4′ · 2.1′ PP
Elias Lindholmmodel favours the incumbentJJ Peterka
Conversion
23.4%
on the man advantage
PP goals
56
544 shots
Expected goals
51.4
+4.6 vs actual
Shooting
10.3%
of PP shots go in
Who it runs through · last season
PlayerPP/gmSharePPGPPAPPP/60ixGIPPFocal
3.63′65%1023337.088.473%1.42
3.08′55%221236.52.366%1.31
2.72′48%713206.396.167%1.29
2.98′53%1212245.976.963%1.2
2.92′52%1111225.8859%1.17
0.79′14%1345.391.4—1.09
0.96′17%1234.360.654%0.86
1.91′34%2573.12.557%0.63
1.54′27%2352.671.458%0.54
1.58′28%1342.271.348%0.46
What IPP, focal and ixG mean
IPP is the share of the power-play goals he was on the ice for that he got a point on. It is the direct form of “the play runs through him”: two men can take the same unit minutes while one touches the puck on every goal and the other watches from the far circle. League average on the power play is 59%. It is computed from the on-ice record of every goal, corrected for the ~18% of goals with no on-ice row and shrunk toward the positional mean for thin samples, so it cannot exceed 1.
Focal is the older, cruder version — his share of the team's power-play points over his share of its minutes. It is team-relative, so it moves when a teammate is injured; IPP does not. ixG is the expected goals from his own shots on the man advantage. Minutes are measured, not modelled.
Focal is the older, cruder version — his share of the team's power-play points over his share of its minutes. It is team-relative, so it moves when a teammate is injured; IPP does not. ixG is the expected goals from his own shots on the man advantage. Minutes are measured, not modelled.
Projected PP1Pastrnak33 PPP (33 last yr)Geekie19 PPP (24 last yr)Zacha18 PPP (22 last yr)McAvoy20 PPP (23 last yr)Lindholm19 PPP (20 last yr)
Projected PP2Mittelstadt9 PPP (7 last yr)Lohrei7 PPP (5 last yr)Lindholm4 PPP (4 last yr)Peterka10 PPP (5 last yr)Hagens8 PPP
Hits
22942nd
projected, this roster · of 32
Blocks
13719th
projected, this roster · of 32
Shots
247814th
projected, this roster · of 32
Penalty minutes
10283rd
projected, this roster · of 32
Faceoff wins
26806th
projected, this roster · of 32
H+B
36662nd
projected, this roster · of 32
S+H+B
61443rd
projected, this roster · of 32
What actually moves these numbers
Penalty-kill time is the strongest driver of blocks we can measure. Across 1,504 consecutive season pairs, a skater who gains a minute of shorthanded time a game adds a median 9.5 blocks over 84 games — a defenceman 16 — and the effect runs monotonically the other way too: lose a minute and it is −15.6, or −25.9 for a defenceman. The PK column is here for that reason.
But it is mostly the minutes, not the man. Shorthanded time correlates +0.52 with blocks per 60 across players and only +0.14 within the same player year to year, which says coaches pick shot-blockers for the kill more than the kill turns anyone into one. A player promoted onto PK1 gains blocks because he is on the ice for more shots, not because he changed — so price the ice time, not a breakout.
Hits run opposite to ice time. Total minutes correlate −0.57 with hits per 60, and −0.60 among forwards: the fourth line hits, the first line does not. So a rate beats a total here more than in any other category, which is what the /60 columns are for — a checker on eleven minutes at 12 hits per 60 is worth more than a first-liner at 5 on nineteen, and their season totals can look identical.
Power-play time predicts the absence of all of it — −0.43 with hits per 60, −0.47 with blocks, −0.26 with penalty minutes. The men who run a power play are not the men who supply a banger roster, which is why the two sections of this page rarely name anybody twice.
Faceoff wins are a volume category. They track draws taken far more than win rate, so the man to want is the one taking the most — normally the first-line centre and whoever takes defensive-zone draws on the kill.
Measured on 2022-23 through 2025-26, skaters with 40+ games and 200+ minutes at both ends of each pair.
But it is mostly the minutes, not the man. Shorthanded time correlates +0.52 with blocks per 60 across players and only +0.14 within the same player year to year, which says coaches pick shot-blockers for the kill more than the kill turns anyone into one. A player promoted onto PK1 gains blocks because he is on the ice for more shots, not because he changed — so price the ice time, not a breakout.
Hits run opposite to ice time. Total minutes correlate −0.57 with hits per 60, and −0.60 among forwards: the fourth line hits, the first line does not. So a rate beats a total here more than in any other category, which is what the /60 columns are for — a checker on eleven minutes at 12 hits per 60 is worth more than a first-liner at 5 on nineteen, and their season totals can look identical.
Power-play time predicts the absence of all of it — −0.43 with hits per 60, −0.47 with blocks, −0.26 with penalty minutes. The men who run a power play are not the men who supply a banger roster, which is why the two sections of this page rarely name anybody twice.
Faceoff wins are a volume category. They track draws taken far more than win rate, so the man to want is the one taking the most — normally the first-line centre and whoever takes defensive-zone draws on the kill.
Measured on 2022-23 through 2025-26, skaters with 40+ games and 200+ minutes at both ends of each pair.
$98.9Mcommitted · 24 of 25 on file
8reach the market after this season
Pending free agents · this summer
| Casey MittelstadtC | UFA | $5.75M | 44 pts |
|---|---|---|---|
| Pavel ZachaC | UFA | $4.75M | 59 pts |
| Mason LohreiD | RFA | $3.20M | 25 pts |
| Sean KuralyC | UFA | $1.85M | 16 pts |
| Michael EyssimontC | UFA | $1.45M | 14 pts |
| Marat KhusnutdinovC | RFA | $0.93M | 25 pts |
| Fraser MintenC | RFA | $0.88M | 34 pts |
| Jordan HarrisD | RFA | $0.85M | 9 pts |
Free the summer after
| Henri JokiharjuD | $3.00M | 17 pts |
|---|---|---|
| Connor CliftonD | $2.25M | 4 pts |
| Alex SteevesC | $1.63M | 14 pts |
| Mark KastelicC | $1.57M | 17 pts |
| James HagensC | $0.97M | 35 pts |
| Jonathan AspirotD | $0.89M | 9 pts |
Biggest cap hits
| David PastrnakR | $11.25M | 4y left · NMC |
|---|---|---|
| Charlie McAvoyD | $9.50M | 3y left · NMC |
| Jeremy SwaymanG | $8.25M | 5y left · NMC |
| Elias LindholmC | $7.75M | 4y left · NMC |
| JJ PeterkaR | $7.70M | 3y left |
| Hampus LindholmD | $6.50M | 3y left · NTC, NMC |
| Casey MittelstadtC | $5.75M | final yr |
| Morgan GeekieC | $5.50M | 4y left · NMC |
Cap hits from CapWages for the 24 men on file. A dash is a figure we do not have, usually a restricted free agent whose entry-level deal has lapsed, and those are left out of the committed total rather than counted as nothing.
GSAx view
Swayman
54 starts last season
GSAx / start
-0.539lg -0.858185th
Shot quality faced
0.0744lg 0.073164th hardest
10-start rolling GSAx · appearance 1-81 · shared scale
2026-27 projection
54 GS29 W (17–39)0.905 SV%2.81 GAA
Patera
no starts last season
GSAx / start
—Shot quality faced
—10-start rolling GSAx · appearance 1-16 · shared scale
2026-27 projection
30 GS14 W (9–20)0.904 SV%2.91 GAA
GSAx is goals saved above expected — what the shots he faced were worth, minus what he actually allowed. Shown per start, because a backup cannot out-accumulate a starter but can out-perform him on a per-night basis. Shot quality faced is expected goals per shot: higher means he was hung out to dry more often, and the percentile is where that workload ranks among goalies with 15+ starts. Rolling form is a 10-start moving average — is he playing well lately; running total is the season's accumulated damage. Per-game GSAx is too noisy to read either from directly.
Every skater
the reference table · Overall is value as a z-score against the league, so +1.00 is a standard deviation above average‹ 12 / 12Forwards · 15
| Player | Role | Overall | GP | G | A | P / if | PPP | SHP | SOG | HIT | BLK | PIM | +/- | FOW | H+B | S+H+B | Trajectory | Signals |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| David Pastrnak | L1·PP1 | +3.27 | 80 | 37 | 73 | 110.1 | 33 | 0 | 288 | 78 | 29 | 61 | +5 | 3 | 108 | 396 | sell-highPP1 | |
| Morgan Geekie | L2·PP1 | +1.20 | 79 | 30 | 28 | 57.8 | 19 | 0 | 157 | 110 | 34 | 23 | -1 | 124 | 144 | 301 | sell-highPP1 | |
| Pavel Zacha | L1·PP1 | +0.81 | 80 | 23 | 36 | 58.8 | 18 | 1 | 127 | 68 | 27 | 26 | +2 | 488 | 95 | 222 | sell-highPP1 | |
| Elias Lindholm | L2·PP1 | +0.76 | 78 | 18 | 33 | 50.7 | 19 | 1 | 131 | 68 | 66 | 32 | -6 | 746 | 135 | 265 | PP1 | |
| JJ Peterka | L2·PP2 | +0.63 | 80 | 25 | 29 | 53.6 | 10 | 0 | 169 | 21 | 19 | 30 | +3 | 6 | 41 | 209 | ||
| James Hagens | L3·PP2 | +0.46 | 65 | 17 | 18 | 35 | 8 | 0 | 179 | 99 | 36 | 28 | 0 | 0 | 135 | 314 | — | |
| Mark Kastelic | L4 | +0.21 | 77 | 9 | 8 | 16.8 | 1 | 1 | 88 | 211 | 55 | 121 | +2 | 306 | 265 | 353 | ||
| Fraser Minten | L3 | +0.17 | 72 | 16 | 18 | 34.3 | 3 | 1 | 115 | 127 | 43 | 20 | +7 | 358 | 170 | 285 | ascendingsell-high | |
| Tanner Jeannot | L4 | -0.01 | 73 | 7 | 11 | 17.5 | 1 | 0 | 70 | 230 | 50 | 71 | -3 | 9 | 280 | 349 | ||
| Casey Mittelstadt | L1·PP2 | -0.07 | 77 | 15 | 29 | 43.9 | 9 | 0 | 91 | 27 | 26 | 18 | +1 | 228 | 52 | 144 | sell-highice time ↑ | |
| Sean Kuraly | L4 | -0.56 | 75 | 5 | 11 | 15.8 | 0 | 0 | 89 | 105 | 41 | 38 | -2 | 315 | 146 | 235 | ||
| Michael Eyssimont | -0.59 | 63 | 7 | 8 | 14.2 | 2 | 0 | 113 | 75 | 23 | 44 | -1 | 4 | 98 | 211 | |||
| Alex Steeves | -0.60 | 48 | 7 | 7 | 13.5/23 | 3 | 1 | 61 | 152 | 27 | 32 | +2 | 3 | 180 | 241 | — | ||
| Marat Khusnutdinov | L3 | -0.68 | 72 | 10 | 14 | 24.5 | 1 | 0 | 67 | 45 | 39 | 19 | +3 | 90 | 83 | 150 | ascendingsell-high | |
| Dean Letourneau | -1.15 | 29 | 7 | 5 | 12/25 | 1 | 0 | 61 | 43 | 16 | 11 | 0 | 0 | 59 | 120 | — |
Defence · 9
| Player | Role | Overall | GP | G | A | P / if | PPP | SHP | SOG | HIT | BLK | PIM | +/- | FOW | H+B | S+H+B | Trajectory | Signals |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Charlie McAvoy | D1·PP1 | +1.21 | 72 | 11 | 46 | 56.9/64 | 20 | 0 | 117 | 98 | 132 | 65 | +9 | 0 | 230 | 346 | sell-highPP1 | |
| Nikita Zadorov | D3 | +0.41 | 80 | 4 | 16 | 19.3 | 0 | 1 | 99 | 195 | 98 | 139 | +15 | 0 | 292 | 391 | sell-highice time ↓ | |
| Hampus Lindholm | D2·PP2 | -0.31 | 68 | 5 | 20 | 25 | 4 | 0 | 98 | 19 | 97 | 53 | +5 | 0 | 116 | 215 | ice time ↓ | |
| Will Borgen | D1 | -0.45 | 81 | 3 | 8 | 10.9 | 0 | 0 | 73 | 127 | 107 | 45 | +1 | 0 | 234 | 307 | ice time ↑ | |
| Mason Lohrei | D2·PP2 | -0.47 | 71 | 6 | 20 | 25.1 | 7 | 0 | 74 | 30 | 93 | 21 | 0 | 0 | 123 | 197 | sell-highice time ↑ | |
| Connor Clifton | -0.58 | 59 | 1 | 3 | 4 | 0 | 0 | 45 | 186 | 94 | 52 | +3 | 0 | 280 | 324 | |||
| Henri Jokiharju | D3 | -0.80 | 68 | 3 | 14 | 16.6 | 2 | 0 | 67 | 55 | 67 | 22 | +6 | 0 | 121 | 188 | ascendingice time ↓ | |
| Jonathan Aspirot | -0.81 | 64 | 2 | 7 | 9.1 | 1 | 0 | 50 | 89 | 87 | 42 | +11 | 0 | 175 | 225 | — | sell-high | |
| Jordan Harris | -1.16 | 59 | 2 | 7 | 9.1 | 0 | 0 | 51 | 38 | 67 | 15 | -1 | 0 | 106 | 156 |
Goalies · 2
| Goalie | GS | W | L | OTL | SV% | GAA | SV | SA | GA | SHO | GSAx | GSAx/GS |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Jeremy Swayman | 54 | 29 | 21 | 6 | 0.905 | 2.81 | 1412 | 1561 | 148 | 2.7 | -29.1 | -0.539 |
| Jiri Patera | 30 | 14 | 10 | 4 | 0.904 | 2.91 | 800 | 884 | 85 | 0.8 | — | — |
Projected record and projected ice time are model estimates; ranks, lines, projections and trend signals trace to real data.