<?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: RevealWire</title>
    <description>The latest articles on DEV Community by RevealWire (@revealwire).</description>
    <link>https://dev.to/revealwire</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%2F4199483%2Fb0b22113-4853-4e59-b7fd-29e928d7f5c4.png</url>
      <title>DEV Community: RevealWire</title>
      <link>https://dev.to/revealwire</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/revealwire"/>
    <language>en</language>
    <item>
      <title>We Tested 6 AIs Against a Bookmaker. The Most Accurate One Lost.</title>
      <dc:creator>RevealWire</dc:creator>
      <pubDate>Sat, 24 Oct 2026 16:03:05 +0000</pubDate>
      <link>https://dev.to/revealwire/we-tested-6-ais-against-a-bookmaker-the-most-accurate-one-lost-1h7f</link>
      <guid>https://dev.to/revealwire/we-tested-6-ais-against-a-bookmaker-the-most-accurate-one-lost-1h7f</guid>
      <description>&lt;p&gt;&lt;strong&gt;NOT BETTING ADVICE&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a paper-only forecasting analysis. No wagers were placed, no stake sizing is discussed, and this story contains no betting tips.&lt;/p&gt;

&lt;p&gt;Reveal Wire EP17 tested six AI personas against a bookmaker using English Premier League matches from January 1 to May 24, 2026. In total, the test covered 60 matches and 348 forecasts.&lt;/p&gt;

&lt;p&gt;Watch the episode here: &lt;a href="https://youtu.be/vWjgbjsyWsg" rel="noopener noreferrer"&gt;https://youtu.be/vWjgbjsyWsg&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The result
&lt;/h2&gt;

&lt;p&gt;The bookmaker's closing odds won on Brier score, with a Brier score of 0.2129 and accuracy of 43.3%.&lt;/p&gt;

&lt;p&gt;The most accurate persona, Hot-Take Pundit, had 45.8% accuracy — higher than the bookmaker — but finished 5th on Brier score, at 0.2341.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Forecaster&lt;/th&gt;
&lt;th&gt;Brier score&lt;/th&gt;
&lt;th&gt;Accuracy&lt;/th&gt;
&lt;th&gt;Brier ranking&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bookmaker closing odds&lt;/td&gt;
&lt;td&gt;0.2129&lt;/td&gt;
&lt;td&gt;43.3%&lt;/td&gt;
&lt;td&gt;1st&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hot-Take Pundit&lt;/td&gt;
&lt;td&gt;0.2341&lt;/td&gt;
&lt;td&gt;45.8%&lt;/td&gt;
&lt;td&gt;5th&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The average vig was 5.58%.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accuracy is not calibration
&lt;/h2&gt;

&lt;p&gt;On Brier score, lower is better. Accuracy counts how often the top pick was right. Calibration asks how well the stated probabilities matched what actually happened. That distinction is the story of this test: the most accurate persona did not have the best-calibrated probabilities, so it finished 5th on Brier despite leading on accuracy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters for evaluating AI forecasts
&lt;/h2&gt;

&lt;p&gt;A leaderboard that only reports accuracy can reward confident top picks while hiding poorly calibrated probabilities. Scoring forecasts with a proper scoring rule such as the Brier score gives a fuller picture: it penalizes probabilities that are far from the outcome, not just the wrong winner.&lt;/p&gt;

&lt;p&gt;The headline result is therefore twofold. The bookmaker's closing odds were the best-calibrated forecasts in this test, and the highest-accuracy AI persona still lost on calibration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOT BETTING ADVICE — paper-only analysis only.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>datascience</category>
      <category>sportsanalytics</category>
    </item>
    <item>
      <title>I built a 1,000-record synthetic benchmark for phishing detection — here's what 2 open models scored</title>
      <dc:creator>RevealWire</dc:creator>
      <pubDate>Thu, 22 Oct 2026 03:46:08 +0000</pubDate>
      <link>https://dev.to/revealwire/i-built-a-1000-record-synthetic-benchmark-for-phishing-detection-heres-what-2-open-models-scored-449n</link>
      <guid>https://dev.to/revealwire/i-built-a-1000-record-synthetic-benchmark-for-phishing-detection-heres-what-2-open-models-scored-449n</guid>
      <description>&lt;h1&gt;
  
  
  I built a 1,000-record synthetic benchmark for phishing detection — here's what 2 open models scored
&lt;/h1&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;I run a YouTube channel where we test AI claims with real experiments. For an episode on phishing detection, I went looking for published scam/phishing-detection scores for open-weight models.&lt;/p&gt;

&lt;p&gt;There were none. Zero. For any of them.&lt;/p&gt;

&lt;p&gt;So we built the benchmark ourselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  RSB-1000: what it is
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1,000 records&lt;/strong&gt;, fully synthetic (every brand, domain, name, and phone number is invented)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;780 scam / 220 legitimate&lt;/strong&gt; — the legitimate set includes deliberately tricky edge cases (urgent-but-real notifications, lookalike-but-legit senders)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phishing bucket: 200 records = 140 classic + 60 adversary-in-the-middle (AiTM)&lt;/strong&gt; — the AiTM subset uses AI-polished language, lookalike domains, and MFA-reauth urgency. This is the subset that breaks naive filters.&lt;/li&gt;
&lt;li&gt;Each record: &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;category&lt;/code&gt;, &lt;code&gt;subcategory&lt;/code&gt;, &lt;code&gt;difficulty&lt;/code&gt; (easy/medium/hard), &lt;code&gt;text&lt;/code&gt;, &lt;code&gt;ground_truth&lt;/code&gt;, plus &lt;code&gt;tells&lt;/code&gt; on scam records and &lt;code&gt;safe_action&lt;/code&gt; on all records&lt;/li&gt;
&lt;li&gt;Frozen October 2026, SHA256-pinned, CC-BY-4.0&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How we scored the models
&lt;/h2&gt;

&lt;p&gt;Zero-shot classifier prompt, no fine-tuning, no cherry-picking: each model labeled every record as scam or legitimate, and we computed recall and false positive rate against ground truth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&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;Recall&lt;/th&gt;
&lt;th&gt;False positive rate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Qwen 3.8-27B&lt;/td&gt;
&lt;td&gt;98.9%&lt;/td&gt;
&lt;td&gt;11.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-OSS 20B&lt;/td&gt;
&lt;td&gt;94.0%&lt;/td&gt;
&lt;td&gt;23.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Both catch nearly everything. The false positive rate is the real story: at 23%, nearly 1 in 4 legitimate emails gets flagged — unusable as an autonomous blocker. The practical setup is AI as first-pass triage with human review, not a sole filter.&lt;/p&gt;

&lt;p&gt;The AiTM subset was the hardest for both models, which tracks: AI-written lures kill the old "look for bad grammar" heuristic stone dead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reproduce it
&lt;/h2&gt;

&lt;p&gt;The repo has the dataset, a stdlib-only eval script (&lt;code&gt;eval.py&lt;/code&gt; — feed it a predictions JSONL, get recall/FPR/accuracy), and the full methodology:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/RevealWire/rsb-1000" rel="noopener noreferrer"&gt;https://github.com/RevealWire/rsb-1000&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Hugging Face: &lt;a href="https://huggingface.co/datasets/RevealWire/rsb-1000" rel="noopener noreferrer"&gt;https://huggingface.co/datasets/RevealWire/rsb-1000&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you run other models against it, I'd genuinely love to see the numbers — the whole point is that nobody had published any.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: I'm the creator of &lt;a href="https://www.youtube.com/@RevealWire" rel="noopener noreferrer"&gt;Reveal Wire&lt;/a&gt;, the YouTube channel this benchmark was built for. We never script the result — the evidence writes the ending.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>phishing</category>
      <category>machinelearning</category>
      <category>cybersecurity</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
