{"id":602688,"league_id":94,"league":"2. Bundesliga","kickoff":1792234800,"home":"1. FC Kaiserslautern","away":"VfL Bochum 1848","home_id":1288,"away_id":1834,"venue_id":753,"rank":6,"status":"notstarted","provisional":true,"lineup_status":"predicted","confidence":0.513,"score":null,"live_score":null,"lambda":[1.41,1],"read":{"text":"Too close to call","side":null},"pass":"No call on 1. FC Kaiserslautern against VfL Bochum 1848. There is a likely outcome here, but every bookmaker has it shorter than it deserves, so there is nothing to take.","flags":[],"lambda_home":1.4071294775560734,"lambda_away":1.003629009444607,"corner_rate":11.05,"card_rate":0.214,"lineups":{"status":"predicted","confidence":0.723,"home":{"formation":"3-4-2-1","players":[{"id":26302,"name":"Julian Krahl","position":"G","starting":true,"ai_score":0.77},{"id":714,"name":"Alex Murphy","position":"D","starting":true,"ai_score":0.369},{"id":29578,"name":"Jan Elvedi","position":"D","starting":true,"ai_score":0.773},{"id":3037,"name":"Jacob Rasmussen","position":"D","starting":true,"ai_score":0.705},{"id":26286,"name":"Paul Joly","position":"M","starting":true,"ai_score":0.547},{"id":26298,"name":"Maxwell Gyamfi","position":"D","starting":true,"ai_score":0.664},{"id":26287,"name":"Semih Şahin","position":"M","starting":true,"ai_score":0.746},{"id":26289,"name":"Fabian Kunze","position":"M","starting":true,"ai_score":0.667},{"id":7357,"name":"Ibrahim Kanate","position":"M","starting":true,"ai_score":0.36},{"id":26282,"name":"Mergim Berisha","position":"F","starting":true,"ai_score":0.45},{"id":63522,"name":"Thierry Fidjeu-Tazemeta","position":"F","starting":true,"ai_score":0.502},{"id":26288,"name":"Mika Haas","position":"M","starting":false,"ai_score":0.697},{"id":26283,"name":"Marlon Ritter","position":"F","starting":false,"ai_score":0.646},{"id":26293,"name":"Simon Asta","position":"M","starting":false,"ai_score":0.37},{"id":26279,"name":"Naatan Skyttä","position":"F","starting":false,"ai_score":0.327},{"id":41529,"name":"Erencan Yardımcı","position":"F","starting":false,"ai_score":0.306},{"id":26294,"name":"Leon Robinson","position":"M","starting":false,"ai_score":0.276},{"id":4036,"name":"Mario Sauer","position":"M","starting":false,"ai_score":0.256},{"id":9010,"name":"Kelven Frees ","position":"D","starting":false,"ai_score":0.241},{"id":52235,"name":"David Schramm","position":"M","starting":false,"ai_score":0.199},{"id":26304,"name":"Enis Kamga","position":"G","starting":false,"ai_score":0.02},{"id":63525,"name":"Yannick Onohiol","position":"G","starting":false,"ai_score":0.02},{"id":8869,"name":"Miloš Luković","position":"F","starting":false,"ai_score":0.015}],"confidence":0.723},"away":{"formation":"4-2-3-1","players":[{"id":41338,"name":"Timo Horn","position":"G","starting":true,"ai_score":0.747},{"id":41342,"name":"Maximilian Wittek","position":"D","starting":true,"ai_score":0.739},{"id":5765,"name":"Michael Steinwender","position":"D","starting":true,"ai_score":0.756},{"id":2480,"name":"Karol Mets","position":"D","starting":true,"ai_score":0.698},{"id":26821,"name":"Sean Klaiber","position":"D","starting":true,"ai_score":0.423},{"id":66054,"name":"Tom Meyer","position":"M","starting":true,"ai_score":0.571},{"id":41345,"name":"Mats Pannewig","position":"M","starting":true,"ai_score":0.569},{"id":41450,"name":"Gerrit Holtmann","position":"M","starting":true,"ai_score":0.486},{"id":61688,"name":"Berkan Taz","position":"M","starting":true,"ai_score":0.397},{"id":42017,"name":"Koji Miyoshi","position":"M","starting":true,"ai_score":0.724},{"id":41351,"name":"Philipp Hofmann","position":"F","starting":true,"ai_score":0.713},{"id":27744,"name":"Christian Rasmussen","position":"F","starting":false,"ai_score":0.559},{"id":49462,"name":"Oliver Olsen","position":"D","starting":false,"ai_score":0.404},{"id":52165,"name":"Alessandro Crimaldi","position":"F","starting":false,"ai_score":0.261},{"id":27284,"name":"Charlie Patiño","position":"M","starting":false,"ai_score":0.255},{"id":3140,"name":"Jarne Steuckers","position":"M","starting":false,"ai_score":0.236},{"id":64562,"name":"Lasse Isbruch","position":"M","starting":false,"ai_score":0.228},{"id":26284,"name":"Daniel Hanslik","position":"F","starting":false,"ai_score":0.202},{"id":61939,"name":"Yiğit Karademir","position":"D","starting":false,"ai_score":0.193},{"id":16939,"name":"Mansour Ouro-Tagba","position":"F","starting":false,"ai_score":0.184},{"id":64565,"name":"Leon Sawas","position":"D","starting":false,"ai_score":0.166},{"id":49466,"name":"Hugo Rolleke","position":"G","starting":false,"ai_score":0.03},{"id":31545,"name":"Tino Casali","position":"G","starting":false,"ai_score":0.025}],"confidence":0.759},"unavailable":[{"id":64558,"name":"Charalampos Drakas","team_id":null,"side":"away","reason":"Unknown"},{"id":10732,"name":"Enis Çokaj","team_id":null,"side":"away","reason":"Unknown"},{"id":29774,"name":"Jean-Manuel Mbom","team_id":null,"side":"away","reason":"Unknown"}]},"people":[{"id":26302,"name":"Julian Krahl","side":"home"},{"id":714,"name":"Alex Murphy","side":"home"},{"id":29578,"name":"Jan Elvedi","side":"home"},{"id":3037,"name":"Jacob Rasmussen","side":"home"},{"id":26286,"name":"Paul Joly","side":"home"},{"id":26298,"name":"Maxwell Gyamfi","side":"home"},{"id":26287,"name":"Semih Şahin","side":"home"},{"id":26289,"name":"Fabian Kunze","side":"home"},{"id":7357,"name":"Ibrahim Kanate","side":"home"},{"id":26282,"name":"Mergim Berisha","side":"home"},{"id":63522,"name":"Thierry Fidjeu-Tazemeta","side":"home"},{"id":26288,"name":"Mika Haas","side":"home"},{"id":26283,"name":"Marlon Ritter","side":"home"},{"id":26293,"name":"Simon Asta","side":"home"},{"id":26279,"name":"Naatan Skyttä","side":"home"},{"id":41529,"name":"Erencan Yardımcı","side":"home"},{"id":26294,"name":"Leon Robinson","side":"home"},{"id":4036,"name":"Mario Sauer","side":"home"},{"id":9010,"name":"Kelven Frees","side":"home"},{"id":52235,"name":"David Schramm","side":"home"},{"id":26304,"name":"Enis Kamga","side":"home"},{"id":63525,"name":"Yannick Onohiol","side":"home"},{"id":8869,"name":"Miloš Luković","side":"home"},{"id":216249,"name":"Kerim Beck","side":"home"},{"id":216250,"name":"Yanis Sahib","side":"home"},{"id":26280,"name":"Ivan Prtajin","side":"home"},{"id":68608,"name":"Erik Muller","side":"home"},{"id":216252,"name":"Moritz Sebastian Junge","side":"home"},{"id":26295,"name":"Owen Gibs","side":"home"},{"id":63523,"name":"Ben Jungfleisch","side":"home"},{"id":216248,"name":"Dženan Rešic","side":"home"},{"id":216251,"name":"Titus Henseler","side":"home"},{"id":41338,"name":"Timo Horn","side":"away"},{"id":41342,"name":"Maximilian Wittek","side":"away"},{"id":5765,"name":"Michael Steinwender","side":"away"},{"id":2480,"name":"Karol Mets","side":"away"},{"id":26821,"name":"Sean Klaiber","side":"away"},{"id":66054,"name":"Tom Meyer","side":"away"},{"id":41345,"name":"Mats Pannewig","side":"away"},{"id":41450,"name":"Gerrit Holtmann","side":"away"},{"id":61688,"name":"Berkan Taz","side":"away"},{"id":42017,"name":"Koji Miyoshi","side":"away"},{"id":41351,"name":"Philipp Hofmann","side":"away"},{"id":27744,"name":"Christian Rasmussen","side":"away"},{"id":49462,"name":"Oliver Olsen","side":"away"},{"id":52165,"name":"Alessandro Crimaldi","side":"away"},{"id":27284,"name":"Charlie Patiño","side":"away"},{"id":3140,"name":"Jarne Steuckers","side":"away"},{"id":64562,"name":"Lasse Isbruch","side":"away"},{"id":26284,"name":"Daniel Hanslik","side":"away"},{"id":61939,"name":"Yiğit Karademir","side":"away"},{"id":16939,"name":"Mansour Ouro-Tagba","side":"away"},{"id":64565,"name":"Leon Sawas","side":"away"},{"id":49466,"name":"Hugo Rolleke","side":"away"},{"id":31545,"name":"Tino Casali","side":"away"},{"id":41341,"name":"Philipp Strompf","side":"away"},{"id":29774,"name":"Jean-Manuel Mbom","side":"away"},{"id":64759,"name":"Gustav Schjött","side":"away"},{"id":216209,"name":"Finn-Ole Lang","side":"away"},{"id":216210,"name":"Gianluca Reschke","side":"away"},{"id":64558,"name":"Charalampos Drakas","side":"away"},{"id":10732,"name":"Enis Çokaj","side":"away"},{"id":64560,"name":"Aurel Wagbe","side":"away"},{"id":216211,"name":"Joel Gezer","side":"away"}],"players":[{"id":41529,"name":"Erencan Yardımcı","side":"home","team":"1. FC Kaiserslautern","club":null,"role":"ATT","position":"ST","status":"fit","reason":null,"expected_return":null,"season":{"apps":7,"starts":0,"goals":2,"assists":0,"big_chances":1,"clean_sheets":0,"team_games":12,"tracked_apps":7,"tracked_starts":0},"recent":{"apps":5,"goals":2,"assists":0,"scoredIn":0,"country":0},"standout":{"opponent":"Eintracht Braunschweig","kickoff":1789815600,"goals":1,"assists":0,"score":"1-0","won":true},"strengths":[],"tags":[],"importance":0.138,"country":null,"load":{"games":1,"minutes":10,"country":0}},{"id":63522,"name":"Thierry Fidjeu-Tazemeta","side":"home","team":"1. FC Kaiserslautern","club":null,"role":"ATT","position":"RW","status":"fit","reason":null,"expected_return":null,"season":{"apps":7,"starts":4,"goals":2,"assists":0,"big_chances":0,"clean_sheets":3,"team_games":12,"tracked_apps":7,"tracked_starts":4},"recent":{"apps":5,"goals":2,"assists":0,"scoredIn":0,"country":0},"standout":{"opponent":"Darmstadt 98","kickoff":1788606000,"goals":1,"assists":0,"score":"3-0","won":true},"strengths":[],"tags":[],"importance":0.168,"country":null,"load":{"games":1,"minutes":26,"country":0}},{"id":26282,"name":"Mergim Berisha","side":"home","team":"1. FC Kaiserslautern","club":null,"role":"ATT","position":"ST","status":"fit","reason":null,"expected_return":null,"season":{"apps":8,"starts":4,"goals":1,"assists":0,"big_chances":0,"clean_sheets":4,"team_games":12,"tracked_apps":8,"tracked_starts":4},"recent":{"apps":5,"goals":1,"assists":0,"scoredIn":0,"country":0},"standout":{"opponent":"Darmstadt 98","kickoff":1788606000,"goals":1,"assists":0,"score":"3-0","won":true},"strengths":[],"tags":[],"importance":0.059,"country":null,"load":{"games":1,"minutes":64,"country":0}},{"id":10732,"name":"Enis Çokaj","side":"away","team":"VfL Bochum 1848","club":null,"role":"MID","position":"CM","status":"out","reason":"Unknown","expected_return":"2026-10-31","season":{"apps":5,"starts":4,"goals":0,"assists":1,"big_chances":1,"clean_sheets":1,"team_games":15,"tracked_apps":5,"tracked_starts":4},"recent":{"apps":5,"goals":0,"assists":1,"scoredIn":0,"country":0},"standout":{"opponent":"SG Dynamo Dresden","kickoff":1788633000,"goals":0,"assists":1,"score":"2-1","won":true},"strengths":[],"tags":[],"importance":0.039,"country":null,"load":null},{"id":64558,"name":"Charalampos Drakas","side":"away","team":"VfL Bochum 1848","club":null,"role":"ATT","position":"RW","status":"out","reason":"Unknown","expected_return":"2026-10-31","season":{"apps":1,"starts":0,"goals":0,"assists":0,"big_chances":0,"clean_sheets":0,"team_games":15,"tracked_apps":1,"tracked_starts":0},"recent":{"apps":1,"goals":0,"assists":0,"scoredIn":0,"country":0},"standout":null,"strengths":[],"tags":[],"importance":0,"country":null,"load":null},{"id":29774,"name":"Jean-Manuel Mbom","side":"away","team":"VfL Bochum 1848","club":null,"role":"DEF","position":"RB","status":"out","reason":"Unknown","expected_return":"2026-10-31","season":{"apps":4,"starts":0,"goals":0,"assists":0,"big_chances":0,"clean_sheets":0,"team_games":15,"tracked_apps":4,"tracked_starts":0},"recent":{"apps":4,"goals":0,"assists":0,"scoredIn":0,"country":0},"standout":null,"strengths":[],"tags":[],"importance":0,"country":null,"load":null},{"id":42017,"name":"Koji Miyoshi","side":"away","team":"VfL Bochum 1848","club":null,"role":"MID","position":"RW","status":"fit","reason":null,"expected_return":null,"season":{"apps":9,"starts":9,"goals":2,"assists":1,"big_chances":2,"clean_sheets":1,"team_games":15,"tracked_apps":9,"tracked_starts":9},"recent":{"apps":5,"goals":2,"assists":0,"scoredIn":0,"country":0},"standout":{"opponent":"SG Dynamo Dresden","kickoff":1788633000,"goals":2,"assists":0,"score":"2-1","won":true},"strengths":[],"tags":[],"importance":0.143,"country":null,"load":{"games":1,"minutes":90,"country":0}},{"id":41351,"name":"Philipp Hofmann","side":"away","team":"VfL Bochum 1848","club":null,"role":"ATT","position":"ST","status":"fit","reason":null,"expected_return":null,"season":{"apps":9,"starts":8,"goals":3,"assists":0,"big_chances":0,"clean_sheets":1,"team_games":15,"tracked_apps":9,"tracked_starts":8},"recent":{"apps":5,"goals":1,"assists":0,"scoredIn":0,"country":0},"standout":{"opponent":"Eintracht Braunschweig","kickoff":1786725000,"goals":1,"assists":0,"score":"1-0","won":true},"strengths":[],"tags":[],"importance":0.164,"country":null,"load":{"games":1,"minutes":90,"country":0}}],"extras":null,"notable":[{"id":26306,"name":"Mohamed Ali Zoma","goals":7,"rank":1},{"id":27757,"name":"Emmanuel Iyoha","goals":5,"rank":2},{"id":29564,"name":"Felix Klaus","goals":5,"rank":3},{"id":41391,"name":"Joel Grodowski","goals":5,"rank":4},{"id":26311,"name":"Piet Scobel","goals":5,"rank":5},{"id":4076,"name":"Jan Urbich","goals":4,"rank":6},{"id":1986,"name":"Josip Brekalo","goals":4,"rank":7},{"id":41439,"name":"Justin Butler","goals":4,"rank":8},{"id":28071,"name":"Phil Harres","goals":4,"rank":9},{"id":1598,"name":"Robert Glatzel","goals":4,"rank":10},{"id":41438,"name":"Tolcay Ciğerci","goals":4,"rank":11},{"id":2489,"name":"Abdoulie Ceesay","goals":3,"rank":12},{"id":26313,"name":"Adam Markhiev","goals":3,"rank":13},{"id":28070,"name":"Alexander Bernhardsson","goals":3,"rank":14},{"id":41358,"name":"Alexander Nollenberger","goals":3,"rank":15}],"round_label":"Regular season · Matchday 8","neutral":false,"h2h":{"total_matches":59,"home_wins":26,"draws":15,"away_wins":18,"home_goals":95,"away_goals":80,"avg_total_goals":2.9661016949152543,"home_win_rate":0.4406779661016949,"away_win_rate":0.3050847457627119,"recent_matches":[{"away":"1. FC Kaiserslautern","date":"2015-10-27T19:30:00+00:00","home":"VfL Bochum 1848","score":"1-0","event_id":374964,"away_score":0,"home_score":1,"away_team_id":1288,"home_team_id":1834},{"away":"VfL Bochum 1848","date":"2005-04-17T15:30:00+00:00","home":"1. FC Kaiserslautern","score":"1-2","event_id":496677,"away_score":2,"home_score":1,"away_team_id":1834,"home_team_id":1288},{"away":"1. FC Kaiserslautern","date":"2004-11-06T14:30:00+00:00","home":"VfL Bochum 1848","score":"1-1","event_id":496523,"away_score":1,"home_score":1,"away_team_id":1288,"home_team_id":1834},{"away":"VfL Bochum 1848","date":"2004-03-20T14:30:00+00:00","home":"1. FC Kaiserslautern","score":"2-2","event_id":500455,"away_score":2,"home_score":2,"away_team_id":1834,"home_team_id":1288},{"away":"1. FC Kaiserslautern","date":"2003-10-04T13:30:00+00:00","home":"VfL Bochum 1848","score":"4-0","event_id":500308,"away_score":0,"home_score":4,"away_team_id":1288,"home_team_id":1834},{"away":"1. FC Kaiserslautern","date":"2003-04-05T13:30:00+00:00","home":"VfL Bochum 1848","score":"1-1","event_id":504183,"away_score":1,"home_score":1,"away_team_id":1288,"home_team_id":1834},{"away":"VfL Bochum 1848","date":"2002-11-13T17:30:00+00:00","home":"1. FC Kaiserslautern","score":"0-2","event_id":504032,"away_score":2,"home_score":0,"away_team_id":1834,"home_team_id":1288},{"away":"1. FC Kaiserslautern","date":"2000-12-16T17:00:00+00:00","home":"VfL Bochum 1848","score":"0-1","event_id":511018,"away_score":1,"home_score":0,"away_team_id":1288,"home_team_id":1834},{"away":"VfL Bochum 1848","date":"2000-08-12T16:00:00+00:00","home":"1. FC Kaiserslautern","score":"0-1","event_id":510861,"away_score":1,"home_score":0,"away_team_id":1834,"home_team_id":1288},{"away":"1. FC Kaiserslautern","date":"1999-03-20T14:30:00+00:00","home":"VfL Bochum 1848","score":"1-2","event_id":517302,"away_score":2,"home_score":1,"away_team_id":1288,"home_team_id":1834}]},"standings":{"home":{"team_id":1288,"position":6,"played":7,"points":12,"goal_diff":2,"team_name":"1. FC Kaiserslautern","won":3,"drawn":3,"lost":1,"goals_for":6,"goals_against":4,"group":null},"away":{"team_id":1834,"position":12,"played":7,"points":7,"goal_diff":-2,"team_name":"VfL Bochum 1848","won":2,"drawn":1,"lost":4,"goals_for":5,"goals_against":7,"group":null},"size":18},"form":{"home":{"matches":6,"ppg":1.83,"record":"3-2-1","goals_for":1.17,"goals_against":0.83,"clean_sheets":3,"streak":"none","sequence":"WWLWDD","venue_ppg":2.33},"away":{"matches":6,"ppg":1.17,"record":"2-1-3","goals_for":1.33,"goals_against":1.17,"clean_sheets":0,"streak":"none","sequence":"LWDLWL","venue_ppg":1.5}},"ledger":[{"id":"availability.home.full_strength","section":"§2.4","tier":1,"state":"COMPUTED","note":"1. FC Kaiserslautern report no absentees.","evidence":{"absences":0},"strength":0.2,"moves":[]},{"id":"availability.away.absences","section":"§2.4","tier":1,"state":"COMPUTED","note":"VfL Bochum 1848 are without 3 players, none of them central to how the side plays.","evidence":{"count":3,"measured":3,"combined_goal_share":0,"combined_importance":0.039,"players":[{"player":"Enis Çokaj","role":"MID","reason":"Unknown","goal_share":0,"importance":0.039,"measured":true,"doubtful":false,"cover_at_position":10},{"player":"Charalampos Drakas","role":"ATT","reason":"Unknown","goal_share":0,"importance":0,"measured":true,"doubtful":false,"cover_at_position":5},{"player":"Jean-Manuel Mbom","role":"DEF","reason":"Unknown","goal_share":0,"importance":0,"measured":true,"doubtful":false,"cover_at_position":11}]},"strength":0.15,"moves":[{"channel":"goals","side":"away","pct":-0.2},{"channel":"goals","side":"home","pct":0.1},{"channel":"corners","side":"away","pct":-0.1},{"channel":"cards","side":"both","pct":0.1}]},{"id":"availability.rotation_risk","section":"§3.1","tier":1,"state":"COMPUTED","note":"Nobody has named a side yet, so this eleven is a projection.","evidence":{"lineup_status":"predicted","confidence":0.723,"cup_tie":false},"strength":0.277,"moves":[]},{"id":"stakes.season","section":"§5.1","tier":2,"state":"COMPUTED","note":"Nothing much riding on this one for either side yet.","evidence":{"games_left":26,"home":{"state":"mid_table","position":6,"points":12,"games_left":26,"gap_to_leader":9,"gap_to_safety":6,"gap_to_europe":0},"away":{"state":"mid_table","position":12,"points":7,"games_left":26,"gap_to_leader":14,"gap_to_safety":1,"gap_to_europe":5},"six_pointer":false},"strength":0,"moves":[]},{"id":"fixture.derby","section":"§5.2","tier":2,"state":"COMPUTED","note":"Not a local derby.","evidence":{"derby":false},"strength":0,"moves":[]},{"id":"fixture.revenge","section":"§5.3","tier":2,"state":"THIN","note":"No reverse fixture on record this season, so there is no revenge angle to read.","evidence":{},"strength":0,"moves":[]},{"id":"manager.home.settling","section":"§1.1","tier":3,"state":"COMPUTED","note":"Torsten Lieberknecht is 15 games into the job at 1. FC Kaiserslautern, past the bounce window, where an early lift usually fades back toward the side's real level.","evidence":{"manager":"Torsten Lieberknecht","matches_in_charge":15,"tenure_days":353,"ppm":1.73,"appointment_effect":{"before_ppm":2.1,"after_ppm":1.8,"delta":null}},"strength":0.3,"moves":[]},{"id":"manager.away.established","section":"§1.1","tier":3,"state":"COMPUTED","note":"Uwe Rösler has 19 matches in charge at VfL Bochum 1848, long enough that the side plays the way he wants it to.","evidence":{"manager":"Uwe Rösler","matches_in_charge":19,"tenure_days":354,"ppm":1.58,"appointment_effect":{"before_ppm":0.8,"after_ppm":1.7,"delta":null}},"strength":0.1,"moves":[]},{"id":"fatigue.home","section":"§2.8","tier":4,"state":"COMPUTED","note":"1. FC Kaiserslautern come in on 8 days' rest, with nothing unusual in the schedule behind them.","evidence":{"daysRest":7.770833333333333,"matchesIn7":0,"matchesIn14":1,"days_rest":7.8},"strength":0.1,"moves":[]},{"id":"fatigue.away","section":"§2.8","tier":4,"state":"COMPUTED","note":"VfL Bochum 1848 come in on 6 days' rest, with nothing unusual in the schedule behind them.","evidence":{"daysRest":5.979166666666667,"matchesIn7":1,"matchesIn14":1,"days_rest":6},"strength":0.1,"moves":[]},{"id":"style.opponent_adjustment","section":"§4.1","tier":5,"state":"THIN","note":"Team strength is estimated against the actual quality of opponents faced, so a soft run of fixtures does not read as form. — though 5.46749562431214 games is too few to read much into, so it is left out of the call.","evidence":{"home":{"attack":-0.102,"defence":0.184,"effective_matches":5.5,"shrunk":0.59},"away":{"attack":-0.15,"defence":0.091,"effective_matches":5.5,"shrunk":0.59},"sample":5.46749562431214,"required":6},"strength":0,"moves":[]},{"id":"style.matchup","section":"§4.2","tier":5,"state":"COMPUTED","note":"Neither side holds a clear possession edge on recent evidence.","evidence":{"home":{"matches":12,"possession":49.7,"shots":15.6,"xg_per_shot":0.096,"corners":6.1,"corners_per_shot":0.39,"finishing_vs_xg":-0.42},"away":{"matches":12,"possession":52.2,"shots":15,"xg_per_shot":0.082,"corners":5.1,"corners_per_shot":0.34,"finishing_vs_xg":-0.14},"possession_gap":-2.5},"strength":0.1,"moves":[]},{"id":"style.press_matchup","section":"§4.2","tier":5,"state":"UNAVAILABLE","note":"Pressing intensity and defensive line height are not in the ingested stats, so the press matchup is not assessed. Possession is not a substitute for PPDA and is not used as one.","evidence":{"requires":["ppda","defensive_line_height"]},"strength":0,"moves":[]},{"id":"style.finishing.home","section":"§2.1","tier":5,"state":"COMPUTED","note":"1. FC Kaiserslautern have scored 5 fewer than the chances they made over 12 games, a gap that usually closes rather than holds.","evidence":{"goals_minus_xg_per_match":-0.42,"matches":12},"strength":0.25,"moves":[]},{"id":"style.finishing.away","section":"§2.1","tier":5,"state":"COMPUTED","note":"VfL Bochum 1848 are scoring about what their chances are worth.","evidence":{"goals_minus_xg_per_match":-0.14,"matches":12},"strength":0.1,"moves":[]},{"id":"referee.tendency","section":"§13","tier":5,"state":"UNAVAILABLE","note":"No referee appointed or recorded for this fixture yet.","evidence":{},"strength":0,"moves":[]},{"id":"fatigue.travel","section":"§6.4","tier":6,"state":"UNAVAILABLE","note":"No travel distance reported for this fixture.","evidence":{},"strength":0,"moves":[]},{"id":"environment.weather","section":"§6.2","tier":6,"state":"COMPUTED","note":"Nothing in the forecast worth mentioning.","evidence":{"rain_mm":null,"wind_kph":21.7,"temperature_c":20,"description":"cloudy"},"strength":0,"moves":[]},{"id":"environment.pitch","section":"§6.3","tier":6,"state":"UNAVAILABLE","note":"No pitch condition reported for this fixture.","evidence":{},"strength":0,"moves":[]},{"id":"environment.venue","section":"§6.1","tier":6,"state":"UNAVAILABLE","note":"Attendance is only published after kickoff, so crowd size cannot be assessed in advance. Home advantage is carried by the fitted rating rather than estimated here.","evidence":{"home_adv":0.19454846501105857},"strength":0,"moves":[]}],"pass_reason":"call rule: value","preview":null,"external":{"bsd_prediction":{"id":5157,"created_at":"2026-10-11T02:15:32Z","event":{"id":602688,"event_date":"2026-10-17T11:00:00Z","status":"notstarted","home_team_id":1288,"home_team":"1. FC Kaiserslautern","away_team_id":1834,"away_team":"VfL Bochum 1848","league_id":94,"league_name":"2. Bundesliga"},"recommendations":{"favorite":"H","favorite_prob":43.2,"bet_favorite":false,"over_15":false,"over_25":false,"over_35":false,"btts":false,"winner":false},"model":{"confidence":0.4317,"version":"dc-blend-v1"}}},"computed_at":1792037771,"verdicts":[],"locked":false,"colors":{"home":"#d7111e","away":"#0d5ea2"},"venue":{"name":"Fritz-Walter-Stadion","city":"Kaiserslautern","capacity":49780},"pulled":[],"published":[]}