Ment a tévében a barátságos norvég–magyar, én meg ahelyett, hogy a meccset néztem volna, a fogadóiroda szorzóit bámultam. Haalandék simán nyernek — mondta az odds. De pontosan mennyivel? És honnan tudja ezt az iroda ennyire magabiztosan? Vagy csak úgy tűnik, hogy tudja?

Ez a kérdés nem hagyott nyugodni. A fogadóiroda végül is egy gép: bevesz egy csomó adatot, és kiköp egy valószínűséget. Ezt elvileg én is meg tudom csinálni — van futballadat ingyen rengeteg. Szóval feltettem magamnak a kérdést, amibe a fél hétvégém belement: meg lehet-e verni a piacot egy kis adatelemzéssel? Vagy legalább: mennyire torzak valójában azok a szorzók?

A válasz — előrebocsátom — kiábrándítóbb és tanulságosabb is, mint reméltem. De pont ezért érdemes róla írni.

Egy meccs, egy gyanú

A fogadóiroda oddsa nem közvetlenül valószínűség. Két dolog van benne: a tényleges esélybecslés, és az iroda haszonkulcsa (az „overround", a beépített árrés). Ha kiveszed az árrést, megkapod, hogy az iroda szerinte mennyi az esély. És itt jött a gyanú: ha én is kiszámolom a saját esélybecslésem, és összevetem az irodáéval, ott látszanak az eltérések — elvileg a „value", vagyis ahol a piac téved.

Elvileg. A gyakorlat ennél makacsabb. De ehhez előbb kellett egy saját modell, amivel egyáltalán van mit összevetni.

Mit építettem — a Sporter

A hétvégi kísérletből egy egész kis felület lett — a Sporter (foci.hajasgabor.com). A top-5 európai bajnokságot és a válogatottakat fedi le, és három dolgot tud egy helyen: meccs-előrejelzés, „modell vs. piac" elemzés, és egy csomó böngészhető statisztika.

Erling Haaland lövés-térképe — fél pálya, a kör mérete az xG
Egy lövés-térkép a felületről — Erling Haaland 2025/26: a zöld a gól, a kör mérete az xG.
5255
elemzett top-5 meccs (3 szezon, xG-vel)
284
válogatott a ranglistán
47 601
válogatott gól az adatbázisban

Hogyan jósol: Elo, Poisson, xG

A motor három bevált ötletre épül, semmi varázslat. A csapaterősséget egy Elo-rendszer tartja nyilván (ugyanaz az elv, mint a sakkban: aki erősebbet ver, többet kap). A gólokat egy Poisson-modell szórja szét — ebből jön ki, hogy mekkora eséllyel lesz 1-0, 2-1 vagy 0-0. A klubmodell pedig nem a puszta gólokat nézi, hanem a várható gólt (xG-t): egy 0,05-ös és egy 0,7-es helyzet nem ugyanaz, akkor sem, ha mindkettő kimaradt.

A „value" képlete ezután kínosan egyszerű:

# a naiv "value" képlet:
EV = p_modell × odds − 1        #  EV > 0  →  elvi "value"

# a józan igazság:
# ha a modellem rosszabb a piacnál, az EV>0 nem azt mutatja,
# hol téved a fogadóiroda — hanem azt, hol tévedek ÉN.

És itt jön a csavar, amire nem számítottam.

A kínos rész: a fogadóiroda jobb

Lemértem a modellt rendesen — több ezer lejátszott meccsen, visszamenőleg (ezt hívják backtest-nek), log-loss nevű pontszámmal, ami a valószínűségi jóslatok minőségét méri (kisebb a jobb). Az eredmény: a modellem nagyjából 1,01, a fogadóiroda záró oddsa pedig ~0,97. Vagyis a piac pontosabb, mint én. Nem sokkal — de következetesen.

Ennek pedig van egy alattomos következménye. Amikor a „value-kereső" felvillant egy óriási eltérést — mondjuk hogy egy esélytelen csapatra a modellem szerint sokkal nagyobb az esély, mint amit az odds mutat —, az a valóságban szinte sosem rejtett kincs. Sokkal valószínűbb, hogy egyszerűen ott tévedek én a legnagyobbat. A modell hajlamos túlbecsülni az esélytelent; a nagy „edge" éppen ezt a hibát mutatja, nem a piac vakfoltját.

Tanulság

A legnagyobb „value" jellemzően nem ott van, ahol a piac téved — hanem ahol a saját modelled. Ezért a felületen minden eltérés kap egy 🟢/🔴 rizikó-címkét, és sehol nincs „tipp" felirat. Ez nem fogadási tanácsadó. A piac kiszámolásához a piacnál is jobbnak kéne lenni — én meg (egyelőre) nem vagyok az.

Megpróbáltam korrigálni: egy „önkorrekciós" lépéssel (technikai nevén hőmérséklet-skálázás) tompítottam a modell túlzott magabiztosságát az esélytelenekkel szemben. Ez segített — a legviccesebb félrebecslések feleződtek —, de a piacot így sem előztem meg. A fogadóirodák mögött évtizedek, profi modellezők és rengeteg pénz van. Naiv lett volna azt hinni, hogy egy hétvége alatt lehagyom őket.

Ingyenes adat, rejtett kulcsok

Az egészben az volt a legszórakoztatóbb, hogy egy fillér adatdíjat sem fizettem. A klubmeccsek és az xG az Understatból jönnek, a válogatott-eredmények egy nyílt GitHub-adatbázisból (1872-től máig), a keretek és a menetrend a football-data.org ingyenes API-járól, a játékosfotók pedig négy forrásból, fallback-lánccal (ha az egyik nem talál, megy a következőre): FPL, Wikipédia, Wikidata, TheSportsDB.

A frontend Next.js, és van egy elv, amihez ragaszkodtam: a böngésző soha nem lát API-kulcsot. Minden számítás a szerveren fut, az eredmény előre kiszámolt JSON-fájlokba kerül, és a látogató már csak ezeket a kész adatokat kapja. Így megosztható nyilvánosan anélkül, hogy a kulcsaim kiszivárognának.

Elv

Kulcs a szerveren, a böngészőben csak tárolt adat. Az egész a saját kis házi szerveremen (Proxmox-konténer) fut, Cloudflare-alagúton keresztül kiszolgálva — és minden hajnalban magától frissül.

A magasabb szintű jelek — a csapat xG-je, az Elo — már magukban hordozzák annak a nagy részét, amit a játékos-szintű adat hozzátenne. A „több adat" nem mindig pontosabb modell.

Mit mond a gép a VB-re?

A szimulátor tízezerszer lejátssza a tornát — random ágrajzzal, mert a sorsolás pillanatában még nincs hivatalos párosítás —, és összeszámolja, ki hányszor nyer. A jelenlegi állás szerint a két nagy favorit fej-fej mellett van:

11,9%
Argentína — esély a VB-címre
11,1%
Spanyolország
7,2%
Brazília
VB 2026 bajnoki esélyek — oszlopdiagram a Monte-Carlo szimulátorból
A szimulátor kimenete: a top 10 nemzet esélye a VB-címre (tízezer lefuttatás).

Mögöttük Franciaország (szintén 7,2%), majd Kolumbia, Portugália és Anglia tömörül 5% körül. Ami megnyugtató: a lista nem őrült — nagyjából azt adja, amit a józan ész és a fogadóirodák is. Ami viszont árulkodó: pont ez a baj. Ha a modellem ugyanazt mondja, mint a piac, akkor nincs előnyöm; ha mást mond, akkor meg jó eséllyel én tévedek. A favoritoknál a kettő szépen egyezik — az igazi kérdés a kisebb meccseknél lesz, ahol elválik a véleményünk.

Kövesd a VB alatt — lássuk, kinek lesz igaza

A torna pár nap múlva kezdődik, és ez a projekt számomra innentől egy nyílt kísérlet. A felület minden meccsre kiadja a saját esélybecslését, és ott lesz mellette a piac is. Nem azért, hogy bárki pénzt tegyen rá — hanem hogy élesben, a saját szemünkkel lássuk, mennyire áll meg a matek a fogadóirodával szemben.

Lehet, hogy a piac végig fölényben marad. Az is lehet, hogy egy-egy meccsen a modell jobban ráérez. A lényeg, hogy mérhető lesz — nem hangulat, hanem szám. És ha valami, hát a futball szereti a meglepetést.

Ha érdekel a kísérlet, nézz rá a felületre — foci.hajasgabor.com —, és kövesd velem a VB-t. A végén megnézzük az eredményt: torzak-e tényleg a szorzók, vagy a fogadóiroda tudja a dolgát.

Lássuk a VB alatt, kinek lesz igaza: a számoknak vagy a piacnak.