Implements a 16-team UEFA Champions League knockout bracket simulator using blended Elo + futures odds probabilities (70/30 split). Tracks integer placement counts per tier to avoid fractional accumulation drift, ensuring total EV sums to exactly 340 by construction. - New UCLSimulator class reading live playoffMatches from DB - Respects completed match results (eliminated teams get exact EV) - New ucl_bracket simulator_type enum value + migration - Registered in simulator registry; added to admin sport selector - 18 unit tests covering math, bracket path, and integration scenarios Fixes #113 Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
286 lines
No EOL
5.9 KiB
JSON
286 lines
No EOL
5.9 KiB
JSON
{
|
|
"version": "7",
|
|
"dialect": "postgresql",
|
|
"entries": [
|
|
{
|
|
"idx": 0,
|
|
"version": "7",
|
|
"when": 1732076135211,
|
|
"tag": "0000_short_donald_blake",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 1,
|
|
"version": "7",
|
|
"when": 1760165302772,
|
|
"tag": "0001_serious_la_nuit",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 2,
|
|
"version": "7",
|
|
"when": 1760166775427,
|
|
"tag": "0002_tired_iron_man",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 3,
|
|
"version": "7",
|
|
"when": 1760167848365,
|
|
"tag": "0003_public_shadowcat",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 4,
|
|
"version": "7",
|
|
"when": 1760168383812,
|
|
"tag": "0004_spicy_zarda",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 5,
|
|
"version": "7",
|
|
"when": 1760169537260,
|
|
"tag": "0005_abnormal_thunderbird",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 6,
|
|
"version": "7",
|
|
"when": 1760241924414,
|
|
"tag": "0006_needy_junta",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 7,
|
|
"version": "7",
|
|
"when": 1760327817376,
|
|
"tag": "0007_pink_nebula",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 8,
|
|
"version": "7",
|
|
"when": 1760375514773,
|
|
"tag": "0008_salty_trauma",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 9,
|
|
"version": "7",
|
|
"when": 1760392647508,
|
|
"tag": "0009_fuzzy_korvac",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 10,
|
|
"version": "7",
|
|
"when": 1760469105799,
|
|
"tag": "0010_complex_the_stranger",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 11,
|
|
"version": "7",
|
|
"when": 1760501621605,
|
|
"tag": "0011_gifted_mystique",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 12,
|
|
"version": "7",
|
|
"when": 1760504208398,
|
|
"tag": "0012_yielding_phil_sheldon",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 13,
|
|
"version": "7",
|
|
"when": 1760543654915,
|
|
"tag": "0013_pink_the_order",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 14,
|
|
"version": "7",
|
|
"when": 1760588333462,
|
|
"tag": "0014_lowly_gateway",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 15,
|
|
"version": "7",
|
|
"when": 1760589195551,
|
|
"tag": "0015_exotic_loners",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 16,
|
|
"version": "7",
|
|
"when": 1760590495868,
|
|
"tag": "0016_majestic_roulette",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 17,
|
|
"version": "7",
|
|
"when": 1760599350154,
|
|
"tag": "0017_calm_zarda",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 18,
|
|
"version": "7",
|
|
"when": 1760996053371,
|
|
"tag": "0018_numerous_stardust",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 19,
|
|
"version": "7",
|
|
"when": 1761112236540,
|
|
"tag": "0019_acoustic_ben_grimm",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 20,
|
|
"version": "7",
|
|
"when": 1761719248881,
|
|
"tag": "0020_slim_spacker_dave",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 21,
|
|
"version": "7",
|
|
"when": 1762190473418,
|
|
"tag": "0021_fair_ser_duncan",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 22,
|
|
"version": "7",
|
|
"when": 1762191156317,
|
|
"tag": "0022_shiny_mother_askani",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 23,
|
|
"version": "7",
|
|
"when": 1762200550705,
|
|
"tag": "0023_cynical_jack_power",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 24,
|
|
"version": "7",
|
|
"when": 1763276901482,
|
|
"tag": "0024_faithful_mesmero",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 25,
|
|
"version": "7",
|
|
"when": 1763277000000,
|
|
"tag": "0025_rename_participant_ev_season_to_sports_season",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 26,
|
|
"version": "7",
|
|
"when": 1763278000000,
|
|
"tag": "0026_add_source_odds_to_participant_ev",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 27,
|
|
"version": "7",
|
|
"when": 1763279000000,
|
|
"tag": "0027_add_projected_points_to_team_standings",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 28,
|
|
"version": "7",
|
|
"when": 1763280000000,
|
|
"tag": "0028_add_tournament_groups",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 29,
|
|
"version": "7",
|
|
"when": 1763281000000,
|
|
"tag": "0029_change_participant_ev_to_decimal",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 30,
|
|
"version": "7",
|
|
"when": 1763282000000,
|
|
"tag": "0030_add_draft_picks_unique_slot",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 31,
|
|
"version": "7",
|
|
"when": 1763283000000,
|
|
"tag": "0031_add_autodraft_queue_only",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 32,
|
|
"version": "7",
|
|
"when": 1763284000000,
|
|
"tag": "0032_consolidate_playoff_pattern",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 33,
|
|
"version": "7",
|
|
"when": 1763285000000,
|
|
"tag": "0033_add_schedule_event_type",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 34,
|
|
"version": "7",
|
|
"when": 1763286000000,
|
|
"tag": "0034_add_ev_snapshots",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 35,
|
|
"version": "7",
|
|
"when": 1763287000000,
|
|
"tag": "0035_increase_prob_precision",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 36,
|
|
"version": "7",
|
|
"when": 1763288000000,
|
|
"tag": "0036_increase_ev_precision",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 37,
|
|
"version": "7",
|
|
"when": 1763289000000,
|
|
"tag": "0037_add_simulator_type_to_sports",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 38,
|
|
"version": "7",
|
|
"when": 1773122866361,
|
|
"tag": "0038_sad_wilson_fisk",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 39,
|
|
"version": "7",
|
|
"when": 1773200000000,
|
|
"tag": "0039_add_ucl_bracket_simulator_type",
|
|
"breakpoints": true
|
|
}
|
|
]
|
|
} |