<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>PunditBench — changelog</title>
    <link>https://punditbench.com/changelog/</link>
    <atom:link href="https://punditbench.com/feed.xml" rel="self" type="application/rss+xml"/>
    <description>Scoring, data and methodology updates for PunditBench, the LLM football-prediction benchmark.</description>
    <language>en</language>
    <lastBuildDate>Mon, 29 Jun 2026 12:00:00 GMT</lastBuildDate>
    <item>
      <title>PunditBench — 2026-06-29</title>
      <link>https://punditbench.com/changelog/#2026-06-29</link>
      <guid isPermaLink="false">https://punditbench.com/changelog/#2026-06-29</guid>
      <pubDate>Mon, 29 Jun 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<ul>
<li><strong>New benchmark — a round-by-round (&quot;live&quot;) track.</strong> By follower request, alongside the locked self-consistent bracket every model now also predicts the <strong>real</strong> knockout pairings of each round directly, as reality produces them. Scored like group matches (exact 3 / GD 2 / outcome 1, +1 correct advancer), kept <strong>separate</strong> from the headline leaderboard and surfaced as a &quot;Round-by-round picks&quot; section on each knockout match page. Stored in its own tree (<code>data/predictions-live/</code>, raw logs in <code>data/raw-live/</code>) so the pre-kickoff locked predictions are untouched. Each round is hashed and tagged before its first kickoff (<code>predictions-&lt;stage&gt;-live</code>); the golden rule applies per round. See METHODOLOGY.md and OPS.md.</li>
<li><strong>Real Round-of-32 bracket materialised</strong> (<code>data/fixtures/r32.json</code>): group winners/runners-up resolved from the recorded results; the eight third-placed qualifiers (groups B, D, E, F, I, J, K, L) and their slots via FIFA Annexe C, cross-verified against the official published bracket. Locked-bracket advancement/matchup scoring begins paying out now.</li>
<li><strong>First knockout result:</strong> match 73, South Africa 0–1 Canada (90&#39; score; sources FIFA.com + ESPN; Canada advance).</li>
<li><strong>Round-by-round R32 picks locked:</strong> 38 of 40 models (tag <code>predictions-r32-live</code>, sha256 <code>7bbc8359…</code>), collected before the round&#39;s earliest remaining kickoff. Match 73 is excluded and labelled &quot;not pre-registered&quot; (it had already kicked off). Two models could not be reached this round — Llama 3 70B (&quot;no endpoints&quot;) and Claude Fable 5 (&quot;not available&quot;) both 404 on OpenRouter; raw attempts kept in <code>data/raw-live/</code>. They retain their locked-bracket entries and can rejoin a later live round if their endpoints return.</li>
</ul>
]]></description>
    </item>
    <item>
      <title>PunditBench — 2026-06-22</title>
      <link>https://punditbench.com/changelog/#2026-06-22</link>
      <guid isPermaLink="false">https://punditbench.com/changelog/#2026-06-22</guid>
      <pubDate>Mon, 22 Jun 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<ul>
<li><strong>Site: &quot;Prediction personality&quot; added to each model page.</strong> Four style traits derived purely from the model&#39;s locked group-stage scorelines: goals per game, draw rate, a chalk-vs-contrarian index (mean agreement with the rest of the field on each match outcome), and favourite bias (how often it backs the underdog in matchups with a clear favourite). &quot;Favourite&quot; is defined endogenously — each team&#39;s mean predicted goal difference across the whole field is a &quot;silicon power rating&quot; (Brazil, Germany, Argentina, Spain top it; Curaçao and Haiti anchor it), with a ≥ 0.5-goal gap marking a clear favourite — so no external rankings enter the system. <strong>No effect on scoring, results, or the pre-registered predictions:</strong> these are read-only style metrics, derived at build from the existing locked data like everything else (new pure module <code>lib/personality.ts</code>, covered by <code>tests/personality.test.ts</code>). Accuracy still lives entirely on the leaderboard.</li>
</ul>
]]></description>
    </item>
    <item>
      <title>PunditBench — 2026-06-12</title>
      <link>https://punditbench.com/changelog/#2026-06-12</link>
      <guid isPermaLink="false">https://punditbench.com/changelog/#2026-06-12</guid>
      <pubDate>Fri, 12 Jun 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<ul>
<li><strong>Methodology page now embeds the verbatim group-stage prompt</strong> (generated from the <code>v1</code> template and verified byte-identical to the published raw logs) plus the exact knockout-prompt deltas. Transparency only — no methodology change.</li>
<li><strong>First result entered:</strong> match 1, Mexico 2–0 South Africa (90&#39; score; sources ESPN + FOX Sports). All 40 models had backed Mexico; 26 hit the exact scoreline.</li>
<li><strong>Hourly results auto-sync added</strong> (<code>.github/workflows/results-sync.yml</code> + <code>scripts/sync-results.ts</code>): ESPN&#39;s public scoreboard is polled hourly; finished <strong>group</strong> matches are entered automatically using the same canonical write as <code>npm run result</code> (verified byte-identical on match 1), behind strict team-name + kickoff matching. Knockout results stay manual (<code>--advances</code>/<code>--note</code> judgment). The sync never overwrites: a recorded result that disagrees with ESPN raises an alarm, and every run re-audits recorded scores. Scoring itself is unchanged — results.json remains the single derived-from input.</li>
<li><strong>Site: &quot;Today&#39;s matches&quot; extended</strong> with a &quot;Latest results&quot; strip (finished matches from the last 48 h stay visible after the visitor&#39;s local midnight) and time-derived &quot;In play&quot; / &quot;awaiting score&quot; states between kickoff and the next sync deploy.</li>
</ul>
]]></description>
    </item>
    <item>
      <title>PunditBench — 2026-06-11 (all before the opening kickoff, 19:00 UTC)</title>
      <link>https://punditbench.com/changelog/#2026-06-11</link>
      <guid isPermaLink="false">https://punditbench.com/changelog/#2026-06-11</guid>
      <pubDate>Thu, 11 Jun 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<ul>
<li><strong>Methodology v2 — self-consistent bracket simulation.</strong> Knockout predictions are no longer collected round-by-round against real pairings; instead every model&#39;s own group predictions determine its own bracket, which it predicted through to its own champion. All collected pre-kickoff. Scoring extended with bracket components (advancement, matchup hits, matched-pairing scorelines) — see METHODOLOGY.md.</li>
<li><strong>Third-place allocation:</strong> FIFA Annexe C lookup (495 combinations) parsed from the official regulations and machine-validated; used for all simulated brackets (<code>data/third-allocation.json</code>, ALLOCATION-NOTES.md).</li>
<li><strong>Roster expanded 18 → 34 → 33:</strong> 16 models added (live-catalog-verified); OLMo-3 removed — listed in the catalog but no provider serves it (HTTP 404 on every attempt, logged in raw/group).</li>
<li><strong>Validator relaxed (applies identically to all):</strong> entries for unlisted match numbers are now dropped with a logged warning instead of failing the response. Reason: Phi-4 Mini and LFM-2 predicted past the listed fixtures into the knockout bracket; rejecting that measures formatting, not football. All previously-passing models unaffected. Both models passed on rerun.</li>
<li>Group-stage hashes: 18-model set <code>9a7d3581…408fbc</code> (tag <code>predictions-group</code>), expanded 33-model set <code>4afa1910…d3d83d</code> (tag <code>predictions-group-v2</code>). Full-tournament hash tagged after simulation completes.</li>
<li><strong>Final pre-kickoff roster cut (operator decision): 44 → 40.</strong> Four small models — Granite 4.1 8B, LFM-2 24B, Phi-4 Mini, Llama 3.2 1B — failed a fourth retry cycle with byte-identical errors and were removed from the ranked roster entirely rather than carried as zero/partial entries. Their raw attempts stay published in <code>data/raw/</code> (the small-model capability floor remains documented in ROSTER-NOTES.md). Every ranked model now carries a complete tournament: <strong>40 models, 19 vendors, 40/40 full brackets.</strong> Final hash tagged <code>predictions-full-tournament-v4</code>.</li>
<li><strong>Pre-kickoff retry round (user-requested):</strong> the five models without complete brackets each got a fresh attempt. Hunyuan A13B succeeded on rerouted serving (OpenRouter provider variance) and now carries a full bracket — 40/44 complete; Granite 4.1 (partial through R16), LFM-2, Phi-4 Mini and Llama 3.2 1B reproduced their failures exactly and are final per the failure policy. Updated full-tournament hash tagged <code>predictions-full-tournament-v3</code>. Site copy corrected: failed simulations are stated as final, not &quot;being collected&quot;.</li>
<li><strong>Roster expanded 33 → 44 (still pre-kickoff):</strong> a legacy wing (GPT-3.5 Turbo, GPT-4, GPT-4o, Claude 3 Haiku, Llama 3 70B, Gemma 2 27B, Qwen 2.5 72B) and an oddball wing (WizardLM-2 8x22B, Hermes 3 405B, Hunyuan A13B, Llama 3.2 1B; Mercury 2 and LFM-2 retagged oddball). All candidates live-pinged before joining. Inflection dropped: both its endpoints return empty content (raw logs kept). Llama 3.2 1B failed the group-stage format in all attempts (stops near match 48) and stands as a disclosed zero entry. Final ranked roster: <strong>44 models, 21 vendors</strong>. Updated full-tournament hash tagged <code>predictions-full-tournament-v2</code>.</li>
</ul>
]]></description>
    </item>
    <item>
      <title>PunditBench — 2026-06-10</title>
      <link>https://punditbench.com/changelog/#2026-06-10</link>
      <guid isPermaLink="false">https://punditbench.com/changelog/#2026-06-10</guid>
      <pubDate>Wed, 10 Jun 2026 12:00:00 GMT</pubDate>
      <description><![CDATA[<ul>
<li>Project created. Methodology v1 fixed (see METHODOLOGY.md), scoring rules D1, prompt template v1.</li>
<li>Fixture dataset built from Wikipedia (two independent extraction passes) and cross-verified against ESPN, Sky Sports, FOX Sports and roadtrips.com official match numbering; all 72 group fixtures agreed across sources.</li>
<li>Roster of 18 models across 10 vendors verified against the live OpenRouter catalog (<code>data/roster.json</code>).</li>
</ul>
]]></description>
    </item>
  </channel>
</rss>
