Ukratko, StatsBomb, Opta, InStat, WyScout i drugi servisi već dugi niz godina prikupljaju detaljnje podatke s nogometnih utakmica, bilježeći svako dodavanje, dribling, dodir s loptom, udarac, pozicije igrača i druge tzv. event data. Ako uzmemo pet godina podataka iz pet europskih liga, dobijemo više od 200.000 udaraca i kontekstualnih parametara vezanih uz svaki od njih — udaljenost od gola, kut prema golu, što je prethodilo udarcu (dribling, dodavanje, odbijanac…), vrsta asistencije, dio tijela s kojim je udarac upućen, broj obrambenih igrača ispred napadača, obrambeni pritisak itd.
Svaki od tih 200.000 podataka izoliran ne znači ništa, jer je dosta toga ovisno o slučajnosti; ali tako veliki uzorak amortizira utjecaj slučajnosti i omoguće nam da dođemo do zaključka o tome kolika je vjerojatnost da će do pogotka stvarno i doći. Primjenjujući algoritme strojnog učenja, na ovoj silnoj količini podataka moguće je kvantificirati vjerojatnost gola za svaku vrstu udarca sa svim okolnostima koje su prethodile te im dodijeliti xG vrijednost. Na ovaj način možemo evaluirati sve udarce/prilike na određenoj utakmici i vidjeti tko je zapravo igrao bolje i imao bolje prilike, jer već je toliko puta pokazano da u nogometu konačni rezultat — već zbog same prirode igre, malog broja pogodaka, značajnog faktora sreće i sudačkih odluka — to vrlo često neće pokazati.