{"id":214144,"league_id":12,"league":"Championship","kickoff":1794054600,"home":"Bristol City","away":"Norwich City","home_id":220,"away_id":209,"venue_id":212,"rank":4,"status":"notstarted","provisional":false,"lineup_status":"confirmed","confidence":0.853,"score":null,"live_score":null,"lambda":[1.42,1.28],"read":{"text":"Too close to call","side":null},"pass":"Nothing to take on Bristol City against Norwich City. There is a likely outcome here, but every bookmaker has it shorter than it deserves, so there is nothing to take.","flags":[{"id":"availability.away.absences","section":"§2.4","note":"Norwich City are without 5 players, and Mohamed Touré is a real loss."},{"id":"availability.lineup_confirmed","section":"§3.1","note":"The starting elevens are confirmed. Bristol City have made five changes from the side expected, with Sam Tickle, Luke McNally and Sam Bell out of the eleven. Norwich City have made four changes from the side expected, with José Córdoba, Pelle Mattsson and Oscar Schwartau out of the eleven."}],"lambda_home":1.418179664154251,"lambda_away":1.2779042007954478,"corner_rate":9.12,"card_rate":0.066,"lineups":{"status":"confirmed","confidence":null,"home":{"formation":"4-2-3-1","players":[{"id":34079,"name":"Brad Collins","position":"G","starting":true,"ai_score":null},{"id":6768,"name":"George Tanner","position":"D","starting":true,"ai_score":null},{"id":6303,"name":"Rob Dickie","position":"D","starting":true,"ai_score":null},{"id":28389,"name":"Lisav Naif Eissat","position":"D","starting":true,"ai_score":null},{"id":6305,"name":"Cameron Pring","position":"D","starting":true,"ai_score":null},{"id":6307,"name":"Jason Knight","position":"M","starting":true,"ai_score":null},{"id":6306,"name":"Adam Randell","position":"M","starting":true,"ai_score":null},{"id":4306,"name":"Rio Cardines","position":"M","starting":true,"ai_score":null},{"id":8844,"name":"Joe Williams","position":"M","starting":true,"ai_score":null},{"id":6308,"name":"Scott Twine","position":"M","starting":true,"ai_score":null},{"id":28885,"name":"Lorent Tolaj","position":"F","starting":true,"ai_score":null},{"id":29940,"name":"Sam Tickle","position":"G","starting":false,"ai_score":null},{"id":6312,"name":"Robert Atkinson","position":"D","starting":false,"ai_score":null},{"id":2974,"name":"Tomi Horvat","position":"M","starting":false,"ai_score":null},{"id":6287,"name":"Brian De Keersmaecker","position":"M","starting":false,"ai_score":null},{"id":7005,"name":"Jed Wallace","position":"M","starting":false,"ai_score":null},{"id":7081,"name":"Sam Bell","position":"F","starting":false,"ai_score":null},{"id":36514,"name":"Dominic Ballard","position":"F","starting":false,"ai_score":null},{"id":6315,"name":"Yu Hirakawa","position":"M","starting":false,"ai_score":null},{"id":28332,"name":"Elijah Adebayo","position":"F","starting":false,"ai_score":null}],"confidence":null},"away":{"formation":"4-2-3-1","players":[{"id":6396,"name":"Daniel Grimshaw","position":"G","starting":true,"ai_score":null},{"id":6395,"name":"Jack Stacey","position":"D","starting":true,"ai_score":null},{"id":6383,"name":"Ruairi McConville","position":"D","starting":true,"ai_score":null},{"id":6384,"name":"Harry Darling","position":"D","starting":true,"ai_score":null},{"id":6385,"name":"Ben Chrisene","position":"D","starting":true,"ai_score":null},{"id":6389,"name":"Jacob Wright","position":"M","starting":true,"ai_score":null},{"id":6118,"name":"Sam Field","position":"M","starting":true,"ai_score":null},{"id":6081,"name":"Andre Brooks","position":"M","starting":true,"ai_score":null},{"id":9982,"name":"Paris Maghoma","position":"M","starting":true,"ai_score":null},{"id":5736,"name":"Anthony Musaba","position":"M","starting":true,"ai_score":null},{"id":6400,"name":"Mathias Kvistgaarden","position":"F","starting":true,"ai_score":null},{"id":6381,"name":"Vladan Kovačević","position":"G","starting":false,"ai_score":null},{"id":6393,"name":"José Córdoba","position":"D","starting":false,"ai_score":null},{"id":6382,"name":"Kellen Fisher","position":"D","starting":false,"ai_score":null},{"id":6995,"name":"Lucien Mahovo","position":"D","starting":false,"ai_score":null},{"id":1468,"name":"Darlin Yongwa","position":"D","starting":false,"ai_score":null},{"id":6387,"name":"Pelle Mattsson","position":"M","starting":false,"ai_score":null},{"id":6386,"name":"Kenny McLean","position":"M","starting":false,"ai_score":null},{"id":6390,"name":"Oscar Schwartau","position":"F","starting":false,"ai_score":null},{"id":6391,"name":"Jovon Makama","position":"F","starting":false,"ai_score":null}],"confidence":null},"unavailable":[{"id":8580,"name":"Ali Ahmed","team_id":null,"side":"away","reason":"Ligament Injury"},{"id":36763,"name":"Gabriel Forsyth","team_id":null,"side":"away","reason":"Muscle Injury"},{"id":8991,"name":"Mohamed Touré","team_id":null,"side":"away","reason":"Shoulder Injury"},{"id":7033,"name":"Papa Amadou Diallo","team_id":null,"side":"away","reason":"Muscle Injury"},{"id":6381,"name":"Vladan Kovačević","team_id":null,"side":"away","reason":"Muscle Injury"}]},"people":[{"id":34079,"name":"Brad Collins","side":"home"},{"id":6768,"name":"George Tanner","side":"home"},{"id":6303,"name":"Rob Dickie","side":"home"},{"id":28389,"name":"Lisav Naif Eissat","side":"home"},{"id":6305,"name":"Cameron Pring","side":"home"},{"id":6307,"name":"Jason Knight","side":"home"},{"id":6306,"name":"Adam Randell","side":"home"},{"id":4306,"name":"Rio Cardines","side":"home"},{"id":8844,"name":"Joe Williams","side":"home"},{"id":6308,"name":"Scott Twine","side":"home"},{"id":28885,"name":"Lorent Tolaj","side":"home"},{"id":29940,"name":"Sam Tickle","side":"home"},{"id":6312,"name":"Robert Atkinson","side":"home"},{"id":2974,"name":"Tomi Horvat","side":"home"},{"id":6287,"name":"Brian De Keersmaecker","side":"home"},{"id":7005,"name":"Jed Wallace","side":"home"},{"id":7081,"name":"Sam Bell","side":"home"},{"id":36514,"name":"Dominic Ballard","side":"home"},{"id":6315,"name":"Yu Hirakawa","side":"home"},{"id":28332,"name":"Elijah Adebayo","side":"home"},{"id":24015,"name":"Luke McNally","side":"home"},{"id":8973,"name":"Noah Eile","side":"home"},{"id":8586,"name":"Lewis Thomas","side":"home"},{"id":13836,"name":"Sam Greenwood","side":"home"},{"id":5411,"name":"Gibson Yah","side":"home"},{"id":6693,"name":"Elijah Morrison","side":"home"},{"id":8752,"name":"Daniel Ezendu","side":"home"},{"id":6396,"name":"Daniel Grimshaw","side":"away"},{"id":6395,"name":"Jack Stacey","side":"away"},{"id":6383,"name":"Ruairi McConville","side":"away"},{"id":6384,"name":"Harry Darling","side":"away"},{"id":6385,"name":"Ben Chrisene","side":"away"},{"id":6389,"name":"Jacob Wright","side":"away"},{"id":6118,"name":"Sam Field","side":"away"},{"id":6081,"name":"Andre Brooks","side":"away"},{"id":9982,"name":"Paris Maghoma","side":"away"},{"id":5736,"name":"Anthony Musaba","side":"away"},{"id":6400,"name":"Mathias Kvistgaarden","side":"away"},{"id":6381,"name":"Vladan Kovačević","side":"away"},{"id":6393,"name":"José Córdoba","side":"away"},{"id":6382,"name":"Kellen Fisher","side":"away"},{"id":6995,"name":"Lucien Mahovo","side":"away"},{"id":1468,"name":"Darlin Yongwa","side":"away"},{"id":6387,"name":"Pelle Mattsson","side":"away"},{"id":6386,"name":"Kenny McLean","side":"away"},{"id":6390,"name":"Oscar Schwartau","side":"away"},{"id":6391,"name":"Jovon Makama","side":"away"},{"id":4931,"name":"Bruno Alves","side":"away"},{"id":6979,"name":"Ante Crnac","side":"away"},{"id":8991,"name":"Mohamed Touré","side":"away"},{"id":6732,"name":"Errol Mundle-Smith","side":"away"},{"id":43068,"name":"Caleb Ansen","side":"away"},{"id":7033,"name":"Papa Amadou Diallo","side":"away"},{"id":6399,"name":"Anis Ben Slimane","side":"away"},{"id":6847,"name":"Mirko Topić","side":"away"},{"id":8580,"name":"Ali Ahmed","side":"away"},{"id":36763,"name":"Gabriel Forsyth","side":"away"},{"id":64770,"name":"Elliot Josh Myles","side":"away"}],"players":[{"id":6308,"name":"Scott Twine","side":"home","team":"Bristol City","club":null,"role":"ATT","position":"AM","status":"fit","reason":null,"expected_return":null,"season":{"apps":14,"starts":10,"goals":6,"assists":0,"big_chances":2,"clean_sheets":3,"team_games":23,"tracked_apps":14,"tracked_starts":10},"recent":{"apps":5,"goals":3,"assists":0,"scoredIn":2,"country":0},"standout":{"opponent":"Wolverhampton","kickoff":1793822400,"goals":1,"assists":0,"score":"1-2","won":false},"strengths":[],"tags":["top_scorer"],"importance":0.226,"country":null,"load":{"games":2,"minutes":90,"country":0}},{"id":28885,"name":"Lorent Tolaj","side":"home","team":"Bristol City","club":null,"role":"ATT","position":"ST","status":"fit","reason":null,"expected_return":null,"season":{"apps":13,"starts":12,"goals":3,"assists":1,"big_chances":1,"clean_sheets":3,"team_games":23,"tracked_apps":13,"tracked_starts":12},"recent":{"apps":5,"goals":0,"assists":0,"scoredIn":0,"country":0},"standout":{"opponent":"Newcastle United","kickoff":1785349800,"goals":1,"assists":0,"score":"4-1","won":true},"strengths":[],"tags":[],"importance":0.119,"country":null,"load":{"games":3,"minutes":235,"country":0}},{"id":8991,"name":"Mohamed Touré","side":"away","team":"Norwich City","club":null,"role":"ATT","position":"ST","status":"out","reason":"Shoulder Injury","expected_return":"2027-01-10","season":{"apps":9,"starts":7,"goals":6,"assists":1,"big_chances":4,"clean_sheets":0,"team_games":24,"tracked_apps":9,"tracked_starts":7},"recent":{"apps":5,"goals":3,"assists":0,"scoredIn":1,"country":0},"standout":{"opponent":"Burnley","kickoff":1788012000,"goals":2,"assists":0,"score":"4-1","won":true},"strengths":[],"tags":["top_scorer","best_performer"],"importance":0.205,"country":{"team":"Australia","apps":3,"goals":0,"assists":0,"tournament":{"name":"World Cup 2026","apps":3,"goals":0,"assists":0,"ended":1783101600},"lately":null},"load":null},{"id":6381,"name":"Vladan Kovačević","side":"away","team":"Norwich City","club":null,"role":"GK","position":"GK","status":"out","reason":"Muscle Injury","expected_return":"2026-11-20","season":{"apps":10,"starts":10,"goals":0,"assists":0,"big_chances":0,"clean_sheets":0,"team_games":24,"tracked_apps":10,"tracked_starts":10},"recent":{"apps":5,"goals":0,"assists":0,"scoredIn":0,"country":0},"standout":null,"strengths":[],"tags":[],"importance":0.05,"country":null,"load":null},{"id":7033,"name":"Papa Amadou Diallo","side":"away","team":"Norwich City","club":null,"role":"MID","position":"LM","status":"out","reason":"Muscle Injury","expected_return":"2026-11-20","season":{"apps":7,"starts":0,"goals":1,"assists":0,"big_chances":0,"clean_sheets":0,"team_games":24,"tracked_apps":7,"tracked_starts":0},"recent":{"apps":5,"goals":1,"assists":0,"scoredIn":0,"country":0},"standout":{"opponent":"Birmingham City","kickoff":1788979500,"goals":1,"assists":0,"score":"2-1","won":true},"strengths":[],"tags":[],"importance":0.02,"country":null,"load":null},{"id":8580,"name":"Ali Ahmed","side":"away","team":"Norwich City","club":null,"role":"MID","position":"LW","status":"out","reason":"Ligament Injury","expected_return":"2026-11-20","season":null,"recent":{"apps":4,"goals":0,"assists":0,"scoredIn":0,"country":4},"standout":null,"strengths":[],"tags":[],"importance":0,"country":{"team":"Canada","apps":4,"goals":0,"assists":0,"tournament":{"name":"World Cup 2026","apps":4,"goals":0,"assists":0,"ended":1783184400},"lately":null},"load":null},{"id":36763,"name":"Gabriel Forsyth","side":"away","team":"Norwich City","club":null,"role":"MID","position":"CM","status":"out","reason":"Muscle Injury","expected_return":"2026-11-10","season":null,"recent":null,"standout":null,"strengths":[],"tags":[],"importance":0,"country":null,"load":null},{"id":6400,"name":"Mathias Kvistgaarden","side":"away","team":"Norwich City","club":null,"role":"ATT","position":"ST","status":"fit","reason":null,"expected_return":null,"season":{"apps":14,"starts":8,"goals":4,"assists":4,"big_chances":1,"clean_sheets":2,"team_games":24,"tracked_apps":14,"tracked_starts":8},"recent":{"apps":5,"goals":1,"assists":3,"scoredIn":0,"country":0},"standout":{"opponent":"Charlton Athletic","kickoff":1792841400,"goals":1,"assists":1,"score":"3-1","won":true},"strengths":[],"tags":["top_creator","in_form"],"importance":0.174,"country":{"team":"Denmark","apps":1,"goals":0,"assists":0,"tournament":null,"lately":null},"load":{"games":2,"minutes":152,"country":0}}],"extras":{"teams":{"home":220,"away":209},"split":{"home":{"above":{"w":0,"d":1,"l":4},"below":{"w":3,"d":1,"l":1}},"away":{"above":{"w":2,"d":0,"l":4},"below":{"w":3,"d":0,"l":1}}},"referee":null,"managers":{"home":{"id":857,"name":"Michael Skubala","vs":{"w":1,"d":0,"l":0,"last":{"kickoff":1741982400,"score":"2-1","result":"W"}}},"away":{"id":181,"name":"Philippe Clement","vs":{"w":1,"d":0,"l":2,"last":{"kickoff":1776520800,"score":"4-2","result":"W"}}}},"best_xi":[{"id":8991,"name":"Mohamed Touré","team_id":209,"position":"F","matches":7,"goals":5,"assists":0}],"players":{"6400":{"caps":2,"goals":0,"country":"Denmark","signed":null},"8580":{"caps":36,"goals":1,"country":"Canada","signed":{"from":"Vancouver Whitecaps","fee":2000000,"at":1767484800}},"8991":{"caps":15,"goals":2,"country":"Australia","signed":{"from":"Randers FC","fee":3000000,"at":1769904000}},"28885":{"caps":null,"goals":null,"country":null,"signed":{"from":"Plymouth Argyle","fee":4700000,"at":1784505600}}}},"notable":[{"id":6294,"name":"Will Lankshear","goals":13,"rank":1},{"id":6450,"name":"Andri Guðjohnsen","goals":9,"rank":2},{"id":33894,"name":"Jack Moylan","goals":9,"rank":3},{"id":4164,"name":"Cyle Larin","goals":7,"rank":4},{"id":1641,"name":"Jarrod Bowen","goals":7,"rank":5},{"id":8744,"name":"August Priske","goals":6,"rank":6},{"id":3905,"name":"Fer López","goals":6,"rank":7},{"id":26758,"name":"Sam Dalby","goals":6,"rank":8},{"id":6210,"name":"Isaac Price","goals":5,"rank":9},{"id":6550,"name":"Kieffer Moore","goals":5,"rank":10},{"id":1636,"name":"Konstantinos Mavropanos","goals":5,"rank":11},{"id":8991,"name":"Mohamed Touré","goals":5,"rank":12},{"id":6076,"name":"Patrick Bamford","goals":5,"rank":13},{"id":6308,"name":"Scott Twine","goals":5,"rank":14},{"id":6537,"name":"Adam Idah","goals":4,"rank":15}],"round_label":"Regular season · Matchday 15","neutral":false,"h2h":{"total_matches":21,"home_wins":6,"draws":4,"away_wins":11,"home_goals":22,"away_goals":32,"avg_total_goals":2.5714285714285716,"home_win_rate":0.2857142857142857,"away_win_rate":0.5238095238095238,"recent_matches":[{"away":"Norwich City","date":"2026-04-18T14:00:00+00:00","home":"Bristol City","score":"2-4","event_id":3882,"away_score":4,"home_score":2,"away_team_id":209,"home_team_id":220},{"away":"Bristol City","date":"2025-10-18T14:00:00+00:00","home":"Norwich City","score":"0-1","event_id":3488,"away_score":1,"home_score":0,"away_team_id":220,"home_team_id":209},{"away":"Norwich City","date":"2025-03-14T20:00:00+00:00","home":"Bristol City","score":"2-1","event_id":304323,"away_score":1,"home_score":2,"away_team_id":209,"home_team_id":220},{"away":"Bristol City","date":"2024-11-09T15:00:00+00:00","home":"Norwich City","score":"0-2","event_id":304049,"away_score":2,"home_score":0,"away_team_id":220,"home_team_id":209},{"away":"Bristol City","date":"2024-04-20T14:00:00+00:00","home":"Norwich City","score":"1-1","event_id":309920,"away_score":1,"home_score":1,"away_team_id":220,"home_team_id":209},{"away":"Norwich City","date":"2023-12-03T13:30:00+00:00","home":"Bristol City","score":"1-2","event_id":309625,"away_score":2,"home_score":1,"away_team_id":209,"home_team_id":220},{"away":"Norwich City","date":"2023-08-29T18:45:00+00:00","home":"Bristol City","score":"0-1","event_id":240415,"away_score":1,"home_score":0,"away_team_id":209,"home_team_id":220},{"away":"Norwich City","date":"2023-02-11T15:00:00+00:00","home":"Bristol City","score":"1-0","event_id":315090,"away_score":0,"home_score":1,"away_team_id":209,"home_team_id":220},{"away":"Bristol City","date":"2022-09-14T18:45:00+00:00","home":"Norwich City","score":"3-2","event_id":314831,"away_score":2,"home_score":3,"away_team_id":220,"home_team_id":209},{"away":"Bristol City","date":"2021-01-20T18:00:00+00:00","home":"Norwich City","score":"2-0","event_id":322487,"away_score":0,"home_score":2,"away_team_id":220,"home_team_id":209}]},"standings":{"home":{"team_id":220,"position":15,"played":14,"points":18,"goal_diff":-3,"team_name":"Bristol City","won":5,"drawn":3,"lost":6,"goals_for":16,"goals_against":19,"group":null},"away":{"team_id":209,"position":12,"played":14,"points":18,"goal_diff":3,"team_name":"Norwich City","won":6,"drawn":0,"lost":8,"goals_for":27,"goals_against":24,"group":null},"size":24},"form":{"home":{"matches":6,"ppg":0.83,"record":"1-2-3","goals_for":0.83,"goals_against":1.17,"clean_sheets":1,"streak":"none","sequence":"DLLDWL","venue_ppg":0},"away":{"matches":6,"ppg":1.5,"record":"3-0-3","goals_for":1.83,"goals_against":1.17,"clean_sheets":1,"streak":"won 3","sequence":"LLLWWW","venue_ppg":2}},"ledger":[{"id":"availability.home.full_strength","section":"§2.4","tier":1,"state":"COMPUTED","note":"Bristol City report no absentees.","evidence":{"absences":0},"strength":0.2,"moves":[]},{"id":"availability.away.absences","section":"§2.4","tier":1,"state":"COMPUTED","note":"Norwich City are without 5 players, and Mohamed Touré is a real loss.","evidence":{"count":5,"measured":3,"combined_goal_share":0.231,"combined_importance":0.275,"players":[{"player":"Mohamed Touré","role":"ATT","reason":"Shoulder Injury","goal_share":0.192,"importance":0.205,"measured":true,"doubtful":false,"cover_at_position":4,"tags":["top_scorer","best_performer"]},{"player":"Vladan Kovačević","role":"GK","reason":"Muscle Injury","goal_share":0,"importance":0.05,"measured":true,"doubtful":false,"cover_at_position":2},{"player":"Papa Amadou Diallo","role":"MID","reason":"Muscle Injury","goal_share":0.038,"importance":0.02,"measured":true,"doubtful":false,"cover_at_position":11},{"player":"Ali Ahmed","role":"MID","reason":"Ligament Injury","goal_share":0,"importance":0.05,"measured":false,"doubtful":false,"cover_at_position":11},{"player":"Gabriel Forsyth","role":"MID","reason":"Muscle Injury","goal_share":0,"importance":0.05,"measured":false,"doubtful":false,"cover_at_position":11}]},"strength":0.688,"moves":[{"channel":"goals","side":"away","pct":-2.6},{"channel":"goals","side":"home","pct":1},{"channel":"corners","side":"away","pct":-1.3},{"channel":"cards","side":"both","pct":0.4}]},{"id":"availability.lineup_confirmed","section":"§3.1","tier":1,"state":"COMPUTED","note":"The starting elevens are confirmed. Bristol City have made five changes from the side expected, with Sam Tickle, Luke McNally and Sam Bell out of the eleven. Norwich City have made four changes from the side expected, with José Córdoba, Pelle Mattsson and Oscar Schwartau out of the eleven.","evidence":{"lineup_status":"confirmed","changes":{"home":{"n":5,"out":["Sam Tickle","Luke McNally","Sam Bell","Jed Wallace","Dominic Ballard"],"in":["Brad Collins","Rob Dickie","Rio Cardines","Joe Williams","Lorent Tolaj"]},"away":{"n":4,"out":["José Córdoba","Pelle Mattsson","Oscar Schwartau","Anis Ben Slimane"],"in":["Harry Darling","Sam Field","Paris Maghoma","Anthony Musaba"]}}},"strength":0.8,"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":31,"home":{"state":"mid_table","position":15,"points":18,"games_left":31,"gap_to_leader":10,"gap_to_safety":4,"gap_to_europe":7},"away":{"state":"mid_table","position":12,"points":18,"games_left":31,"gap_to_leader":10,"gap_to_safety":4,"gap_to_europe":7},"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":"COMPUTED","note":"The reverse fixture finished 0-1, too close to carry a revenge motive.","evidence":{"reverse_margin":1},"strength":0,"moves":[]},{"id":"manager.home.established","section":"§1.1","tier":3,"state":"COMPUTED","note":"Michael Skubala has 24 matches in charge at Bristol City, long enough that the side plays the way he wants it to.","evidence":{"manager":"Michael Skubala","matches_in_charge":24,"tenure_days":268,"ppm":1.25,"appointment_effect":{"before_ppm":1.6,"after_ppm":0.8,"delta":null}},"strength":0.1,"moves":[]},{"id":"manager.away.established","section":"§1.1","tier":3,"state":"COMPUTED","note":"Philippe Clement has 31 matches in charge at Norwich City, long enough that the side plays the way he wants it to.","evidence":{"manager":"Philippe Clement","matches_in_charge":31,"tenure_days":219,"ppm":1.52,"appointment_effect":{"before_ppm":2.1,"after_ppm":1.8,"delta":null}},"strength":0.1,"moves":[]},{"id":"fatigue.away","section":"§2.8","tier":4,"state":"COMPUTED","note":"Norwich City come in on 4 days' rest, with nothing unusual in the schedule behind them.","evidence":{"daysRest":3.6979166666666665,"matchesIn7":2,"matchesIn14":2,"days_rest":3.7},"strength":0.1,"moves":[]},{"id":"style.opponent_adjustment","section":"§4.1","tier":5,"state":"COMPUTED","note":"Team strength is estimated against the actual quality of opponents faced, so a soft run of fixtures does not read as form.","evidence":{"home":{"attack":-0.074,"defence":-0.002,"effective_matches":18,"shrunk":0.31},"away":{"attack":0.064,"defence":-0.02,"effective_matches":18,"shrunk":0.31}},"strength":0.2,"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":45.3,"shots":13.3,"xg_per_shot":0.109,"corners":5.2,"corners_per_shot":0.388,"finishing_vs_xg":-0.29},"away":{"matches":12,"possession":53,"shots":13.2,"xg_per_shot":0.081,"corners":4.7,"corners_per_shot":0.354,"finishing_vs_xg":0.76},"possession_gap":-7.8},"strength":0.31,"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":"Bristol City have scored 4 fewer than the chances they made over 12 games, a gap that usually closes rather than holds.","evidence":{"goals_minus_xg_per_match":-0.29,"matches":12},"strength":0.25,"moves":[]},{"id":"style.finishing.away","section":"§2.1","tier":5,"state":"COMPUTED","note":"Norwich City have scored 9 more than the chances they made over 12 games, a gap that usually closes rather than holds.","evidence":{"goals_minus_xg_per_match":0.76,"matches":12},"strength":0.25,"moves":[]},{"id":"referee.tendency","section":"§13","tier":5,"state":"COMPUTED","note":"159 yellow cards in this referee's last 43 games, where 163 would be usual in this league, and 3 reds.","evidence":{"matches":43,"yellows_per_match":3.7,"reds_per_match":0.07,"league_yellows_per_match":3.79,"league_reds_per_match":0.116,"yellow_ratio":0.98,"red_ratio":0.6},"strength":0.1,"moves":[]},{"id":"fatigue.travel","section":"§6.4","tier":6,"state":"COMPUTED","note":"Routine trip of 300 km for Norwich City.","evidence":{"travel_km":300},"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":10,"temperature_c":7,"description":"rain"},"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.21904429885252602},"strength":0,"moves":[]}],"pass_reason":"call rule: value","preview":"The results here are not telling the whole story. Bristol City have lost three of their last ten games in which they made the better chances. Their football is better than their results. On top of that, they have scored only 9 in their last ten from chances that would usually bring about 15. The goals are coming. Meanwhile, Norwich City have been out-created in six of their last ten games. Whoever makes the better chances on the day takes this one.","external":{"bsd_prediction":{"id":7152,"created_at":"2026-11-01T02:15:23Z","event":{"id":214144,"event_date":"2026-11-07T12:30:00Z","status":"notstarted","home_team_id":220,"home_team":"Bristol City","away_team_id":209,"away_team":"Norwich City","league_id":12,"league_name":"Championship"},"recommendations":{"favorite":"A","favorite_prob":38.8,"bet_favorite":false,"over_15":false,"over_25":false,"over_35":false,"btts":false,"winner":false},"model":{"confidence":0.3876,"version":"dc-blend-v1"}}},"computed_at":1794053846,"verdicts":[],"locked":false,"colors":{"home":"#ec262c","away":"#0f8d3f"},"venue":{"name":"Ashton Gate","city":"Bristol","capacity":27000},"pulled":[],"published":[]}