← All teams
Boston Bruins
2026-27 season preview

Boston Bruins

44-31-997 pts11th of 32
Goals for
3.2
10th in the league
Goals against
3.01
14th in the league
Power play
23.4%
9th in the league

Kodo projects the Boston Bruins for 44-31-9 (97 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 (~52 starts)
Sleeper
projects 35 pts
Contents · 11 sections

Latest

lines, injuries and roster moves 1 / 11
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 McAvoyOut — Suspension · CBS2026-05-13 · 98d
Nikita ZadorovProbable for start of season — Knee · CBS2026-05-02 · 109d
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.

Where this team sits

last season vs projection 2 / 11
25-2626-27Change
Goals for3.2710th3.2213th-0.05▼3
Goals against3.0114th3.0317th+0.02▼3
Power play23.49th20.3017th-3.10▼8
Penalty kill7724th77.9631st+0.96▼7
Faceoffs53.14th50.7310th-2.37▼6
Points percentage0.618th0.57112th-0.039▼4
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.

How last season went

in quarters — where the season was won and lost 3 / 11
They held about the same pace all year-8 points of win percentage between the first quarter and the last.
Oct–Nov10-0811-15
60%12-8
for3.40
against3.30
Nov–Jan11-1712-31
43%9-12
for2.95
against3.24
Jan–Mar01-0303-05
65%13-7
for3.75
against3.00
Mar–Apr03-0704-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.

Schedule shape

games per week and per month, light nights, back-to-backs 4 / 11
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*
1
Oct
14
Nov
11
Dec
14
Jan
15
Feb
9
Mar
14
Apr*
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.

Projected lineup

lines, pairs and both special teams, with what each man projects for 5 / 11
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
LW
Pavel ZachaG: 86th percentileA: 87th percentilePPP: 86th percentileSOG: 71st percentileHIT: 51st percentileBLK: 22nd percentilePIM: 45th percentileGAPPPSOGHITBLKPIM
59 pts · 18.0′
23G · 36A · 127SOG · 68HIT · 27BLK
C
Casey MittelstadtG: 72nd percentileA: 80th percentilePPP: 74th percentileSOG: 53rd percentileHIT: 13th percentileBLK: 19th percentilePIM: 25th percentileGAPPPSOGHITBLKPIM
44 pts · 16.6′
15G · 29A · 91SOG · 27HIT · 26BLK
RW
David PastrnakG: 98th percentileA: 99th percentilePPP: 98th percentileSOG: 99th percentileHIT: 62nd percentileBLK: 26th percentilePIM: 93rd percentileGAPPPSOGHITBLKPIM
110 pts · 18.0′
37G · 73A · 288SOG · 78HIT · 29BLK
L2
LW
Morgan GeekieG: 94th percentileA: 77th percentilePPP: 88th percentileSOG: 82nd percentileHIT: 77th percentileBLK: 36th percentilePIM: 41st percentileGAPPPSOGHITBLKPIM
58 pts · 16.6′
30G · 28A · 157SOG · 110HIT · 34BLK
C
Elias LindholmG: 78th percentileA: 84th percentilePPP: 87th percentileSOG: 73rd percentileHIT: 51st percentileBLK: 72nd percentilePIM: 61st percentileGAPPPSOGHITBLKPIM
51 pts · 17.6′
18G · 33A · 131SOG · 68HIT · 66BLK
RW
JJ PeterkaG: 89th percentileA: 79th percentilePPP: 75th percentileSOG: 87th percentileHIT: 8th percentileBLK: 7th percentilePIM: 57th percentileGAPPPSOGHITBLKPIM
54 pts · 15.2′
25G · 29A · 169SOG · 21HIT · 19BLK
L3
LW
James HagensG: 77th percentileA: 59th percentilePPP: 72nd percentileSOG: 90th percentileHIT: 74th percentileBLK: 40th percentilePIM: 51st percentileGAPPPSOGHITBLKPIM
35 pts · 14.0′
17G · 18A · 179SOG · 99HIT · 36BLK
C
Fraser MintenG: 75th percentileA: 59th percentilePPP: 53rd percentileSOG: 64th percentileHIT: 85th percentileBLK: 50th percentilePIM: 29th percentileGAPPPSOGHITBLKPIM
34 pts · 13.9′
16G · 18A · 115SOG · 127HIT · 43BLK
RW
Marat KhusnutdinovG: 59th percentileA: 50th percentilePPP: 41st percentileSOG: 31st percentileHIT: 31st percentileBLK: 44th percentilePIM: 25th percentileGAPPPSOGHITBLKPIM
25 pts · 13.2′
10G · 14A · 67SOG · 45HIT · 39BLK
L4
LW
Tanner JeannotG: 45th percentileA: 41st percentilePPP: 37th percentileSOG: 34th percentileHIT: 99th percentileBLK: 59th percentilePIM: 96th percentileGAPPPSOGHITBLKPIM
17 pts · 12.4′
6G · 11A · 70SOG · 230HIT · 50BLK
C
Mark KastelicG: 54th percentileA: 32nd percentilePPP: 36th percentileSOG: 51st percentileHIT: 98th percentileBLK: 64th percentilePIM: 100th percentileGAPPPSOGHITBLKPIM
17 pts · 13.1′
9G · 8A · 88SOG · 211HIT · 55BLK
RW
Sean KuralyG: 39th percentileA: 39th percentilePPP: 19th percentileSOG: 52nd percentileHIT: 76th percentileBLK: 48th percentilePIM: 72nd percentileGAPPPSOGHITBLKPIM
16 pts · 13.1′
5G · 10A · 89SOG · 105HIT · 41BLK

Defence pairs

D1
LD
Charlie McAvoyG: 61st percentileA: 94th percentilePPP: 88th percentileSOG: 66th percentileHIT: 73rd percentileBLK: 95th percentilePIM: 94th percentileGAPPPSOGHITBLKPIM
57 pts · 23.9′
11G · 46A · 117SOG · 98HIT · 132BLK
RD
Will BorgenG: 26th percentileA: 30th percentilePPP: 19th percentileSOG: 39th percentileHIT: 84th percentileBLK: 89th percentilePIM: 81st percentileGAPPPSOGHITBLKPIM
11 pts · 20.1′
3G · 8A · 73SOG · 127HIT · 107BLK
D2
LD
Hampus LindholmG: 39th percentileA: 64th percentilePPP: 60th percentileSOG: 58th percentileHIT: 6th percentileBLK: 86th percentilePIM: 88th percentileGAPPPSOGHITBLKPIM
25 pts · 20.9′
5G · 20A · 98SOG · 19HIT · 97BLK
RD
Mason LohreiG: 41st percentileA: 64th percentilePPP: 69th percentileSOG: 39th percentileHIT: 15th percentileBLK: 83rd percentilePIM: 32nd percentileGAPPPSOGHITBLKPIM
25 pts · 19.6′
6G · 20A · 74SOG · 30HIT · 93BLK
D3
LD
Nikita ZadorovG: 31st percentileA: 54th percentilePPP: 19th percentileSOG: 58th percentileHIT: 96th percentileBLK: 86th percentilePIM: 100th percentileGAPPPSOGHITBLKPIM
19 pts · 16.5′
4G · 16A · 99SOG · 195HIT · 98BLK
RD
Henri JokiharjuG: 25th percentileA: 49th percentilePPP: 46th percentileSOG: 32nd percentileHIT: 40th percentileBLK: 72nd percentilePIM: 36th percentileGAPPPSOGHITBLKPIM
17 pts · 15.8′
3G · 14A · 67SOG · 55HIT · 67BLK

Special teams

Scratches & depth

unsigned — drafted property with no NHL contract. They carry a projection but are not dressed in a line.

Roster movement & minutes

who changed, and the minutes freed 6 / 11
Viktor ArvidssonDET69 played · 13 missed
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
Jokiharju0.290.71+0.42
Kuraly0.250.38+0.13
Zadorov0.250.38+0.13
Geekie0.820.92+0.10
Eyssimont0.300.38+0.08
Faded without him
playerwithw/outswing
Pastrnak1.420.55-0.87
Zacha0.900.45-0.45
Lohrei0.430.00-0.43
Lindholm0.440.17-0.27
Aspirot0.250.00-0.25
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 Zacha, Clifton, Lindholm, Lohrei, McAvoy, Eyssimont, Geekie, Hagens, Khusnutdinov, Kuraly, Lindholm, Minten
Callup Hagens
Out Arvidsson, Peeke, Viel→TBL, Beecher→FLA
Borgen1820.2 +2.2
Mittelstadt15.217 +1.8
Lohrei16.918.5 +1.6
Lindholm17.916.6 -1.3
Geekie17.416 -1.4
Lindholm21.619.9 -1.7
Jokiharju17.816 -1.8
Zadorov20.918.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 →

Camp battles

contested roles, priced in points 7 / 11
First lineUNDERDEPLOYED5.3 pts at stake
holds it
Casey Mittelstadt
44 proj pts · 17′ · 1.9′ PP
vs
pushing
Morgan Geekie
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
Elias Lindholm
51 proj pts · 16.6′ · 2.7′ PP
vs
pushing
JJ Peterka
54 proj pts · 15.4′ · 2.1′ PP
Elias Lindholmmodel favours the incumbentJJ Peterka

Power play

23.4% last season · who it runs through, and what is left of it 8 / 11
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
Pastrnak3.6365%1023337.088.473%1.42
McAvoy3.0855%221236.52.366%1.31
Lindholm2.7248%713206.396.167%1.29
Geekie2.9853%1212245.976.963%1.2
Zacha2.9252%1111225.8859%1.17
Eyssimont0.7914%1345.391.41.09
Steeves0.9617%1234.360.654%0.86
Mittelstadt1.9134%2573.12.557%0.63
Lohrei1.5427%2352.671.458%0.54
Lindholm1.5828%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.
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, blocks and the rest

what a banger league is won with 9 / 11
Hits
22672nd
projected, this roster · of 32
Blocks
13617th
projected, this roster · of 32
Shots
243415th
projected, this roster · of 32
Penalty minutes
10213rd
projected, this roster · of 32
Faceoff wins
26806th
projected, this roster · of 32
H+B
36292nd
projected, this roster · of 32
S+H+B
60632nd
projected, this roster · of 32
Who supplies them
PlayerGPHits/60Blks/60PKPIMFOW+/-H+BS+H+B
Zadorov D3801956.95983.622.7139+15292391
Kastelic L47721112.49553.722.1121306+2265353
Jeannot L47323014.78503.591.4719-3280349
Clifton5918612.869462.252+3280324
McAvoy D1·PP172982.821324.62.965+9230346
Borgen D1811274.931074.42.245+1234307
Aspirot64895.07874.891.242+11175225
Steeves4815216.88273.170.5323+2180241
Minten L3721276.66432.391.620358+7170285
Kuraly L4751054.79412.592.838315-2146235
Geekie L2·PP1791104.68341.450.123124-1144301
Lindholm L2·PP178681.99662.871.132746-6135265
Lindholm D2·PP268190.5974.272.953+5116215
Hagens L3·PP265996.39362.320.1280135314
Pastrnak L1·PP180783.24291.20.3613+5108396
Lohrei D2·PP271301.46934.520.221+0123197
Jokiharju D368552.22673.041.022+6121188
Eyssimont63755.31232.060.1444-198211
Harris5938671.815-1106156
Zacha L1·PP180682.93271.191.026488+295222
Khusnutdinov L372452.26392.11.11990+383150
Mittelstadt L1·PP277271.28261.170.118228+152144
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.

The crease

GSAx last season, projected next 10 / 11
GSAx view
Swayman
54 starts last season
GSAx / start
-0.539
lg -0.858185th
Shot quality faced
0.0744
lg 0.073164th hardest
1.50-1.214181
10-start rolling GSAx · appearance 1-81 · shared scale
2026-27 projection
54 GS30 W (1839)0.905 SV%2.81 GAA
Patera
no starts last season
GSAx / start
Shot quality faced
1.50-1.21816
10-start rolling GSAx · appearance 1-16 · shared scale
2026-27 projection
30 GS14 W (921)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 11 / 11
Forwards · 15
PlayerRoleOverallGPGAP / ifPPPSHPSOGHITBLKPIM+/-FOWH+BS+H+BTrajectorySignals
David PastrnakL1·PP1+3.32803773110.1330288782961+53108396sell-highPP1
Morgan GeekieL2·PP1+1.2979302857.81901571103423-1124144301sell-highPP1
Pavel ZachaL1·PP1+0.9180233658.8181127682726+248895222sell-highPP1
Elias LindholmL2·PP1+0.8678183350.7191131686632-6746135265PP1
JJ PeterkaL2·PP2+0.7480252953.6100169211930+3641209
James HagensL3·PP2+0.57651718358017999362800135314
Mark KastelicL4+0.31779816.7118821155121+2306265353
Fraser MintenL3+0.2872161834.3311151274320+7358170285ascendingsell-high
Tanner JeannotL4+0.117371117.410702305071-39280349
Casey MittelstadtL1·PP2+0.0577152943.99091272618+122852144sell-highice time ↑
Sean KuralyL4-0.447551015.700891054138-2315146235
Michael Eyssimont-0.4763771420113752344-1498211
Alex Steeves-0.48487713.3/2231611522732+23180241
Marat KhusnutdinovL3-0.5572101424.51067453919+39083150ascendingsell-high
Dean Letourneauunsigned-1.6111224/2500171664002239
Defence · 9
PlayerRoleOverallGPGAP / ifPPPSHPSOGHITBLKPIM+/-FOWH+BS+H+BTrajectorySignals
Charlie McAvoyD1·PP1+1.3072114656.9/642001179813265+90230346sell-highPP1
Nikita ZadorovD3+0.518041619.2019919598139+150292391sell-highice time ↓
Hampus LindholmD2·PP2-0.1868520254098199753+50116215ice time ↓
Will BorgenD1-0.33813810.7007312710745+10234307ice time ↑
Mason LohreiD2·PP2-0.347162025.1707430932100123197sell-highice time ↑
Connor Clifton-0.4859123.100451869452+30280324
Henri JokiharjuD3-0.676831416.62067556722+60121188ascendingice time ↓
Jonathan Aspirot-0.6964278.81050898742+110175225sell-high
Jordan Harris-1.0259278.80051386715-10106156
Goalies · 2
GoalieGSWLOTLSV%GAASVSAGASHOGSAxGSAx/GS
Jeremy Swayman54302060.9052.81141215611482.7-29.1-0.539
Jiri Patera30141040.9042.91800884850.8

Projected record and projected ice time are model estimates; ranks, lines, projections and trend signals trace to real data.