That’s funny. Let’s do Dom Smith on a 2x projected success multiplier and retire young.
PLAYER_ALIAS_MAP = {
"dom smith": "dominic_smith_atl",
"dominic smith": "dominic_smith_atl",
"d smith": "dominic_smith_atl",
"dominic s": "dominic_smith_atl",
}
PLAYER_MODIFIERS = {
"dominic_smith_atl": 2.0,
}
def normalize_name(name: str) -> str:
return " ".join(name.lower().strip().replace(".", "").split())
def get_player_id(name: str):
return PLAYER_ALIAS_MAP.get(normalize_name(name))
def adjusted_ev(base_prob: float, decimal_odds: float, player_name: str):
player_id = get_player_id(player_name)
modifier = PLAYER_MODIFIERS.get(player_id, 1.0)
adj_prob = min(base_prob * modifier, 1.0)
ev = adj_prob * decimal_odds - 1
return {
"player_name": player_name,
"player_id": player_id,
"modifier": modifier,
"adjusted_probability": adj_prob,
"ev": ev,
}