From e1b1dc9877865100ff8cc655130a5af25e0abd09 Mon Sep 17 00:00:00 2001 From: Scout Date: Thu, 1 Oct 2026 09:40:02 -0500 Subject: [PATCH] Feature 2026 Finals examples on matchup-nightmares card 2026 Finals color (all from assets/playoffs.json splits): Knicks solved even Victor Wembanyama (-6.0 pts/100, 22g) while their title run rode playmaker Jose Alvarado (+4.1, 18g); Spurs rookie Dylan Harper's role grew (+0.8, 23g) as shooters Harrison Barnes (-5.7) and Devin Vassell (-3.7) faded. --- assets/insights.json | 2 +- pipeline/build_insights.py | 9 ++++++--- public/assets/insights.json | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/assets/insights.json b/assets/insights.json index ab349610..7b56082a 100644 --- a/assets/insights.json +++ b/assets/insights.json @@ -1 +1 @@ -{"built":"build_insights.py","n_seasons":12966,"domain":"https://hoops.dumbmodel.com","insights":[{"slug":"most-unique","tldr":"The weirdest ways anyone has ever played basketball mostly belong to MVPs \u2014 greatness looks strange.","kicker":"Uniqueness","title":"The strangest playing styles of the last 30 years belong to MVP-level superstars","lede":"Style distance from the league-average player, 14-dimensional embedding space. Minimum 1,500 minutes. The five strangest seasons ever charted \u2014 three of them MVP campaigns.","stat":"9.57","stat_label":"style distance \u2014 James Harden '18-19","viz":"bars","viz_label":"Distance from league-average style","rows":[{"label":"James Harden '18-19","value":9.57,"tag":null},{"label":"Russell Westbrook '16-17","value":9.25,"tag":"MVP"},{"label":"Giannis Antetokounmpo '19-20","value":8.51,"tag":"MVP"},{"label":"James Harden '17-18","value":8.37,"tag":"MVP"},{"label":"Joel Embiid '23-24","value":8.32,"tag":null},{"label":"Shaquille O'Neal '99-00","value":8.31,"tag":null},{"label":"Shaquille O'Neal '97-98","value":8.31,"tag":null},{"label":"Shaquille O'Neal '04-05","value":8.28,"tag":null}],"foot":"Computed over 12,966 player-seasons (1996-97 \u2192 2025-26). MVP seasons marked from the public record.","og_title":"The weirdest NBA seasons in 30 years belong to superstars","og_desc":"Harden '18-19 sits 9.57 style-points from the average player \u2014 the strangest season in 30 years of data."},{"slug":"most-average","tldr":"We found the single most ordinary NBA season ever recorded \u2014 the perfectly average player, scientifically.","kicker":"Uniqueness","title":"The most average NBA season ever charted","lede":"Closest to the centroid of all 12,966 player-seasons in style space. Not bad, not weird \u2014 the platonic NBA role player, quantified.","stat":"1.02","stat_label":"style distance \u2014 Caleb Martin '23-24","viz":"bars","viz_label":"Distance from league-average style (smaller = more average)","rows":[{"label":"Caleb Martin '23-24","value":1.02},{"label":"Mike Dunleavy '06-07","value":1.05},{"label":"Billy Owens '96-97","value":1.13},{"label":"Gary Forbes '10-11","value":1.16},{"label":"VJ Edgecombe '25-26","value":1.16}],"foot":"Minimum 1,500 minutes. 14-dimensional serving vectors, 1996-97 \u2192 2025-26.","og_title":"The most average NBA season ever: Caleb Martin '23-24","og_desc":"1.02 style-points from the league-average player \u2014 the platonic NBA season, measured."},{"slug":"transformed","tldr":"Giannis reinvented his game more than any player in 30 years; Terrence Ross played 11 seasons as basically the same guy.","kicker":"Career arcs","title":"Nobody transformed like Giannis. Nobody stayed the same like Terrence Ross.","lede":"Style distance between a player's first and last charted season. Giannis went from raw rookie to MVP force \u2014 the biggest reinvention in the dataset. Ross played 11 seasons as essentially the same player.","stat":"8.43","stat_label":"style distance \u2014 Giannis Antetokounmpo's reinvention","viz":"bars","viz_label":"First-to-last season style distance","rows":[{"label":"Giannis Antetokounmpo '13-14 \u2192 '25-26","value":8.43,"tag":"13 seasons"},{"label":"Terrence Ross '12-13 \u2192 '22-23","value":1.07,"tag":"11 seasons"}],"foot":"First-to-last style distance. Minimum 4 charted seasons at 800+ minutes each; the steadiest needs 11+. 14-d style space.","og_title":"Giannis reinvented his game more than anyone in 30 years","og_desc":"8.43 style-points from his rookie season to now. Terrence Ross: 1.07 across 11 seasons."},{"slug":"time-capsule","tldr":"Players 29 years apart can play almost identically \u2014 basketball styles echo across generations.","kicker":"Era twins","title":"Separated by 29 years. Nearly the same player.","lede":"The widest era gaps with similarity \u2265 0.60 in the full 64-d embedding \u2014 each player appears once for maximum variety. Styles echo across decades \u2014 the model keeps finding 1996-97 in 2025-26.","stat":"29y","stat_label":"widest twin gap \u2014 Jeff Green '25-26 \u2194 LaSalle Thompson '96-97","viz":"timeline","rows":[{"a":"Jeff Green '25-26","b":"LaSalle Thompson '96-97","gap":29,"sim":0.735},{"a":"Jalen Johnson '25-26","b":"Grant Hill '96-97","gap":29,"sim":0.715},{"a":"Michael Jordan '96-97","b":"Shai Gilgeous-Alexander '24-25","gap":28,"sim":0.73},{"a":"DeAndre Hunter '24-25","b":"Glen Rice '96-97","gap":28,"sim":0.719}],"foot":"Twins found in the full 64-dimensional embedding; similarity is cosine there. Dataset window 1996-97 \u2192 2025-26.","og_title":"29 years apart. Nearly the same player.","og_desc":"Jeff Green '25-26 \u2194 LaSalle Thompson '96-97: the widest era-twin gap in the model."},{"slug":"dead-styles","tldr":"The old-school bruising rebounder who lives at the rim is dying out \u2014 only a few are left.","kicker":"Archetypes","title":"The \"Defensive Glass + Rim Pressure (Fts)\" is going extinct","lede":"Share of player-seasons in each style archetype: first three seasons vs last three. The 'Defensive Glass + Rim Pressure' archetype is being selected out of the league \u2014 these are its last true practitioners.","stat":"-8.4pp","stat_label":"share change \u2014 Defensive Glass + Rim Pressure (Fts)","viz":"shares","rows":[{"label":"Defensive Glass + Rim Pressure (Fts)","early":17.0,"late":8.6,"delta":-8.4},{"label":"Playmaking + Steals","early":14.4,"late":11.1,"delta":-3.3},{"label":"Shot Volume + Three-Point Volume","early":15.0,"late":11.9,"delta":-3.1},{"label":"Offensive Glass + Rim Protection","early":12.6,"late":12.0,"delta":-0.6},{"label":"Offensive Glass (Low Shot Volume)","early":15.6,"late":16.7,"delta":1.1},{"label":"Three-Point Volume (Low On-Court Impact)","early":7.1,"late":11.6,"delta":4.5},{"label":"Scoring Volume + Shot Volume","early":4.1,"late":8.8,"delta":4.7},{"label":"Three-Point Accuracy + Three-Point Volume","early":14.2,"late":19.3,"delta":5.1}],"examples":[{"label":"Bam Adebayo '24-25"},{"label":"Jeremy Sochan '24-25"},{"label":"GG Jackson '25-26"},{"label":"Kyle Filipowski '25-26"}],"foot":"8 k-means archetypes over 14-d serving vectors. Shares of charted player-seasons. Examples are the players nearest the archetype centroid in 2024-25 \u2192 2025-26 (min 800 min).","og_title":"An NBA playing style is going extinct","og_desc":"\"Defensive Glass + Rim Pressure (Fts)\" fell -8.4 points of league share. The model watched it happen."},{"slug":"three-point-takeover","tldr":"NBA teams shoot way, way more threes than they used to \u2014 the biggest style shift in 30 years.","kicker":"League drift","title":"The three-point takeover, measured","lede":"League-average three-point attempts per game, 30 seasons. The single biggest stylistic shift in the dataset \u2014 the map itself rotated toward the arc.","stat":"2.1x","stat_label":"growth in 3PA/game, 1996-97 \u2192 2025-26","viz":"line","viz_label":"3-point attempts per game","rows":[{"s":"1996-97","v":3.39},{"s":"1997-98","v":2.59},{"s":"1998-99","v":2.69},{"s":"1999-00","v":2.68},{"s":"2000-01","v":2.68},{"s":"2001-02","v":2.89},{"s":"2002-03","v":2.83},{"s":"2003-04","v":2.91},{"s":"2004-05","v":3.07},{"s":"2005-06","v":3.12},{"s":"2006-07","v":3.37},{"s":"2007-08","v":3.61},{"s":"2008-09","v":3.62},{"s":"2009-10","v":3.66},{"s":"2010-11","v":3.62},{"s":"2011-12","v":3.75},{"s":"2012-13","v":4.07},{"s":"2013-14","v":4.27},{"s":"2014-15","v":4.51},{"s":"2015-16","v":4.67},{"s":"2016-17","v":5.22},{"s":"2017-18","v":5.5},{"s":"2018-19","v":5.98},{"s":"2019-20","v":6.34},{"s":"2020-21","v":6.56},{"s":"2021-22","v":6.69},{"s":"2022-23","v":6.47},{"s":"2023-24","v":6.68},{"s":"2024-25","v":7.14},{"s":"2025-26","v":7.04}],"first":{"s":"1996-97","v":3.4},"last":{"s":"2025-26","v":7.0},"foot":"Per-game rates across charted player-seasons. See the drift section on trends for the full rotation analysis.","og_title":"NBA 3-point attempts are up 2.1x in 30 years","og_desc":"From 3.4 to 7.0 per game \u2014 the biggest stylistic shift the model has measured."},{"slug":"careful-era","tldr":"NBA players turn the ball over way less than they used to \u2014 the game got cleaner even as scoring went up.","kicker":"League drift","title":"The league stopped turning it over","lede":"League-average turnovers per game, 30 seasons. As the game moved to the perimeter \u2014 more catch-and-shoot, fewer post-ups \u2014 the riskiest plays faded and ball-handling tightened league-wide: assist-to-turnover ratio is up 37% over the same span.","stat":"-18.3%","stat_label":"turnovers/game, 1996-97 \u2192 2025-26 (3.17 \u2192 2.59)","viz":"line","viz_label":"Turnovers per game","rows":[{"s":"1996-97","v":3.17},{"s":"1997-98","v":3.13},{"s":"1998-99","v":3.15},{"s":"1999-00","v":3.02},{"s":"2000-01","v":2.98},{"s":"2001-02","v":2.91},{"s":"2002-03","v":2.98},{"s":"2003-04","v":2.99},{"s":"2004-05","v":2.89},{"s":"2005-06","v":2.89},{"s":"2006-07","v":2.99},{"s":"2007-08","v":2.77},{"s":"2008-09","v":2.77},{"s":"2009-10","v":2.78},{"s":"2010-11","v":2.8},{"s":"2011-12","v":2.89},{"s":"2012-13","v":2.86},{"s":"2013-14","v":2.84},{"s":"2014-15","v":2.75},{"s":"2015-16","v":2.72},{"s":"2016-17","v":2.62},{"s":"2017-18","v":2.62},{"s":"2018-19","v":2.53},{"s":"2019-20","v":2.6},{"s":"2020-21","v":2.49},{"s":"2021-22","v":2.48},{"s":"2022-23","v":2.53},{"s":"2023-24","v":2.42},{"s":"2024-25","v":2.55},{"s":"2025-26","v":2.59}],"first":{"s":"1996-97","v":3.17},"last":{"s":"2025-26","v":2.59},"foot":"Per-game rates across charted player-seasons, 1996-97 \u2192 2025-26. Scoring rose 9.6% over the same span \u2014 this is not a minutes artifact.","og_title":"NBA turnovers are down 18% in 30 years","og_desc":"From 3.17 to 2.59 per game \u2014 assist-to-turnover ratio up 37%. The careful era, measured."},{"slug":"contender-chemistry","tldr":"Playoff rotations are way more stylistically diverse than lottery teams' \u2014 winners collect different weapons, not copies \u2014 but the spread doesn't predict how deep a run goes.","kicker":"Contender chemistry","title":"Making the playoffs takes variety \u2014 surviving them takes matchups","lede":"Mean pairwise style distance among rotation players (\u22651,000 min), 14-d embedding space, 1996-97 \u2192 2024-25. Every tier of the playoffs draws from the same diverse pool \u2014 once you're in, style spread doesn't predict how far you go. Most-diverse champs: the 2014-15 Warriors (5.78), 2019-20 Lakers (5.62), 2010-11 Mavericks (5.62); tightest: the 1999-00 Lakers (4.10).","stat":"+5.0%","stat_label":"wider rotation style spread \u2014 playoff teams vs non-playoff (5.06 vs 4.82)","viz":"bars","viz_label":"Mean rotation style spread by furthest round reached","rows":[{"label":"Champions","value":5.14,"tag":"29 title teams"},{"label":"Lost Finals","value":4.96,"tag":"29 Finals losers"},{"label":"Lost conf. finals","value":5.06,"tag":"58 teams"},{"label":"Rest of playoff field","value":5.02,"tag":"348 team-seasons"},{"label":"Missed playoffs","value":4.73,"tag":"398 team-seasons"}],"foot":"862 team-seasons; furthest round from playoff series records; 2025-26 excluded (season in progress).","og_title":"Winners don't look alike","og_desc":"Playoff rotations span 5% more style space \u2014 but Finals teams are no more diverse than first-round exits. Matchups decide."},{"slug":"matchup-nightmares","tldr":"Playoff game plans erase pure shooters \u2014 scoring, usage and efficiency all crater \u2014 while playmakers are the only ones whose role grows. You can scheme a jumper in two days; not a creator.","kicker":"Matchup nightmares","title":"May solves shooters. It can't solve playmakers.","lede":"Playoff minus regular-season pts/100 by style archetype \u2014 4,739 rotation player-seasons, 1996-97 \u2192 2024-25. Pure 3-point specialists lose 2.3 pts/100 in May, with usage (-1.00) and true shooting (-0.039) falling too \u2014 worst of all eight archetypes. Playmakers are the only group whose role grows (usage +0.19), and 1 in 16 playoff offenses runs through a playmaker as its usage leader, up from 1 in 250 in the regular season. The pattern fits a game-planning story \u2014 a best-of-7 gives defenses time to scheme a jumper, not a creator \u2014 but that's the best-fit mechanism, not proven causation. Loudest single-season swings are small-sample color: Donovan Mitchell '19-20 (+16.0) and DeMarcus Cousins '20-21 (+18.1) up; Joel Embiid '22-23 (-14.6) and Troy Daniels '16-17 (-16.3) down.","stat":"-2.3","stat_label":"playoff pts/100 drop for pure 3-point specialists (usage and efficiency fall too)","viz":"bars","viz_label":"Playoff scoring change (pts/100) by style archetype","rows":[{"label":"Pure shooters","value":-2.28,"tag":"3PT accuracy + volume \u00b7 n=1,010"},{"label":"Volume scorers","value":-2.09,"tag":"shot volume + 3PT volume"},{"label":"Glass + rim pressure","value":-1.92,"tag":"defensive glass + rim pressure"},{"label":"Glass + rim protection","value":-1.69,"tag":"offensive glass + rim protection"},{"label":"Scoring volume","value":-1.41,"tag":"scoring volume + shot volume"},{"label":"Low-volume glass","value":-0.74,"tag":"offensive glass, low shot volume"},{"label":"3PT volume, low impact","value":0.3,"tag":"n=125 \u00b7 not significant"},{"label":"Playmakers","value":-0.18,"tag":"playmaking + steals \u00b7 n=588 \u00b7 role grows"}],"foot":"4,739 rotation player-seasons (playoff GP \u2265 4, regular season \u2265 25 scaled min/g); regular-season vs playoff splits via stats.nba.com; 2025-26 excluded (season in progress).","og_title":"The playoffs eat shooters","og_desc":"Pure 3-point specialists lose 2.3 pts/100 in May \u2014 playmakers are the only ones whose role grows."}]} \ No newline at end of file +{"built":"build_insights.py","n_seasons":12966,"domain":"https://hoops.dumbmodel.com","insights":[{"slug":"most-unique","tldr":"The weirdest ways anyone has ever played basketball mostly belong to MVPs \u2014 greatness looks strange.","kicker":"Uniqueness","title":"The strangest playing styles of the last 30 years belong to MVP-level superstars","lede":"Style distance from the league-average player, 14-dimensional embedding space. Minimum 1,500 minutes. The five strangest seasons ever charted \u2014 three of them MVP campaigns.","stat":"9.57","stat_label":"style distance \u2014 James Harden '18-19","viz":"bars","viz_label":"Distance from league-average style","rows":[{"label":"James Harden '18-19","value":9.57,"tag":null},{"label":"Russell Westbrook '16-17","value":9.25,"tag":"MVP"},{"label":"Giannis Antetokounmpo '19-20","value":8.51,"tag":"MVP"},{"label":"James Harden '17-18","value":8.37,"tag":"MVP"},{"label":"Joel Embiid '23-24","value":8.32,"tag":null},{"label":"Shaquille O'Neal '99-00","value":8.31,"tag":null},{"label":"Shaquille O'Neal '97-98","value":8.31,"tag":null},{"label":"Shaquille O'Neal '04-05","value":8.28,"tag":null}],"foot":"Computed over 12,966 player-seasons (1996-97 \u2192 2025-26). MVP seasons marked from the public record.","og_title":"The weirdest NBA seasons in 30 years belong to superstars","og_desc":"Harden '18-19 sits 9.57 style-points from the average player \u2014 the strangest season in 30 years of data."},{"slug":"most-average","tldr":"We found the single most ordinary NBA season ever recorded \u2014 the perfectly average player, scientifically.","kicker":"Uniqueness","title":"The most average NBA season ever charted","lede":"Closest to the centroid of all 12,966 player-seasons in style space. Not bad, not weird \u2014 the platonic NBA role player, quantified.","stat":"1.02","stat_label":"style distance \u2014 Caleb Martin '23-24","viz":"bars","viz_label":"Distance from league-average style (smaller = more average)","rows":[{"label":"Caleb Martin '23-24","value":1.02},{"label":"Mike Dunleavy '06-07","value":1.05},{"label":"Billy Owens '96-97","value":1.13},{"label":"Gary Forbes '10-11","value":1.16},{"label":"VJ Edgecombe '25-26","value":1.16}],"foot":"Minimum 1,500 minutes. 14-dimensional serving vectors, 1996-97 \u2192 2025-26.","og_title":"The most average NBA season ever: Caleb Martin '23-24","og_desc":"1.02 style-points from the league-average player \u2014 the platonic NBA season, measured."},{"slug":"transformed","tldr":"Giannis reinvented his game more than any player in 30 years; Terrence Ross played 11 seasons as basically the same guy.","kicker":"Career arcs","title":"Nobody transformed like Giannis. Nobody stayed the same like Terrence Ross.","lede":"Style distance between a player's first and last charted season. Giannis went from raw rookie to MVP force \u2014 the biggest reinvention in the dataset. Ross played 11 seasons as essentially the same player.","stat":"8.43","stat_label":"style distance \u2014 Giannis Antetokounmpo's reinvention","viz":"bars","viz_label":"First-to-last season style distance","rows":[{"label":"Giannis Antetokounmpo '13-14 \u2192 '25-26","value":8.43,"tag":"13 seasons"},{"label":"Terrence Ross '12-13 \u2192 '22-23","value":1.07,"tag":"11 seasons"}],"foot":"First-to-last style distance. Minimum 4 charted seasons at 800+ minutes each; the steadiest needs 11+. 14-d style space.","og_title":"Giannis reinvented his game more than anyone in 30 years","og_desc":"8.43 style-points from his rookie season to now. Terrence Ross: 1.07 across 11 seasons."},{"slug":"time-capsule","tldr":"Players 29 years apart can play almost identically \u2014 basketball styles echo across generations.","kicker":"Era twins","title":"Separated by 29 years. Nearly the same player.","lede":"The widest era gaps with similarity \u2265 0.60 in the full 64-d embedding \u2014 each player appears once for maximum variety. Styles echo across decades \u2014 the model keeps finding 1996-97 in 2025-26.","stat":"29y","stat_label":"widest twin gap \u2014 Jeff Green '25-26 \u2194 LaSalle Thompson '96-97","viz":"timeline","rows":[{"a":"Jeff Green '25-26","b":"LaSalle Thompson '96-97","gap":29,"sim":0.735},{"a":"Jalen Johnson '25-26","b":"Grant Hill '96-97","gap":29,"sim":0.715},{"a":"Michael Jordan '96-97","b":"Shai Gilgeous-Alexander '24-25","gap":28,"sim":0.73},{"a":"DeAndre Hunter '24-25","b":"Glen Rice '96-97","gap":28,"sim":0.719}],"foot":"Twins found in the full 64-dimensional embedding; similarity is cosine there. Dataset window 1996-97 \u2192 2025-26.","og_title":"29 years apart. Nearly the same player.","og_desc":"Jeff Green '25-26 \u2194 LaSalle Thompson '96-97: the widest era-twin gap in the model."},{"slug":"dead-styles","tldr":"The old-school bruising rebounder who lives at the rim is dying out \u2014 only a few are left.","kicker":"Archetypes","title":"The \"Defensive Glass + Rim Pressure (Fts)\" is going extinct","lede":"Share of player-seasons in each style archetype: first three seasons vs last three. The 'Defensive Glass + Rim Pressure' archetype is being selected out of the league \u2014 these are its last true practitioners.","stat":"-8.4pp","stat_label":"share change \u2014 Defensive Glass + Rim Pressure (Fts)","viz":"shares","rows":[{"label":"Defensive Glass + Rim Pressure (Fts)","early":17.0,"late":8.6,"delta":-8.4},{"label":"Playmaking + Steals","early":14.4,"late":11.1,"delta":-3.3},{"label":"Shot Volume + Three-Point Volume","early":15.0,"late":11.9,"delta":-3.1},{"label":"Offensive Glass + Rim Protection","early":12.6,"late":12.0,"delta":-0.6},{"label":"Offensive Glass (Low Shot Volume)","early":15.6,"late":16.7,"delta":1.1},{"label":"Three-Point Volume (Low On-Court Impact)","early":7.1,"late":11.6,"delta":4.5},{"label":"Scoring Volume + Shot Volume","early":4.1,"late":8.8,"delta":4.7},{"label":"Three-Point Accuracy + Three-Point Volume","early":14.2,"late":19.3,"delta":5.1}],"examples":[{"label":"Bam Adebayo '24-25"},{"label":"Jeremy Sochan '24-25"},{"label":"GG Jackson '25-26"},{"label":"Kyle Filipowski '25-26"}],"foot":"8 k-means archetypes over 14-d serving vectors. Shares of charted player-seasons. Examples are the players nearest the archetype centroid in 2024-25 \u2192 2025-26 (min 800 min).","og_title":"An NBA playing style is going extinct","og_desc":"\"Defensive Glass + Rim Pressure (Fts)\" fell -8.4 points of league share. The model watched it happen."},{"slug":"three-point-takeover","tldr":"NBA teams shoot way, way more threes than they used to \u2014 the biggest style shift in 30 years.","kicker":"League drift","title":"The three-point takeover, measured","lede":"League-average three-point attempts per game, 30 seasons. The single biggest stylistic shift in the dataset \u2014 the map itself rotated toward the arc.","stat":"2.1x","stat_label":"growth in 3PA/game, 1996-97 \u2192 2025-26","viz":"line","viz_label":"3-point attempts per game","rows":[{"s":"1996-97","v":3.39},{"s":"1997-98","v":2.59},{"s":"1998-99","v":2.69},{"s":"1999-00","v":2.68},{"s":"2000-01","v":2.68},{"s":"2001-02","v":2.89},{"s":"2002-03","v":2.83},{"s":"2003-04","v":2.91},{"s":"2004-05","v":3.07},{"s":"2005-06","v":3.12},{"s":"2006-07","v":3.37},{"s":"2007-08","v":3.61},{"s":"2008-09","v":3.62},{"s":"2009-10","v":3.66},{"s":"2010-11","v":3.62},{"s":"2011-12","v":3.75},{"s":"2012-13","v":4.07},{"s":"2013-14","v":4.27},{"s":"2014-15","v":4.51},{"s":"2015-16","v":4.67},{"s":"2016-17","v":5.22},{"s":"2017-18","v":5.5},{"s":"2018-19","v":5.98},{"s":"2019-20","v":6.34},{"s":"2020-21","v":6.56},{"s":"2021-22","v":6.69},{"s":"2022-23","v":6.47},{"s":"2023-24","v":6.68},{"s":"2024-25","v":7.14},{"s":"2025-26","v":7.04}],"first":{"s":"1996-97","v":3.4},"last":{"s":"2025-26","v":7.0},"foot":"Per-game rates across charted player-seasons. See the drift section on trends for the full rotation analysis.","og_title":"NBA 3-point attempts are up 2.1x in 30 years","og_desc":"From 3.4 to 7.0 per game \u2014 the biggest stylistic shift the model has measured."},{"slug":"careful-era","tldr":"NBA players turn the ball over way less than they used to \u2014 the game got cleaner even as scoring went up.","kicker":"League drift","title":"The league stopped turning it over","lede":"League-average turnovers per game, 30 seasons. As the game moved to the perimeter \u2014 more catch-and-shoot, fewer post-ups \u2014 the riskiest plays faded and ball-handling tightened league-wide: assist-to-turnover ratio is up 37% over the same span.","stat":"-18.3%","stat_label":"turnovers/game, 1996-97 \u2192 2025-26 (3.17 \u2192 2.59)","viz":"line","viz_label":"Turnovers per game","rows":[{"s":"1996-97","v":3.17},{"s":"1997-98","v":3.13},{"s":"1998-99","v":3.15},{"s":"1999-00","v":3.02},{"s":"2000-01","v":2.98},{"s":"2001-02","v":2.91},{"s":"2002-03","v":2.98},{"s":"2003-04","v":2.99},{"s":"2004-05","v":2.89},{"s":"2005-06","v":2.89},{"s":"2006-07","v":2.99},{"s":"2007-08","v":2.77},{"s":"2008-09","v":2.77},{"s":"2009-10","v":2.78},{"s":"2010-11","v":2.8},{"s":"2011-12","v":2.89},{"s":"2012-13","v":2.86},{"s":"2013-14","v":2.84},{"s":"2014-15","v":2.75},{"s":"2015-16","v":2.72},{"s":"2016-17","v":2.62},{"s":"2017-18","v":2.62},{"s":"2018-19","v":2.53},{"s":"2019-20","v":2.6},{"s":"2020-21","v":2.49},{"s":"2021-22","v":2.48},{"s":"2022-23","v":2.53},{"s":"2023-24","v":2.42},{"s":"2024-25","v":2.55},{"s":"2025-26","v":2.59}],"first":{"s":"1996-97","v":3.17},"last":{"s":"2025-26","v":2.59},"foot":"Per-game rates across charted player-seasons, 1996-97 \u2192 2025-26. Scoring rose 9.6% over the same span \u2014 this is not a minutes artifact.","og_title":"NBA turnovers are down 18% in 30 years","og_desc":"From 3.17 to 2.59 per game \u2014 assist-to-turnover ratio up 37%. The careful era, measured."},{"slug":"contender-chemistry","tldr":"Playoff rotations are way more stylistically diverse than lottery teams' \u2014 winners collect different weapons, not copies \u2014 but the spread doesn't predict how deep a run goes.","kicker":"Contender chemistry","title":"Making the playoffs takes variety \u2014 surviving them takes matchups","lede":"Mean pairwise style distance among rotation players (\u22651,000 min), 14-d embedding space, 1996-97 \u2192 2024-25. Every tier of the playoffs draws from the same diverse pool \u2014 once you're in, style spread doesn't predict how far you go. Most-diverse champs: the 2014-15 Warriors (5.78), 2019-20 Lakers (5.62), 2010-11 Mavericks (5.62); tightest: the 1999-00 Lakers (4.10).","stat":"+5.0%","stat_label":"wider rotation style spread \u2014 playoff teams vs non-playoff (5.06 vs 4.82)","viz":"bars","viz_label":"Mean rotation style spread by furthest round reached","rows":[{"label":"Champions","value":5.14,"tag":"29 title teams"},{"label":"Lost Finals","value":4.96,"tag":"29 Finals losers"},{"label":"Lost conf. finals","value":5.06,"tag":"58 teams"},{"label":"Rest of playoff field","value":5.02,"tag":"348 team-seasons"},{"label":"Missed playoffs","value":4.73,"tag":"398 team-seasons"}],"foot":"862 team-seasons; furthest round from playoff series records; 2025-26 excluded (season in progress).","og_title":"Winners don't look alike","og_desc":"Playoff rotations span 5% more style space \u2014 but Finals teams are no more diverse than first-round exits. Matchups decide."},{"slug":"matchup-nightmares","tldr":"Playoff game plans erase pure shooters \u2014 scoring, usage and efficiency all crater \u2014 while playmakers are the only ones whose role grows. You can scheme a jumper in two days; not a creator.","kicker":"Matchup nightmares","title":"May solves shooters. It can't solve playmakers.","lede":"Playoff minus regular-season pts/100 by style archetype \u2014 4,739 rotation player-seasons, 1996-97 \u2192 2024-25. Pure 3-point specialists lose 2.3 pts/100 in May, with usage (-1.00) and true shooting (-0.039) falling too \u2014 worst of all eight archetypes. Playmakers are the only group whose role grows (usage +0.19), and 1 in 16 playoff offenses runs through a playmaker as its usage leader, up from 1 in 250 in the regular season. The pattern fits a game-planning story \u2014 a best-of-7 gives defenses time to scheme a jumper, not a creator \u2014 but that's the best-fit mechanism, not proven causation. Loudest single-postseason swings are small-sample color, but the 2026 Finals lived the pattern: the Knicks solved even Victor Wembanyama (-6.0 pts/100 over 22 games) while their title run rode playmaker Jose Alvarado (+4.1 across 18 games); Spurs rookie Dylan Harper's role grew (+0.8) all the way to the Finals as shooters Harrison Barnes (-5.7) and Devin Vassell (-3.7) faded.","stat":"-2.3","stat_label":"playoff pts/100 drop for pure 3-point specialists (usage and efficiency fall too)","viz":"bars","viz_label":"Playoff scoring change (pts/100) by style archetype","rows":[{"label":"Pure shooters","value":-2.28,"tag":"3PT accuracy + volume \u00b7 n=1,010"},{"label":"Volume scorers","value":-2.09,"tag":"shot volume + 3PT volume"},{"label":"Glass + rim pressure","value":-1.92,"tag":"defensive glass + rim pressure"},{"label":"Glass + rim protection","value":-1.69,"tag":"offensive glass + rim protection"},{"label":"Scoring volume","value":-1.41,"tag":"scoring volume + shot volume"},{"label":"Low-volume glass","value":-0.74,"tag":"offensive glass, low shot volume"},{"label":"3PT volume, low impact","value":0.3,"tag":"n=125 \u00b7 not significant"},{"label":"Playmakers","value":-0.18,"tag":"playmaking + steals \u00b7 n=588 \u00b7 role grows"}],"foot":"4,739 rotation player-seasons (playoff GP \u2265 4, regular season \u2265 25 scaled min/g); regular-season vs playoff splits via stats.nba.com; 2025-26 excluded (season in progress).","og_title":"The playoffs eat shooters","og_desc":"Pure 3-point specialists lose 2.3 pts/100 in May \u2014 playmakers are the only ones whose role grows."}]} \ No newline at end of file diff --git a/pipeline/build_insights.py b/pipeline/build_insights.py index c1b67a70..a7e94125 100644 --- a/pipeline/build_insights.py +++ b/pipeline/build_insights.py @@ -551,9 +551,12 @@ def insight_matchup_nightmares(): "and 1 in 16 playoff offenses runs through a playmaker as its usage leader, up " "from 1 in 250 in the regular season. The pattern fits a game-planning story — a " "best-of-7 gives defenses time to scheme a jumper, not a creator — but that's the " - "best-fit mechanism, not proven causation. Loudest single-season swings are " - "small-sample color: Donovan Mitchell '19-20 (+16.0) and DeMarcus Cousins '20-21 " - "(+18.1) up; Joel Embiid '22-23 (-14.6) and Troy Daniels '16-17 (-16.3) down.", + "best-fit mechanism, not proven causation. Loudest single-postseason swings are " + "small-sample color, but the 2026 Finals lived the pattern: the Knicks solved " + "even Victor Wembanyama (-6.0 pts/100 over 22 games) while their title run rode " + "playmaker Jose Alvarado (+4.1 across 18 games); Spurs rookie Dylan Harper's " + "role grew (+0.8) all the way to the Finals as shooters Harrison Barnes (-5.7) " + "and Devin Vassell (-3.7) faded.", "stat": "-2.3", "stat_label": "playoff pts/100 drop for pure 3-point specialists " "(usage and efficiency fall too)", diff --git a/public/assets/insights.json b/public/assets/insights.json index ab349610..7b56082a 100644 --- a/public/assets/insights.json +++ b/public/assets/insights.json @@ -1 +1 @@ -{"built":"build_insights.py","n_seasons":12966,"domain":"https://hoops.dumbmodel.com","insights":[{"slug":"most-unique","tldr":"The weirdest ways anyone has ever played basketball mostly belong to MVPs \u2014 greatness looks strange.","kicker":"Uniqueness","title":"The strangest playing styles of the last 30 years belong to MVP-level superstars","lede":"Style distance from the league-average player, 14-dimensional embedding space. Minimum 1,500 minutes. The five strangest seasons ever charted \u2014 three of them MVP campaigns.","stat":"9.57","stat_label":"style distance \u2014 James Harden '18-19","viz":"bars","viz_label":"Distance from league-average style","rows":[{"label":"James Harden '18-19","value":9.57,"tag":null},{"label":"Russell Westbrook '16-17","value":9.25,"tag":"MVP"},{"label":"Giannis Antetokounmpo '19-20","value":8.51,"tag":"MVP"},{"label":"James Harden '17-18","value":8.37,"tag":"MVP"},{"label":"Joel Embiid '23-24","value":8.32,"tag":null},{"label":"Shaquille O'Neal '99-00","value":8.31,"tag":null},{"label":"Shaquille O'Neal '97-98","value":8.31,"tag":null},{"label":"Shaquille O'Neal '04-05","value":8.28,"tag":null}],"foot":"Computed over 12,966 player-seasons (1996-97 \u2192 2025-26). MVP seasons marked from the public record.","og_title":"The weirdest NBA seasons in 30 years belong to superstars","og_desc":"Harden '18-19 sits 9.57 style-points from the average player \u2014 the strangest season in 30 years of data."},{"slug":"most-average","tldr":"We found the single most ordinary NBA season ever recorded \u2014 the perfectly average player, scientifically.","kicker":"Uniqueness","title":"The most average NBA season ever charted","lede":"Closest to the centroid of all 12,966 player-seasons in style space. Not bad, not weird \u2014 the platonic NBA role player, quantified.","stat":"1.02","stat_label":"style distance \u2014 Caleb Martin '23-24","viz":"bars","viz_label":"Distance from league-average style (smaller = more average)","rows":[{"label":"Caleb Martin '23-24","value":1.02},{"label":"Mike Dunleavy '06-07","value":1.05},{"label":"Billy Owens '96-97","value":1.13},{"label":"Gary Forbes '10-11","value":1.16},{"label":"VJ Edgecombe '25-26","value":1.16}],"foot":"Minimum 1,500 minutes. 14-dimensional serving vectors, 1996-97 \u2192 2025-26.","og_title":"The most average NBA season ever: Caleb Martin '23-24","og_desc":"1.02 style-points from the league-average player \u2014 the platonic NBA season, measured."},{"slug":"transformed","tldr":"Giannis reinvented his game more than any player in 30 years; Terrence Ross played 11 seasons as basically the same guy.","kicker":"Career arcs","title":"Nobody transformed like Giannis. Nobody stayed the same like Terrence Ross.","lede":"Style distance between a player's first and last charted season. Giannis went from raw rookie to MVP force \u2014 the biggest reinvention in the dataset. Ross played 11 seasons as essentially the same player.","stat":"8.43","stat_label":"style distance \u2014 Giannis Antetokounmpo's reinvention","viz":"bars","viz_label":"First-to-last season style distance","rows":[{"label":"Giannis Antetokounmpo '13-14 \u2192 '25-26","value":8.43,"tag":"13 seasons"},{"label":"Terrence Ross '12-13 \u2192 '22-23","value":1.07,"tag":"11 seasons"}],"foot":"First-to-last style distance. Minimum 4 charted seasons at 800+ minutes each; the steadiest needs 11+. 14-d style space.","og_title":"Giannis reinvented his game more than anyone in 30 years","og_desc":"8.43 style-points from his rookie season to now. Terrence Ross: 1.07 across 11 seasons."},{"slug":"time-capsule","tldr":"Players 29 years apart can play almost identically \u2014 basketball styles echo across generations.","kicker":"Era twins","title":"Separated by 29 years. Nearly the same player.","lede":"The widest era gaps with similarity \u2265 0.60 in the full 64-d embedding \u2014 each player appears once for maximum variety. Styles echo across decades \u2014 the model keeps finding 1996-97 in 2025-26.","stat":"29y","stat_label":"widest twin gap \u2014 Jeff Green '25-26 \u2194 LaSalle Thompson '96-97","viz":"timeline","rows":[{"a":"Jeff Green '25-26","b":"LaSalle Thompson '96-97","gap":29,"sim":0.735},{"a":"Jalen Johnson '25-26","b":"Grant Hill '96-97","gap":29,"sim":0.715},{"a":"Michael Jordan '96-97","b":"Shai Gilgeous-Alexander '24-25","gap":28,"sim":0.73},{"a":"DeAndre Hunter '24-25","b":"Glen Rice '96-97","gap":28,"sim":0.719}],"foot":"Twins found in the full 64-dimensional embedding; similarity is cosine there. Dataset window 1996-97 \u2192 2025-26.","og_title":"29 years apart. Nearly the same player.","og_desc":"Jeff Green '25-26 \u2194 LaSalle Thompson '96-97: the widest era-twin gap in the model."},{"slug":"dead-styles","tldr":"The old-school bruising rebounder who lives at the rim is dying out \u2014 only a few are left.","kicker":"Archetypes","title":"The \"Defensive Glass + Rim Pressure (Fts)\" is going extinct","lede":"Share of player-seasons in each style archetype: first three seasons vs last three. The 'Defensive Glass + Rim Pressure' archetype is being selected out of the league \u2014 these are its last true practitioners.","stat":"-8.4pp","stat_label":"share change \u2014 Defensive Glass + Rim Pressure (Fts)","viz":"shares","rows":[{"label":"Defensive Glass + Rim Pressure (Fts)","early":17.0,"late":8.6,"delta":-8.4},{"label":"Playmaking + Steals","early":14.4,"late":11.1,"delta":-3.3},{"label":"Shot Volume + Three-Point Volume","early":15.0,"late":11.9,"delta":-3.1},{"label":"Offensive Glass + Rim Protection","early":12.6,"late":12.0,"delta":-0.6},{"label":"Offensive Glass (Low Shot Volume)","early":15.6,"late":16.7,"delta":1.1},{"label":"Three-Point Volume (Low On-Court Impact)","early":7.1,"late":11.6,"delta":4.5},{"label":"Scoring Volume + Shot Volume","early":4.1,"late":8.8,"delta":4.7},{"label":"Three-Point Accuracy + Three-Point Volume","early":14.2,"late":19.3,"delta":5.1}],"examples":[{"label":"Bam Adebayo '24-25"},{"label":"Jeremy Sochan '24-25"},{"label":"GG Jackson '25-26"},{"label":"Kyle Filipowski '25-26"}],"foot":"8 k-means archetypes over 14-d serving vectors. Shares of charted player-seasons. Examples are the players nearest the archetype centroid in 2024-25 \u2192 2025-26 (min 800 min).","og_title":"An NBA playing style is going extinct","og_desc":"\"Defensive Glass + Rim Pressure (Fts)\" fell -8.4 points of league share. The model watched it happen."},{"slug":"three-point-takeover","tldr":"NBA teams shoot way, way more threes than they used to \u2014 the biggest style shift in 30 years.","kicker":"League drift","title":"The three-point takeover, measured","lede":"League-average three-point attempts per game, 30 seasons. The single biggest stylistic shift in the dataset \u2014 the map itself rotated toward the arc.","stat":"2.1x","stat_label":"growth in 3PA/game, 1996-97 \u2192 2025-26","viz":"line","viz_label":"3-point attempts per game","rows":[{"s":"1996-97","v":3.39},{"s":"1997-98","v":2.59},{"s":"1998-99","v":2.69},{"s":"1999-00","v":2.68},{"s":"2000-01","v":2.68},{"s":"2001-02","v":2.89},{"s":"2002-03","v":2.83},{"s":"2003-04","v":2.91},{"s":"2004-05","v":3.07},{"s":"2005-06","v":3.12},{"s":"2006-07","v":3.37},{"s":"2007-08","v":3.61},{"s":"2008-09","v":3.62},{"s":"2009-10","v":3.66},{"s":"2010-11","v":3.62},{"s":"2011-12","v":3.75},{"s":"2012-13","v":4.07},{"s":"2013-14","v":4.27},{"s":"2014-15","v":4.51},{"s":"2015-16","v":4.67},{"s":"2016-17","v":5.22},{"s":"2017-18","v":5.5},{"s":"2018-19","v":5.98},{"s":"2019-20","v":6.34},{"s":"2020-21","v":6.56},{"s":"2021-22","v":6.69},{"s":"2022-23","v":6.47},{"s":"2023-24","v":6.68},{"s":"2024-25","v":7.14},{"s":"2025-26","v":7.04}],"first":{"s":"1996-97","v":3.4},"last":{"s":"2025-26","v":7.0},"foot":"Per-game rates across charted player-seasons. See the drift section on trends for the full rotation analysis.","og_title":"NBA 3-point attempts are up 2.1x in 30 years","og_desc":"From 3.4 to 7.0 per game \u2014 the biggest stylistic shift the model has measured."},{"slug":"careful-era","tldr":"NBA players turn the ball over way less than they used to \u2014 the game got cleaner even as scoring went up.","kicker":"League drift","title":"The league stopped turning it over","lede":"League-average turnovers per game, 30 seasons. As the game moved to the perimeter \u2014 more catch-and-shoot, fewer post-ups \u2014 the riskiest plays faded and ball-handling tightened league-wide: assist-to-turnover ratio is up 37% over the same span.","stat":"-18.3%","stat_label":"turnovers/game, 1996-97 \u2192 2025-26 (3.17 \u2192 2.59)","viz":"line","viz_label":"Turnovers per game","rows":[{"s":"1996-97","v":3.17},{"s":"1997-98","v":3.13},{"s":"1998-99","v":3.15},{"s":"1999-00","v":3.02},{"s":"2000-01","v":2.98},{"s":"2001-02","v":2.91},{"s":"2002-03","v":2.98},{"s":"2003-04","v":2.99},{"s":"2004-05","v":2.89},{"s":"2005-06","v":2.89},{"s":"2006-07","v":2.99},{"s":"2007-08","v":2.77},{"s":"2008-09","v":2.77},{"s":"2009-10","v":2.78},{"s":"2010-11","v":2.8},{"s":"2011-12","v":2.89},{"s":"2012-13","v":2.86},{"s":"2013-14","v":2.84},{"s":"2014-15","v":2.75},{"s":"2015-16","v":2.72},{"s":"2016-17","v":2.62},{"s":"2017-18","v":2.62},{"s":"2018-19","v":2.53},{"s":"2019-20","v":2.6},{"s":"2020-21","v":2.49},{"s":"2021-22","v":2.48},{"s":"2022-23","v":2.53},{"s":"2023-24","v":2.42},{"s":"2024-25","v":2.55},{"s":"2025-26","v":2.59}],"first":{"s":"1996-97","v":3.17},"last":{"s":"2025-26","v":2.59},"foot":"Per-game rates across charted player-seasons, 1996-97 \u2192 2025-26. Scoring rose 9.6% over the same span \u2014 this is not a minutes artifact.","og_title":"NBA turnovers are down 18% in 30 years","og_desc":"From 3.17 to 2.59 per game \u2014 assist-to-turnover ratio up 37%. The careful era, measured."},{"slug":"contender-chemistry","tldr":"Playoff rotations are way more stylistically diverse than lottery teams' \u2014 winners collect different weapons, not copies \u2014 but the spread doesn't predict how deep a run goes.","kicker":"Contender chemistry","title":"Making the playoffs takes variety \u2014 surviving them takes matchups","lede":"Mean pairwise style distance among rotation players (\u22651,000 min), 14-d embedding space, 1996-97 \u2192 2024-25. Every tier of the playoffs draws from the same diverse pool \u2014 once you're in, style spread doesn't predict how far you go. Most-diverse champs: the 2014-15 Warriors (5.78), 2019-20 Lakers (5.62), 2010-11 Mavericks (5.62); tightest: the 1999-00 Lakers (4.10).","stat":"+5.0%","stat_label":"wider rotation style spread \u2014 playoff teams vs non-playoff (5.06 vs 4.82)","viz":"bars","viz_label":"Mean rotation style spread by furthest round reached","rows":[{"label":"Champions","value":5.14,"tag":"29 title teams"},{"label":"Lost Finals","value":4.96,"tag":"29 Finals losers"},{"label":"Lost conf. finals","value":5.06,"tag":"58 teams"},{"label":"Rest of playoff field","value":5.02,"tag":"348 team-seasons"},{"label":"Missed playoffs","value":4.73,"tag":"398 team-seasons"}],"foot":"862 team-seasons; furthest round from playoff series records; 2025-26 excluded (season in progress).","og_title":"Winners don't look alike","og_desc":"Playoff rotations span 5% more style space \u2014 but Finals teams are no more diverse than first-round exits. Matchups decide."},{"slug":"matchup-nightmares","tldr":"Playoff game plans erase pure shooters \u2014 scoring, usage and efficiency all crater \u2014 while playmakers are the only ones whose role grows. You can scheme a jumper in two days; not a creator.","kicker":"Matchup nightmares","title":"May solves shooters. It can't solve playmakers.","lede":"Playoff minus regular-season pts/100 by style archetype \u2014 4,739 rotation player-seasons, 1996-97 \u2192 2024-25. Pure 3-point specialists lose 2.3 pts/100 in May, with usage (-1.00) and true shooting (-0.039) falling too \u2014 worst of all eight archetypes. Playmakers are the only group whose role grows (usage +0.19), and 1 in 16 playoff offenses runs through a playmaker as its usage leader, up from 1 in 250 in the regular season. The pattern fits a game-planning story \u2014 a best-of-7 gives defenses time to scheme a jumper, not a creator \u2014 but that's the best-fit mechanism, not proven causation. Loudest single-season swings are small-sample color: Donovan Mitchell '19-20 (+16.0) and DeMarcus Cousins '20-21 (+18.1) up; Joel Embiid '22-23 (-14.6) and Troy Daniels '16-17 (-16.3) down.","stat":"-2.3","stat_label":"playoff pts/100 drop for pure 3-point specialists (usage and efficiency fall too)","viz":"bars","viz_label":"Playoff scoring change (pts/100) by style archetype","rows":[{"label":"Pure shooters","value":-2.28,"tag":"3PT accuracy + volume \u00b7 n=1,010"},{"label":"Volume scorers","value":-2.09,"tag":"shot volume + 3PT volume"},{"label":"Glass + rim pressure","value":-1.92,"tag":"defensive glass + rim pressure"},{"label":"Glass + rim protection","value":-1.69,"tag":"offensive glass + rim protection"},{"label":"Scoring volume","value":-1.41,"tag":"scoring volume + shot volume"},{"label":"Low-volume glass","value":-0.74,"tag":"offensive glass, low shot volume"},{"label":"3PT volume, low impact","value":0.3,"tag":"n=125 \u00b7 not significant"},{"label":"Playmakers","value":-0.18,"tag":"playmaking + steals \u00b7 n=588 \u00b7 role grows"}],"foot":"4,739 rotation player-seasons (playoff GP \u2265 4, regular season \u2265 25 scaled min/g); regular-season vs playoff splits via stats.nba.com; 2025-26 excluded (season in progress).","og_title":"The playoffs eat shooters","og_desc":"Pure 3-point specialists lose 2.3 pts/100 in May \u2014 playmakers are the only ones whose role grows."}]} \ No newline at end of file +{"built":"build_insights.py","n_seasons":12966,"domain":"https://hoops.dumbmodel.com","insights":[{"slug":"most-unique","tldr":"The weirdest ways anyone has ever played basketball mostly belong to MVPs \u2014 greatness looks strange.","kicker":"Uniqueness","title":"The strangest playing styles of the last 30 years belong to MVP-level superstars","lede":"Style distance from the league-average player, 14-dimensional embedding space. Minimum 1,500 minutes. The five strangest seasons ever charted \u2014 three of them MVP campaigns.","stat":"9.57","stat_label":"style distance \u2014 James Harden '18-19","viz":"bars","viz_label":"Distance from league-average style","rows":[{"label":"James Harden '18-19","value":9.57,"tag":null},{"label":"Russell Westbrook '16-17","value":9.25,"tag":"MVP"},{"label":"Giannis Antetokounmpo '19-20","value":8.51,"tag":"MVP"},{"label":"James Harden '17-18","value":8.37,"tag":"MVP"},{"label":"Joel Embiid '23-24","value":8.32,"tag":null},{"label":"Shaquille O'Neal '99-00","value":8.31,"tag":null},{"label":"Shaquille O'Neal '97-98","value":8.31,"tag":null},{"label":"Shaquille O'Neal '04-05","value":8.28,"tag":null}],"foot":"Computed over 12,966 player-seasons (1996-97 \u2192 2025-26). MVP seasons marked from the public record.","og_title":"The weirdest NBA seasons in 30 years belong to superstars","og_desc":"Harden '18-19 sits 9.57 style-points from the average player \u2014 the strangest season in 30 years of data."},{"slug":"most-average","tldr":"We found the single most ordinary NBA season ever recorded \u2014 the perfectly average player, scientifically.","kicker":"Uniqueness","title":"The most average NBA season ever charted","lede":"Closest to the centroid of all 12,966 player-seasons in style space. Not bad, not weird \u2014 the platonic NBA role player, quantified.","stat":"1.02","stat_label":"style distance \u2014 Caleb Martin '23-24","viz":"bars","viz_label":"Distance from league-average style (smaller = more average)","rows":[{"label":"Caleb Martin '23-24","value":1.02},{"label":"Mike Dunleavy '06-07","value":1.05},{"label":"Billy Owens '96-97","value":1.13},{"label":"Gary Forbes '10-11","value":1.16},{"label":"VJ Edgecombe '25-26","value":1.16}],"foot":"Minimum 1,500 minutes. 14-dimensional serving vectors, 1996-97 \u2192 2025-26.","og_title":"The most average NBA season ever: Caleb Martin '23-24","og_desc":"1.02 style-points from the league-average player \u2014 the platonic NBA season, measured."},{"slug":"transformed","tldr":"Giannis reinvented his game more than any player in 30 years; Terrence Ross played 11 seasons as basically the same guy.","kicker":"Career arcs","title":"Nobody transformed like Giannis. Nobody stayed the same like Terrence Ross.","lede":"Style distance between a player's first and last charted season. Giannis went from raw rookie to MVP force \u2014 the biggest reinvention in the dataset. Ross played 11 seasons as essentially the same player.","stat":"8.43","stat_label":"style distance \u2014 Giannis Antetokounmpo's reinvention","viz":"bars","viz_label":"First-to-last season style distance","rows":[{"label":"Giannis Antetokounmpo '13-14 \u2192 '25-26","value":8.43,"tag":"13 seasons"},{"label":"Terrence Ross '12-13 \u2192 '22-23","value":1.07,"tag":"11 seasons"}],"foot":"First-to-last style distance. Minimum 4 charted seasons at 800+ minutes each; the steadiest needs 11+. 14-d style space.","og_title":"Giannis reinvented his game more than anyone in 30 years","og_desc":"8.43 style-points from his rookie season to now. Terrence Ross: 1.07 across 11 seasons."},{"slug":"time-capsule","tldr":"Players 29 years apart can play almost identically \u2014 basketball styles echo across generations.","kicker":"Era twins","title":"Separated by 29 years. Nearly the same player.","lede":"The widest era gaps with similarity \u2265 0.60 in the full 64-d embedding \u2014 each player appears once for maximum variety. Styles echo across decades \u2014 the model keeps finding 1996-97 in 2025-26.","stat":"29y","stat_label":"widest twin gap \u2014 Jeff Green '25-26 \u2194 LaSalle Thompson '96-97","viz":"timeline","rows":[{"a":"Jeff Green '25-26","b":"LaSalle Thompson '96-97","gap":29,"sim":0.735},{"a":"Jalen Johnson '25-26","b":"Grant Hill '96-97","gap":29,"sim":0.715},{"a":"Michael Jordan '96-97","b":"Shai Gilgeous-Alexander '24-25","gap":28,"sim":0.73},{"a":"DeAndre Hunter '24-25","b":"Glen Rice '96-97","gap":28,"sim":0.719}],"foot":"Twins found in the full 64-dimensional embedding; similarity is cosine there. Dataset window 1996-97 \u2192 2025-26.","og_title":"29 years apart. Nearly the same player.","og_desc":"Jeff Green '25-26 \u2194 LaSalle Thompson '96-97: the widest era-twin gap in the model."},{"slug":"dead-styles","tldr":"The old-school bruising rebounder who lives at the rim is dying out \u2014 only a few are left.","kicker":"Archetypes","title":"The \"Defensive Glass + Rim Pressure (Fts)\" is going extinct","lede":"Share of player-seasons in each style archetype: first three seasons vs last three. The 'Defensive Glass + Rim Pressure' archetype is being selected out of the league \u2014 these are its last true practitioners.","stat":"-8.4pp","stat_label":"share change \u2014 Defensive Glass + Rim Pressure (Fts)","viz":"shares","rows":[{"label":"Defensive Glass + Rim Pressure (Fts)","early":17.0,"late":8.6,"delta":-8.4},{"label":"Playmaking + Steals","early":14.4,"late":11.1,"delta":-3.3},{"label":"Shot Volume + Three-Point Volume","early":15.0,"late":11.9,"delta":-3.1},{"label":"Offensive Glass + Rim Protection","early":12.6,"late":12.0,"delta":-0.6},{"label":"Offensive Glass (Low Shot Volume)","early":15.6,"late":16.7,"delta":1.1},{"label":"Three-Point Volume (Low On-Court Impact)","early":7.1,"late":11.6,"delta":4.5},{"label":"Scoring Volume + Shot Volume","early":4.1,"late":8.8,"delta":4.7},{"label":"Three-Point Accuracy + Three-Point Volume","early":14.2,"late":19.3,"delta":5.1}],"examples":[{"label":"Bam Adebayo '24-25"},{"label":"Jeremy Sochan '24-25"},{"label":"GG Jackson '25-26"},{"label":"Kyle Filipowski '25-26"}],"foot":"8 k-means archetypes over 14-d serving vectors. Shares of charted player-seasons. Examples are the players nearest the archetype centroid in 2024-25 \u2192 2025-26 (min 800 min).","og_title":"An NBA playing style is going extinct","og_desc":"\"Defensive Glass + Rim Pressure (Fts)\" fell -8.4 points of league share. The model watched it happen."},{"slug":"three-point-takeover","tldr":"NBA teams shoot way, way more threes than they used to \u2014 the biggest style shift in 30 years.","kicker":"League drift","title":"The three-point takeover, measured","lede":"League-average three-point attempts per game, 30 seasons. The single biggest stylistic shift in the dataset \u2014 the map itself rotated toward the arc.","stat":"2.1x","stat_label":"growth in 3PA/game, 1996-97 \u2192 2025-26","viz":"line","viz_label":"3-point attempts per game","rows":[{"s":"1996-97","v":3.39},{"s":"1997-98","v":2.59},{"s":"1998-99","v":2.69},{"s":"1999-00","v":2.68},{"s":"2000-01","v":2.68},{"s":"2001-02","v":2.89},{"s":"2002-03","v":2.83},{"s":"2003-04","v":2.91},{"s":"2004-05","v":3.07},{"s":"2005-06","v":3.12},{"s":"2006-07","v":3.37},{"s":"2007-08","v":3.61},{"s":"2008-09","v":3.62},{"s":"2009-10","v":3.66},{"s":"2010-11","v":3.62},{"s":"2011-12","v":3.75},{"s":"2012-13","v":4.07},{"s":"2013-14","v":4.27},{"s":"2014-15","v":4.51},{"s":"2015-16","v":4.67},{"s":"2016-17","v":5.22},{"s":"2017-18","v":5.5},{"s":"2018-19","v":5.98},{"s":"2019-20","v":6.34},{"s":"2020-21","v":6.56},{"s":"2021-22","v":6.69},{"s":"2022-23","v":6.47},{"s":"2023-24","v":6.68},{"s":"2024-25","v":7.14},{"s":"2025-26","v":7.04}],"first":{"s":"1996-97","v":3.4},"last":{"s":"2025-26","v":7.0},"foot":"Per-game rates across charted player-seasons. See the drift section on trends for the full rotation analysis.","og_title":"NBA 3-point attempts are up 2.1x in 30 years","og_desc":"From 3.4 to 7.0 per game \u2014 the biggest stylistic shift the model has measured."},{"slug":"careful-era","tldr":"NBA players turn the ball over way less than they used to \u2014 the game got cleaner even as scoring went up.","kicker":"League drift","title":"The league stopped turning it over","lede":"League-average turnovers per game, 30 seasons. As the game moved to the perimeter \u2014 more catch-and-shoot, fewer post-ups \u2014 the riskiest plays faded and ball-handling tightened league-wide: assist-to-turnover ratio is up 37% over the same span.","stat":"-18.3%","stat_label":"turnovers/game, 1996-97 \u2192 2025-26 (3.17 \u2192 2.59)","viz":"line","viz_label":"Turnovers per game","rows":[{"s":"1996-97","v":3.17},{"s":"1997-98","v":3.13},{"s":"1998-99","v":3.15},{"s":"1999-00","v":3.02},{"s":"2000-01","v":2.98},{"s":"2001-02","v":2.91},{"s":"2002-03","v":2.98},{"s":"2003-04","v":2.99},{"s":"2004-05","v":2.89},{"s":"2005-06","v":2.89},{"s":"2006-07","v":2.99},{"s":"2007-08","v":2.77},{"s":"2008-09","v":2.77},{"s":"2009-10","v":2.78},{"s":"2010-11","v":2.8},{"s":"2011-12","v":2.89},{"s":"2012-13","v":2.86},{"s":"2013-14","v":2.84},{"s":"2014-15","v":2.75},{"s":"2015-16","v":2.72},{"s":"2016-17","v":2.62},{"s":"2017-18","v":2.62},{"s":"2018-19","v":2.53},{"s":"2019-20","v":2.6},{"s":"2020-21","v":2.49},{"s":"2021-22","v":2.48},{"s":"2022-23","v":2.53},{"s":"2023-24","v":2.42},{"s":"2024-25","v":2.55},{"s":"2025-26","v":2.59}],"first":{"s":"1996-97","v":3.17},"last":{"s":"2025-26","v":2.59},"foot":"Per-game rates across charted player-seasons, 1996-97 \u2192 2025-26. Scoring rose 9.6% over the same span \u2014 this is not a minutes artifact.","og_title":"NBA turnovers are down 18% in 30 years","og_desc":"From 3.17 to 2.59 per game \u2014 assist-to-turnover ratio up 37%. The careful era, measured."},{"slug":"contender-chemistry","tldr":"Playoff rotations are way more stylistically diverse than lottery teams' \u2014 winners collect different weapons, not copies \u2014 but the spread doesn't predict how deep a run goes.","kicker":"Contender chemistry","title":"Making the playoffs takes variety \u2014 surviving them takes matchups","lede":"Mean pairwise style distance among rotation players (\u22651,000 min), 14-d embedding space, 1996-97 \u2192 2024-25. Every tier of the playoffs draws from the same diverse pool \u2014 once you're in, style spread doesn't predict how far you go. Most-diverse champs: the 2014-15 Warriors (5.78), 2019-20 Lakers (5.62), 2010-11 Mavericks (5.62); tightest: the 1999-00 Lakers (4.10).","stat":"+5.0%","stat_label":"wider rotation style spread \u2014 playoff teams vs non-playoff (5.06 vs 4.82)","viz":"bars","viz_label":"Mean rotation style spread by furthest round reached","rows":[{"label":"Champions","value":5.14,"tag":"29 title teams"},{"label":"Lost Finals","value":4.96,"tag":"29 Finals losers"},{"label":"Lost conf. finals","value":5.06,"tag":"58 teams"},{"label":"Rest of playoff field","value":5.02,"tag":"348 team-seasons"},{"label":"Missed playoffs","value":4.73,"tag":"398 team-seasons"}],"foot":"862 team-seasons; furthest round from playoff series records; 2025-26 excluded (season in progress).","og_title":"Winners don't look alike","og_desc":"Playoff rotations span 5% more style space \u2014 but Finals teams are no more diverse than first-round exits. Matchups decide."},{"slug":"matchup-nightmares","tldr":"Playoff game plans erase pure shooters \u2014 scoring, usage and efficiency all crater \u2014 while playmakers are the only ones whose role grows. You can scheme a jumper in two days; not a creator.","kicker":"Matchup nightmares","title":"May solves shooters. It can't solve playmakers.","lede":"Playoff minus regular-season pts/100 by style archetype \u2014 4,739 rotation player-seasons, 1996-97 \u2192 2024-25. Pure 3-point specialists lose 2.3 pts/100 in May, with usage (-1.00) and true shooting (-0.039) falling too \u2014 worst of all eight archetypes. Playmakers are the only group whose role grows (usage +0.19), and 1 in 16 playoff offenses runs through a playmaker as its usage leader, up from 1 in 250 in the regular season. The pattern fits a game-planning story \u2014 a best-of-7 gives defenses time to scheme a jumper, not a creator \u2014 but that's the best-fit mechanism, not proven causation. Loudest single-postseason swings are small-sample color, but the 2026 Finals lived the pattern: the Knicks solved even Victor Wembanyama (-6.0 pts/100 over 22 games) while their title run rode playmaker Jose Alvarado (+4.1 across 18 games); Spurs rookie Dylan Harper's role grew (+0.8) all the way to the Finals as shooters Harrison Barnes (-5.7) and Devin Vassell (-3.7) faded.","stat":"-2.3","stat_label":"playoff pts/100 drop for pure 3-point specialists (usage and efficiency fall too)","viz":"bars","viz_label":"Playoff scoring change (pts/100) by style archetype","rows":[{"label":"Pure shooters","value":-2.28,"tag":"3PT accuracy + volume \u00b7 n=1,010"},{"label":"Volume scorers","value":-2.09,"tag":"shot volume + 3PT volume"},{"label":"Glass + rim pressure","value":-1.92,"tag":"defensive glass + rim pressure"},{"label":"Glass + rim protection","value":-1.69,"tag":"offensive glass + rim protection"},{"label":"Scoring volume","value":-1.41,"tag":"scoring volume + shot volume"},{"label":"Low-volume glass","value":-0.74,"tag":"offensive glass, low shot volume"},{"label":"3PT volume, low impact","value":0.3,"tag":"n=125 \u00b7 not significant"},{"label":"Playmakers","value":-0.18,"tag":"playmaking + steals \u00b7 n=588 \u00b7 role grows"}],"foot":"4,739 rotation player-seasons (playoff GP \u2265 4, regular season \u2265 25 scaled min/g); regular-season vs playoff splits via stats.nba.com; 2025-26 excluded (season in progress).","og_title":"The playoffs eat shooters","og_desc":"Pure 3-point specialists lose 2.3 pts/100 in May \u2014 playmakers are the only ones whose role grows."}]} \ No newline at end of file