{"id":8935,"date":"2026-09-14T04:35:47","date_gmt":"2026-09-14T08:35:47","guid":{"rendered":"https:\/\/www.squawka.com\/us\/?post_type=news&#038;p=8935"},"modified":"2026-10-21T07:55:02","modified_gmt":"2026-10-21T11:55:02","slug":"squawka-signal-methodology","status":"publish","type":"news","link":"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/","title":{"rendered":"Squawka Signal: The Model Behind Our AI Predictor"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Squawka Signal is our own prediction model. It rates every club from its results and turns those ratings into a projected scoreline and a win probability for every match, shown next to the market&#8217;s price so you can see where the data agrees with the money and where it does not. This page sets out how it works, what it weighs, how we measure it, and what it deliberately does not try to do. It is a transparent system, not a black box \u2014 read the picks against this page and hold the running record below to a standard.<\/p>\n\n\n\n<h2 id=\"h-where-you-ll-see-squawka-signal\" class=\"wp-block-heading\">Where you\u2019ll see Squawka Signal<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Signal is one model behind many surfaces on Squawka US, and it is the same engine every time. You meet it in our <a href=\"https:\/\/www.squawka.com\/us\/news\/\">match previews<\/a> as a projected result and score for the game; in the <b>AI Predictor<\/b> pages as every pick for a competition laid out in one table with a running record on top; on the outright pages as title, top-five and relegation odds set against our model; and on club pages and the homepage. Wherever you see a Signal number it comes from the same place and is measured the same way.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A note on the two names, because both are ours. <b>\u201cSquawka Signal\u201d is the model \u2014 how it works. \u201cAI Predictor\u201d is the page where you can read all of its picks for a competition in one place.<\/b> Same engine, two names: one for the method, one for the surface. This page documents the model, so it covers every surface, not just the AI Predictor table.<\/p>\n\n\n\n<h2 id=\"h-how-signal-works\" class=\"wp-block-heading\">How Signal works<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Honest framing first. Signal is not a deep neural network with a billion parameters. It is a team-strength model you can interrogate: it rates every club&#8217;s attack and defense straight from results \u2014 two full seasons of them \u2014 using a Poisson maximum-likelihood fit, with a home-field adjustment and more weight on recent games. Those two ratings give an expected-goals figure for each side, which the model turns into a full probability distribution across plausible scorelines. The most likely scoreline is the pick; the win, draw and loss probabilities come off the same distribution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two refinements keep it honest. A <b>thin sample is treated as a thin sample<\/b>: a newly promoted side with no top-flight history is pulled toward a league-average prior and the little data it has is discounted, so a good three-game run is not mistaken for a new baseline (early-season calls on new teams move more than settled ones, by design). And a <b>low-score correction<\/b> nudges the tight scorelines \u2014 0-0, 1-0, 1-1 \u2014 toward what football actually produces, because independent scoring math slightly under-counts draws.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From that one distribution Signal reads more than the result. The projected <b>scoreline<\/b> is the most likely score within the outcome it favors. <b>Both teams to score<\/b> and <b>over\/under 2.5 goals<\/b> fall out of the same goal distribution. And for <b>anytime goalscorer<\/b>, the team&#8217;s expected goals are shared across its scorers by their scoring rate, so the players the model likes are the players it expects to be involved \u2014 availability and lineups are then applied editorially before anything is published.<\/p>\n\n\n\n<h2 id=\"h-signal-against-the-market\" class=\"wp-block-heading\">Signal against the market<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every Signal number is shown against the market price, because a prediction is only really interesting where it disagrees with the money. Early in a season a young model has little to work with, so Signal <b>leans on the market<\/b> \u2014 which has already priced the summer&#8217;s managers and signings \u2014 and hands over to its own read as real games bank, reaching the pure model by around the tenth matchweek. So an early-season number is mostly the market with a little model in it; a mid-season number is mostly the model. This is deliberate: it stops a still-forming model from shouting a bold call off three games of data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That gives two distinct readings that we keep separate. The <b>prediction<\/b> is the most likely outcome \u2014 who we think wins. The <b>value<\/b> is where Signal most disagrees with the market \u2014 where the edge is, if there is one. They are not the same thing: a side can be the value (the market underrates them) without being the prediction (they are still not the likeliest winner). We label them separately so one never masquerades as the other.<\/p>\n\n\n\n<h2 id=\"h-how-we-measure-signal\" class=\"wp-block-heading\">How we measure Signal<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A predictor that does not track its own performance is not a predictor; it is marketing. The running record below is the model&#8217;s report card, rebuilt daily as matches settle, and it is measured <b>out of sample<\/b> \u2014 every pick scored as if locked in before kickoff, with the ratings fit only on matches already played. Three numbers matter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Result hits.<\/b> Did Signal call the correct outcome \u2014 home win, draw or away win? The loosest measure, but the one that maps directly to a match-result bet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Exact-score hits.<\/b> Did it call the exact scoreline? Correct-score is notoriously hard \u2014 top tipsters hit under 10 percent, and any system claiming a big edge here should be treated with suspicion. We expect Signal to land in the 8 to 12 percent band over a season.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Signal against the market.<\/b> For every fixture we freeze what Signal said and what the market was paying at that moment, and grade the disagreement, not just the call. That is the number that tells you whether an edge is real or noise. It is the newest of the three and its ledger is still filling, so we publish it only once enough calls have settled to mean something.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Underneath all three sits <b>calibration<\/b>, the one that matters most: do the things Signal calls 60 percent actually happen about 60 percent of the time? That comparison \u2014 predicted probability against realized frequency \u2014 is in the track record below, measured out of sample. Where the model&#8217;s confidence is honest we show it, and where it drifts we show that too.<\/p>\n\n\n\n<h2 id=\"h-what-signal-does-not-do\" class=\"wp-block-heading\">What Signal does not do<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><b>It does not know about injuries or suspensions.<\/b> The model reads strength from results; it has no feed from the medical room. If a key forward is a late withdrawal, the ratings still include his past games. That is why every published pick is paired with the team news in the match preview, and why a named goalscorer is checked for availability before it runs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>It does not model tactical surprises.<\/b> A side that changes shape for one big game will not be caught until that pattern repeats in the data. The numbers lag the soccer at exactly those moments.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>It is not a substitute for the preview.<\/b> A Signal number gives you a pick, a price and an edge. The full preview gives you team news, probable lineups, tactical context and set-piece angles. Use them together.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Coverage varies by competition.<\/b> Where our data feed carries a league, the model rates its clubs from results; where a side&#8217;s league is not covered, a promoted or cross-border newcomer leans on a strength prior until it has played enough. The surfaces flag when a read is data-rich and when it is thin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>It is not a guarantee.<\/b> A season across four competitions will throw up results no model saw coming. Signal&#8217;s job is to be honest about its inputs and accountable for its outputs \u2014 not to promise a winner.<\/p>\n\n\n\n<h2 id=\"h-track-record\" class=\"wp-block-heading\">Track record<\/h2>\n\n\n<p><!-- SQ-SIGNAL-TRACK-RECORD:START (built by ai_predictor\/track_record.py) -->\n\n<style>\n.sqtr__wrap{overflow-x:auto}\n.sqtr table{border-collapse:collapse}\n@media(max-width:520px){.sqtr{padding:14px 13px 16px !important}}\n<\/style>\n<div class=\"sqtr\" style=\"background:linear-gradient(135deg,#0f3b2b 0%,#0a2c1f 60%,#06211a 100%) !important;color:#f4f8f1 !important;border-radius:12px;margin:18px 0;padding:18px 18px 20px;box-shadow:0 8px 22px rgba(10,44,31,.24);font-family:'Bricolage Grotesque',system-ui,-apple-system,sans-serif\">\n<div style=\"display:flex;align-items:center;gap:9px;margin:0 0 14px\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 696 696\" fill=\"#a8e039\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" style=\"flex:0 0 auto;display:block\"><path d=\"M473.282 222.72H696.002C696.002 99.6672 596.335 0 473.282 0H250.562C250.562 123.053 350.23 222.72 473.282 222.72Z\"\/><path d=\"M222.72 445.44V0C99.6672 0 0 99.6672 0 222.72C0 345.773 99.6672 445.44 222.72 445.44Z\"\/><path d=\"M473.281 250.563V696.003C596.334 696.003 696.001 596.336 696.001 473.283C696.001 350.231 596.334 250.563 473.281 250.563Z\"\/><path d=\"M222.72 473.277H0C0 596.33 99.6672 695.997 222.72 695.997H445.44C445.44 572.944 345.773 473.277 222.72 473.277Z\"\/><\/svg><span style=\"color:#f4f8f1 !important;font-weight:800;font-size:15px;letter-spacing:-.2px;line-height:1\">Squawka <span style=\"color:#a8e039 !important\">Signal<\/span><\/span><\/div>\n<div style=\"display:flex;flex-wrap:wrap;gap:22px;align-items:flex-end;margin:0 0 6px\">\n<div><span style=\"color:#F0B429 !important;font-size:clamp(38px,7vw,56px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums\">47.7%<\/span><span style=\"display:block;color:rgba(255,255,255,.62) !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;margin-top:6px\">Result picks correct<\/span><\/div>\n<div><span style=\"color:#fff !important;font-size:clamp(20px,3vw,26px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums\">457<\/span><span style=\"display:block;color:rgba(255,255,255,.62) !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;margin-top:6px\">Picks graded<\/span><\/div>\n<div><span style=\"color:#fff !important;font-size:clamp(20px,3vw,26px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums\">8.8%<\/span><span style=\"display:block;color:rgba(255,255,255,.62) !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;margin-top:6px\">Exact scoreline<\/span><\/div>\n<div><span style=\"color:#fff !important;font-size:clamp(20px,3vw,26px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums\">+4.6pts<\/span><span style=\"display:block;color:rgba(255,255,255,.62) !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;margin-top:6px\">vs always-home<\/span><\/div>\n<\/div>\n<p style=\"color:rgba(255,255,255,.62) !important;font-size:13px;line-height:1.6;margin:12px 0 0\">Every Signal prediction across the Premier League, MLS, Liga MX and the Champions League, graded against the result. July 17 to October 21, 2026. Updated daily as matches settle &mdash; nothing is removed once it is graded.<\/p>\n<div style=\"color:#a8e039 !important;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.6px;margin:26px 0 2px;padding-bottom:7px;border-bottom:1px solid rgba(168,224,57,.18)\">How that compares<\/div>\n<p style=\"color:rgba(255,255,255,.62) !important;font-size:13px;line-height:1.6;margin:12px 0 0\">A hit rate means nothing on its own, so here is what the same 457 matches would have returned on the two obvious alternatives. Backing the home side every week is the bar that matters: it is free, and a model that cannot clear it is not worth reading.<\/p>\n<div class=\"sqtr__wrap\" style=\"overflow-x:auto;margin:12px 0 0\"><table style=\"width:100%;border-collapse:collapse;font-size:13px;min-width:460px;background:transparent !important\"><thead><tr style=\"background:transparent !important\"><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22)\">Approach<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22);text-align:right\">Correct<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22);text-align:right\">Hit rate<\/th><\/tr><\/thead><tbody><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#F0B429 !important;font-weight:800\">Squawka Signal<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#F0B429 !important;font-weight:800;text-align:right\">218<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#F0B429 !important;font-weight:800;text-align:right\">47.7%<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Back the home side every time<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">197<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">43.1%<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Pick at random<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">152<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">33.3%<\/td><\/tr><\/tbody><\/table><\/div>\n<p style=\"color:rgba(255,255,255,.62) !important;font-size:13px;line-height:1.6;margin:12px 0 0\">Signal is <b style=\"color:#fff !important;font-weight:800\">+4.6 points<\/b> clear of the always-home baseline. That is a real edge and a modest one, and we would rather put it that way than round it up.<\/p>\n<div style=\"color:#a8e039 !important;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.6px;margin:26px 0 2px;padding-bottom:7px;border-bottom:1px solid rgba(168,224,57,.18)\">By competition<\/div>\n<div class=\"sqtr__wrap\" style=\"overflow-x:auto;margin:12px 0 0\"><table style=\"width:100%;border-collapse:collapse;font-size:13px;min-width:460px;background:transparent !important\"><thead><tr style=\"background:transparent !important\"><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22)\">Competition<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22);text-align:right\">Graded<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22);text-align:right\">Hit rate<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22);text-align:right\">Exact score<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22);text-align:right\">Always-home<\/th><\/tr><\/thead><tbody><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Premier League<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">70<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#F0B429 !important;font-weight:800;text-align:right\">48.6%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">7.1%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">40.0%<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">MLS<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">232<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#F0B429 !important;font-weight:800;text-align:right\">44.4%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">9.9%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">43.1%<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Liga MX<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">110<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#F0B429 !important;font-weight:800;text-align:right\">43.6%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">8.2%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">39.1%<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Champions League<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">45<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#F0B429 !important;font-weight:800;text-align:right\">73.3%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">6.7%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">57.8%<\/td><\/tr><\/tbody><\/table><\/div>\n<div style=\"color:#a8e039 !important;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.6px;margin:26px 0 2px;padding-bottom:7px;border-bottom:1px solid rgba(168,224,57,.18)\">Most recent graded picks<\/div>\n<p style=\"color:rgba(255,255,255,.62) !important;font-size:13px;line-height:1.6;margin:12px 0 0\">Hits and misses, newest first, nothing filtered out. The predicted score is the most likely scoreline within the result Signal called, so an exact score always counts as a correct call too.<\/p>\n<div class=\"sqtr__wrap\" style=\"overflow-x:auto;margin:12px 0 0\"><table style=\"width:100%;border-collapse:collapse;font-size:13px;min-width:460px;background:transparent !important\"><thead><tr style=\"background:transparent !important\"><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22)\">Date<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22)\">Match<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22)\">Comp<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22)\">Predicted<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22)\">Result<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22)\">Call<\/th><\/tr><\/thead><tbody><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 21<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Guadalajara v Necaxa<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Liga MX<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">2-0<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">1-0<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#a8e039 !important;font-weight:800\">Correct<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 21<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Ju\u00e1rez v Atlante FC<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Liga MX<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">2-1<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">0-1<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#ff9a8b !important;font-weight:800\">Miss<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 21<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Atl\u00e9tico San Luis v Quer\u00e9taro<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Liga MX<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">1-0<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">2-1<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#a8e039 !important;font-weight:800\">Correct<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 21<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Tigres UANL v Le\u00f3n<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Liga MX<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">1-0<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">0-2<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#ff9a8b !important;font-weight:800\">Miss<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 20<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Sabah v Borussia Dortmund<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Champions League<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">0-1<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">1-2<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#a8e039 !important;font-weight:800\">Correct<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 20<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Fenerbah\u00e7e v Slavia Praha<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Champions League<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">1-0<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">2-2<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#ff9a8b !important;font-weight:800\">Miss<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 20<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Liverpool v Villarreal<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Champions League<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">2-0<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">4-3<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#a8e039 !important;font-weight:800\">Correct<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 20<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Roma v Slovan Bratislava<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Champions League<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">2-1<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">4-0<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#a8e039 !important;font-weight:800\">Correct<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 20<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Manchester City v AEK Athens<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Champions League<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">2-0<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">5-1<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#a8e039 !important;font-weight:800\">Correct<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 20<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Napoli v Bod\u00f8 \/ Glimt<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Champions League<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">1-2<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">4-3<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#ff9a8b !important;font-weight:800\">Miss<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 20<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">PSG v Barcelona<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Champions League<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">3-1<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">4-2<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#a8e039 !important;font-weight:800\">Correct<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Oct 20<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Stuttgart v Atl\u00e9tico Madrid<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">Champions League<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">2-1<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">1-1<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#ff9a8b !important;font-weight:800\">Miss<\/td><\/tr><\/tbody><\/table><\/div>\n<div style=\"color:#a8e039 !important;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.6px;margin:26px 0 2px;padding-bottom:7px;border-bottom:1px solid rgba(168,224,57,.18)\">Does 60% mean 60%?<\/div>\n<p style=\"color:rgba(255,255,255,.62) !important;font-size:13px;line-height:1.6;margin:12px 0 0\">A hit rate only tells you how often a model is right. The better question is whether its confidence is worth anything: when Signal says 60%, does that happen about 60% of the time? Below, 996 predictions made without knowing the result &mdash; each one from a version of the model trained only on matches played before it.<\/p>\n<div class=\"sqtr__wrap\" style=\"overflow-x:auto;margin:12px 0 0\"><table style=\"width:100%;border-collapse:collapse;font-size:13px;min-width:460px;background:transparent !important\"><thead><tr style=\"background:transparent !important\"><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22)\">Signal said<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22);text-align:right\">Predictions<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22);text-align:right\">It predicted<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22);text-align:right\">It happened<\/th><th style=\"text-align:left;color:#a8e039 !important;background:transparent !important;font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid rgba(168,224,57,.22);text-align:right\">Out by<\/th><\/tr><\/thead><tbody><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">35% to 45%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">365<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#F0B429 !important;font-weight:800;text-align:right\">41.1%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">41.6%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">-0.5pts<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">45% to 55%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">335<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#F0B429 !important;font-weight:800;text-align:right\">49.6%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">50.4%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">-0.9pts<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">55% to 65%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">201<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#F0B429 !important;font-weight:800;text-align:right\">59.6%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">55.2%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">+4.4pts<\/td><\/tr><tr style=\"background:transparent !important\"><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums\">65% to 100%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">95<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;color:#F0B429 !important;font-weight:800;text-align:right\">71.6%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">69.5%<\/td><td style=\"padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.07);color:#f4f8f1 !important;background:transparent !important;font-variant-numeric:tabular-nums;text-align:right\">+2.1pts<\/td><\/tr><\/tbody><\/table><\/div>\n<p style=\"color:rgba(255,255,255,.62) !important;font-size:13px;line-height:1.6;margin:12px 0 0\">Across those 996 predictions Signal put an average 46.9% on the home win and home teams won 44.6% of the time (+2.3 points out), and an average 23.1% on the draw against 25.6% actual (-2.5 points). Those are small gaps. This is a self-reported test, not an audit &mdash; but it is run the hard way, on results the model had not seen.<\/p>\n<div style=\"color:#a8e039 !important;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.6px;margin:26px 0 2px;padding-bottom:7px;border-bottom:1px solid rgba(168,224,57,.18)\">How to read a Signal pick<\/div>\n<div style=\"background:rgba(8,37,26,.45) !important;border:1px solid rgba(168,224,57,.14);border-radius:8px;padding:13px 15px;margin-top:12px\">\n<p style=\"margin:0 0 9px;font-size:13px;line-height:1.6;color:rgba(255,255,255,.82) !important\"><b style=\"color:#fff !important;font-weight:800\">The probability is the call. The scoreline shows its shape.<\/b> Signal prices all three results, then shows the single most likely scoreline behind the one it favors. A draw is rarely the most likely single scoreline even in a match the model rates as close, so a drawn scoreline seldom appears &mdash; but the draw is fully priced in the probability, to within a couple of points across the test above. When the numbers are tight, that is the model telling you the match is tight.<\/p>\n<p style=\"margin:0 0 9px;font-size:13px;line-height:1.6;color:rgba(255,255,255,.82) !important;margin-bottom:0\"><b style=\"color:#fff !important;font-weight:800\">A thin sample is treated as a thin sample.<\/b> A newly promoted side has no meaningful top-flight history, so rather than pretend otherwise the model pulls it toward a league-average prior and discounts the little data it has. Early-season calls on new teams move more than settled ones, by design.<\/p>\n<\/div>\n<p style=\"color:rgba(255,255,255,.62) !important;font-size:13px;line-height:1.6;margin:12px 0 0\">A pick is graded the moment the match finishes, on the prediction showing at kickoff, and graded picks are never edited or removed once settled. The method behind these numbers is set out in the sections above.<\/p>\n<\/div>\n\n<!-- SQ-SIGNAL-TRACK-RECORD:END --><\/p>\n\n\n<p class=\"wp-block-paragraph\">The record above covers the league predictors \u2014 MLS, the Premier League, Liga MX and the Champions League. It is rebuilt daily as matches settle, and a pick is never edited or removed once it has been graded.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The 2026 World Cup predictor is not in that record, and will not be. It ran on market prices rather than a model of its own, so there is no per-match call of ours to grade after the fact. We said here at the time that a tournament retrospective would follow, and it will not: we are not going to assemble one out of numbers we did not log before kickoff, because a record reconstructed after the results are known is not a record. The graded ledger starts with the domestic competitions, where every pick is stored before the match is played.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each competition keeps its own ledger, and new ones are added as the Predictor rolls out. Live now: <a href=\"https:\/\/www.squawka.com\/us\/news\/mls\/squawkas-mls-ai-predictor\/\">Squawka&#8217;s MLS predictions<\/a>, <a href=\"https:\/\/www.squawka.com\/us\/news\/liga-mx\/squawkas-liga-mx-ai-predictor\/\">Liga MX predictions<\/a>, <a href=\"https:\/\/www.squawka.com\/us\/news\/premier-league\/squawkas-premier-league-ai-predictor\/\">Premier League predictions<\/a> and <a href=\"https:\/\/www.squawka.com\/us\/news\/champions-league\/squawkas-champions-league-ai-predictor\/\">Champions League predictions<\/a>. The cumulative picture across all four sits at the top of this section.<\/p>\n\n\n\n<h2 id=\"h-signal-beyond-football\" class=\"wp-block-heading\">Signal beyond football<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Squawka Signal is also our name for the model behind our NFL coverage, but the engine underneath is different. Football Signal is the goals-based, team-strength model described on this page; <b>NFL Signal<\/b> gives every team an Elo rating \u2014 the rating system used to rank chess players, adapted for the NFL \u2014 with a quarterback adjustment on top, and simulates the season to give playoff, conference and Super Bowl odds. Same brand and the same discipline of measuring itself against the market; a different model built for a different sport. You can read how it works in full on our <a href=\"https:\/\/www.squawka.com\/us\/nfl\/nfl-news\/nfl-signal-methodology\/\">NFL Signal methodology page<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Signal will be wrong, often \u2014 exact-score prediction punishes anyone claiming otherwise. What it will not be is opaque, unaccountable or hyped beyond what the data supports. Read the picks against this page, hold the running record to a standard, and judge the model across a season rather than the next result. That is the only honest way to use a predictor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>21+ | Gambling Problem? Call 1-800-GAMBLER | Odds approximate at time of writing<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Squawka Signal is our own prediction model. It rates every club from its results and turns those ratings into a projected scoreline and a win probability for every match, shown next to the market&#8217;s price so you can see where the data agrees with the money and where it does not. This page sets out&#8230;<\/p>\n","protected":false},"author":393,"featured_media":49788,"parent":0,"menu_order":0,"template":"","meta":{"_acf_changed":false,"_yoast_wpseo_focuskw":"squawka signal","_yoast_wpseo_title":"Squawka Signal: The Model Behind Our AI Predictor | Squawka","_yoast_wpseo_metadesc":"How Squawka Signal works: our football prediction model behind every match preview, AI Predictor pick and outright on Squawka US. What it weighs, how we measure it, its live record.","footnotes":""},"tags":[272,273],"news-category":[],"class_list":["post-8935","news","type-news","status-publish","has-post-thumbnail","hentry","tag-prediction-markets","tag-world-cup-2026"],"acf":{"external_featured_image_url":"","hide_featured_image_pattern":true},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.0 (Yoast SEO v28.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Squawka Signal: The Model Behind Our AI Predictor | Squawka<\/title>\n<meta name=\"description\" content=\"How Squawka Signal works: our football prediction model behind every match preview, AI Predictor pick and outright on Squawka US. What it weighs, how we measure it, its live record.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Squawka Signal: The Model Behind Our AI Predictor\" \/>\n<meta property=\"og:description\" content=\"How Squawka Signal works: our football prediction model behind every match preview, AI Predictor pick and outright on Squawka US. What it weighs, how we measure it, its live record.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/\" \/>\n<meta property=\"og:site_name\" content=\"Squawka | US\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SquawkaFootballNews\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-21T11:55:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/09\/14051509\/soccer-signal-how-it-works-1536x768-1-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@Squawka\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/news\\\/squawka-signal-methodology\\\/\",\"url\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/news\\\/squawka-signal-methodology\\\/\",\"name\":\"Squawka Signal: The Model Behind Our AI Predictor | Squawka\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/news\\\/squawka-signal-methodology\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/news\\\/squawka-signal-methodology\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/media.squawka.com\\\/images\\\/sites\\\/13\\\/2026\\\/09\\\/14051509\\\/soccer-signal-how-it-works-1536x768-1-1.png\",\"datePublished\":\"2026-09-14T08:35:47+00:00\",\"dateModified\":\"2026-10-21T11:55:02+00:00\",\"description\":\"How Squawka Signal works: our football prediction model behind every match preview, AI Predictor pick and outright on Squawka US. What it weighs, how we measure it, its live record.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/news\\\/squawka-signal-methodology\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.squawka.com\\\/us\\\/news\\\/squawka-signal-methodology\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/news\\\/squawka-signal-methodology\\\/#primaryimage\",\"url\":\"https:\\\/\\\/media.squawka.com\\\/images\\\/sites\\\/13\\\/2026\\\/09\\\/14051509\\\/soccer-signal-how-it-works-1536x768-1-1.png\",\"contentUrl\":\"https:\\\/\\\/media.squawka.com\\\/images\\\/sites\\\/13\\\/2026\\\/09\\\/14051509\\\/soccer-signal-how-it-works-1536x768-1-1.png\",\"width\":1536,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/news\\\/squawka-signal-methodology\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"News\",\"item\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/news\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Squawka Signal: The Model Behind Our AI Predictor\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/#website\",\"url\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/\",\"name\":\"Squawka US\",\"description\":\"Soccer News and Predictions | Stats, Betting\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/#organization\",\"name\":\"Squawka US\",\"url\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/media.squawka.com\\\/images\\\/sites\\\/13\\\/2026\\\/04\\\/23072352\\\/Squawka-Logo.jpg\",\"contentUrl\":\"https:\\\/\\\/media.squawka.com\\\/images\\\/sites\\\/13\\\/2026\\\/04\\\/23072352\\\/Squawka-Logo.jpg\",\"width\":1000,\"height\":1000,\"caption\":\"Squawka US\"},\"image\":{\"@id\":\"https:\\\/\\\/www.squawka.com\\\/us\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/SquawkaFootballNews\\\/\",\"https:\\\/\\\/x.com\\\/Squawka\",\"https:\\\/\\\/www.instagram.com\\\/squawkafootball\\\/\"],\"description\":\"Squawka is a football editorial site covering the Premier League, Champions League, MLS, Liga MX, FIFA World Cup 2026 and the wider international game. We publish match previews, tactical analysis, player and team stats, outright odds, betting tips, streaming guides and long-form features for a committed football audience. Founded in the UK and part of OneTwenty Group, Squawka now runs localised editions for the UK (squawka.com\\\/en\\\/), United States (squawka.com\\\/us\\\/), Mexican-Spanish (squawka.com\\\/us-es\\\/), Ireland, Netherlands, Nigeria, Kenya, Uganda, South Africa and Ghana. Each edition is editorially tailored to its market, with locale-specific competition focus, operator compliance and commercial partnerships. Traffic skews toward high-intent football readers \u2014 supporters researching fixtures, form, odds and where to watch \u2014 making Squawka a strong fit for sportsbook, prediction-market, DFS, streaming and sports-merchandise brands across the UK, Europe and North America.\",\"foundingDate\":\"2012-06-11\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Squawka Signal: The Model Behind Our AI Predictor | Squawka","description":"How Squawka Signal works: our football prediction model behind every match preview, AI Predictor pick and outright on Squawka US. What it weighs, how we measure it, its live record.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/","og_locale":"en_US","og_type":"article","og_title":"Squawka Signal: The Model Behind Our AI Predictor","og_description":"How Squawka Signal works: our football prediction model behind every match preview, AI Predictor pick and outright on Squawka US. What it weighs, how we measure it, its live record.","og_url":"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/","og_site_name":"Squawka | US","article_publisher":"https:\/\/www.facebook.com\/SquawkaFootballNews\/","article_modified_time":"2026-10-21T11:55:02+00:00","og_image":[{"width":1536,"height":768,"url":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/09\/14051509\/soccer-signal-how-it-works-1536x768-1-1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@Squawka","twitter_misc":{"Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/","url":"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/","name":"Squawka Signal: The Model Behind Our AI Predictor | Squawka","isPartOf":{"@id":"https:\/\/www.squawka.com\/us\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/#primaryimage"},"image":{"@id":"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/#primaryimage"},"thumbnailUrl":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/09\/14051509\/soccer-signal-how-it-works-1536x768-1-1.png","datePublished":"2026-09-14T08:35:47+00:00","dateModified":"2026-10-21T11:55:02+00:00","description":"How Squawka Signal works: our football prediction model behind every match preview, AI Predictor pick and outright on Squawka US. What it weighs, how we measure it, its live record.","breadcrumb":{"@id":"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/#primaryimage","url":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/09\/14051509\/soccer-signal-how-it-works-1536x768-1-1.png","contentUrl":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/09\/14051509\/soccer-signal-how-it-works-1536x768-1-1.png","width":1536,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/www.squawka.com\/us\/news\/squawka-signal-methodology\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.squawka.com\/us\/"},{"@type":"ListItem","position":2,"name":"News","item":"https:\/\/www.squawka.com\/us\/news\/"},{"@type":"ListItem","position":3,"name":"Squawka Signal: The Model Behind Our AI Predictor"}]},{"@type":"WebSite","@id":"https:\/\/www.squawka.com\/us\/#website","url":"https:\/\/www.squawka.com\/us\/","name":"Squawka US","description":"Soccer News and Predictions | Stats, Betting","publisher":{"@id":"https:\/\/www.squawka.com\/us\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.squawka.com\/us\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.squawka.com\/us\/#organization","name":"Squawka US","url":"https:\/\/www.squawka.com\/us\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.squawka.com\/us\/#\/schema\/logo\/image\/","url":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/04\/23072352\/Squawka-Logo.jpg","contentUrl":"https:\/\/media.squawka.com\/images\/sites\/13\/2026\/04\/23072352\/Squawka-Logo.jpg","width":1000,"height":1000,"caption":"Squawka US"},"image":{"@id":"https:\/\/www.squawka.com\/us\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SquawkaFootballNews\/","https:\/\/x.com\/Squawka","https:\/\/www.instagram.com\/squawkafootball\/"],"description":"Squawka is a football editorial site covering the Premier League, Champions League, MLS, Liga MX, FIFA World Cup 2026 and the wider international game. We publish match previews, tactical analysis, player and team stats, outright odds, betting tips, streaming guides and long-form features for a committed football audience. Founded in the UK and part of OneTwenty Group, Squawka now runs localised editions for the UK (squawka.com\/en\/), United States (squawka.com\/us\/), Mexican-Spanish (squawka.com\/us-es\/), Ireland, Netherlands, Nigeria, Kenya, Uganda, South Africa and Ghana. Each edition is editorially tailored to its market, with locale-specific competition focus, operator compliance and commercial partnerships. Traffic skews toward high-intent football readers \u2014 supporters researching fixtures, form, odds and where to watch \u2014 making Squawka a strong fit for sportsbook, prediction-market, DFS, streaming and sports-merchandise brands across the UK, Europe and North America.","foundingDate":"2012-06-11"}]}},"yoast_title":"Squawka Signal: The Model Behind Our AI Predictor | Squawka","yoast_description":"How Squawka Signal works: our football prediction model behind every match preview, AI Predictor pick and outright on Squawka US. What it weighs, how we measure it, its live record.","yoast_keyword":"squawka signal","_links":{"self":[{"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/news\/8935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/news"}],"about":[{"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/types\/news"}],"author":[{"embeddable":true,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/users\/393"}],"version-history":[{"count":5,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/news\/8935\/revisions"}],"predecessor-version":[{"id":77268,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/news\/8935\/revisions\/77268"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/media\/49788"}],"wp:attachment":[{"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/media?parent=8935"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/tags?post=8935"},{"taxonomy":"news-category","embeddable":true,"href":"https:\/\/www.squawka.com\/us\/wp-json\/wp\/v2\/news-category?post=8935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}