Complete open methodology: Monte Carlo engine (10,000 simulations), bottleneck detection criterion, Nash Equilibrium conditions, result distribution output, and full source documentation for independent replication by any competent analyst or court-appointed expert.
The Vortex Calculator was designed around a single strategic principle: any result it produces must be independently replicable by any competent analyst using only the formulas published in this document and publicly available match data. This principle is not modesty — it is legal architecture.
In a CAS proceeding, expert evidence falls into two categories: contested and uncontested. Contested evidence is evidence that the opposing party's experts dispute — and disputes between experts consume hearing time, introduce uncertainty, and give panels reasons to discount quantitative findings. Uncontested evidence is evidence whose methodology is so transparent and whose conclusions are so reproducible that the opposing party cannot credibly challenge it without challenging mathematics itself.
The Vortex Calculator is designed to produce uncontested evidence. Its Monte Carlo engine uses published result probability distributions derived from historical World Cup data. Its bottleneck detection criterion is the same Myerson condition derived in Part II. Its Nash Equilibrium assessment uses the same payoff function derived in Part II. Any analyst FIFA retains — any academic, any actuarial firm, any sports analytics company — will produce the same result from the same inputs. There is nothing proprietary about the logic. The proprietary element is the SIT data pipeline that feeds it in real time.
This transparency is also the calculator's commercial protection. An open methodology cannot be plagiarized in a meaningful sense — the formula is the formula. What can be protected is the implementation quality, the data sourcing, the real-time integration, and the forensic reporting chain documented in Part V. Transparency at the methodological level creates defensibility at the evidentiary level.
Chapter 6.2The calculator operates in three sequential layers, each addressing a distinct question:
Layer 1 — Structural Detection: Does the current point configuration satisfy the Myerson bottleneck condition? This is a deterministic check requiring no simulation — it is a logical evaluation of whether the draw is structurally sufficient for both teams to reach the cutoff. It runs in microseconds.
Layer 2 — Monte Carlo Quantification: Given that the structural condition is met, what is the probability that a draw actually qualifies both teams, accounting for the realistic distribution of other groups' results? This requires simulation — 10,000 runs of the full 12-group tournament structure. It runs in ~150 milliseconds.
Layer 3 — Nash Equilibrium Assessment: Given the Monte Carlo probability, is the draw the dominant strategy under the vNM utility model derived in Part II? This is an analytic calculation comparing EU(Cooperate) against EU(Compete). It runs in microseconds.
Together, the three layers answer the only question that matters for a CAS petition: not "did the teams agree to draw" — which is unknowable — but "was the draw the rational dominant strategy given the information available to both teams before kickoff." That question is answerable. The calculator answers it.
Chapter 6.3The most important methodological question for any Monte Carlo simulation of tournament outcomes is the probability distribution assigned to individual match results. The distribution used in the Vortex Calculator is based on historical World Cup group stage data from 1994 to 2022 — seven tournaments, 336 group stage matches.
The 35/30/15/20 distribution is not arbitrary. It reflects the empirical base rate of results in FIFA World Cup group stages from 1994 onward — the period in which the three-points-for-a-win rule applied, making the distribution comparable to the 2026 tournament's incentive structure. Any analyst seeking to challenge the simulation must propose an alternative distribution and justify it against the same historical data. The historical record is publicly available and cannot be credibly disputed.
The simplification of scoring draws to a uniform GD change of +1/+1 is acknowledged as an approximation. Its effect on the simulation's output is minimal: the critical variable in bottleneck detection is points, not goal difference, for the overwhelming majority of scenarios. Goal difference becomes determinative only in the marginal case where two or more teams finish level on points — a case the simulation handles correctly at the points level and approximates at the GD level. A more precise simulation would use the full historical distribution of scorelines; this refinement is available in the Professional Access technical appendix.
Chapter 6.4The following is the complete, annotated source code of the Monte Carlo engine as deployed in the public Vortex Calculator. Every function is documented. Every parameter is justified. Any court-appointed expert can replicate this output in any programming language from this specification.
// ══════════════════════════════════════════════════════ // VORTEX CALCULATOR — MONTE CARLO ENGINE // SIT Sport Intelligence Terminal · June 2026 // Methodology: open · Replication: any language // Reference: FIFA Vortex 2026 White Paper, Part VI // ══════════════════════════════════════════════════════ // ── LAYER 1: Single match result sampler ────────────── // Probabilities from 1994–2022 WC group stage (336 matches) // Home advantage reduced for neutral venues per FIFA 2026 format // 35% home win / 30% away win / 15% goalless draw / 20% scoring draw function randomResult() { const r = Math.random(); if (r < 0.35) return { ph: 3, pa: 0, gh: 1, ga: -1 }; // home win if (r < 0.65) return { ph: 0, pa: 3, gh: -1, ga: 1 }; // away win if (r < 0.80) return { ph: 1, pa: 1, gh: 0, ga: 0 }; // goalless draw return { ph: 1, pa: 1, gh: 1, ga: 1 }; // scoring draw } // ── LAYER 2: Full group simulator ───────────────────── // 4 teams, 6 matches (complete round-robin) // Returns the third-placed team's { pts, gd } // Used to generate the 11 external groups in each simulation run function simulateGroup() { const pts = [0,0,0,0], gd = [0,0,0,0]; // All 6 pairings in a 4-team group for (let i = 0; i < 4; i++) { for (let j = i + 1; j < 4; j++) { const r = randomResult(); pts[i] += r.ph; pts[j] += r.pa; gd[i] += r.gh; gd[j] += r.ga; } } // Sort standings: points descending, then goal difference descending const standings = [0,1,2,3] .map(k => ({ pts: pts[k], gd: gd[k] })) .sort((a, b) => (b.pts - a.pts) || (b.gd - a.gd)); // Return third-placed team (index 2) return { pts: standings[2].pts, gd: standings[2].gd }; } // ── LAYER 3: Full tournament Monte Carlo ─────────────── // ptsA, ptsB: points before final match // gdA, gdB: goal difference before final match // sims: number of simulation runs (standard: 10,000) // targetIdx: index of the target group in the 12-group array // Block 2 → 5 (Group F-equivalent position) // Block 3 → 8 (Group I-equivalent position) // Returns: probability that a draw qualifies BOTH teams function monteCarlo(ptsA, ptsB, gdA, gdB, targetIdx, sims = 10000) { let bothAdvance = 0; const drawPtsA = ptsA + 1; // points after a draw const drawPtsB = ptsB + 1; for (let s = 0; s < sims; s++) { // Simulate all 12 groups' third-place finishers const thirds = []; for (let g = 0; g < 12; g++) thirds.push(simulateGroup()); // Override target group with enforced draw result // Both teams reach drawPts; GD taken as max of the two (conservative) thirds[targetIdx] = { pts: Math.max(drawPtsA, drawPtsB), gd: Math.max(gdA, gdB) }; // Sort all 12 thirds descending; cutoff = 8th (index 7) thirds.sort((a, b) => (b.pts - a.pts) || (b.gd - a.gd)); const cut = thirds[7]; // Both qualify if each reaches or exceeds the cutoff const aOk = drawPtsA > cut.pts || (drawPtsA === cut.pts && gdA >= cut.gd); const bOk = drawPtsB > cut.pts || (drawPtsB === cut.pts && gdB >= cut.gd); if (aOk && bOk) bothAdvance++; } return bothAdvance / sims; // probability ∈ [0, 1] } // ── LAYER 4: Nash Equilibrium assessment ────────────── // Applies vNM utility model from Part II, Formula 2.8 // Returns true if cooperation (draw) is the dominant strategy function isNashEquilibrium(pDraw, pWin = 0.48) { // EU(Cooperate) = pDraw × V₂ + (1-pDraw) × V₃ // EU(Compete) = pWin × V₁ + (1-pWin) × V₃ // Simplified: cooperation dominates when pDraw > 0.60 (Part II result) return pDraw > 0.60; }
The calculator classifies every scenario into one of four output states. The decision logic is documented below as a formal decision tree — both for transparency and for use by legal teams preparing CAS filings that reference the calculator's output.
The advanced version below runs the complete engine and displays not just the headline probability but the full distribution of cutoff scenarios — the distribution of third-place cutoff values across the 10,000 simulations, showing how frequently different cutoff configurations arise and how sensitive the bottleneck probability is to small changes in the cutoff.
Chapter 6.7The Vortex Calculator is a screening tool. It answers one question: given these standing configurations and this information context, was the draw the dominant rational strategy? It does not answer whether the draw actually occurred for rational reasons in any specific match. That question requires the SIT forensic analysis documented in Part V.
The calculator's appropriate uses, in ascending order of legal weight, are as follows. For journalists and analysts covering the tournament, it provides a pre-match indicator of which games carry structural integrity concerns — enabling informed commentary and public accountability pressure on FIFA. For federations monitoring their qualification interests, it provides an early warning system that triggers the decision to activate SIT real-time monitoring for a specific match. For legal teams preparing CAS filings, it provides the first evidentiary element — the mathematical demonstration that the draw was the dominant strategy — which establishes the structural predicate for the forensic analysis to follow.
The calculator should not be used as standalone evidence in a CAS proceeding. The bottleneck condition is necessary but not sufficient for a successful claim. A match can satisfy the bottleneck condition and still be played competitively — players are not automata, and the Nash Equilibrium predicts rational behavior in aggregate, not individual match outcomes with certainty. The CAS petition requires: (1) the calculator output establishing the structural predicate; (2) the SIT forensic analysis establishing the behavioral signature; and (3) the legal theory established in Parts III and IV connecting the structural incentive to the applicable law. All three elements together constitute a cognizable claim. Any one element alone does not.
"The calculator does not prove manipulation. It proves that manipulation was rational. The distinction is everything — in mathematics, in law, and in the courtroom. What cannot be disputed is the incentive. What must be established separately is the response to the incentive. The SIT data establishes the response. Together, they close the case."
— SIT Sport Intelligence Terminal, June 2026