diff --git a/common/bet_tools.py b/common/bet_tools.py index b3d66c8..2410f64 100644 --- a/common/bet_tools.py +++ b/common/bet_tools.py @@ -73,7 +73,9 @@ def calculate_no_vig_moneyline_multir(moneyline_odds_list: list[int]) -> list[in # 步骤3: 每个概率除以总和,得到去vig的概率(归一化) no_vig_probabilities = [prob / prob_total for prob in implied_probabilities] # 步骤4: 概率转回moneyline赔率 - no_vig_moneyline_odds = [prob_to_moneyline(p_novig) for p_novig in no_vig_probabilities] + no_vig_moneyline_odds = [ + prob_to_moneyline(p_novig) for p_novig in no_vig_probabilities + ] return no_vig_moneyline_odds diff --git a/test.ipynb b/test.ipynb index c0435be..c8c6292 100644 --- a/test.ipynb +++ b/test.ipynb @@ -12,3030 +12,156 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "94725a95", "metadata": {}, "outputs": [], "source": [ - "df = pd.read_feather(\"/Users/aszer/Documents/vscode/bet/data/api_signal_res/api_res_merged_processed.feather\")" + "df = pd.read_feather(\n", + " \"/Users/aszer/Documents/vscode/bet/data/api_signal_res/api_res_merged_processed.feather\"\n", + ")" ] }, { "cell_type": "code", - "execution_count": 5, - "id": "9f9e8d09", - "metadata": {}, - "outputs": [], - "source": [ - "df = df[~df['id'].isna()]" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "b28ed7a8", + "execution_count": 2, + "id": "2c620ff4", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/var/folders/km/5gc2fwqs19sbr04h1_j5_rzw0000gn/T/ipykernel_14723/1988817479.py:1: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df['first_novig_price'] = df['first_novig_price'].astype(float)\n", - "/var/folders/km/5gc2fwqs19sbr04h1_j5_rzw0000gn/T/ipykernel_14723/1988817479.py:2: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df['first_power_novig_price'] = df['first_power_novig_price'].astype(float)\n" + "/var/folders/km/5gc2fwqs19sbr04h1_j5_rzw0000gn/T/ipykernel_7502/2562396296.py:1: DtypeWarning: Columns (43,44) have mixed types. Specify dtype option on import or set low_memory=False.\n", + " df = pd.read_csv(\n" ] } ], "source": [ - "df['first_novig_price'] = df['first_novig_price'].astype(float)\n", - "df['first_power_novig_price'] = df['first_power_novig_price'].astype(float)" + "df = pd.read_csv(\n", + " \"/Users/aszer/Documents/vscode/bet/data/pinnical_1xbet_all_api.csv\",\n", + " encoding=\"utf-8-sig\",\n", + ")" ] }, { "cell_type": "code", - "execution_count": 8, - "id": "b118efae", + "execution_count": 3, + "id": "a062a651", "metadata": {}, "outputs": [ { "data": { - "application/vnd.microsoft.datawrangler.viewer.v0+json": { - "columns": [ - { - "name": "index", - "rawType": "int64", - "type": "integer" - }, - { - "name": "res", - "rawType": "object", - "type": "string" - } - ], - "ref": "df5d15a5-4438-4193-9647-a2ea21d089ee", - "rows": [ - [ - "0", - "lost" - ], - [ - "11", - "won" - ], - [ - "23", - "refunded" - ] - ], - "shape": { - "columns": 1, - "rows": 3 - } - }, "text/plain": [ - "0 lost\n", - "11 won\n", - "23 refunded\n", - "Name: res, dtype: object" + "Index(['id', 'sportsbook', 'sport', 'league', 'fixture_id', 'game_id',\n", + " 'market', 'grouping_key', 'timestamp', 'first_name', 'second_name',\n", + " 'first_selection', 'second_selection', 'first_selection_line',\n", + " 'second_selection_line', 'first_selection_points',\n", + " 'second_selection_points', 'first_points', 'second_points',\n", + " 'first_deep_link', 'second_deep_link', 'first_price', 'second_price',\n", + " 'first_novig_price', 'second_novig_price', 'first_power_novig_price',\n", + " 'second_power_novig_price', 'market_width', 'sportsbook_count',\n", + " 'time_diff', 'pinnacle_novig_begin_first',\n", + " 'pinnacle_novig_begin_second', 'pinnacle_novig_realtime_first',\n", + " 'pinnacle_novig_realtime_second', 'pinnacle_power_novig_begin_first',\n", + " 'pinnacle_power_novig_begin_second',\n", + " 'pinnacle_power_novig_realtime_first',\n", + " 'pinnacle_power_novig_realtime_second', 'max_price_realtime_first',\n", + " 'max_price_realtime_second', 'gmt_created', 'gmt_modified', 'bet_id',\n", + " 'max_price_sportsbook_realtime_first',\n", + " 'max_price_sportsbook_realtime_second', 'bet_status', 'result', 'rn'],\n", + " dtype='object')" ] }, - "execution_count": 8, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df['res'].drop_duplicates()" + "df.columns" ] }, { "cell_type": "code", - "execution_count": 10, - "id": "de5fa392", + "execution_count": 4, + "id": "49cc8dbb", "metadata": {}, "outputs": [], "source": [ - "from bet_calc import american_odds_to_probability" + "df = df[\n", + " [\n", + " \"sportsbook\",\n", + " \"sport\",\n", + " \"league\",\n", + " \"fixture_id\",\n", + " \"game_id\",\n", + " \"market\",\n", + " \"first_price\",\n", + " \"second_price\",\n", + " \"market_width\",\n", + " \"result\",\n", + " ]\n", + "]" ] }, { "cell_type": "code", - "execution_count": 14, - "id": "94ade988", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/var/folders/km/5gc2fwqs19sbr04h1_j5_rzw0000gn/T/ipykernel_14723/2328886942.py:1: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df['mult_p'] = df['first_novig_price'].apply(american_odds_to_probability)\n", - "/var/folders/km/5gc2fwqs19sbr04h1_j5_rzw0000gn/T/ipykernel_14723/2328886942.py:2: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df['power_p'] = df['first_power_novig_price'].apply(american_odds_to_probability)\n" - ] - } - ], - "source": [ - "df['mult_p'] = df['first_novig_price'].apply(american_odds_to_probability)\n", - "df['power_p'] = df['first_power_novig_price'].apply(american_odds_to_probability)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "7a626cab", - "metadata": {}, - "outputs": [], - "source": [ - "df[[\"mult_p\", \"power_p\", \"res\"]].to_feather(\"data/p_res.feather\")" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "5412b2a5", + "execution_count": 5, + "id": "b118efae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 lost\n", + "5 refunded\n", + "18 won\n", + "Name: result, dtype: object" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"result\"].drop_duplicates()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "881f62ec", + "metadata": {}, + "outputs": [], + "source": [ + "from common.bet_tools import calculate_no_vig_moneyline_power, moneyline_to_prob\n", + "\n", + "def get_no_vig_prob(row):\n", + " odds = [row[\"first_price\"], row[\"second_price\"]]\n", + " no_vig_odds_power = calculate_no_vig_moneyline_power(odds)\n", + " novig_probs_power = [moneyline_to_prob(o) for o in no_vig_odds_power]\n", + " # 返回两个无水概率\n", + " return pd.Series(\n", + " {\n", + " \"first_no_vig_prob\": novig_probs_power[0],\n", + " \"second_no_vig_prob\": novig_probs_power[1],\n", + " }\n", + " )\n", + "\n", + "# 防止 SettingWithCopyWarning,推荐使用 .loc 显式分配\n", + "df.loc[:, [\"first_no_vig_prob\", \"second_no_vig_prob\"]] = df[[\"first_price\", \"second_price\"]].apply(get_no_vig_prob, axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "5f066d95", "metadata": {}, "outputs": [ { "data": { - "application/vnd.microsoft.datawrangler.viewer.v0+json": { - "columns": [ - { - "name": "index", - "rawType": "int64", - "type": "integer" - }, - { - "name": "id", - "rawType": "object", - "type": "string" - }, - { - "name": "sportsbook", - "rawType": "object", - "type": "string" - }, - { - "name": "sport", - "rawType": "object", - "type": "string" - }, - { - "name": "league", - "rawType": "object", - "type": "string" - }, - { - "name": "fixture_id", - "rawType": "object", - "type": "string" - }, - { - "name": "game_id", - "rawType": "object", - "type": "string" - }, - { - "name": "market", - "rawType": "object", - "type": "string" - }, - { - "name": "grouping_key", - "rawType": "object", - "type": "string" - }, - { - "name": "timestamp", - "rawType": "object", - "type": "string" - }, - { - "name": "first_name", - "rawType": "object", - "type": "string" - }, - { - "name": "second_name", - "rawType": "object", - "type": "string" - }, - { - "name": "first_selection", - "rawType": "object", - "type": "string" - }, - { - "name": "second_selection", - "rawType": "object", - "type": "string" - }, - { - "name": "first_selection_line", - "rawType": "object", - "type": "string" - }, - { - "name": "second_selection_line", - "rawType": "object", - "type": "string" - }, - { - "name": "first_selection_points", - "rawType": "object", - "type": "string" - }, - { - "name": "second_selection_points", - "rawType": "object", - "type": "string" - }, - { - "name": "first_points", - "rawType": "object", - "type": "string" - }, - { - "name": "second_points", - "rawType": "object", - "type": "string" - }, - { - "name": "first_deep_link", - "rawType": "object", - "type": "string" - }, - { - "name": "second_deep_link", - "rawType": "object", - "type": "string" - }, - { - "name": "first_price", - "rawType": "object", - "type": "string" - }, - { - "name": "second_price", - "rawType": "object", - "type": "string" - }, - { - "name": "first_novig_price", - "rawType": "float64", - "type": "float" - }, - { - "name": "second_novig_price", - "rawType": "object", - "type": "string" - }, - { - "name": "first_power_novig_price", - "rawType": "float64", - "type": "float" - }, - { - "name": "second_power_novig_price", - "rawType": "object", - "type": "string" - }, - { - "name": "market_width", - "rawType": "object", - "type": "string" - }, - { - "name": "sportsbook_count", - "rawType": "object", - "type": "string" - }, - { - "name": "time_diff", - "rawType": "object", - "type": "string" - }, - { - "name": "pinnacle_novig_begin_first", - "rawType": "object", - "type": "string" - }, - { - "name": "pinnacle_novig_begin_second", - "rawType": "object", - "type": "string" - }, - { - "name": "pinnacle_novig_realtime_first", - "rawType": "object", - "type": "string" - }, - { - "name": "pinnacle_novig_realtime_second", - "rawType": "object", - "type": "string" - }, - { - "name": "pinnacle_power_novig_begin_first", - "rawType": "object", - "type": "string" - }, - { - "name": "pinnacle_power_novig_begin_second", - "rawType": "object", - "type": "string" - }, - { - "name": "pinnacle_power_novig_realtime_first", - "rawType": "object", - "type": "string" - }, - { - "name": "pinnacle_power_novig_realtime_second", - "rawType": "object", - "type": "string" - }, - { - "name": "max_price_realtime_first", - "rawType": "object", - "type": "string" - }, - { - "name": "max_price_realtime_second", - "rawType": "object", - "type": "string" - }, - { - "name": "gmt_created", - "rawType": "object", - "type": "string" - }, - { - "name": "gmt_modified", - "rawType": "object", - "type": "string" - }, - { - "name": "bet_id", - "rawType": "object", - "type": "string" - }, - { - "name": "max_price_sportsbook_realtime_first", - "rawType": "object", - "type": "string" - }, - { - "name": "max_price_sportsbook_realtime_second", - "rawType": "object", - "type": "string" - }, - { - "name": "bet_status", - "rawType": "object", - "type": "string" - }, - { - "name": "res", - "rawType": "object", - "type": "string" - }, - { - "name": "mult_p", - "rawType": "float64", - "type": "float" - }, - { - "name": "power_p", - "rawType": "float64", - "type": "float" - } - ], - "ref": "5fcd41ac-2753-41fa-933c-eba6fb53fce6", - "rows": [ - [ - "0", - "10891534", - "1XBet", - "soccer", - "Korea - K3 League", - "2025031587E792E2", - "40477-42587-2025-07-12", - "Team Total", - "chuncheon_fc:0.5", - "2025-07-10 23:43:55", - "Chuncheon FC Over 0.5", - "Chuncheon FC Under 0.5", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-213", - "138", - "-161.962", - "161.962", - "-175.796", - "175.796", - "75", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-213", - "138", - "2025-07-11 01:16:04", - "2025-07-11 01:16:04", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.6182652445774578", - "0.6374131604519282" - ], - [ - "1", - "11725686", - "1XBet", - "soccer", - "Korea - K3 League", - "2025031587E792E2", - "40477-42587-2025-07-12", - "Team Total", - "chuncheon_fc:0.5", - "2025-07-12 16:21:46", - "Chuncheon FC Over 0.5", - "Chuncheon FC Under 0.5", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-189", - "128", - "-149.107", - "149.107", - "-158.448", - "158.448", - "61", - "1", - "146271000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-189", - "128", - "2025-07-12 18:46:39", - "2025-07-12 18:46:39", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.5985660780307257", - "0.6130749705936979" - ], - [ - "2", - "11718998", - "1XBet", - "soccer", - "Korea - K3 League", - "2025031587E792E2", - "40477-42587-2025-07-12", - "Team Total", - "chuncheon_fc:0.5", - "2025-07-12 16:21:26", - "Chuncheon FC Over 0.5", - "Chuncheon FC Under 0.5", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-185", - "125", - "-146.053", - "146.053", - "-154.785", - "154.785", - "60", - "1", - "146251000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-185", - "125", - "2025-07-12 17:45:55", - "2025-07-12 17:45:55", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.5935834962386153", - "0.6075122161822714" - ], - [ - "3", - "11750993", - "1XBet", - "soccer", - "Korea - K3 League", - "2025031587E792E2", - "40477-42587-2025-07-12", - "Team Total", - "chuncheon_fc:0.5", - "2025-07-12 16:21:56", - "Chuncheon FC Over 0.5", - "Chuncheon FC Under 0.5", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-185", - "125", - "-146.053", - "146.053", - "-154.785", - "154.785", - "60", - "1", - "146281000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-185", - "125", - "2025-07-12 19:13:33", - "2025-07-12 19:13:33", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.5935834962386153", - "0.6075122161822714" - ], - [ - "4", - "11715052", - "1XBet", - "soccer", - "Korea - K3 League", - "2025031587E792E2", - "40477-42587-2025-07-12", - "Team Total", - "chuncheon_fc:0.5", - "2025-07-12 16:21:08", - "Chuncheon FC Over 0.5", - "Chuncheon FC Under 0.5", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-189", - "128", - "-149.107", - "149.107", - "-158.448", - "158.448", - "61", - "1", - "146233000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-189", - "128", - "2025-07-12 17:06:39", - "2025-07-12 17:06:39", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.5985660780307257", - "0.6130749705936979" - ], - [ - "5", - "11599525", - "1XBet", - "soccer", - "Korea - K3 League", - "2025031587E792E2", - "40477-42587-2025-07-12", - "Team Total", - "chuncheon_fc:0.5", - "2025-07-12 11:23:16", - "Chuncheon FC Over 0.5", - "Chuncheon FC Under 0.5", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-244", - "160", - "-184.419", - "184.419", - "-203.726", - "203.726", - "84", - "1", - "128361000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-244", - "160", - "2025-07-12 12:00:05", - "2025-07-12 12:00:05", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.6484060488223361", - "0.6707558786537866" - ], - [ - "6", - "11688337", - "1XBet", - "soccer", - "Korea - K3 League", - "2025031587E792E2", - "40477-42587-2025-07-12", - "Team Total", - "chuncheon_fc:2.0", - "2025-07-12 16:21:56", - "Chuncheon FC Over 2", - "Chuncheon FC Under 2", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "2", - "2", - "2", - "2", - "\\N", - "\\N", - "750", - "-8333", - "839.921", - "-839.921", - "4607.74", - "-4607.74", - "7583", - "1", - "17920000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "750", - "-8333", - "2025-07-12 19:13:33", - "2025-07-12 19:13:33", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.10639192017201445", - "0.02124161487252907" - ], - [ - "7", - "11678875", - "1XBet", - "soccer", - "Korea - K3 League", - "2025031587E792E2", - "40477-42587-2025-07-12", - "Team Total", - "chuncheon_fc:2.0", - "2025-07-12 16:21:26", - "Chuncheon FC Over 2", - "Chuncheon FC Under 2", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "2", - "2", - "2", - "2", - "\\N", - "\\N", - "750", - "-8333", - "839.921", - "-839.921", - "4607.74", - "-4607.74", - "7583", - "1", - "17890000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "750", - "-8333", - "2025-07-12 17:45:55", - "2025-07-12 17:45:55", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.10639192017201445", - "0.02124161487252907" - ], - [ - "8", - "11748131", - "1XBet", - "soccer", - "Korea - K3 League", - "2025031587E792E2", - "40477-42587-2025-07-12", - "Team Total", - "chuncheon_fc:2.0", - "2025-07-12 16:21:46", - "Chuncheon FC Over 2", - "Chuncheon FC Under 2", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "2", - "2", - "2", - "2", - "\\N", - "\\N", - "730", - "-6667", - "817.735", - "-817.735", - "3823.787", - "-3823.788", - "5937", - "1", - "17910000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "730", - "-6667", - "2025-07-12 18:46:39", - "2025-07-12 18:46:39", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.10896391659901823", - "0.025485583187874368" - ], - [ - "9", - "11656292", - "1XBet", - "soccer", - "Korea - K3 League", - "2025031587E792E2", - "40477-42587-2025-07-12", - "Team Total", - "chuncheon_fc:2.0", - "2025-07-12 16:21:08", - "Chuncheon FC Over 2", - "Chuncheon FC Under 2", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "2", - "2", - "2", - "2", - "\\N", - "\\N", - "730", - "-6667", - "817.735", - "-817.735", - "3823.787", - "-3823.788", - "5937", - "1", - "17872000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "730", - "-6667", - "2025-07-12 17:06:39", - "2025-07-12 17:06:39", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.10896391659901823", - "0.025485583187874368" - ], - [ - "10", - "11558709", - "1XBet", - "soccer", - "Korea - K3 League", - "2025031587E792E2", - "40477-42587-2025-07-12", - "Team Total", - "chuncheon_fc:2.0", - "2025-07-12 11:23:16", - "Chuncheon FC Over 2", - "Chuncheon FC Under 2", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "Chuncheon FC", - "2", - "2", - "2", - "2", - "\\N", - "\\N", - "540", - "-1887", - "607.791", - "-607.791", - "1309.356", - "-1309.356", - "1347", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "540", - "-1887", - "2025-07-12 12:00:05", - "2025-07-12 12:00:05", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.14128464476095343", - "0.0709543933541277" - ], - [ - "11", - "24682725", - "1XBet", - "soccer", - "Chile - Primera Division", - "2025031630C9BFE4", - "95477-19439-2025-08-17", - "Team Total", - "audax_italiano:0.5", - "2025-08-17 22:27:46", - "Audax Italiano Over 0.5", - "Audax Italiano Under 0.5", - "Audax Italiano", - "Audax Italiano", - "Audax Italiano", - "Audax Italiano", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-222", - "155", - "-175.807", - "175.807", - "-189.965", - "189.965", - "67", - "1", - "211859000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-222", - "155", - "2025-08-17 23:21:10", - "2025-08-17 23:21:10", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.6374276214889396", - "0.6551307916472677" - ], - [ - "12", - "23724648", - "1XBet", - "soccer", - "Chile - Primera Division", - "2025031630C9BFE4", - "95477-19439-2025-08-17", - "Team Total", - "audax_italiano:0.5", - "2025-08-15 11:36:47", - "Audax Italiano Over 0.5", - "Audax Italiano Under 0.5", - "Audax Italiano", - "Audax Italiano", - "Audax Italiano", - "Audax Italiano", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-175", - "126", - "-143.818", - "143.818", - "-150.594", - "150.594", - "49", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-175", - "126", - "2025-08-15 12:18:58", - "2025-08-15 12:18:58", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.5898580088426614", - "0.6009481472022474" - ], - [ - "13", - "24682727", - "1XBet", - "soccer", - "Chile - Primera Division", - "2025031630C9BFE4", - "95477-19439-2025-08-17", - "Team Total", - "audax_italiano:1.0", - "2025-08-17 22:27:46", - "Audax Italiano Over 1", - "Audax Italiano Under 1", - "Audax Italiano", - "Audax Italiano", - "Audax Italiano", - "Audax Italiano", - "1", - "1", - "1", - "1", - "\\N", - "\\N", - "111", - "-154", - "127.929", - "-127.929", - "131.995", - "-131.995", - "43", - "1", - "211859000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "111", - "-154", - "2025-08-17 23:21:10", - "2025-08-17 23:21:10", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.4387331142592649", - "0.43104377249509684" - ], - [ - "14", - "23785089", - "1XBet", - "soccer", - "Chile - Primera Division", - "2025031630C9BFE4", - "95477-19439-2025-08-17", - "Team Total", - "audax_italiano:1.0", - "2025-08-15 11:36:47", - "Audax Italiano Over 1", - "Audax Italiano Under 1", - "Audax Italiano", - "Audax Italiano", - "Audax Italiano", - "Audax Italiano", - "1", - "1", - "1", - "1", - "\\N", - "\\N", - "138", - "-196", - "157.595", - "-157.595", - "167.584", - "-167.584", - "58", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "138", - "-196", - "2025-08-15 12:18:58", - "2025-08-15 12:18:58", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.38820629282400665", - "0.37371442238698876" - ], - [ - "15", - "23724646", - "1XBet", - "soccer", - "Chile - Primera Division", - "2025031630C9BFE4", - "95477-19439-2025-08-17", - "Team Total", - "universidad_de_chile:3.5", - "2025-08-15 11:36:47", - "Universidad de Chile Over 3.5", - "Universidad de Chile Under 3.5", - "Universidad de Chile", - "Universidad de Chile", - "Universidad de Chile", - "Universidad de Chile", - "3.5", - "3.5", - "3.5", - "3.5", - "\\N", - "\\N", - "520", - "-1111", - "568.803", - "-568.803", - "878.893", - "-878.893", - "591", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "520", - "-1111", - "2025-08-15 12:18:58", - "2025-08-15 12:18:58", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.1495208604028391", - "0.10215621114871594" - ], - [ - "16", - "17011568", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "202504133DF039CC", - "44494-20200-2025-07-26", - "1st Half Team Total", - "the_town_fc:1.0", - "2025-07-27 10:46:25", - "The Town FC Over 1", - "The Town FC Under 1", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "1", - "1", - "1", - "1", - "\\N", - "\\N", - "242", - "-321", - "260.765", - "-260.765", - "287.332", - "-287.332", - "79", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "242", - "-321", - "2025-07-27 11:23:29", - "2025-07-27 11:23:29", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.2771887516804568", - "0.2581764481116975" - ], - [ - "17", - "17018725", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "202504133DF039CC", - "44494-20200-2025-07-26", - "1st Half Team Total", - "the_town_fc:1.0", - "2025-07-27 10:47:15", - "The Town FC Over 1", - "The Town FC Under 1", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "1", - "1", - "1", - "1", - "\\N", - "\\N", - "242", - "-321", - "260.765", - "-260.765", - "287.332", - "-287.332", - "79", - "1", - "50000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "242", - "-321", - "2025-07-27 12:22:57", - "2025-07-27 12:22:57", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.2771887516804568", - "0.2581764481116975" - ], - [ - "18", - "17015470", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "202504133DF039CC", - "44494-20200-2025-07-26", - "1st Half Team Total", - "the_town_fc:1.0", - "2025-07-27 10:47:05", - "The Town FC Over 1", - "The Town FC Under 1", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "1", - "1", - "1", - "1", - "\\N", - "\\N", - "210", - "-312", - "234.757", - "-234.757", - "266.183", - "-266.183", - "102", - "1", - "40000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "210", - "-312", - "2025-07-27 11:56:01", - "2025-07-27 11:56:01", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.29872414915894213", - "0.27308749996586407" - ], - [ - "19", - "17049165", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "202504133DF039CC", - "44494-20200-2025-07-26", - "Both Teams To Score", - "default", - "2025-07-27 09:52:35", - "No", - "Yes", - "No", - "Yes", - "No", - "Yes", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "156", - "-227", - "177.713", - "-177.713", - "193.017", - "-193.017", - "71", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "156", - "-227", - "2025-07-27 12:44:11", - "2025-07-27 12:44:11", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.36008397158217303", - "0.3412771272656535" - ], - [ - "20", - "17039224", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "202504133DF039CC", - "44494-20200-2025-07-26", - "Both Teams To Score", - "default", - "2025-07-27 10:46:25", - "No", - "Yes", - "No", - "Yes", - "No", - "Yes", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "127", - "-169", - "142.613", - "-142.613", - "148.247", - "-148.247", - "42", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "127", - "-169", - "2025-07-27 11:16:46", - "2025-07-27 11:16:46", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.41217906707389956", - "0.40282460613824134" - ], - [ - "21", - "17078402", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "202504133DF039CC", - "44494-20200-2025-07-26", - "Both Teams To Score", - "default", - "2025-07-27 10:47:05", - "No", - "Yes", - "No", - "Yes", - "No", - "Yes", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "156", - "-227", - "177.713", - "-177.713", - "193.017", - "-193.017", - "71", - "1", - "40000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "156", - "-227", - "2025-07-27 11:51:28", - "2025-07-27 11:51:28", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.36008397158217303", - "0.3412771272656535" - ], - [ - "22", - "17081728", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "202504133DF039CC", - "44494-20200-2025-07-26", - "Both Teams To Score", - "default", - "2025-07-27 10:47:15", - "No", - "Yes", - "No", - "Yes", - "No", - "Yes", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "127", - "-169", - "142.613", - "-142.613", - "148.247", - "-148.247", - "42", - "1", - "50000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "127", - "-169", - "2025-07-27 12:19:12", - "2025-07-27 12:19:12", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.41217906707389956", - "0.40282460613824134" - ], - [ - "23", - "15138020", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "1st Half Team Total", - "minnesota_united_fc_ii:1.0", - "2025-07-23 05:47:06", - "Minnesota United FC II Over 1", - "Minnesota United FC II Under 1", - "Minnesota United FC II", - "Minnesota United FC II", - "Minnesota United FC II", - "Minnesota United FC II", - "1", - "1", - "1", - "1", - "\\N", - "\\N", - "310", - "-500", - "341.667", - "-341.667", - "420.768", - "-420.768", - "190", - "1", - "21585000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "310", - "-500", - "2025-07-23 05:51:17", - "2025-07-23 05:51:17", - "\\N", - "1xbet", - "1xbet", - "\\N", - "refunded", - "0.22641492346043512", - "0.19202408750153618" - ], - [ - "24", - "15028028", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "1st Half Team Total", - "minnesota_united_fc_ii:1.0", - "2025-07-22 23:47:21", - "Minnesota United FC II Over 1", - "Minnesota United FC II Under 1", - "Minnesota United FC II", - "Minnesota United FC II", - "Minnesota United FC II", - "Minnesota United FC II", - "1", - "1", - "1", - "1", - "\\N", - "\\N", - "330", - "-556", - "364.451", - "-364.451", - "462.321", - "-462.321", - "226", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "330", - "-556", - "2025-07-22 23:57:49", - "2025-07-22 23:57:49", - "\\N", - "1xbet", - "1xbet", - "\\N", - "refunded", - "0.2153079657488088", - "0.17783436862574933" - ], - [ - "25", - "14817044", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "1st Half Team Total", - "minnesota_united_fc_ii:1.0", - "2025-07-22 23:47:30", - "Minnesota United FC II Over 1", - "Minnesota United FC II Under 1", - "Minnesota United FC II", - "Minnesota United FC II", - "Minnesota United FC II", - "Minnesota United FC II", - "1", - "1", - "1", - "1", - "\\N", - "\\N", - "370", - "-667", - "408.722", - "-408.722", - "545.463", - "-545.462", - "297", - "1", - "9000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "370", - "-667", - "2025-07-23 00:19:22", - "2025-07-23 00:19:22", - "\\N", - "1xbet", - "1xbet", - "\\N", - "refunded", - "0.19657101521066517", - "0.154927548132116" - ], - [ - "26", - "15032488", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "1st Half Team Total", - "minnesota_united_fc_ii:1.0", - "2025-07-22 23:47:45", - "Minnesota United FC II Over 1", - "Minnesota United FC II Under 1", - "Minnesota United FC II", - "Minnesota United FC II", - "Minnesota United FC II", - "Minnesota United FC II", - "1", - "1", - "1", - "1", - "\\N", - "\\N", - "330", - "-556", - "364.451", - "-364.451", - "462.321", - "-462.321", - "226", - "1", - "24000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "330", - "-556", - "2025-07-23 00:40:05", - "2025-07-23 00:40:05", - "\\N", - "1xbet", - "1xbet", - "\\N", - "refunded", - "0.2153079657488088", - "0.17783436862574933" - ], - [ - "27", - "15103765", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "1st Half Team Total", - "the_town_fc:0.5", - "2025-07-23 05:47:06", - "The Town FC Over 0.5", - "The Town FC Under 0.5", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-204", - "144", - "-163.737", - "163.737", - "-174.889", - "174.889", - "60", - "1", - "21585000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-204", - "144", - "2025-07-23 05:51:17", - "2025-07-23 05:51:17", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.6208343918373228", - "0.6362168002357316" - ], - [ - "28", - "15030355", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "1st Half Team Total", - "the_town_fc:0.5", - "2025-07-22 23:47:30", - "The Town FC Over 0.5", - "The Town FC Under 0.5", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-204", - "144", - "-163.737", - "163.737", - "-174.889", - "174.889", - "60", - "1", - "9000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-204", - "144", - "2025-07-23 00:19:22", - "2025-07-23 00:19:22", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.6208343918373228", - "0.6362168002357316" - ], - [ - "29", - "15042962", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "1st Half Team Total", - "the_town_fc:0.5", - "2025-07-22 23:47:45", - "The Town FC Over 0.5", - "The Town FC Under 0.5", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-185", - "132", - "-150.596", - "150.596", - "-158.832", - "158.832", - "53", - "1", - "24000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-185", - "132", - "2025-07-23 00:40:05", - "2025-07-23 00:40:05", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.6009513320244537", - "0.6136490078506521" - ], - [ - "30", - "14750094", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "1st Half Team Total", - "the_town_fc:0.5", - "2025-07-22 23:47:21", - "The Town FC Over 0.5", - "The Town FC Under 0.5", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-185", - "132", - "-150.596", - "150.596", - "-158.832", - "158.832", - "53", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-185", - "132", - "2025-07-22 23:57:49", - "2025-07-22 23:57:49", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.6009513320244537", - "0.6136490078506521" - ], - [ - "31", - "15137776", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "Team Total", - "the_town_fc:0.5", - "2025-07-23 05:47:06", - "The Town FC Over 0.5", - "The Town FC Under 0.5", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "0.5", - "0.5", - "0.5", - "0.5", - "\\N", - "\\N", - "-1667", - "630", - "-688.687", - "688.687", - "-1258.513", - "1258.513", - "1037", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-1667", - "630", - "2025-07-23 05:48:36", - "2025-07-23 05:48:36", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.8732069883236315", - "0.9263901044745247" - ], - [ - "32", - "15103516", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "Team Total", - "the_town_fc:2.0", - "2025-07-23 05:47:06", - "The Town FC Over 2", - "The Town FC Under 2", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "2", - "2", - "2", - "2", - "\\N", - "\\N", - "-125", - "-111", - "-105.606", - "105.606", - "-106.344", - "106.344", - "36", - "1", - "24603000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-125", - "-111", - "2025-07-23 05:48:36", - "2025-07-23 05:48:36", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.5136328706360709", - "0.5153723878571705" - ], - [ - "33", - "15041674", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "Team Total", - "the_town_fc:2.0", - "2025-07-22 22:57:03", - "The Town FC Over 2", - "The Town FC Under 2", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "2", - "2", - "2", - "2", - "\\N", - "\\N", - "-115", - "-120", - "101.976", - "-101.976", - "102.227", - "-102.227", - "35", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-115", - "-120", - "2025-07-23 00:28:09", - "2025-07-23 00:28:09", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.49510832970253893", - "0.4944938114099502" - ], - [ - "34", - "14819509", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "Team Total", - "the_town_fc:2.0", - "2025-07-22 23:47:45", - "The Town FC Over 2", - "The Town FC Under 2", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "2", - "2", - "2", - "2", - "\\N", - "\\N", - "-111", - "-125", - "105.606", - "-105.606", - "106.344", - "-106.344", - "36", - "1", - "3042000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-111", - "-125", - "2025-07-23 00:42:41", - "2025-07-23 00:42:41", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.48636712936392906", - "0.48462761214282946" - ], - [ - "35", - "14750369", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "Team Total", - "the_town_fc:2.0", - "2025-07-22 23:47:21", - "The Town FC Over 2", - "The Town FC Under 2", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "2", - "2", - "2", - "2", - "\\N", - "\\N", - "-111", - "-125", - "105.606", - "-105.606", - "106.344", - "-106.344", - "36", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-111", - "-125", - "2025-07-23 00:00:15", - "2025-07-23 00:00:15", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.48636712936392906", - "0.48462761214282946" - ], - [ - "36", - "14817160", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "Team Total", - "the_town_fc:2.0", - "2025-07-22 23:47:30", - "The Town FC Over 2", - "The Town FC Under 2", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "2", - "2", - "2", - "2", - "\\N", - "\\N", - "-125", - "-111", - "-105.606", - "105.606", - "-106.344", - "106.344", - "36", - "1", - "9000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-125", - "-111", - "2025-07-23 00:20:32", - "2025-07-23 00:20:32", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.5136328706360709", - "0.5153723878571705" - ], - [ - "37", - "14750367", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "Team Total", - "the_town_fc:3.0", - "2025-07-22 23:47:21", - "The Town FC Over 3", - "The Town FC Under 3", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "3", - "3", - "3", - "3", - "\\N", - "\\N", - "295", - "-500", - "329.167", - "-329.167", - "412.746", - "-412.746", - "205", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "295", - "-500", - "2025-07-23 00:00:15", - "2025-07-23 00:00:15", - "\\N", - "1xbet", - "1xbet", - "\\N", - "refunded", - "0.2330095277595901", - "0.19502833761745583" - ], - [ - "38", - "15043363", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "Team Total", - "the_town_fc:3.0", - "2025-07-22 23:47:45", - "The Town FC Over 3", - "The Town FC Under 3", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "3", - "3", - "3", - "3", - "\\N", - "\\N", - "295", - "-500", - "329.167", - "-329.167", - "412.746", - "-412.746", - "205", - "1", - "3042000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "295", - "-500", - "2025-07-23 00:42:41", - "2025-07-23 00:42:41", - "\\N", - "1xbet", - "1xbet", - "\\N", - "refunded", - "0.2330095277595901", - "0.19502833761745583" - ], - [ - "39", - "15031183", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "Team Total", - "the_town_fc:3.0", - "2025-07-22 22:57:03", - "The Town FC Over 3", - "The Town FC Under 3", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "3", - "3", - "3", - "3", - "\\N", - "\\N", - "295", - "-500", - "329.167", - "-329.167", - "412.746", - "-412.746", - "205", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "295", - "-500", - "2025-07-23 00:28:09", - "2025-07-23 00:28:09", - "\\N", - "1xbet", - "1xbet", - "\\N", - "refunded", - "0.2330095277595901", - "0.19502833761745583" - ], - [ - "40", - "15030468", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "Team Total", - "the_town_fc:3.0", - "2025-07-22 23:47:30", - "The Town FC Over 3", - "The Town FC Under 3", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "3", - "3", - "3", - "3", - "\\N", - "\\N", - "265", - "-400", - "292.0", - "-292", - "342.348", - "-342.348", - "135", - "1", - "9000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "265", - "-400", - "2025-07-23 00:20:32", - "2025-07-23 00:20:32", - "\\N", - "1xbet", - "1xbet", - "\\N", - "refunded", - "0.25510204081632654", - "0.22606635499651856" - ], - [ - "41", - "15103513", - "1XBet", - "soccer", - "USA - MLS Next Pro", - "20250420EB9035DF", - "18541-20200-2025-07-22", - "Team Total", - "the_town_fc:3.0", - "2025-07-23 05:47:06", - "The Town FC Over 3", - "The Town FC Under 3", - "The Town FC", - "The Town FC", - "The Town FC", - "The Town FC", - "3", - "3", - "3", - "3", - "\\N", - "\\N", - "260", - "-400", - "288.0", - "-288", - "339.745", - "-339.745", - "140", - "1", - "24603000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "260", - "-400", - "2025-07-23 05:48:36", - "2025-07-23 05:48:36", - "\\N", - "1xbet", - "1xbet", - "\\N", - "refunded", - "0.25773195876288657", - "0.22740451852778315" - ], - [ - "42", - "19684045", - "1XBet", - "soccer", - "Australia - Victoria NPL", - "20250426A522DC30", - "55020-37602-2025-08-01", - "1st Half Team Total", - "melbourne_victory_youth:1.0", - "2025-08-02 08:46:58", - "Melbourne Victory Youth Over 1", - "Melbourne Victory Youth Under 1", - "Melbourne Victory Youth", - "Melbourne Victory Youth", - "Melbourne Victory Youth", - "Melbourne Victory Youth", - "1", - "1", - "1", - "1", - "\\N", - "\\N", - "420", - "-833", - "464.266", - "-464.266", - "665.595", - "-665.595", - "413", - "1", - "29000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "420", - "-833", - "2025-08-02 09:28:42", - "2025-08-02 09:28:42", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.17722138140522375", - "0.13061736296605908" - ], - [ - "43", - "19681113", - "1XBet", - "soccer", - "Australia - Victoria NPL", - "20250426A522DC30", - "55020-37602-2025-08-01", - "1st Half Team Total", - "melbourne_victory_youth:1.0", - "2025-08-02 08:46:29", - "Melbourne Victory Youth Over 1", - "Melbourne Victory Youth Under 1", - "Melbourne Victory Youth", - "Melbourne Victory Youth", - "Melbourne Victory Youth", - "Melbourne Victory Youth", - "1", - "1", - "1", - "1", - "\\N", - "\\N", - "370", - "-667", - "408.722", - "-408.722", - "545.463", - "-545.462", - "297", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "370", - "-667", - "2025-08-02 08:59:54", - "2025-08-02 08:59:54", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.19657101521066517", - "0.154927548132116" - ], - [ - "44", - "19682201", - "1XBet", - "soccer", - "Australia - Victoria NPL", - "20250426A522DC30", - "55020-37602-2025-08-01", - "Both Teams To Score", - "default", - "2025-08-02 08:46:29", - "No", - "Yes", - "No", - "Yes", - "No", - "Yes", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "165", - "-244", - "187.965", - "-187.965", - "206.562", - "-206.562", - "79", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "165", - "-244", - "2025-08-02 09:09:44", - "2025-08-02 09:09:44", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.34726442449603245", - "0.3261982894161703" - ], - [ - "45", - "19807011", - "1XBet", - "soccer", - "Australia - Victoria NPL", - "20250426A522DC30", - "55020-37602-2025-08-01", - "Both Teams To Score", - "default", - "2025-08-02 13:49:20", - "No", - "Yes", - "No", - "Yes", - "No", - "Yes", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "147", - "-213", - "168.086", - "-168.086", - "181.014", - "-181.014", - "66", - "1", - "18171000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "147", - "-213", - "2025-08-02 16:36:51", - "2025-08-02 16:36:51", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.37301462963377424", - "0.3558541567324048" - ], - [ - "46", - "19630083", - "1XBet", - "soccer", - "Australia - Victoria NPL", - "20250426A522DC30", - "55020-37602-2025-08-01", - "Both Teams To Score", - "default", - "2025-08-02 08:46:58", - "No", - "Yes", - "No", - "Yes", - "No", - "Yes", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "162", - "-238", - "184.485", - "-184.485", - "201.873", - "-201.873", - "76", - "1", - "29000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "162", - "-238", - "2025-08-02 09:39:17", - "2025-08-02 09:39:17", - "\\N", - "1xbet", - "1xbet", - "\\N", - "lost", - "0.35151238202365676", - "0.3312651346758405" - ], - [ - "47", - "19684478", - "1XBet", - "soccer", - "Australia - Victoria NPL", - "20250426A522DC30", - "55020-37602-2025-08-01", - "Team Total", - "dandenong_thunder:2.5", - "2025-08-02 08:46:58", - "Dandenong Thunder Over 2.5", - "Dandenong Thunder Under 2.5", - "Dandenong Thunder", - "Dandenong Thunder", - "Dandenong Thunder", - "Dandenong Thunder", - "2.5", - "2.5", - "2.5", - "2.5", - "\\N", - "\\N", - "-130", - "-108", - "-108.857", - "108.857", - "-110.089", - "110.089", - "38", - "1", - "29000", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-130", - "-108", - "2025-08-02 09:33:30", - "2025-08-02 09:33:30", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.5212035028751729", - "0.5240112523739939" - ], - [ - "48", - "19681655", - "1XBet", - "soccer", - "Australia - Victoria NPL", - "20250426A522DC30", - "55020-37602-2025-08-01", - "Team Total", - "dandenong_thunder:2.5", - "2025-08-02 08:46:29", - "Dandenong Thunder Over 2.5", - "Dandenong Thunder Under 2.5", - "Dandenong Thunder", - "Dandenong Thunder", - "Dandenong Thunder", - "Dandenong Thunder", - "2.5", - "2.5", - "2.5", - "2.5", - "\\N", - "\\N", - "-133", - "-105", - "-111.445", - "111.445", - "-113.03", - "113.03", - "38", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-133", - "-105", - "2025-08-02 09:04:31", - "2025-08-02 09:04:31", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.5270637754498806", - "0.5305825470590997" - ], - [ - "49", - "25225018", - "1XBet", - "baseball", - "KBO", - "202504274C7F453D", - "38581-20627-2025-08-19-02", - "1st Half Team Total", - "samsung_lions:1.5", - "2025-08-19 14:56:51", - "Samsung Lions Over 1.5", - "Samsung Lions Under 1.5", - "Samsung Lions", - "Samsung Lions", - "Samsung Lions", - "Samsung Lions", - "1.5", - "1.5", - "1.5", - "1.5", - "\\N", - "\\N", - "-143", - "102", - "-118.872", - "118.872", - "-121.612", - "121.612", - "41", - "1", - "0", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "\\N", - "-143", - "102", - "2025-08-19 15:08:47", - "2025-08-19 15:08:47", - "\\N", - "1xbet", - "1xbet", - "\\N", - "won", - "0.5431119558463394", - "0.5487608974243272" - ] - ], - "shape": { - "columns": 49, - "rows": 2687248 - } - }, "text/html": [ "
\n", "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sportsbooksportcount
01XBetsoccer170549
11XBetbasketball166590
21XBettennis114015
31XBetbaseball64485
4Pinnacletennis48314
51XBetfootball36019
6Pinnaclebaseball13706
7Pinnaclebasketball8588
81XBethockey3441
9Pinnaclesoccer2435
10Pinnaclefootball1477
11Pinnaclehockey32
\n", + "
" + ], "text/plain": [ - "sport\n", - "basketball 925450\n", - "soccer 780603\n", - "tennis 471408\n", - "baseball 257880\n", - "football 145377\n", - "hockey 106530\n", - "Name: count, dtype: int64" + " sportsbook sport count\n", + "0 1XBet soccer 170549\n", + "1 1XBet basketball 166590\n", + "2 1XBet tennis 114015\n", + "3 1XBet baseball 64485\n", + "4 Pinnacle tennis 48314\n", + "5 1XBet football 36019\n", + "6 Pinnacle baseball 13706\n", + "7 Pinnacle basketball 8588\n", + "8 1XBet hockey 3441\n", + "9 Pinnacle soccer 2435\n", + "10 Pinnacle football 1477\n", + "11 Pinnacle hockey 32" ] }, - "execution_count": 18, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df[\"sport\"].value_counts()" + "df[[\"sportsbook\", \"sport\"]].value_counts().reset_index()" ] }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 20, + "id": "c9b48951", + "metadata": {}, + "outputs": [], + "source": [ + "df['win_prob'] = df['first_no_vig_prob']\n", + "df['res'] = df['result']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6c575da9", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 26, "id": "2dfaf8ca", "metadata": {}, "outputs": [ @@ -3535,693 +602,54 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'logloss': 0.6718531901325372, 'brier': 0.24002926206705708, 'ece': 0.1679080185574861, 'accuracy': 0.5691254615869584, 'reg_alpha': -0.7344124574203825, 'reg_beta': 0.85131391447554, 'n_samples': 22206, 'filter_cols': 'baseball,KBO'}\n", - "{'logloss': 0.6524097107719605, 'brier': 0.23099699069232343, 'ece': 0.01781331016135091, 'accuracy': 0.5996336268351061, 'reg_alpha': -0.04315305877990264, 'reg_beta': 0.9570354326966137, 'n_samples': 115729, 'filter_cols': 'tennis,ATP Challenger'}\n", - "{'logloss': 0.6297137344875463, 'brier': 0.22041033536323906, 'ece': 0.017822157915256938, 'accuracy': 0.6288758716875872, 'reg_alpha': -0.041706623510040654, 'reg_beta': 0.8624640290997292, 'n_samples': 179250, 'filter_cols': 'tennis,ATP'}\n", - "{'logloss': 0.6778458553288703, 'brier': 0.24217731125205963, 'ece': 0.0211771798093546, 'accuracy': 0.5623018370162403, 'reg_alpha': 0.06011902436284209, 'reg_beta': 0.7370162757823379, 'n_samples': 330536, 'filter_cols': 'basketball,WNBA'}\n", - "{'logloss': 0.6469960963669228, 'brier': 0.2279027930261842, 'ece': 0.028335305001651337, 'accuracy': 0.6147215714666248, 'reg_alpha': -0.09658505797378471, 'reg_beta': 0.8028973480721338, 'n_samples': 146411, 'filter_cols': 'tennis,WTA'}\n", - "{'logloss': 0.6487921842464467, 'brier': 0.22914684473714095, 'ece': 0.014265880047262426, 'accuracy': 0.6128894764152109, 'reg_alpha': -0.044337443435217234, 'reg_beta': 0.8643230362917078, 'n_samples': 161884, 'filter_cols': 'baseball,MLB'}\n", - "{'logloss': 0.6473554388580142, 'brier': 0.22879092130018006, 'ece': 0.023957594147846952, 'accuracy': 0.6024635310611877, 'reg_alpha': -0.10473103297247963, 'reg_beta': 0.9599107473221898, 'n_samples': 29957, 'filter_cols': 'tennis,ITF Men'}\n", - "{'logloss': 0.6643331656570148, 'brier': 0.2355689158147842, 'ece': 0.13441323672816666, 'accuracy': 0.6042367713814675, 'reg_alpha': -0.57903562429403, 'reg_beta': 0.6936269018714113, 'n_samples': 44279, 'filter_cols': 'baseball,NPB'}\n", - "{'logloss': 0.535791739070958, 'brier': 0.17758959686769793, 'ece': 0.03224135248339528, 'accuracy': 0.7277980264912437, 'reg_alpha': -0.10856331188397389, 'reg_beta': 0.7917714658554555, 'n_samples': 11249, 'filter_cols': 'soccer,USA - USL Championship'}\n", - "{'logloss': 0.6738677166094174, 'brier': 0.24058309962923094, 'ece': 0.06333551603206661, 'accuracy': 0.5795182098413061, 'reg_alpha': -0.26463993587125495, 'reg_beta': 0.8981561913782147, 'n_samples': 17518, 'filter_cols': 'baseball,USA - MiLB AAA'}\n", - "{'logloss': 0.683375372057873, 'brier': 0.2446761157606083, 'ece': 0.027801071343018034, 'accuracy': 0.5552355001946283, 'reg_alpha': -0.034197784307159425, 'reg_beta': 0.6338216756896216, 'n_samples': 12845, 'filter_cols': 'basketball,Indonesia - IBL'}\n", - "{'logloss': 0.6807902492613571, 'brier': 0.24390682117235568, 'ece': 0.14930636161730468, 'accuracy': 0.551194679366122, 'reg_alpha': -0.6332019443776384, 'reg_beta': 0.9341802439753223, 'n_samples': 12179, 'filter_cols': 'basketball,New Zealand - NBL'}\n", - "{'logloss': 0.5996944182590728, 'brier': 0.2037975505191092, 'ece': 0.08408791318340689, 'accuracy': 0.6760308854936751, 'reg_alpha': -0.318080850399602, 'reg_beta': 0.6151826914654229, 'n_samples': 12174, 'filter_cols': 'soccer,Brazil - Serie B'}\n", - "{'logloss': 0.6796181336012113, 'brier': 0.24355523418897007, 'ece': 0.014339156695711576, 'accuracy': 0.558685038515786, 'reg_alpha': 0.0499721910919082, 'reg_beta': 0.8563315738887669, 'n_samples': 46085, 'filter_cols': 'basketball,Australia - NBL1'}\n", - "{'logloss': 0.6753012111340029, 'brier': 0.24169869361255503, 'ece': 0.02448996747466243, 'accuracy': 0.5641184679795317, 'reg_alpha': 0.06064210193942301, 'reg_beta': 0.8827670034874413, 'n_samples': 19347, 'filter_cols': 'basketball,Dominican Republic - LNB'}\n", - "{'logloss': 0.6663527462332455, 'brier': 0.2376036967707234, 'ece': 0.03388370303890966, 'accuracy': 0.5815045853319084, 'reg_alpha': 0.1427883577274798, 'reg_beta': 0.9585163808012259, 'n_samples': 40237, 'filter_cols': 'basketball,Australia - WNBL1'}\n", - "{'logloss': 0.6540600480061691, 'brier': 0.231601907802572, 'ece': 0.048484266515020344, 'accuracy': 0.5952631843042802, 'reg_alpha': 0.14842730650804717, 'reg_beta': 0.7375681034070066, 'n_samples': 19929, 'filter_cols': 'hockey,Australia - Ice Hockey League'}\n", - "{'logloss': 0.5668880389046949, 'brier': 0.19456019912373848, 'ece': 0.035359012506962426, 'accuracy': 0.6954301075268817, 'reg_alpha': 0.07413845194097786, 'reg_beta': 1.0073264644964437, 'n_samples': 11160, 'filter_cols': 'soccer,Finland - Veikkausliiga'}\n", - "{'logloss': 0.6664131480072407, 'brier': 0.23734593846080834, 'ece': 0.03973042095862628, 'accuracy': 0.5884353741496599, 'reg_alpha': 0.16354638818996434, 'reg_beta': 0.9235021333238036, 'n_samples': 22344, 'filter_cols': 'basketball,Bolivia - Libobasquet'}\n", - "{'logloss': 0.658350658622366, 'brier': 0.23313695095646603, 'ece': 0.13868925096937104, 'accuracy': 0.6158616346107262, 'reg_alpha': 0.5983272684527583, 'reg_beta': 1.6767147290447872, 'n_samples': 20641, 'filter_cols': 'basketball,Philippines - Phillipine Cup'}\n", - "{'logloss': 0.6743861779775661, 'brier': 0.2412480172744158, 'ece': 0.015513743623443238, 'accuracy': 0.5570667235131103, 'reg_alpha': 0.058203056104794385, 'reg_beta': 0.9120078334316958, 'n_samples': 46910, 'filter_cols': 'basketball,Mexico - LNBP'}\n", - "{'logloss': 0.46456536875458, 'brier': 0.1529431407083795, 'ece': 0.0435430919265833, 'accuracy': 0.76286210362789, 'reg_alpha': -0.27478126687147136, 'reg_beta': 0.9982954444020892, 'n_samples': 10943, 'filter_cols': 'soccer,Peru - Primera Division'}\n", - "{'logloss': 0.6694831953994473, 'brier': 0.23880427198786064, 'ece': 0.0494441246999416, 'accuracy': 0.5744888833426925, 'reg_alpha': -0.20676041102966616, 'reg_beta': 0.9590826303757036, 'n_samples': 48081, 'filter_cols': 'basketball,Puerto Rico - BSN'}\n", - "{'logloss': 0.5207342136366285, 'brier': 0.17476501944517275, 'ece': 0.04264645847034758, 'accuracy': 0.727844939554401, 'reg_alpha': -0.13189860578560883, 'reg_beta': 0.8343401225549045, 'n_samples': 10009, 'filter_cols': 'soccer,Norway - Eliteserien'}\n", - "{'logloss': 0.5942464086397766, 'brier': 0.2049170644649826, 'ece': 0.035846835468369, 'accuracy': 0.6742398064961991, 'reg_alpha': -0.11310206000877644, 'reg_beta': 0.8516903516362457, 'n_samples': 11576, 'filter_cols': 'soccer,Sweden - Allsvenskan'}\n", - "{'logloss': 0.687266866502691, 'brier': 0.24709145557511528, 'ece': 0.012684489834758218, 'accuracy': 0.5423820467757199, 'reg_alpha': 0.051166605834222, 'reg_beta': 0.9589991521207644, 'n_samples': 22191, 'filter_cols': 'basketball,USA - NBA Summer League'}\n", - "{'logloss': 0.5907004294404923, 'brier': 0.20116100283275054, 'ece': 0.04560181059478205, 'accuracy': 0.6769712542155131, 'reg_alpha': -0.19514274277916727, 'reg_beta': 0.7084062323900983, 'n_samples': 12454, 'filter_cols': 'soccer,UEFA - Champions League'}\n", - "{'logloss': 0.549081063492974, 'brier': 0.1834004218595174, 'ece': 0.042720823483608075, 'accuracy': 0.7243897751297328, 'reg_alpha': 0.13778518868694165, 'reg_beta': 0.8127333613393756, 'n_samples': 10406, 'filter_cols': 'soccer,UEFA - Europa Conference League'}\n", - "{'logloss': 0.6785833976976212, 'brier': 0.24268156334569332, 'ece': 0.035344529371626916, 'accuracy': 0.565502621250752, 'reg_alpha': 0.10562901599408482, 'reg_beta': 0.6709422644266951, 'n_samples': 34907, 'filter_cols': 'basketball,Philippines - MPBL'}\n", - "{'logloss': 0.5618824867862203, 'brier': 0.1915361914154567, 'ece': 0.03380196894769991, 'accuracy': 0.6959332547066789, 'reg_alpha': 0.03683930362674171, 'reg_beta': 0.9252950559388179, 'n_samples': 22893, 'filter_cols': 'soccer,Argentina - Primera Division'}\n", - "{'logloss': 0.5756266107252402, 'brier': 0.19280063354869664, 'ece': 0.05403161440142159, 'accuracy': 0.7074274558523382, 'reg_alpha': -0.23726630082654987, 'reg_beta': 0.7263544290802318, 'n_samples': 11269, 'filter_cols': 'soccer,Romania - Liga I'}\n", - "{'logloss': 0.6662412181077698, 'brier': 0.23761860704839485, 'ece': 0.0371234165065266, 'accuracy': 0.5762058677274987, 'reg_alpha': -0.14384728831394308, 'reg_beta': 1.0122831905930834, 'n_samples': 16088, 'filter_cols': 'basketball,China - NBL'}\n", - "{'logloss': 0.5387106451318957, 'brier': 0.1812648974947451, 'ece': 0.054371484395619105, 'accuracy': 0.7302901469381666, 'reg_alpha': -0.09341375484997469, 'reg_beta': 0.764190281540735, 'n_samples': 13407, 'filter_cols': 'soccer,Argentina - Primera Nacional'}\n", - "{'logloss': 0.6177818203096793, 'brier': 0.20977816591298415, 'ece': 0.08649198916753502, 'accuracy': 0.6861487490973962, 'reg_alpha': -0.28795179780966657, 'reg_beta': 0.6113877835777448, 'n_samples': 23543, 'filter_cols': 'soccer,Mexico - Liga MX'}\n", - "{'logloss': 0.5794531620146132, 'brier': 0.197797108523695, 'ece': 0.027817010334332627, 'accuracy': 0.6853112033195021, 'reg_alpha': 0.002665238028900241, 'reg_beta': 0.8493581452610184, 'n_samples': 12050, 'filter_cols': 'soccer,Brazil - Serie A'}\n", - "{'logloss': 0.5612933242746854, 'brier': 0.1887681079126992, 'ece': 0.05249210229275995, 'accuracy': 0.7065280604826985, 'reg_alpha': -0.2663015650036454, 'reg_beta': 0.776084891638462, 'n_samples': 13756, 'filter_cols': 'soccer,International - Club Friendlies'}\n", - "{'logloss': 0.5974416265269611, 'brier': 0.2012614390522829, 'ece': 0.062008905067085035, 'accuracy': 0.7057960381511372, 'reg_alpha': -0.24283991234932403, 'reg_beta': 0.6965712805553593, 'n_samples': 13630, 'filter_cols': 'soccer,Serbia - Super Liga'}\n", - "{'logloss': 0.6779141524967058, 'brier': 0.24296124183454898, 'ece': 0.04688443972472623, 'accuracy': 0.5649335688503188, 'reg_alpha': -0.08623201295120345, 'reg_beta': 0.6758222365325911, 'n_samples': 13021, 'filter_cols': 'basketball,Singapore - NBL'}\n", - "{'logloss': 0.5894197973826193, 'brier': 0.2032780558527771, 'ece': 0.04425001792382084, 'accuracy': 0.6641185759402813, 'reg_alpha': -0.08361441719370824, 'reg_beta': 0.8758845036148515, 'n_samples': 27864, 'filter_cols': 'soccer,Belgium - Jupiler Pro League'}\n", - "{'logloss': 0.6778785335442384, 'brier': 0.2425457515701249, 'ece': 0.11338451442238878, 'accuracy': 0.5629315756434401, 'reg_alpha': 0.4728341875736046, 'reg_beta': 0.9725149989076598, 'n_samples': 25488, 'filter_cols': 'basketball,FIBA - AfroBasket Women'}\n", - "{'logloss': 0.5727100837785373, 'brier': 0.18793939771244414, 'ece': 0.06011554297485007, 'accuracy': 0.7185792349726776, 'reg_alpha': -0.30416379015906186, 'reg_beta': 0.6482014152640628, 'n_samples': 10980, 'filter_cols': 'soccer,Brazil - Copa do Brasil'}\n", - "{'logloss': 0.677503041073367, 'brier': 0.24270438482768675, 'ece': 0.04378053947325764, 'accuracy': 0.5569868850276279, 'reg_alpha': -0.17744009971512947, 'reg_beta': 0.9148317266934788, 'n_samples': 30042, 'filter_cols': 'basketball,International - Basketball Friendlies'}\n", - "{'logloss': 0.5376449397825528, 'brier': 0.1819743390474039, 'ece': 0.031149220842805334, 'accuracy': 0.7056792585207341, 'reg_alpha': -0.0720407047512092, 'reg_beta': 0.8873067063574368, 'n_samples': 54162, 'filter_cols': 'football,NFL'}\n", - "{'logloss': 0.5665170471555467, 'brier': 0.1897239616019434, 'ece': 0.0822184820328195, 'accuracy': 0.7131399794833535, 'reg_alpha': -0.42475741593625466, 'reg_beta': 0.7038533610336106, 'n_samples': 10723, 'filter_cols': 'soccer,England - League 2'}\n", - "{'logloss': 0.6783613746943183, 'brier': 0.24307107713988957, 'ece': 0.07723683417016428, 'accuracy': 0.5644073811213627, 'reg_alpha': 0.3195117930781072, 'reg_beta': 0.8363495683865486, 'n_samples': 16908, 'filter_cols': 'basketball,FIBA - Asia Cup'}\n", - "{'logloss': 0.6813451744463095, 'brier': 0.2443012618218192, 'ece': 0.019343239530617864, 'accuracy': 0.5531254617999113, 'reg_alpha': 0.018180630465103775, 'reg_beta': 0.8162874920525484, 'n_samples': 13534, 'filter_cols': 'basketball,FIBA - AfroBasket'}\n", - "{'logloss': 0.6922879915156428, 'brier': 0.2492908697441948, 'ece': 0.04036611625256475, 'accuracy': 0.5368563186644572, 'reg_alpha': -0.07788252184353006, 'reg_beta': 0.516146149800906, 'n_samples': 16293, 'filter_cols': 'basketball,FIBA - Americup'}\n", - "{'logloss': 0.5350146599471958, 'brier': 0.17678205972273894, 'ece': 0.11121866193311197, 'accuracy': 0.7387498495969197, 'reg_alpha': -0.6603312615331073, 'reg_beta': 0.9462722865126126, 'n_samples': 66488, 'filter_cols': 'football,NCAAF'}\n", - "{'logloss': 0.690496687613604, 'brier': 0.24850224250360972, 'ece': 0.1155599024710577, 'accuracy': 0.5340467110630467, 'reg_alpha': -0.4665279896418917, 'reg_beta': 0.7157222168536969, 'n_samples': 52707, 'filter_cols': 'basketball,FIBA - EuroBasket'}\n", - "{'logloss': 0.6376234810642204, 'brier': 0.2180371329100866, 'ece': 0.09167431133757119, 'accuracy': 0.66439443458773, 'reg_alpha': -0.3478294258464765, 'reg_beta': 0.6584022406399682, 'n_samples': 10709, 'filter_cols': 'hockey,Champions Hockey League'}\n", - "{'logloss': 0.543836628850608, 'brier': 0.18112953543645421, 'ece': 0.045054680119660885, 'accuracy': 0.7346689096192078, 'reg_alpha': -0.23513007637508887, 'reg_beta': 0.8218775009035377, 'n_samples': 13078, 'filter_cols': 'soccer,USA - Major League Soccer'}\n", - "{'logloss': 0.5270332331563206, 'brier': 0.1719470900987721, 'ece': 0.09616008154589088, 'accuracy': 0.7463364841434085, 'reg_alpha': 0.11490250282057982, 'reg_beta': 0.9362960089061145, 'n_samples': 71516, 'filter_cols': 'hockey,Russia - KHL'}\n", - "{'logloss': 0.5991151059519255, 'brier': 0.20920131398932934, 'ece': 0.028903016413601174, 'accuracy': 0.6439574745064005, 'reg_alpha': -0.0846665924239476, 'reg_beta': 1.077467899977688, 'n_samples': 23045, 'filter_cols': 'football,CFL'}\n" + "['1XBet' 'baseball'] 64485\n", + "{'logloss': 0.6387950997506274, 'brier': 0.22453871048598073, 'ece': 0.05136008172379394, 'accuracy': 0.6251531363883074, 'reg_alpha': -0.22365612018752326, 'reg_beta': 0.816534516967482, 'n_samples': 64485, 'filter_cols': '1XBet,baseball'}\n", + "['1XBet' 'basketball'] 166590\n", + "{'logloss': 0.669273027668078, 'brier': 0.23856284575034065, 'ece': 0.009400017057809669, 'accuracy': 0.5751905876703284, 'reg_alpha': 0.034476957539975685, 'reg_beta': 0.8760036858377837, 'n_samples': 166590, 'filter_cols': '1XBet,basketball'}\n", + "['1XBet' 'football'] 36019\n", + "{'logloss': 0.5156283069611564, 'brier': 0.17093288618023667, 'ece': 0.03737481116887414, 'accuracy': 0.7366389960853994, 'reg_alpha': -0.22019343021598026, 'reg_beta': 0.9096828468608887, 'n_samples': 36019, 'filter_cols': '1XBet,football'}\n", + "['1XBet' 'hockey'] 3441\n", + "['1XBet' 'soccer'] 170549\n", + "{'logloss': 0.5326802320693952, 'brier': 0.17692943714557405, 'ece': 0.03728482187098291, 'accuracy': 0.7336014869626911, 'reg_alpha': -0.18193411314913413, 'reg_beta': 0.7726877806789224, 'n_samples': 170549, 'filter_cols': '1XBet,soccer'}\n", + "['1XBet' 'tennis'] 114015\n", + "{'logloss': 0.6389011505288847, 'brier': 0.22439917328514708, 'ece': 0.01927127655619132, 'accuracy': 0.6223479366749989, 'reg_alpha': -0.06976580882770708, 'reg_beta': 0.8523393655794403, 'n_samples': 114015, 'filter_cols': '1XBet,tennis'}\n", + "['Pinnacle' 'baseball'] 13706\n", + "{'logloss': 0.6488942536621299, 'brier': 0.2288787220784783, 'ece': 0.01759828591637442, 'accuracy': 0.6151320589522836, 'reg_alpha': -0.06787819238175896, 'reg_beta': 0.9034496569376994, 'n_samples': 13706, 'filter_cols': 'Pinnacle,baseball'}\n", + "['Pinnacle' 'basketball'] 8588\n", + "['Pinnacle' 'football'] 1477\n", + "['Pinnacle' 'hockey'] 32\n", + "['Pinnacle' 'soccer'] 2435\n", + "['Pinnacle' 'tennis'] 48314\n", + "{'logloss': 0.6472225570749982, 'brier': 0.22852018039069258, 'ece': 0.018568682287188856, 'accuracy': 0.605766444508838, 'reg_alpha': -0.07073057145248554, 'reg_beta': 0.9334853391615549, 'n_samples': 48314, 'filter_cols': 'Pinnacle,tennis'}\n" ] } ], "source": [ "from pinnacle_experiments import compute_metrics\n", + "data_df = df.copy()\n", "data_list = []\n", - "cols = ['sport', 'league']\n", - "for cs in df[cols].drop_duplicates().values:\n", - " tmp_df = df[cols + [\"mult_p\", \"power_p\", \"res\"]].copy()\n", + "cols = [\"sportsbook\",\"sport\"]\n", + "for cs in data_df[cols].drop_duplicates().values:\n", + " tmp_df = data_df[cols + [\"win_prob\", \"res\"]].copy()\n", " for i, col in enumerate(cols):\n", " tmp_df = tmp_df[tmp_df[col] == cs[i]]\n", + " print(cs, len(tmp_df))\n", " if len(tmp_df) < 10000:\n", " continue\n", - " tmp_df['win_prob'] = tmp_df['power_p']\n", " res = compute_metrics(tmp_df)\n", - " res['filter_cols'] = ','.join(cs)\n", + " res[\"filter_cols\"] = \",\".join(cs)\n", " data_list.append(res)\n", - " print(res)\n" + " print(res)" ] }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 31, "id": "ace930ea", "metadata": {}, "outputs": [ { "data": { - "application/vnd.microsoft.datawrangler.viewer.v0+json": { - "columns": [ - { - "name": "index", - "rawType": "int64", - "type": "integer" - }, - { - "name": "logloss", - "rawType": "float64", - "type": "float" - }, - { - "name": "brier", - "rawType": "float64", - "type": "float" - }, - { - "name": "ece", - "rawType": "float64", - "type": "float" - }, - { - "name": "accuracy", - "rawType": "float64", - "type": "float" - }, - { - "name": "reg_alpha", - "rawType": "float64", - "type": "float" - }, - { - "name": "reg_beta", - "rawType": "float64", - "type": "float" - }, - { - "name": "n_samples", - "rawType": "int64", - "type": "integer" - }, - { - "name": "filter_cols", - "rawType": "object", - "type": "string" - } - ], - "ref": "4b7896dd-a59e-450c-969a-0001198b5243", - "rows": [ - [ - "21", - "0.46456536875458", - "0.1529431407083795", - "0.0435430919265833", - "0.76286210362789", - "0.27478126687147136", - "0.9982954444020892", - "10943", - "soccer,Peru - Primera Division" - ], - [ - "23", - "0.5207342136366285", - "0.17476501944517275", - "0.04264645847034758", - "0.727844939554401", - "0.13189860578560883", - "0.8343401225549045", - "10009", - "soccer,Norway - Eliteserien" - ], - [ - "51", - "0.5270332331563206", - "0.1719470900987721", - "0.09616008154589088", - "0.7463364841434085", - "0.11490250282057982", - "0.9362960089061145", - "71516", - "hockey,Russia - KHL" - ], - [ - "47", - "0.5350146599471958", - "0.17678205972273894", - "0.11121866193311197", - "0.7387498495969197", - "0.6603312615331073", - "0.9462722865126126", - "66488", - "football,NCAAF" - ], - [ - "8", - "0.535791739070958", - "0.17758959686769793", - "0.03224135248339528", - "0.7277980264912437", - "0.10856331188397389", - "0.7917714658554555", - "11249", - "soccer,USA - USL Championship" - ], - [ - "42", - "0.5376449397825528", - "0.1819743390474039", - "0.031149220842805334", - "0.7056792585207341", - "0.0720407047512092", - "0.8873067063574368", - "54162", - "football,NFL" - ], - [ - "32", - "0.5387106451318957", - "0.1812648974947451", - "0.054371484395619105", - "0.7302901469381666", - "0.09341375484997469", - "0.764190281540735", - "13407", - "soccer,Argentina - Primera Nacional" - ], - [ - "50", - "0.543836628850608", - "0.18112953543645421", - "0.045054680119660885", - "0.7346689096192078", - "0.23513007637508887", - "0.8218775009035377", - "13078", - "soccer,USA - Major League Soccer" - ], - [ - "27", - "0.549081063492974", - "0.1834004218595174", - "0.042720823483608075", - "0.7243897751297328", - "0.13778518868694165", - "0.8127333613393756", - "10406", - "soccer,UEFA - Europa Conference League" - ], - [ - "35", - "0.5612933242746854", - "0.1887681079126992", - "0.05249210229275995", - "0.7065280604826985", - "0.2663015650036454", - "0.776084891638462", - "13756", - "soccer,International - Club Friendlies" - ], - [ - "29", - "0.5618824867862203", - "0.1915361914154567", - "0.03380196894769991", - "0.6959332547066789", - "0.03683930362674171", - "0.9252950559388179", - "22893", - "soccer,Argentina - Primera Division" - ], - [ - "43", - "0.5665170471555467", - "0.1897239616019434", - "0.0822184820328195", - "0.7131399794833535", - "0.42475741593625466", - "0.7038533610336106", - "10723", - "soccer,England - League 2" - ], - [ - "17", - "0.5668880389046949", - "0.19456019912373848", - "0.035359012506962426", - "0.6954301075268817", - "0.07413845194097786", - "1.0073264644964437", - "11160", - "soccer,Finland - Veikkausliiga" - ], - [ - "40", - "0.5727100837785373", - "0.18793939771244414", - "0.06011554297485007", - "0.7185792349726776", - "0.30416379015906186", - "0.6482014152640628", - "10980", - "soccer,Brazil - Copa do Brasil" - ], - [ - "30", - "0.5756266107252402", - "0.19280063354869664", - "0.05403161440142159", - "0.7074274558523382", - "0.23726630082654987", - "0.7263544290802318", - "11269", - "soccer,Romania - Liga I" - ], - [ - "34", - "0.5794531620146132", - "0.197797108523695", - "0.027817010334332627", - "0.6853112033195021", - "0.002665238028900241", - "0.8493581452610184", - "12050", - "soccer,Brazil - Serie A" - ], - [ - "38", - "0.5894197973826193", - "0.2032780558527771", - "0.04425001792382084", - "0.6641185759402813", - "0.08361441719370824", - "0.8758845036148515", - "27864", - "soccer,Belgium - Jupiler Pro League" - ], - [ - "26", - "0.5907004294404923", - "0.20116100283275054", - "0.04560181059478205", - "0.6769712542155131", - "0.19514274277916727", - "0.7084062323900983", - "12454", - "soccer,UEFA - Champions League" - ], - [ - "24", - "0.5942464086397766", - "0.2049170644649826", - "0.035846835468369", - "0.6742398064961991", - "0.11310206000877644", - "0.8516903516362457", - "11576", - "soccer,Sweden - Allsvenskan" - ], - [ - "36", - "0.5974416265269611", - "0.2012614390522829", - "0.062008905067085035", - "0.7057960381511372", - "0.24283991234932403", - "0.6965712805553593", - "13630", - "soccer,Serbia - Super Liga" - ], - [ - "52", - "0.5991151059519255", - "0.20920131398932934", - "0.028903016413601174", - "0.6439574745064005", - "0.0846665924239476", - "1.077467899977688", - "23045", - "football,CFL" - ], - [ - "12", - "0.5996944182590728", - "0.2037975505191092", - "0.08408791318340689", - "0.6760308854936751", - "0.318080850399602", - "0.6151826914654229", - "12174", - "soccer,Brazil - Serie B" - ], - [ - "33", - "0.6177818203096793", - "0.20977816591298415", - "0.08649198916753502", - "0.6861487490973962", - "0.28795179780966657", - "0.6113877835777448", - "23543", - "soccer,Mexico - Liga MX" - ], - [ - "2", - "0.6297137344875463", - "0.22041033536323906", - "0.017822157915256938", - "0.6288758716875872", - "0.041706623510040654", - "0.8624640290997292", - "179250", - "tennis,ATP" - ], - [ - "49", - "0.6376234810642204", - "0.2180371329100866", - "0.09167431133757119", - "0.66439443458773", - "0.3478294258464765", - "0.6584022406399682", - "10709", - "hockey,Champions Hockey League" - ], - [ - "4", - "0.6469960963669228", - "0.2279027930261842", - "0.028335305001651337", - "0.6147215714666248", - "0.09658505797378471", - "0.8028973480721338", - "146411", - "tennis,WTA" - ], - [ - "6", - "0.6473554388580142", - "0.22879092130018006", - "0.023957594147846952", - "0.6024635310611877", - "0.10473103297247963", - "0.9599107473221898", - "29957", - "tennis,ITF Men" - ], - [ - "5", - "0.6487921842464467", - "0.22914684473714095", - "0.014265880047262426", - "0.6128894764152109", - "0.044337443435217234", - "0.8643230362917078", - "161884", - "baseball,MLB" - ], - [ - "1", - "0.6524097107719605", - "0.23099699069232343", - "0.01781331016135091", - "0.5996336268351061", - "0.04315305877990264", - "0.9570354326966137", - "115729", - "tennis,ATP Challenger" - ], - [ - "16", - "0.6540600480061691", - "0.231601907802572", - "0.048484266515020344", - "0.5952631843042802", - "0.14842730650804717", - "0.7375681034070066", - "19929", - "hockey,Australia - Ice Hockey League" - ], - [ - "19", - "0.658350658622366", - "0.23313695095646603", - "0.13868925096937104", - "0.6158616346107262", - "0.5983272684527583", - "1.6767147290447872", - "20641", - "basketball,Philippines - Phillipine Cup" - ], - [ - "7", - "0.6643331656570148", - "0.2355689158147842", - "0.13441323672816666", - "0.6042367713814675", - "0.57903562429403", - "0.6936269018714113", - "44279", - "baseball,NPB" - ], - [ - "31", - "0.6662412181077698", - "0.23761860704839485", - "0.0371234165065266", - "0.5762058677274987", - "0.14384728831394308", - "1.0122831905930834", - "16088", - "basketball,China - NBL" - ], - [ - "15", - "0.6663527462332455", - "0.2376036967707234", - "0.03388370303890966", - "0.5815045853319084", - "0.1427883577274798", - "0.9585163808012259", - "40237", - "basketball,Australia - WNBL1" - ], - [ - "18", - "0.6664131480072407", - "0.23734593846080834", - "0.03973042095862628", - "0.5884353741496599", - "0.16354638818996434", - "0.9235021333238036", - "22344", - "basketball,Bolivia - Libobasquet" - ], - [ - "22", - "0.6694831953994473", - "0.23880427198786064", - "0.0494441246999416", - "0.5744888833426925", - "0.20676041102966616", - "0.9590826303757036", - "48081", - "basketball,Puerto Rico - BSN" - ], - [ - "0", - "0.6718531901325372", - "0.24002926206705708", - "0.1679080185574861", - "0.5691254615869584", - "0.7344124574203825", - "0.85131391447554", - "22206", - "baseball,KBO" - ], - [ - "9", - "0.6738677166094174", - "0.24058309962923094", - "0.06333551603206661", - "0.5795182098413061", - "0.26463993587125495", - "0.8981561913782147", - "17518", - "baseball,USA - MiLB AAA" - ], - [ - "20", - "0.6743861779775661", - "0.2412480172744158", - "0.015513743623443238", - "0.5570667235131103", - "0.058203056104794385", - "0.9120078334316958", - "46910", - "basketball,Mexico - LNBP" - ], - [ - "14", - "0.6753012111340029", - "0.24169869361255503", - "0.02448996747466243", - "0.5641184679795317", - "0.06064210193942301", - "0.8827670034874413", - "19347", - "basketball,Dominican Republic - LNB" - ], - [ - "41", - "0.677503041073367", - "0.24270438482768675", - "0.04378053947325764", - "0.5569868850276279", - "0.17744009971512947", - "0.9148317266934788", - "30042", - "basketball,International - Basketball Friendlies" - ], - [ - "3", - "0.6778458553288703", - "0.24217731125205963", - "0.0211771798093546", - "0.5623018370162403", - "0.06011902436284209", - "0.7370162757823379", - "330536", - "basketball,WNBA" - ], - [ - "39", - "0.6778785335442384", - "0.2425457515701249", - "0.11338451442238878", - "0.5629315756434401", - "0.4728341875736046", - "0.9725149989076598", - "25488", - "basketball,FIBA - AfroBasket Women" - ], - [ - "37", - "0.6779141524967058", - "0.24296124183454898", - "0.04688443972472623", - "0.5649335688503188", - "0.08623201295120345", - "0.6758222365325911", - "13021", - "basketball,Singapore - NBL" - ], - [ - "44", - "0.6783613746943183", - "0.24307107713988957", - "0.07723683417016428", - "0.5644073811213627", - "0.3195117930781072", - "0.8363495683865486", - "16908", - "basketball,FIBA - Asia Cup" - ], - [ - "28", - "0.6785833976976212", - "0.24268156334569332", - "0.035344529371626916", - "0.565502621250752", - "0.10562901599408482", - "0.6709422644266951", - "34907", - "basketball,Philippines - MPBL" - ], - [ - "13", - "0.6796181336012113", - "0.24355523418897007", - "0.014339156695711576", - "0.558685038515786", - "0.0499721910919082", - "0.8563315738887669", - "46085", - "basketball,Australia - NBL1" - ], - [ - "11", - "0.6807902492613571", - "0.24390682117235568", - "0.14930636161730468", - "0.551194679366122", - "0.6332019443776384", - "0.9341802439753223", - "12179", - "basketball,New Zealand - NBL" - ], - [ - "45", - "0.6813451744463095", - "0.2443012618218192", - "0.019343239530617864", - "0.5531254617999113", - "0.018180630465103775", - "0.8162874920525484", - "13534", - "basketball,FIBA - AfroBasket" - ], - [ - "10", - "0.683375372057873", - "0.2446761157606083", - "0.027801071343018034", - "0.5552355001946283", - "0.034197784307159425", - "0.6338216756896216", - "12845", - "basketball,Indonesia - IBL" - ] - ], - "shape": { - "columns": 8, - "rows": 53 - } - }, "text/html": [ "
\n", "