{"metric":{"id":"xg","name":"11footy xG","short":"xG","level":"shot","unit":"goals","tier":"flagship","summary":"How likely a shot was to be a goal, judged before anyone knew how it ended, by a model of ours; added up over a match, a side or a player.","definition":"An expected goal (xG) is the chance, between 0 and 1, that a shot like this one ends in a goal. 11footy's model reads the shot, never the result, and is trained on the shots of past seasons only. A match, team or player xG is the sum of his shots'.","inputs":["The shot list of the five leagues since 2014-15: where the shot was taken, with what, in which situation (open play, corner, set piece, free kick, penalty), the action just before it and who set it up, the minute, the score from the shooter's side, home or away, the time since the side's previous shot.","Nothing from a provider's own xG, xA or any derived metric: those are not read anywhere (ADR 0024)."],"formula":["A gradient-boosted trees model turns the inputs of each shot into a probability (the xg package, ADR 0029); each season is rated by a model that never saw it.","xG of a match, side or player = the sum of the probabilities of his shots.","npxG = the same without penalties. xA (expected assists) = the xG of the shots a player set up. Goals above expected (G - xG) = goals minus xG."],"readings":[{"name":"xG","what":"all shots, penalties included: what a match was worth"},{"name":"npxG","what":"without penalties: what open-play and set-piece chances were worth"},{"name":"xA","what":"the xG of the shots a player set up"},{"name":"G - xG","what":"goals minus xG: finishing above or below the chances"}],"sample":["A shot's xG is a probability, not a verdict: a 0.08 shot that goes in is not evidence of anything.","Totals over a match are fine; per-90 numbers, rankings and percentiles of players need 900 league minutes. Under 450 minutes a line is marked a small sample.","Goals above expected (G - xG) needs a whole season of a player's shots to say anything and, as the check below shows, mostly does not repeat: read it as luck until a long run says otherwise."],"limits":["No goalkeeper or defender positions and no shot speed in the data: two shots from the same place count the same however crowded the goal was.","xA counts the shot, not the pass: a good pass to a poor finisher is worth what the shot was worth.","Shots exist from 2014-15 only; earlier seasons have no xG.","Penalties are worth about the same every time, so they are left out when the question is about open play (npxG).","G - xG is not a skill rating: see the check below for how little of it repeats."],"shown_in":[{"label":"Expected goals: the model and its calibration","href":"/lab/xg"},{"label":"Match pages: shot map and xG","href":"/matches"},{"label":"Player pages: xG, xA, shots","href":"/players"},{"label":"Competition pages: the Expected table","href":"/competitions"}],"page":"/lab/metrics/xg","validation":{"calibration":{"overall":{"shots":549129,"goals":58888,"xg":59680.8,"gap":0.0135,"logloss":0.2575,"brier":0.0744},"by_season":[{"key":2014,"name":2014,"shots":45596,"goals":4636,"xg":4628.7,"gap":-0.0016,"logloss":0.2464,"brier":0.0708},{"key":2015,"name":2015,"shots":45315,"goals":4716,"xg":4725.2,"gap":0.002,"logloss":0.2506,"brier":0.0724},{"key":2016,"name":2016,"shots":45750,"goals":5045,"xg":4852.1,"gap":-0.0382,"logloss":0.2609,"brier":0.0757},{"key":2017,"name":2017,"shots":45307,"goals":4795,"xg":4808.4,"gap":0.0028,"logloss":0.2543,"brier":0.0737},{"key":2018,"name":2018,"shots":47065,"goals":4883,"xg":5054.1,"gap":0.035,"logloss":0.254,"brier":0.0729},{"key":2019,"name":2019,"shots":43755,"goals":4682,"xg":4708.2,"gap":0.0056,"logloss":0.258,"brier":0.0744},{"key":2020,"name":2020,"shots":43241,"goals":4960,"xg":4890.7,"gap":-0.014,"logloss":0.2686,"brier":0.0782},{"key":2021,"name":2021,"shots":45605,"goals":4972,"xg":5090.8,"gap":0.0239,"logloss":0.2588,"brier":0.0749},{"key":2022,"name":2022,"shots":45684,"goals":4882,"xg":5109.8,"gap":0.0467,"logloss":0.2591,"brier":0.0746},{"key":2023,"name":2023,"shots":45752,"goals":4910,"xg":5092.9,"gap":0.0373,"logloss":0.2577,"brier":0.0743},{"key":2024,"name":2024,"shots":43621,"goals":4803,"xg":4907.9,"gap":0.0218,"logloss":0.2634,"brier":0.0763},{"key":2025,"name":2025,"shots":44031,"goals":4716,"xg":4910.0,"gap":0.0411,"logloss":0.2578,"brier":0.0741},{"key":2026,"name":2026,"shots":8407,"goals":888,"xg":901.9,"gap":0.0157,"logloss":0.2623,"brier":0.0754}],"by_competition":[{"key":"BL","name":"Bundesliga","shots":96786,"goals":11061,"xg":10735.8,"gap":-0.0294,"logloss":0.2703,"brier":0.0789},{"key":"L1","name":"Ligue 1","shots":103990,"goals":11182,"xg":11125.5,"gap":-0.0051,"logloss":0.2546,"brier":0.0736},{"key":"LL","name":"La Liga","shots":110496,"goals":11916,"xg":12160.4,"gap":0.0205,"logloss":0.256,"brier":0.0741},{"key":"PL","name":"Premier League","shots":117662,"goals":12500,"xg":13143.0,"gap":0.0514,"logloss":0.2599,"brier":0.0749},{"key":"SA","name":"Serie A","shots":120195,"goals":12229,"xg":12516.1,"gap":0.0235,"logloss":0.2484,"brier":0.071}],"by_situation":[{"key":"DirectFreekick","name":"Direct free kicks","shots":21648,"goals":1254,"xg":1305.0,"gap":0.0406,"logloss":0.2088,"brier":0.0534},{"key":"FromCorner","name":"From a corner","shots":83769,"goals":7030,"xg":7277.7,"gap":0.0352,"logloss":0.2244,"brier":0.0628},{"key":"OpenPlay","name":"Open play","shots":401860,"goals":42060,"xg":42445.7,"gap":0.0092,"logloss":0.2641,"brier":0.0768},{"key":"Penalty","name":"Penalties","shots":6828,"goals":5317,"xg":5229.5,"gap":-0.0165,"logloss":0.5295,"brier":0.1727},{"key":"SetPiece","name":"Other set pieces","shots":35024,"goals":3227,"xg":3422.9,"gap":0.0607,"logloss":0.237,"brier":0.0674}],"by_body":[{"key":"Head","name":"Head","shots":94329,"goals":9706,"xg":10079.1,"gap":0.0384,"logloss":0.2706,"brier":0.0786},{"key":"Left foot","name":"Left foot","shots":175179,"goals":18068,"xg":18058.4,"gap":-0.0005,"logloss":0.2523,"brier":0.0725},{"key":"Other","name":"Other","shots":1914,"goals":318,"xg":411.1,"gap":0.2928,"logloss":0.3336,"brier":0.1017},{"key":"Right foot","name":"Right foot","shots":277707,"goals":30796,"xg":31132.1,"gap":0.0109,"logloss":0.2557,"brier":0.0739}],"reliability":[{"lo":0.0,"hi":0.02,"n":121642,"said":0.01,"happened":0.0099},{"lo":0.02,"hi":0.04,"n":107494,"said":0.0291,"happened":0.0304},{"lo":0.04,"hi":0.06,"n":68954,"said":0.0493,"happened":0.0502},{"lo":0.06,"hi":0.08,"n":44804,"said":0.0692,"happened":0.0688},{"lo":0.08,"hi":0.1,"n":33316,"said":0.0896,"happened":0.0897},{"lo":0.1,"hi":0.15,"n":56445,"said":0.1225,"happened":0.1214},{"lo":0.15,"hi":0.2,"n":31553,"said":0.173,"happened":0.1664},{"lo":0.2,"hi":0.3,"n":34830,"said":0.2443,"happened":0.2374},{"lo":0.3,"hi":0.4,"n":19431,"said":0.3464,"happened":0.329},{"lo":0.4,"hi":0.6,"n":17160,"said":0.4768,"happened":0.4638},{"lo":0.6,"hi":0.8,"n":12040,"said":0.7295,"happened":0.738},{"lo":0.8,"hi":1.0,"n":1460,"said":0.868,"happened":0.8733}],"worst_full_season_gap":0.0467},"finishing":{"player_seasons":17887,"split_half":0.03,"whole":0.0582}},"validation_says":["Over 549,129 rated shots the model expected 59,681 goals and 58,888 were scored (+1.4% difference). Log loss 0.258, Brier 0.074.","No full season was off by more than 4.7%.","Goals above expected, per 90, between the even and the odd matches of the same season: r = 0.03 over 17,887 player-seasons: mostly noise."]},"data":{"built_at":"2026-10-13T08:50:47Z","data_through":"2026-10-12T19:00:00Z"},"min_minutes":900,"small_minutes":450,"rule":"Every number here is computed by 11footy from base data (results, line-ups, minutes, shots). A provider's own derived metrics are not read anywhere."}