<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: yy5652-hash</title>
    <description>The latest articles on DEV Community by yy5652-hash (@yy5652hash).</description>
    <link>https://dev.to/yy5652hash</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4177701%2F756e7151-6824-4d3b-8b38-ad67bef0d547.png</url>
      <title>DEV Community: yy5652-hash</title>
      <link>https://dev.to/yy5652hash</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yy5652hash"/>
    <language>en</language>
    <item>
      <title>I tried to Dutch-book 26 LLM forecasters. Asked one question at a time, every one of them paid out.</title>
      <dc:creator>yy5652-hash</dc:creator>
      <pubDate>Sun, 11 Oct 2026 19:20:16 +0000</pubDate>
      <link>https://dev.to/yy5652hash/i-tried-to-dutch-book-13-llm-forecasters-asked-one-question-at-a-time-every-one-of-them-paid-out-1flm</link>
      <guid>https://dev.to/yy5652hash/i-tried-to-dutch-book-13-llm-forecasters-asked-one-question-at-a-time-every-one-of-them-paid-out-1flm</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/kaggle-2026-09-23"&gt;Kaggle Benchmarking Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note added 18 October 2026:&lt;/strong&gt; the "Update" section at the end of this post was added after the 11 October deadline and is not part of the judged entry. Everything else is the post as submitted.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What I Benchmarked
&lt;/h2&gt;

&lt;p&gt;I run a bot in Metaculus' AI forecasting tournament. Like almost every forecasting bot, it sends each question to the model &lt;strong&gt;in a fresh chat&lt;/strong&gt;. That made me wonder: when the same event shows up from two angles, &lt;em&gt;"Will the US unemployment rate be 5% or higher in December 2027?"&lt;/em&gt; and &lt;em&gt;"Will it be below 5%?"&lt;/em&gt;, do the two answers even add up to 100%?&lt;/p&gt;

&lt;p&gt;If they don't, the forecaster is &lt;strong&gt;Dutch-bookable&lt;/strong&gt;. A bookie can buy and sell its contracts so that it profits &lt;strong&gt;whatever happens&lt;/strong&gt;. De Finetti showed in the 1930s that this is exactly what it means for a set of numbers to not be probabilities.&lt;/p&gt;

&lt;p&gt;The useful property of coherence: &lt;strong&gt;you don't need to know the future to measure it.&lt;/strong&gt; So the benchmark asks about 2027–2050 events that no model can have memorised, and still scores the answers today.&lt;/p&gt;

&lt;h3&gt;
  
  
  The 37 question families
&lt;/h3&gt;

&lt;p&gt;Each family is a set of statements about the same small set of possible worlds:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Family type&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Coherence rule&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;negation (6)&lt;/td&gt;
&lt;td&gt;"Apple's market cap &amp;gt; Microsoft's on 29 Dec 2028" / "Microsoft's ≥ Apple's"&lt;/td&gt;
&lt;td&gt;P(A) + P(not A) = 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;threshold (5)&lt;/td&gt;
&lt;td&gt;Bitcoin on 31 Dec 2028 above $50k / $100k / $150k / $250k&lt;/td&gt;
&lt;td&gt;must not increase with the threshold; this is how Metaculus builds numeric CDFs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;deadline (4)&lt;/td&gt;
&lt;td&gt;A human on Mars by 2030 / 2035 / 2040 / 2050&lt;/td&gt;
&lt;td&gt;must not decrease over time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;partition (5)&lt;/td&gt;
&lt;td&gt;Who wins the 2030 World Cup: Spain / France / Brazil / Argentina / England / anyone else&lt;/td&gt;
&lt;td&gt;sums to 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;conjunction (5)&lt;/td&gt;
&lt;td&gt;A, B, "A and B", "A or B"&lt;/td&gt;
&lt;td&gt;P(A∧B) ≤ min, P(A∨B) ≥ max, P(A) + P(B) = P(A∧B) + P(A∨B)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;story (3)&lt;/td&gt;
&lt;td&gt;"A Cat 4–5 hurricane hits the US in 2028" vs "…and causes &amp;gt;$50B damage"&lt;/td&gt;
&lt;td&gt;the detailed version can't be more likely (the Linda problem)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;28 families are about the real future. &lt;strong&gt;9 are controls&lt;/strong&gt; (dice, coins, cards) with exact answers. The controls separate "can't compute probabilities" from "is incoherent when genuinely uncertain".&lt;/p&gt;

&lt;p&gt;Every statement is asked &lt;strong&gt;in isolation&lt;/strong&gt;, in a fresh chat, the way bots do it. Every family is also asked &lt;strong&gt;jointly&lt;/strong&gt;, in one prompt. About 160 calls per model, temperature 0.&lt;/p&gt;

&lt;h3&gt;
  
  
  The metric: how much money can a bookie lock in?
&lt;/h3&gt;

&lt;p&gt;For each family I compute the &lt;strong&gt;guaranteed profit&lt;/strong&gt; of a bookie who can trade at most $1 of each contract at the model's quoted prices. By LP duality this equals the L1 distance from the model's answers to the nearest coherent set of probabilities; a small exact solver computes it for any family shape. A coherent forecaster gives the bookie $0.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Leaderboard score = arbitrage-free rate&lt;/strong&gt;: the % of families (asked in isolation) on which the bookie can lock in &lt;strong&gt;at most 5¢&lt;/strong&gt;. A model that fails to answer 10% or more of the families (API errors, no parseable number) is not scored at all, so a dropped call never counts as incoherence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Models Tested
&lt;/h2&gt;

&lt;p&gt;26 models from six providers (Google, Anthropic, OpenAI, xAI, Alibaba, plus open-weight releases), everything I could fit into Kaggle's $10/day model quota over three days:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google:&lt;/strong&gt; &lt;code&gt;gemini-3.8-flash&lt;/code&gt;, &lt;code&gt;gemini-3.7-flash&lt;/code&gt; (the task's default model), &lt;code&gt;gemini-3.6-flash&lt;/code&gt;, &lt;code&gt;gemini-3.5-flash&lt;/code&gt;, &lt;code&gt;gemini-3.5-flash-lite&lt;/code&gt;, &lt;code&gt;gemini-3.1-flash-lite-preview&lt;/code&gt;, &lt;code&gt;gemini-3-flash-preview&lt;/code&gt;, &lt;code&gt;gemini-3.1-pro-preview&lt;/code&gt;, &lt;code&gt;gemma-4-31b&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anthropic:&lt;/strong&gt; &lt;code&gt;claude-haiku-4-5&lt;/code&gt;, &lt;code&gt;claude-haiku-5-5&lt;/code&gt;, &lt;code&gt;claude-sonnet-5&lt;/code&gt;, &lt;code&gt;claude-sonnet-5-5&lt;/code&gt;, &lt;code&gt;claude-opus-4-5&lt;/code&gt;, &lt;code&gt;claude-opus-4-6&lt;/code&gt;, &lt;code&gt;claude-opus-4-7&lt;/code&gt;, &lt;code&gt;claude-opus-4-8&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI:&lt;/strong&gt; &lt;code&gt;gpt-5.4-nano&lt;/code&gt;, &lt;code&gt;gpt-5.4-mini&lt;/code&gt;, &lt;code&gt;gpt-5.5&lt;/code&gt;, &lt;code&gt;gpt-5.6-luna&lt;/code&gt;, &lt;code&gt;gpt-oss-20b&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;xAI / Alibaba:&lt;/strong&gt; &lt;code&gt;grok-4.20&lt;/code&gt; (non-reasoning), &lt;code&gt;qwen3-235b&lt;/code&gt;, &lt;code&gt;qwen3-next-80b&lt;/code&gt;, &lt;code&gt;qwen3-coder-480b&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Three things worth knowing if you build on Kaggle's proxy. First, it reserves each call's worst-case cost from your quota up front, so with no &lt;code&gt;max_tokens&lt;/code&gt; the biggest models refuse every concurrent call; my first run silently turned those refusals into "incoherent" scores. The benchmark now caps &lt;code&gt;max_tokens&lt;/code&gt;, retries, records API errors, and refuses to score a model with low coverage. Second, thinking tokens are what make a 160-call suite expensive, so everything after day 1 ran with &lt;code&gt;reasoning="low"&lt;/code&gt; where the model accepts it; the seven day-1 models ran at their defaults. Third, check your parser against the controls: several models answer dice questions as fractions ("Probability: 11/36"), and my parser read that as 0.11. I found it on the last day, fixed it, and re-scored the affected runs from their saved raw replies. It moved two models by one family each.&lt;/p&gt;

&lt;p&gt;Not scored: &lt;code&gt;glm-5&lt;/code&gt; (empty replies on half the questions), &lt;code&gt;deepseek-r1&lt;/code&gt; and &lt;code&gt;gemma-4-26b&lt;/code&gt; (ran out of output tokens before giving a number on 40–50% of families), &lt;code&gt;gpt-oss-120b&lt;/code&gt; (the runner errored), and &lt;code&gt;grok-4.5&lt;/code&gt; / &lt;code&gt;grok-4.6&lt;/code&gt; (listed, but the proxy answers 404).&lt;/p&gt;

&lt;h2&gt;
  
  
  Findings
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5fgc63yxvyn9jdu79yz2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5fgc63yxvyn9jdu79yz2.png" alt="Isolated vs joint coherence per model, and where the bookie's profit comes from" width="800" height="661"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Every model knows the rules of probability. It just doesn't apply them across separate calls.&lt;/strong&gt;&lt;br&gt;
On the 9 dice-and-card controls, 23 of the 26 models are essentially perfectly coherent (≤ 1¢ per family). Asked a whole family in one prompt, every model is 95–100% arbitrage-free, and 21 of 26 score a clean 100%. Asked one statement per chat, they drop to &lt;strong&gt;49–89%&lt;/strong&gt;, 70% on average. The problem is not ignorance; it is isolation, which is exactly how forecasting bots call these models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The money is in conjunctions, partitions and negations. Monotone families are nearly free.&lt;/strong&gt;&lt;br&gt;
Across all models and families asked in isolation:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;family type&lt;/th&gt;
&lt;th&gt;arbitrage-free rate (isolated)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;conjunction&lt;/td&gt;
&lt;td&gt;49%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;partition&lt;/td&gt;
&lt;td&gt;52%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;negation&lt;/td&gt;
&lt;td&gt;57%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;deadline&lt;/td&gt;
&lt;td&gt;93%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;threshold&lt;/td&gt;
&lt;td&gt;94%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;story&lt;/td&gt;
&lt;td&gt;95%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Deadlines ("by 2030 / 2035 / 2040") and thresholds ("above $50k / $100k / …") are mostly fine: models handle &lt;em&gt;monotone&lt;/em&gt; structure even across calls. The three family types with a &lt;em&gt;conservation law&lt;/em&gt; (things must add up) are where the bookie eats. The worst single family was the earthquake conjunction (26¢ per model on average), the best was anything with a date ladder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The most expensive single answers.&lt;/strong&gt; A bookie earns these with zero information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;qwen3-235b&lt;/code&gt;, earthquake conjunction: P(M7+ in California by 2035) = &lt;strong&gt;0.18&lt;/strong&gt;, P(M7+ in Kanto) = &lt;strong&gt;0.35&lt;/strong&gt;, P(both) = &lt;strong&gt;0.75&lt;/strong&gt;, P(at least one) = &lt;strong&gt;0.98&lt;/strong&gt;. "Both" is more likely than either part. Worth &lt;strong&gt;$1.20&lt;/strong&gt; per $1 of contracts, the maximum this benchmark can award.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gpt-oss-20b&lt;/code&gt;, same family: P(California) = &lt;strong&gt;0.995&lt;/strong&gt;, P(Kanto) = &lt;strong&gt;0.015&lt;/strong&gt;, P(both) = &lt;strong&gt;0.9996&lt;/strong&gt;. &lt;strong&gt;$1.08&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;qwen3-next-80b&lt;/code&gt;, two IPOs: P(OpenAI lists) = &lt;strong&gt;0.40&lt;/strong&gt;, P(SpaceX lists) = &lt;strong&gt;0.85&lt;/strong&gt;, P(both) = &lt;strong&gt;0.10&lt;/strong&gt;, P(at least one) = &lt;strong&gt;0.15&lt;/strong&gt;. "At least one" is less likely than either. &lt;strong&gt;$1.00&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;grok-4.20&lt;/code&gt; (non-reasoning), on a &lt;em&gt;control&lt;/em&gt;: asked for P(at least two of five dealt cards share a rank), it reasoned that there are "13 ranks and only 4 suits, so by the pigeonhole principle" five distinct ranks are impossible, and answered &lt;strong&gt;1&lt;/strong&gt;. In the next chat it computed P(all five ranks differ) = &lt;strong&gt;0.507&lt;/strong&gt;, correctly. &lt;strong&gt;51¢&lt;/strong&gt;, on a question with a textbook answer.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gpt-5.4-mini&lt;/code&gt;, the Moon: P(someone walks on the Moon before 2029) = &lt;strong&gt;0.74&lt;/strong&gt; and P(nobody does) = &lt;strong&gt;0.74&lt;/strong&gt;. They sum to &lt;strong&gt;1.48&lt;/strong&gt;. &lt;code&gt;gpt-5.4-nano&lt;/code&gt; did the same (1.43), and &lt;code&gt;qwen3-next-80b&lt;/code&gt; went to 1.80 (0.95 and 0.85). The model agrees with whichever framing it is shown.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;claude-opus-4-7&lt;/code&gt;, climate conjunction: P(A) = 0.35, P(B) = 0.38, P(both) = 0.28, P(at least one) = &lt;strong&gt;0.90&lt;/strong&gt;. &lt;strong&gt;45¢&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;"Which of 2027–2030 will be the warmest year", four mutually exclusive answers: &lt;code&gt;qwen3-235b&lt;/code&gt; 1.37, &lt;code&gt;haiku-4-5&lt;/code&gt; 1.32, &lt;code&gt;gpt-5.4-mini&lt;/code&gt; 1.31. The 2030 World Cup partition goes the other way for &lt;code&gt;gpt-oss-20b&lt;/code&gt;: six exhaustive outcomes that sum to &lt;strong&gt;0.36&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Newer beats bigger. Price barely predicts coherence.&lt;/strong&gt; The top three are &lt;code&gt;gemini-3.8-flash&lt;/code&gt; (89%), &lt;code&gt;gpt-5.5&lt;/code&gt; and &lt;code&gt;gemini-3.7-flash&lt;/code&gt; (both 84%). &lt;code&gt;gemini-3.1-pro-preview&lt;/code&gt; (68%) sits below six Flash and Flash-Lite models from its own family, and every Claude Opus (68–76%) is at or below &lt;code&gt;claude-haiku-5-5&lt;/code&gt; (78%). What does track coherence is the release generation inside a family: Gemini Flash goes 68 → 78 → 76 → 84 → 89 from 3.0 to 3.8, Haiku 65 → 78 and Sonnet 68 → 76 from one release to the next, GPT 59 (5.4-mini) → 84 (5.5). At the bottom, four of the eight lowest scores are open-weight models (&lt;code&gt;gpt-oss-20b&lt;/code&gt;, &lt;code&gt;qwen3-coder-480b&lt;/code&gt;, &lt;code&gt;qwen3-next-80b&lt;/code&gt;, &lt;code&gt;qwen3-235b&lt;/code&gt;), almost entirely because of conjunctions (20–41¢ per family).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Temperature 0 is not deterministic on this proxy.&lt;/strong&gt; The default model scored 67.6%, 75.7%, 81.1% and 83.8% on four identical runs. A single-run leaderboard number carries roughly ±8 points of noise, so I report family-level cents alongside the headline percentage and treat differences under ~10 points as a tie.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. The Linda problem is mostly solved.&lt;/strong&gt; Adding a plausible detail ("…aboard a SpaceX Starship") almost never raised the probability (story families 95% arbitrage-free).&lt;/p&gt;

&lt;h3&gt;
  
  
  What I'd measure next
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Paraphrase robustness: the negation failures look like an &lt;em&gt;acquiescence&lt;/em&gt; effect, so ask the same family as "Will X happen?" vs "Is it false that X happens?".&lt;/li&gt;
&lt;li&gt;Whether sampling 5 answers and averaging recovers coherence (it should reduce the run-to-run noise in finding 5, but not the systematic conjunction errors).&lt;/li&gt;
&lt;li&gt;Resolved questions, in a year: does coherence predict accuracy?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  If you build forecasting bots
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;For multiple-choice and numeric questions, ask for &lt;strong&gt;all options / the whole CDF in one call&lt;/strong&gt; and renormalise.&lt;/li&gt;
&lt;li&gt;For anything else, &lt;strong&gt;project your answers onto the coherent set&lt;/strong&gt; after the fact. Because the true outcome is a vertex of that convex set, the projection can never make the Brier score worse, whatever happens. The LP in the notebook does it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Benchmark
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Kaggle benchmark (leaderboard): &lt;a href="https://www.kaggle.com/benchmarks/yy5652/dutch-book-bench" rel="noopener noreferrer"&gt;https://www.kaggle.com/benchmarks/yy5652/dutch-book-bench&lt;/a&gt; — the leaderboard column is a batch run of the task per model through Kaggle's own task runner. For the 13 models I added on the last day it is the same run as in the chart; for the earlier ones it is a re-run, so the numbers differ by the ±8-point noise described in finding 5. Leaderboard rows added after 11 October are listed in the update section at the end of this post.&lt;/li&gt;
&lt;li&gt;Kaggle task page (code, per-model outputs, the model's own reaction to its worst Dutch book): &lt;a href="https://www.kaggle.com/benchmarks/tasks/yy5652/dutch-book-bench" rel="noopener noreferrer"&gt;https://www.kaggle.com/benchmarks/tasks/yy5652/dutch-book-bench&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source, offline test and results: &lt;a href="https://github.com/yy5652-hash/minibench-bot/tree/claude/gifted-cori-docto2/kaggle_benchmark" rel="noopener noreferrer"&gt;https://github.com/yy5652-hash/minibench-bot/tree/claude/gifted-cori-docto2/kaggle_benchmark&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prior work: &lt;em&gt;Consistency Checks for Language Model Forecasters&lt;/em&gt; (Paleka et al.) also uses arbitrage to score consistency. What's different here: exact-answer controls next to open questions, a direct isolated-vs-joint comparison, one generic LP that turns any family of events into a guaranteed-profit number, and Kaggle's model roster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Update: results added after the 11 October deadline (not part of the judged entry)
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Added 18 October 2026 (runs on 15 and 18 October). Same frozen task (Kaggle task version 3: same questions, prompts and scoring), run through Kaggle's task runner on the free $10/day model quota. Apart from the note at the top and one sentence on the leaderboard link, nothing above this section has changed.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Thirteen more models, each run once:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;model&lt;/th&gt;
&lt;th&gt;arbitrage-free, isolated&lt;/th&gt;
&lt;th&gt;arbitrage-free, joint&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;95%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-opus-5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;86%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-6-sol&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;84%&lt;/td&gt;
&lt;td&gt;97%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gemini-4-argon&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;81%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-opus-5-5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;76%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-6.1-sol&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;78%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-6-astra&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;78%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-terra&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;78%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.6-sol&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;73%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gemini-2.5-pro&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;70%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-sonnet-4-6&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;70%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-6-luna&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;65%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gemini-2.5-flash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;57%&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjlvbopkd2yqkvt8eo6wq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjlvbopkd2yqkvt8eo6wq.png" alt="Post-deadline models: isolated vs joint coherence, and bookie profit by family type" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What the new runs add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The isolated/joint gap holds.&lt;/strong&gt; All 13 are 97–100% arbitrage-free when asked a whole family at once and 57–95% when asked one statement per chat. Across all 39 models now scored: 49–95% isolated (average 72%), 95–100% joint.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A new top score.&lt;/strong&gt; &lt;code&gt;gpt-5.4&lt;/code&gt; left a bookie at most 5¢ on 35 of 37 families (95%), followed by &lt;code&gt;claude-opus-5&lt;/code&gt; (86%). Both are single runs, and finding 5 puts run-to-run noise at about ±8 points.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A caveat to finding 4.&lt;/strong&gt; "Newer beats bigger within a family" holds for Gemini (2.5 Flash 57% → 3.8 Flash 89%; 2.5 Pro 70% → 4 Argon 81%), but not at the top of the other two lines: &lt;code&gt;gpt-5.4&lt;/code&gt; (95%) scored above &lt;code&gt;gpt-5.5&lt;/code&gt; (84%), &lt;code&gt;gpt-6.1-sol&lt;/code&gt; (78%) and &lt;code&gt;gpt-5.6-sol&lt;/code&gt; (73%), and &lt;code&gt;claude-opus-5&lt;/code&gt; (86%) above &lt;code&gt;claude-opus-5-5&lt;/code&gt; (76%). With one run per model and ±8 points of noise, I would now call release generation a weak signal, not a rule.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conjunctions are still where the money is.&lt;/strong&gt; &lt;code&gt;gemini-2.5-flash&lt;/code&gt; on the earthquake family: P(California) = 0.45, P(Kanto) = 0.28, P(both) = &lt;strong&gt;0.55&lt;/strong&gt;, P(at least one) = 0.92. "Both" is again more likely than either part: &lt;strong&gt;74¢&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not scored:&lt;/strong&gt; &lt;code&gt;qwen3-next-80b-thinking&lt;/code&gt; answered only 24% of families (it ran out of output tokens before giving a number), and &lt;code&gt;gpt-oss-120b&lt;/code&gt; errored in the task runner again.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Raw replies for these runs are in the repo (&lt;code&gt;kaggle_benchmark/results/raw_runs_2026-10-15/&lt;/code&gt; and &lt;code&gt;raw_runs_2026-10-18/&lt;/code&gt;).&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>kagglechallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
