{"slate_id":"soccer-main-draftkings-2026-10-29","sport":"soccer","site":"draftkings","slate_date":"2026-10-29","slate_type":"main","slate_subtype":null,"tour":null,"competition":null,"league_label":null,"is_draft":false,"config":{"$comment":"SCORING TABLE REBUILT AND VERIFIED 2026-08-21 against https://www.draftkings.com/help/rules/8 (read in a browser; the page is an SPA behind bot protection and returns a shell to curl). It is now generated from apps/api/src/dfs_api/projection/scoring/soccer_cards.py, which is the single source of truth for every soccer weight in this repo, and apps/api/tests/test_soccer_scoring.py asserts this block equals that card exactly. What was wrong here before: goals paid 10/12/13 by position where DK pays 10 flat at every position; cross 0.6 (0.7); clean_sheet_d 4 (3); clean_sheet_gk 7 (5); gk_save 1 (2); pk_save 8 (3, on top of the 2 for the save); win 3 (5); yellow -2 (-1.5); red -5 (-3); own_goal -5 (DK charges the scorer nothing); a gk_high_claim category DK does not have; and accurate_pass, tackle_won, interception, fouls and the keeper's goal_conceded were missing entirely. Soccer's card is position-dependent, so the flat block below carries clean_sheet_def / clean_sheet_gk (and, on FanDuel, goal_conceded_def) rather than one clean_sheet that silently paid every position the goalkeeper's bonus. NOT changed by that pass, and still inherited: roster shape, max_per_team, min_teams, min_games. Note DraftKings' own rules state only 'at least 3 different teams' with NO per-team maximum, so max_per_team=4 is a house constraint rather than a site rule. || PER-TEAM CAP CORRECTED 2026-09-14. The file capped a team at 4 of 8. DraftKings' published Classic Soccer rules state exactly one composition requirement - 'must include players from at least 3 different teams, and representing at least 2 different matches' - and NO per-team maximum. A lineup of 6 from one club plus 1 each from two others satisfies the published rule and was being refused. Same defect the football configs carried (cfb/cfl/ufl all said 4, which is not a DraftKings rule either), and the same fix: derive the ceiling from the rule that IS published. Three teams required on an 8-man roster means at most 8-2=6 from any one.","site":"draftkings","sport":"soccer","slate_type":"main","salary_cap":50000,"roster_slots":[{"name":"F1","eligible":["F"]},{"name":"F2","eligible":["F"]},{"name":"M1","eligible":["M"]},{"name":"M2","eligible":["M"]},{"name":"D1","eligible":["D"]},{"name":"D2","eligible":["D"]},{"name":"GK","eligible":["GK"]},{"name":"UTIL","eligible":["F","M","D"]}],"max_per_team":6,"min_teams":3,"min_games":2,"scoring":{"accurate_pass":0.02,"assist":6,"chance_created":1,"clean_sheet_def":3,"clean_sheet_gk":5,"cross":0.7,"foul_conceded":-0.5,"foul_drawn":1,"goal":10,"goal_conceded":-2,"interception":0.5,"own_goal":0,"penalty_missed":0,"penalty_save":3,"red_card":-3,"save":2,"shootout_goal":1.5,"shootout_miss":-1,"shootout_save":1.5,"shot":1,"shot_on_target":1,"tackle_won":1,"win":5,"yellow_card":-1.5},"export_format":{"header":["F","F","M","M","D","D","GK","UTIL"],"id_format":"{name} ({site_player_id})"}},"locked_at":null,"first_game_start":"2026-10-29T19:45:00Z","last_game_start":"2026-10-29T19:45:00Z","late_swap_enabled":true,"display_name":null,"is_free":false,"group_key":"ec5d97d45b60116f","group_slate_type":"main","projection_window":null}