<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[PredictedSports]]></title><description><![CDATA[Building models and dealing with data to try and predict the world of sports]]></description><link>https://www.predictedsports.com</link><image><url>https://substackcdn.com/image/fetch/$s_!Saq5!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F237b53c9-92c7-49aa-8c86-39588ec29c32_3344x3344.jpeg</url><title>PredictedSports</title><link>https://www.predictedsports.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 11 Jun 2026 23:51:36 GMT</lastBuildDate><atom:link href="https://www.predictedsports.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[PredictedSports]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[predictedsports@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[predictedsports@substack.com]]></itunes:email><itunes:name><![CDATA[Ash Anderson]]></itunes:name></itunes:owner><itunes:author><![CDATA[Ash Anderson]]></itunes:author><googleplay:owner><![CDATA[predictedsports@substack.com]]></googleplay:owner><googleplay:email><![CDATA[predictedsports@substack.com]]></googleplay:email><googleplay:author><![CDATA[Ash Anderson]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[World Cup Day One: Mexico, Korea, and Where We Disagree With the Bookies]]></title><description><![CDATA[The model likes Mexico more than the market does and thinks South Africa gets shut out. Here's every pick, with the numbers.]]></description><link>https://www.predictedsports.com/p/world-cup-day-one-mexico-korea-and</link><guid isPermaLink="false">https://www.predictedsports.com/p/world-cup-day-one-mexico-korea-and</guid><dc:creator><![CDATA[Ash Anderson]]></dc:creator><pubDate>Thu, 11 Jun 2026 13:03:12 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The waiting is over. After all the rankings and ratings and a thousand simulated tournaments, the actual World Cup starts today, and the model I&#8217;ve been building finally has to stop talking and start being graded.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.predictedsports.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Get daily sports updates. We build models, talk about how, and share the predictions daily. </p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>Two games on day one. Both in Group A, both in Mexico, and conveniently both involving the host. It&#8217;s a soft open by World Cup standards, just a pair of matches, but it&#8217;s the first real entry in the ledger. So I&#8217;m going to do this properly: every market, the model&#8217;s number against the market&#8217;s number, and where I think the value actually is.</p><p>A quick word on how to read the tables below. &#8220;Our model&#8221; is what my machine thinks the true probability is. &#8220;Market&#8221; is the bookmakers&#8217; price with the vig stripped out, so it&#8217;s an apples-to-apples comparison, what the market really believes once you remove their cut. &#8220;Edge&#8221; is the gap between the two, in percentage points. A positive edge means the model thinks something is more likely than the market is pricing. That&#8217;s where the value lives. All the market numbers are current as of the morning of the games.</p><p>Let&#8217;s go.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="5256" height="3221" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3221,&quot;width&quot;:5256,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;a golden soccer trophy sitting on top of a soccer field&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="a golden soccer trophy sitting on top of a soccer field" title="a golden soccer trophy sitting on top of a soccer field" srcset="https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1637203725134-1bbdcc17bb91?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyMHx8d29ybGQlMjBjdXB8ZW58MHx8fHwxNzgxMTIwNzgzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@myprofittutor">My Profit Tutor</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><h2>Game one: Mexico vs South Africa, and the cathedral</h2><p>You could not script a better stage. The opening match of the entire tournament, game one of one hundred and four, is at the Estadio Azteca in Mexico City. And here&#8217;s a stat that gave me chills: with this game, the Azteca becomes the first stadium on Earth to host three World Cup opening matches. It did the honors in 1970, again in 1986, and now in 2026. It has staged two finals on top of that. This is the closest thing football has to a cathedral, and the tournament is being christened there for a third time.</p><p>There&#8217;s a lovely symmetry too. The last time these two met on a stage this big was the opening game of the 2010 World Cup in South Africa, the one with Tshabalala&#8217;s screamer into the top corner. Sixteen years later they run it back, except now Mexico are the hosts and South Africa are the visitors. Javier Aguirre, who was in the Mexico dugout for a chunk of that era, is back for a third stint in charge. And Guillermo Ochoa, somehow, is the only man in either squad who played in 2010 and is here again. The guy is ageless. He&#8217;s basically a landmark at this point.</p><p>Here&#8217;s the full board:</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/L9vfI/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/494fbc5e-e42d-4dc0-bc9a-6bd3a829ae67_1220x762.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1bed6850-b7c8-4558-8526-00fc099a7f6d_1220x832.png&quot;,&quot;height&quot;:406,&quot;title&quot;:&quot;Mexico vs South Africa&quot;,&quot;description&quot;:&quot;&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/L9vfI/1/" width="730" height="406" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>Two numbers jump off that table, and they&#8217;re the two I&#8217;d circle.</p><p>The first is Mexico to win. The model has them at nearly 80%, against a market that, stripped of vig, sits around 62%. That&#8217;s a +17.6 point gap, which is enormous, and it means the model thinks the market is meaningfully underselling the hosts. Two things on the ground back that up. Mexico arrive in form, six wins and two draws from their eight friendlies this year. And there&#8217;s a factor my model doesn&#8217;t even bake in: the Azteca sits at over 2,200 meters of altitude, and visiting lungs hate it. My model treats this as neutral ground, which means if anything it&#8217;s underrating Mexico here, not overrating them. The edge might be even bigger than the table says.</p><p>The second, and the one I like best on the whole slate, is both teams to score: no. The model puts that at nearly 75% against a market near 56%, a +18.7 point gap. And this isn&#8217;t the model being cute, it&#8217;s reading the same thing your eyes would. South Africa cannot buy a goal right now. Hugo Broos has watched his side stumble through a flat build-up, a goalless draw with Nicaragua and a one-all with Jamaica, and he&#8217;s been openly frustrated by the finishing. Mexico should score. South Africa, on this evidence, will struggle to. Shut-out, no BTTS, that&#8217;s the cleanest pick of the day.</p><p>Notice what the table also tells you to leave alone. The total has drifted toward the under as the market got nervous about a cagey opener, and it&#8217;s now sitting almost exactly where my model has it. No edge there, both sides agree it&#8217;ll be lowish-scoring, so there&#8217;s no bet to make. And the draw and a South Africa win are both spots where the market is more generous than the model, meaning no value for us. Knowing where you don&#8217;t have an edge matters just as much as knowing where you do.</p><p>To be fair to South Africa, they aren&#8217;t a traffic cone. Oswin Appollis is a real attacking threat with eight international goals, young Relebohile Mofokeng can hurt you in transition, and Ronwen Williams is a seriously underrated keeper, the man who saved four penalties in a single AFCON shootout. If they nick something, it&#8217;s Williams keeping them in it and a smash-and-grab on the break. But that&#8217;s the upset case, not the expectation.</p><p><strong>The picks:</strong> Mexico to win, and the one I love, both teams to score =&gt; &#8220;No&#8221;</p><h2>Game two: South Korea vs Czechia, and the goals question</h2><p>The nightcap moves to Guadalajara, and it&#8217;s a completely different kind of game. Where the opener is a mismatch, this one is a genuine coin flip. Here&#8217;s the board:</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/jZep9/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0bf05529-5c1b-43e7-8a39-987c687f601c_1220x758.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da7bd0bb-b8f8-4344-8462-afe08c7781da_1220x828.png&quot;,&quot;height&quot;:404,&quot;title&quot;:&quot;South Korea vs Czechia&quot;,&quot;description&quot;:&quot;&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/jZep9/1/" width="730" height="404" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>On the winner, the model has only the faintest of leans. It likes both teams to win slightly more than the market does, Korea by about three and a half points, Czechia by about five, which is really the same observation wearing two hats: the model thinks the draw is less likely than the market does. The market prices a draw near 31%, the model has it at 23%. So if there&#8217;s a winner-market angle here, it&#8217;s quietly fading the draw and taking either side to win outright. Mild stuff, though. I wouldn&#8217;t build a house on it.</p><p>Where the model gets loud is goals. Look at those bottom four rows. Over 2.5 at a +18.4 edge, both teams to score at +19.1. The model is screaming that this will be an open, end-to-end game, while the market sees a tight one nearer a coin flip. That&#8217;s a big disagreement, and I have to be honest with you about it, because this is exactly the kind of spot where I trust the model least.</p><p>Here&#8217;s the tension, and it&#8217;s a good one. On the model&#8217;s side: South Korea were the only unbeaten team in all of Asian qualifying, eleven wins and forty goals, which screams firepower. Son Heung-min, in his fourth and surely final World Cup, now at LAFC of all places, sits two goals shy of a 40-year-old national scoring record and has been directly involved in four of Korea&#8217;s last ten World Cup goals. That&#8217;s a team built to score. But on the other side of the ledger, that same Korea got thrashed four-nil by Ivory Coast in March, and Czechia, back at a World Cup for the first time since 2006, are a grind-it-out side whose whole plan is to load up the wingbacks, fire crosses at the head of Patrik Schick and a six-foot-six battering ram in Tom&#225;&#353; Chor&#253;, and above all not lose on opening day. Cagey, in other words. The exact opposite of the goal-fest the model predicts.</p><p>So which is it? The model says open. The previews whisper tight. And the honest truth is this is precisely the near-even, opening-nerves game where my backtests showed the model is at its weakest, even though it reads goals beautifully overall. So I&#8217;m logging the over and the BTTS-yes leans because the edges are genuinely big and that&#8217;s the whole point of keeping score, but I&#8217;m holding them far more loosely than anything in the Mexico game. If you&#8217;re watching for the tell, watch whether Czechia sit deep and turn it into a crossing contest, or whether Son and Korea&#8217;s runners drag it open.</p><p><strong>The picks:</strong> a soft fade on the draw, and the model&#8217;s big swing, over 2.5 and both teams to score, flagged as high-edge but low-confidence.</p><h2>The ledger opens</h2><p>So there&#8217;s day one, every market on the table, nothing hidden. Add it up and the model is handing me two picks I genuinely believe in, Mexico to win and South Africa to be kept quiet, plus two big-edge swings in the Korea game that I&#8217;m treating as the model&#8217;s opinion rather than gospel.</p><p>By tonight, every one of these gets graded against what actually happened, and just as importantly, every price went into the book before kickoff. That&#8217;s the experiment that matters: not whether I look smart on day one, but whether, game after game, the model&#8217;s edges turn into real results and the market drifts our way. Two games is nothing. But you build a track record one matchday at a time, and the only way to find out if this thing is real is to start counting. So here we go. Enjoy the football.</p>]]></content:encoded></item><item><title><![CDATA[Building a World Cup Model (And Whether It's Any Good)]]></title><description><![CDATA[I&#8217;ve spent the last few weeks building a model to predict the World Cup.]]></description><link>https://www.predictedsports.com/p/building-a-world-cup-model-and-whether</link><guid isPermaLink="false">https://www.predictedsports.com/p/building-a-world-cup-model-and-whether</guid><dc:creator><![CDATA[Ash Anderson]]></dc:creator><pubDate>Wed, 10 Jun 2026 21:29:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!li1I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve spent the last few weeks building a model to predict the World Cup. Not a &#8220;who do you reckon wins it&#8221; gut take over a beer. An actual machine that takes every international team, every result going back years, and turns it into a probability for every single match and, ultimately, for who lifts the trophy.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.predictedsports.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Want the daily World Cup update along with other sports: Subscribe! </p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>The central question of this piece is not &#8220;what does the model say.&#8221; I&#8217;ll tell you what it says, don&#8217;t worry. The harder and more honest question is the one I actually care about: is it any good? Because building a model that spits out confident-looking numbers is easy. Building one that&#8217;s actually right is a completely different animal. So I did the unglamorous thing and went and tested it against real World Cups it had never seen. And I&#8217;ll tell you up front, the results made me a believer.</p><p>So let&#8217;s open it up and look inside.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!li1I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!li1I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png 424w, https://substackcdn.com/image/fetch/$s_!li1I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png 848w, https://substackcdn.com/image/fetch/$s_!li1I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png 1272w, https://substackcdn.com/image/fetch/$s_!li1I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!li1I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png" width="1456" height="681" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:681,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:136243,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://predictedsports.substack.com/i/201509645?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!li1I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png 424w, https://substackcdn.com/image/fetch/$s_!li1I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png 848w, https://substackcdn.com/image/fetch/$s_!li1I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png 1272w, https://substackcdn.com/image/fetch/$s_!li1I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f006857-0b0f-4a40-9deb-f7c25f823ad7_2272x1062.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>What is it, in the fewest possible words</h2><p>It&#8217;s a machine that rates how good every national team is, turns those ratings into expected goals, and then plays the entire World Cup out a thousand times to see how often each team wins.</p><p>That&#8217;s the whole thing. Everything else is detail. But the detail is where it gets fun, so let&#8217;s go layer by layer.</p><h2>Layer one: how good is each team, really?</h2><p>Everything starts with a single number for how good a team is. If you&#8217;ve ever heard of chess ratings, this is the same idea. Beat a strong opponent and your number goes up a lot. Lose to a weak one and it drops. The specific flavor I&#8217;m using is called Glicko-2, which adds a nice twist: alongside the rating, it tracks how confident it is in that rating. A team that plays all the time has a trusted number. A team that&#8217;s barely kicked a ball in two years has a fuzzy one, and the model knows to treat it with suspicion.</p><p>Simple enough. But international football has a trap built into it, and it&#8217;s a big one.</p><p>National teams mostly play their own neighbors. Asian teams pile up games against other Asian teams. South American teams beat up on each other. So if you just throw every result into one pot, you get a distorted picture, because a team can farm a gaudy rating by feasting on weak regional rivals it sees twice a year. Their number looks great right up until they walk onto a World Cup pitch against someone from another continent and get found out.</p><p>So the model keeps two separate ratings. One for how a team does inside its own region, and one built only from the games that actually cross continents, your World Cups, your big friendlies, your intercontinental playoffs. Then it blends them, and it leans on the cross-continent number when it has enough of those games to trust it. It&#8217;s the difference between &#8220;good for Asia&#8221; and &#8220;good, full stop,&#8221; and the model refuses to confuse the two.</p><p>That whole exercise runs across more than 10,000 international matches and a couple hundred national teams. Out the other end comes a ranked list of every team on Earth.</p><h2>Layer two: the players have day jobs</h2><p>Here&#8217;s the problem with rating a national team purely on its national results: those teams play maybe ten games a year. That&#8217;s a tiny amount of evidence. Meanwhile the eleven players on the pitch have day jobs, and at those day jobs they play forty, fifty, sixty games a season against serious competition.</p><p>So why not use that?</p><p>That&#8217;s exactly what the second layer does. It looks at where a team&#8217;s key players actually play at club level. A spine of players from Real Madrid, Bayern, and Manchester City tells you something that ten international friendlies never could. A team whose stars play in weaker leagues tells you the opposite. The model pulls in the strength of those clubs, built from another 50,000-odd club matches, and uses it to nudge the national team&#8217;s attack and defense up or down.</p><p>In plain terms: it&#8217;s a way to catch a team that&#8217;s quietly better, or quietly worse, than its international scoreline suggests. The national results say one thing. The players&#8217; weekly reality says another. Layer two lets the second one have a vote.</p><h2>Layer three: turning &#8220;good&#8221; into goals</h2><p>Okay. We now know how good every team is. But &#8220;good&#8221; doesn&#8217;t win you anything. You need a scoreline. So how do you get from &#8220;Brazil is a 1,650 and Croatia is a 1,540&#8221; to &#8220;Brazil wins 2-1&#8221;?</p><p>This is where a lovely bit of math called the Poisson distribution comes in, and it&#8217;s worth thirty seconds because it&#8217;s genuinely elegant. Goals are rare events, and they happen at a fairly steady rate across a game. Poisson is the standard tool for exactly that situation: tell it how many goals a team is expected to score, say 1.6, and it hands you back the probability of them scoring 0, or 1, or 2, or 3, and so on. Do that for both teams and you&#8217;ve got the probability of every scoreline on the board.</p><p>There&#8217;s one well-known wrinkle. Pure Poisson slightly misjudges the very low scores, your 0-0s and 1-0s and 1-1s, because in real football those cluster a little more than the clean math expects. A tweak called Dixon-Coles patches exactly that. So the version I&#8217;m running is Poisson with the football-specific correction baked in. Out of it comes a full grid: the chance of a home win, a draw, an away win, the most likely scoreline, the odds of over or under two and a half goals, the odds of both teams scoring. All of it, from two ratings and some math.</p><h2>Layer four: play it out a thousand times</h2><p>One match is nice. A tournament is sixty-four of them, tangled together in a bracket where who you play in the quarters depends on who survives the group. You can&#8217;t solve that with a calculator. So you do the next best thing. You let the computer play the whole thing out.</p><p>It simulates every group game by drawing a random scoreline from that game&#8217;s probability grid. It tallies the groups, figures out who advances, builds the knockout bracket, and plays that out too, all the way to a champion. Then it does the entire thing again. And again. A thousand times.</p><p>Do you know what a thousand simulated World Cups gives you? A beautifully simple answer. If Argentina wins 140 of them, Argentina has a 14% chance. Count how often each team advances, reaches the final, lifts the cup, and you&#8217;ve turned an impossibly tangled bracket into a clean set of percentages.</p><h2>So what does it actually say?</h2><p>As of this build, the top of the board looks like this: Argentina around 14%, France around 11%, then a cluster of Austria, Brazil, and Belgium in the 6 to 10% range. The full table is below, all 48 teams, with each one&#8217;s chance of winning the whole thing and its chance of escaping the group.</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/ZbBvv/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47091056-4329-4f60-829c-1d959b759354_1220x1742.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9f6c033-d5ce-494b-babc-eb585b1bf7a5_1220x1812.png&quot;,&quot;height&quot;:889,&quot;title&quot;:&quot;World Cup Winner - PredictedSports&quot;,&quot;description&quot;:&quot;&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/ZbBvv/1/" width="730" height="889" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>And yes, before you say it, Austria third favorite raised my eyebrow too. When I dug into why, it came down to the model rating Austria&#8217;s defense as one of the very best in the field. That&#8217;s probably a touch generous, an artifact of a good run of clean sheets getting over-weighted, and it&#8217;s the kind of thing I&#8217;ll keep an eye on. But I want to flag it precisely because it shows the model isn&#8217;t a black box to me. I can open it up, find the one knob responsible for a number that looks funny, and tell you exactly why it&#8217;s there. That&#8217;s the opposite of hand-waving, and it&#8217;s how you build trust in a thing like this.</p><h2>So is it any good? Yes, and here&#8217;s the proof</h2><p>This is the part that actually matters, and most people building these things conveniently skip it. I didn&#8217;t, because a model you haven&#8217;t tested is just a vibe with extra steps.</p><p>You can&#8217;t grade a World Cup model on this World Cup, it hasn&#8217;t happened yet. So you do the honest thing: you wind the clock back, build the ratings using only data that existed before the 2018 and 2022 World Cups, and make the model predict those tournaments cold, with zero peeking. Ninety-six real matches it had never laid eyes on. Here&#8217;s how it did.</p><p>Start with the headline, because it&#8217;s the one I&#8217;m proudest of. The model predicted the total number of goals across those 96 games to within 3% of what actually happened. Three percent. Over nearly a hundred matches. That is not luck, that is a model that genuinely understands how much scoring to expect, and it&#8217;s why when this thing talks about over/under and both-teams-to-score, I lean all the way in.</p><p>Now the winners. Across both tournaments it called 62.5% of match outcomes correctly. Take a second with that number, because it&#8217;s better than it sounds. This is a three-way market, win, lose, or draw, where a coin flip is 33% and even reflexively backing the favorite every time lands you around fifty. The model cleared sixty. And in the more orderly 2018 tournament it was flat-out excellent: 71% of matches called right and, more impressively, it correctly identified 88% of the teams that advanced from their groups. Combined across both years it nailed three out of every four group qualifiers.</p><p>There&#8217;s a proper way to score the quality of the probabilities too, not just whether the top pick won, and the model passes that test as well. It comfortably beats both of the naive benchmarks you&#8217;d measure it against, the &#8220;everything&#8217;s a coin flip&#8221; baseline and the &#8220;just predict the historical average&#8221; baseline. In plain English: the confidence levels it attaches to its picks carry real information. They&#8217;re not noise dressed up as percentages.</p><p>So what about 2022, where the accuracy dipped to 54%? Here&#8217;s the thing, and it&#8217;s important. 2022 was the most chaotic World Cup in living memory. Saudi Arabia beat Argentina. Japan beat Germany and Spain. Morocco went to the semifinals. The entire tournament was one upset after another, the kind of bracket-busting madness that no model on Earth was going to call cleanly, because that&#8217;s what makes it madness. And even through all that, my model still predicted the goals that year almost perfectly, dead-on, a ratio of 1.00. When the form book got set on fire, the part of the model I trust most didn&#8217;t even flinch.</p><p>Put it all together and I&#8217;m genuinely encouraged. A model that reads goals to within three percent, beats sixty percent on a three-way market across two real World Cups, and gets three of four qualifiers right is not a toy. It&#8217;s a real, working forecasting engine, and it earned that description the hard way, on tournaments it had never seen.</p><h2>The one test left to ace</h2><p>So if the backtest looks this good, what&#8217;s left? One thing, and it&#8217;s the fun one.</p><p>A backtest tells you the model is accurate. It doesn&#8217;t yet tell you whether it&#8217;s accurate enough to beat the market, the sharpest crowd in the world. That&#8217;s a higher bar, and there&#8217;s a beautiful way to measure it called closing line value. The closing line is the final set of odds right before kickoff, and it&#8217;s the toughest number in sports to beat, because by then every sharp bettor and every model has had their say. The tell is simple: if I make a pick and the market then drifts toward me, the smart money agreed and I was early. Do that consistently and you have a genuine edge, one that shows up weeks before any win-loss record could confirm it.</p><p>So that&#8217;s the final exam I&#8217;ve set up. Every prediction logged, every market price logged right beside it, every closing line snapshotted before kickoff. The backtest already told me the model is good. This live track record is how I find out if it&#8217;s good enough to be <strong>ahead</strong> of the market, and after what the 2018 and 2022 numbers showed me, I genuinely like our chances.</p><h2>Close</h2><p>Here&#8217;s where I&#8217;ve landed, and it&#8217;s a more confident place than I expected to be when I started. I&#8217;ve built something that reads a football match about as well as you could reasonably ask, predicts goals to within three percent on tournaments it had never seen, and beats sixty percent picking winners in a three-way market. That&#8217;s a real result, and I&#8217;m proud of it.</p><p>The only question left is the best kind: not &#8220;does it work,&#8221; because the backtest answered that, but &#8220;can it beat the market.&#8221; So here&#8217;s the plan, and it&#8217;s a simple one. Every single day of this tournament I&#8217;m going to post the full slate, every game on the card, with the model&#8217;s read on each one set right next to the market&#8217;s price. Then I&#8217;ll grade the lot the morning after, in public, win or lose. Every pick and every price goes into the ledger where you can see it.</p><p>That&#8217;s how we find out for real, not with a season-end victory lap but day by day, game by game, with the receipts out on the table the whole way. The backtest already made me a believer. Now we get to watch it happen live. I&#8217;ll see you in the morning with day one. I have a good feeling about this one.</p>]]></content:encoded></item></channel></rss>