Brentford model โ€” what changed, and why the numbers are kept apart

Every signal carries the version of the model that produced it. Old signals are never re-calculated or removed; you compare versions instead of mixing them.

The one-paragraph version

The model estimates how many goals each team is expected to score, turns that into a probability for every scoreline, and from there into a probability for each Asian Handicap line. That probability is multiplied by Pinnacle's price; if the result is more than 1, the bet has an edge. v2 and v3 share all of that. They differ in one thing that turned out to matter enormously โ€” how Pinnacle's handicap prices are read โ€” plus a safety cap. Because of that difference, v2 and v3 signals are not the same kind of bet, so they get their own statistics.

Timeline
Currently producing signals: โ€ฆ
The big difference, with real numbers: how a handicap line is read

Pinnacle offers two prices on every handicap line โ€” one for the home team, one for the away team. API-FOOTBALL labels them Home โˆ’0.25 and Away โˆ’0.25. The question is what the โˆ’0.25 on the away label means.

v2 read it as the away team's own handicap ("away gives a quarter goal") and therefore paired Home โˆ’0.25 with Away +0.25. v3 reads it as the home line's number ("the away price on the home โˆ’0.25 line", i.e. away receives a quarter goal) and pairs Home โˆ’0.25 with Away โˆ’0.25. There is a simple way to tell who is right: the two prices of one line at a real bookmaker always add up to a little over 100% โ€” that little bit is the margin.

v2 pairing
Line โˆ’0.25
Home โˆ’0.25 2.13 + Away +0.25 2.60
1/2.13 + 1/2.60 = 85.4% โ†’ impossible (a bookmaker would lose money)
Line +0.25
Home +0.25 1.45 + Away โˆ’0.25 1.70
1/1.45 + 1/1.70 = 127.8% โ†’ impossible (28% margin)
v3 pairing
Line โˆ’0.25
Home โˆ’0.25 2.13 + Away โˆ’0.25 1.70
1/2.13 + 1/1.70 = 105.8% โ†’ a real book (โ‰ˆ6% margin)
Line +0.25
Home +0.25 1.45 + Away +0.25 2.60
1/1.45 + 1/2.60 = 107.4% โ†’ a real book (โ‰ˆ6% margin)

What this meant in practice. A safety check rejects any line whose two prices don't make a sensible book. Under v2 every line except 0 failed that check, so v2 effectively only ever traded line 0 (draw-no-bet). The handful of v2 away-side signals on other lines that did get through were priced for the opposite bet โ€” a stored "Away +1.25" was really the price for away โˆ’1.25 โ€” and were removed on 10.09. v3 is the first version that trades the whole ladder (ยฑ0.25, ยฑ0.5, ยฑ0.75 โ€ฆ) correctly.

The second difference: a cap on unbelievable edges

Real edges against Pinnacle are a few percent. When the model claims 60% or 90%, the far more likely explanation is a weak spot in the model (a team with 5 matches of data, a league where it hasn't settled yet) โ€” not value. v3 refuses to log anything above 40%; 25โ€“40% is logged but only ever shown as "Verify before betting". v2 logged everything.

v4 โ€” the market as the starting point (observation only)

v3 treats the model and Pinnacle as equals and calls any gap between them "edge". But Pinnacle's price is the whole market's knowledge โ€” line-ups, injuries, syndicates, models like ours โ€” so a public goals model is usually the one that is wrong when they disagree a lot. v4 takes that seriously: the probability it uses is 60% Pinnacle's own de-vigged probability and 40% the model's. The model may move the market's number, but not replace it. Because blended edges are smaller, v4 fires from 3% (v3: 5%).

Example A โ€” both fire
Pinnacle price 2.05 โ†’ market says 48% (margin removed)
Model says 60%
v3: 0.60 ร— 2.05 โˆ’ 1 = 23.0% โ†’ fires (โ‰ฅ5%)
v4: 0.6 ร— 0.48 + 0.4 ร— 0.60 = 0.528; 0.528 ร— 2.05 โˆ’ 1 = 8.2% โ†’ fires (โ‰ฅ3%)
Example B โ€” only v3 fires
Pinnacle price 2.05 โ†’ market says 48% (margin removed)
Model says 52%
v3: 0.52 ร— 2.05 โˆ’ 1 = 6.6% โ†’ fires (โ‰ฅ5%)
v4: 0.6 ร— 0.48 + 0.4 ร— 0.52 = 0.496; 0.496 ร— 2.05 โˆ’ 1 = 1.7% โ†’ no

What to expect. v4 will fire far less often than v3, and only where v3 sees roughly 16% or more. It is a filter and a damper, not a different view of the game โ€” if the model is systematically on the wrong side, v4 will show that too, just with smaller numbers. It runs alongside v3 for statistics only: not in the scanner, but in the tracker (version filter) and on every signal page as "Model views of this line".

How to read the Tracker now
  • Model version filter: v3 is the standard and the default; v4 is observed alongside. v2 data was removed on 13.09 (it effectively only traded line 0).
  • Best line per match: the scanner can flag several lines of one match that win or lose together; this keeps one bet per match so swings aren't exaggerated.
  • Closing line value: whether the signal price beat Pinnacle's closing price. This is the earliest reliable sign of a real edge โ€” long before ROI means anything. Below 50% and negative on average = the negative ROI is not bad luck.
  • Opposite side: what the other side of the same line would have returned at the same three moments โ€” the table flips to show the opposite bet, and every chart draws the other perspective as a dashed line. Not a mirror image โ€” Pinnacle's margin sits on both sides โ€” so both perspectives being negative is the "pure noise" result.