Skip to content

Commit

Permalink
Merge pull request #88 from matsonj/quick-update
Browse files Browse the repository at this point in the history
Quick-update
  • Loading branch information
matsonj committed Jul 8, 2023
2 parents 70e18a9 + 3413d5a commit 9353a6c
Show file tree
Hide file tree
Showing 26 changed files with 335 additions and 275 deletions.
2 changes: 1 addition & 1 deletion analyze/pages/index.md
Expand Up @@ -67,7 +67,7 @@ ORDER BY sort_key
```

```thru_date
SELECT max(date) as end_date FROM latest_results
SELECT COALESCE(max(date),CURRENT_DATE) as end_date FROM latest_results
```
## Conference Summaries

Expand Down
60 changes: 30 additions & 30 deletions data/team_ratings.csv
@@ -1,31 +1,31 @@
team,team_long,conf,ELO rating,Win Total
BOS,Boston Celtics,East,1686,53.5
MIL,Milwaukee Bucks,East,1677,52.5
MIA,Miami Heat,East,1642,48.5
BRK,Brooklyn Nets,East,1661,50.5
PHO,Phoenix Suns,West,1679,52.5
LAC,Los Angeles Clippers,West,1674,52.5
PHI,Philadelphia 76ers,East,1660,50.5
DEN,Denver Nuggets,West,1649,49.5
GSW,Golden State Warriors,West,1667,51.5
DAL,Dallas Mavericks,West,1641,48.5
MEM,Memphis Grizzlies,West,1638,48.5
UTA,Utah Jazz,West,1431,24.5
ATL,Atlanta Hawks,East,1618,45.5
NOP,New Orleans Pelicans,West,1607,44.5
TOR,Toronto Raptors,East,1629,45.5
MIN,Minnesota Timberwolves,West,1638,48.5
LAL,Los Angeles Lakers,West,1617,45.5
POR,Portland Trail Blazers,West,1565,39.5
CHI,Chicago Bulls,East,1593,42.5
CHO,Charlotte Hornets,East,1543,36.5
NYK,New York Knicks,East,1569,39.5
IND,Indiana Pacers,East,1425,23.5
CLE,Cleveland Cavaliers,East,1633,47.5
SAC,Sacramento Kings,West,1514,33.5
SAS,San Antonio Spurs,West,1413,22.5
WAS,Washington Wizards,East,1534,35.5
ORL,Orlando Magic,East,1453,26.5
DET,Detroit Pistons,East,1482,29.5
OKC,Oklahoma City Thunder,West,1423,23.5
HOU,Houston Rockets,West,1423,23.5
BOS,Boston Celtics,East,1650,47.5
MIL,Milwaukee Bucks,East,1634,45.5
MIA,Miami Heat,East,1631,45.0
BRK,Brooklyn Nets,East,1586,40.0
PHO,Phoenix Suns,West,1648,46.5
LAC,Los Angeles Clippers,West,1606,42.0
PHI,Philadelphia 76ers,East,1612,43.0
DEN,Denver Nuggets,West,1652,46.5
GSW,Golden State Warriors,West,1610,42.5
DAL,Dallas Mavericks,West,1602,41.5
MEM,Memphis Grizzlies,West,1597,40.5
UTA,Utah Jazz,West,1581,38.5
ATL,Atlanta Hawks,East,1587,40.0
NOP,New Orleans Pelicans,West,1590,40.0
TOR,Toronto Raptors,East,1584,39.0
MIN,Minnesota Timberwolves,West,1586,49.5
LAL,Los Angeles Lakers,West,1617,43.0
POR,Portland Trail Blazers,West,1581,39.0
CHI,Chicago Bulls,East,1582,39.0
CHO,Charlotte Hornets,East,1580,39.0
NYK,New York Knicks,East,1589,40.0
IND,Indiana Pacers,East,1581,39.0
CLE,Cleveland Cavaliers,East,1596,40.5
SAC,Sacramento Kings,West,1588,40.0
SAS,San Antonio Spurs,West,1582,39.0
WAS,Washington Wizards,East,1580,38.5
ORL,Orlando Magic,East,1581,39.0
DET,Detroit Pistons,East,1580,39.0
OKC,Oklahoma City Thunder,West,1584,39.0
HOU,Houston Rockets,West,1580,39.0
31 changes: 31 additions & 0 deletions data/team_ratings_2023.csv
@@ -0,0 +1,31 @@
team,team_long,conf,ELO rating,Win Total
BOS,Boston Celtics,East,1686,53.5
MIL,Milwaukee Bucks,East,1677,52.5
MIA,Miami Heat,East,1642,48.5
BRK,Brooklyn Nets,East,1661,50.5
PHO,Phoenix Suns,West,1679,52.5
LAC,Los Angeles Clippers,West,1674,52.5
PHI,Philadelphia 76ers,East,1660,50.5
DEN,Denver Nuggets,West,1649,49.5
GSW,Golden State Warriors,West,1667,51.5
DAL,Dallas Mavericks,West,1641,48.5
MEM,Memphis Grizzlies,West,1638,48.5
UTA,Utah Jazz,West,1431,24.5
ATL,Atlanta Hawks,East,1618,45.5
NOP,New Orleans Pelicans,West,1607,44.5
TOR,Toronto Raptors,East,1629,45.5
MIN,Minnesota Timberwolves,West,1638,48.5
LAL,Los Angeles Lakers,West,1617,45.5
POR,Portland Trail Blazers,West,1565,39.5
CHI,Chicago Bulls,East,1593,42.5
CHO,Charlotte Hornets,East,1543,36.5
NYK,New York Knicks,East,1569,39.5
IND,Indiana Pacers,East,1425,23.5
CLE,Cleveland Cavaliers,East,1633,47.5
SAC,Sacramento Kings,West,1514,33.5
SAS,San Antonio Spurs,West,1413,22.5
WAS,Washington Wizards,East,1534,35.5
ORL,Orlando Magic,East,1453,26.5
DET,Detroit Pistons,East,1482,29.5
OKC,Oklahoma City Thunder,West,1423,23.5
HOU,Houston Rockets,West,1423,23.5
Expand Up @@ -15,5 +15,7 @@ SELECT
END AS losing_team,
True AS include_actuals
FROM "mdsbox"."main"."prep_nba_elo_latest"
WHERE score1 IS NOT NULL
WHERE score1 IS NOT NULL
-- remove actual results so that we can sim 2023-24 season
AND 1 = 0
GROUP BY ALL
Expand Up @@ -6,10 +6,12 @@ SELECT
EV.elo_rating AS visiting_team_elo_rating,
EH.winning_team AS home_team,
EH.elo_rating AS home_team_elo_rating,
( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 70)::real/400)+1))) * 10000 AS home_team_win_probability,
-- removing the 70 point adjustment for home team advantage for now
( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 0)::real/400)+1))) * 10000 AS home_team_win_probability,
R.rand_result,
CASE
WHEN ( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 70)::real/400)+1))) * 10000 >= R.rand_result THEN EH.winning_team
WHEN -- removing the 70 point adjustment for home team advantage for now
( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 0)::real/400)+1))) * 10000 >= R.rand_result THEN EH.winning_team
ELSE EV.winning_team
END AS winning_team
FROM "mdsbox"."main"."schedules" S
Expand Down
Expand Up @@ -8,10 +8,12 @@ SELECT
EV.winning_team_elo_rating AS visiting_team_elo_rating,
EH.remaining_team AS home_team,
EH.losing_team_elo_rating AS home_team_elo_rating,
( 1 - (1 / (10 ^ (-( EV.winning_team_elo_rating - EH.losing_team_elo_rating - 70)::real/400)+1))) * 10000 as home_team_win_probability,
-- removing the 70 point adjustment for home team advantage for now
( 1 - (1 / (10 ^ (-( EV.winning_team_elo_rating - EH.losing_team_elo_rating - 0)::real/400)+1))) * 10000 as home_team_win_probability,
R.rand_result,
CASE
WHEN ( 1 - (1 / (10 ^ (-( EV.winning_team_elo_rating - EH.losing_team_elo_rating - 70)::real/400)+1))) * 10000 >= R.rand_result THEN EH.remaining_team
WHEN -- removing the 70 point adjustment for home team advantage for now
( 1 - (1 / (10 ^ (-( EV.winning_team_elo_rating - EH.losing_team_elo_rating - 0)::real/400)+1))) * 10000 >= R.rand_result THEN EH.remaining_team
ELSE EV.remaining_team
END AS winning_team
FROM "mdsbox"."main"."schedules" S
Expand Down
Expand Up @@ -4,49 +4,52 @@ WITH cte_playoff_sim AS (

-- depends-on: "mdsbox"."main"."random_num_gen"

WITH cte_step_1 AS (
SELECT
R.scenario_id,
S.game_id,
S.series_id,
S.visiting_team AS visitor_key,
S.home_team AS home_key,
EV.winning_team AS visiting_team,
EV.elo_rating AS visiting_team_elo_rating,
EH.winning_team AS home_team,
EH.elo_rating AS home_team_elo_rating,
( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 70)::real/400)+1))) * 10000 as home_team_win_probability,
R.rand_result,
CASE
WHEN ( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 70)::real/400)+1))) * 10000 >= R.rand_result THEN EH.winning_team
ELSE EV.winning_team
END AS winning_team
FROM "mdsbox"."main"."schedules" S

LEFT JOIN "mdsbox"."main"."random_num_gen" R ON R.game_id = S.game_id
LEFT JOIN "mdsbox"."main"."initialize_seeding" EH ON S.home_team = EH.seed AND R.scenario_id = EH.scenario_id
LEFT JOIN "mdsbox"."main"."initialize_seeding" EV ON S.visiting_team = EV.seed AND R.scenario_id = EV.scenario_id

WHERE S.type = 'playoffs_r1' ),
cte_step_2 AS (
SELECT step1.*,
ROW_NUMBER() OVER (PARTITION BY scenario_id, series_id, winning_team ORDER BY scenario_id, series_id, game_id ) AS series_result
FROM cte_step_1 step1
),
cte_final_game AS (
SELECT scenario_id,
series_id,
game_id
FROM cte_step_2
WHERE series_result = 4
)
SELECT step2.*
FROM cte_step_2 step2
INNER JOIN cte_final_game F ON F.scenario_id = step2.scenario_id
AND f.series_id = step2.series_id AND step2.game_id <= f.game_id
ORDER BY step2.scenario_id,
step2.series_id,
step2.game_id
WITH cte_step_1 AS (
SELECT
R.scenario_id,
S.game_id,
S.series_id,
S.visiting_team AS visitor_key,
S.home_team AS home_key,
EV.winning_team AS visiting_team,
EV.elo_rating AS visiting_team_elo_rating,
EH.winning_team AS home_team,
EH.elo_rating AS home_team_elo_rating,
-- removing the 70 point adjustment for home team advantage for now
( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 0)::real/400)+1))) * 10000 as home_team_win_probability,
R.rand_result,
CASE
WHEN -- removing the 70 point adjustment for home team advantage for now
( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 0)::real/400)+1))) * 10000 >= R.rand_result THEN EH.winning_team
ELSE EV.winning_team
END AS winning_team
FROM "mdsbox"."main"."schedules" S

LEFT JOIN "mdsbox"."main"."random_num_gen" R ON R.game_id = S.game_id
LEFT JOIN "mdsbox"."main"."initialize_seeding" EH ON S.home_team = EH.seed AND R.scenario_id = EH.scenario_id
LEFT JOIN "mdsbox"."main"."initialize_seeding" EV ON S.visiting_team = EV.seed AND R.scenario_id = EV.scenario_id

WHERE S.type = 'playoffs_r1'
),
cte_step_2 AS (
SELECT step1.*,
ROW_NUMBER() OVER (PARTITION BY scenario_id, series_id, winning_team ORDER BY scenario_id, series_id, game_id ) AS series_result
FROM cte_step_1 step1
),
cte_final_game AS (
SELECT scenario_id,
series_id,
game_id
FROM cte_step_2
WHERE series_result = 4
)
SELECT step2.*
FROM cte_step_2 step2
INNER JOIN cte_final_game F ON F.scenario_id = step2.scenario_id
AND f.series_id = step2.series_id AND step2.game_id <= f.game_id
ORDER BY step2.scenario_id,
step2.series_id,
step2.game_id
)

SELECT
Expand Down
Expand Up @@ -4,49 +4,52 @@ WITH cte_playoff_sim AS (

-- depends-on: "mdsbox"."main"."random_num_gen"

WITH cte_step_1 AS (
SELECT
R.scenario_id,
S.game_id,
S.series_id,
S.visiting_team AS visitor_key,
S.home_team AS home_key,
EV.winning_team AS visiting_team,
EV.elo_rating AS visiting_team_elo_rating,
EH.winning_team AS home_team,
EH.elo_rating AS home_team_elo_rating,
( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 70)::real/400)+1))) * 10000 as home_team_win_probability,
R.rand_result,
CASE
WHEN ( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 70)::real/400)+1))) * 10000 >= R.rand_result THEN EH.winning_team
ELSE EV.winning_team
END AS winning_team
FROM "mdsbox"."main"."schedules" S

LEFT JOIN "mdsbox"."main"."random_num_gen" R ON R.game_id = S.game_id
LEFT JOIN "mdsbox"."main"."playoff_sim_r1" EH ON S.home_team = EH.seed AND R.scenario_id = EH.scenario_id
LEFT JOIN "mdsbox"."main"."playoff_sim_r1" EV ON S.visiting_team = EV.seed AND R.scenario_id = EV.scenario_id

WHERE S.type = 'playoffs_r2' ),
cte_step_2 AS (
SELECT step1.*,
ROW_NUMBER() OVER (PARTITION BY scenario_id, series_id, winning_team ORDER BY scenario_id, series_id, game_id ) AS series_result
FROM cte_step_1 step1
),
cte_final_game AS (
SELECT scenario_id,
series_id,
game_id
FROM cte_step_2
WHERE series_result = 4
)
SELECT step2.*
FROM cte_step_2 step2
INNER JOIN cte_final_game F ON F.scenario_id = step2.scenario_id
AND f.series_id = step2.series_id AND step2.game_id <= f.game_id
ORDER BY step2.scenario_id,
step2.series_id,
step2.game_id
WITH cte_step_1 AS (
SELECT
R.scenario_id,
S.game_id,
S.series_id,
S.visiting_team AS visitor_key,
S.home_team AS home_key,
EV.winning_team AS visiting_team,
EV.elo_rating AS visiting_team_elo_rating,
EH.winning_team AS home_team,
EH.elo_rating AS home_team_elo_rating,
-- removing the 70 point adjustment for home team advantage for now
( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 0)::real/400)+1))) * 10000 as home_team_win_probability,
R.rand_result,
CASE
WHEN -- removing the 70 point adjustment for home team advantage for now
( 1 - (1 / (10 ^ (-( EV.elo_rating - EH.elo_rating - 0)::real/400)+1))) * 10000 >= R.rand_result THEN EH.winning_team
ELSE EV.winning_team
END AS winning_team
FROM "mdsbox"."main"."schedules" S

LEFT JOIN "mdsbox"."main"."random_num_gen" R ON R.game_id = S.game_id
LEFT JOIN "mdsbox"."main"."playoff_sim_r1" EH ON S.home_team = EH.seed AND R.scenario_id = EH.scenario_id
LEFT JOIN "mdsbox"."main"."playoff_sim_r1" EV ON S.visiting_team = EV.seed AND R.scenario_id = EV.scenario_id

WHERE S.type = 'playoffs_r2'
),
cte_step_2 AS (
SELECT step1.*,
ROW_NUMBER() OVER (PARTITION BY scenario_id, series_id, winning_team ORDER BY scenario_id, series_id, game_id ) AS series_result
FROM cte_step_1 step1
),
cte_final_game AS (
SELECT scenario_id,
series_id,
game_id
FROM cte_step_2
WHERE series_result = 4
)
SELECT step2.*
FROM cte_step_2 step2
INNER JOIN cte_final_game F ON F.scenario_id = step2.scenario_id
AND f.series_id = step2.series_id AND step2.game_id <= f.game_id
ORDER BY step2.scenario_id,
step2.series_id,
step2.game_id
)

SELECT
Expand Down

0 comments on commit 9353a6c

Please sign in to comment.