惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 【当耐特】
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
小众软件
小众软件
The Cloudflare Blog
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
美团技术团队
WordPress大学
WordPress大学
罗磊的独立博客
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
Last Week in AI
Last Week in AI
月光博客
月光博客
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
GbyAI
GbyAI
B
Blog
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗

Crazyrouter Blog (English)

Ideogram AI Guide 2026: Product Mockups, Text Rendering, and API Automation Akool AI Voice Generator Review 2026: API Alternatives for Developers GLM 4.6 API Guide 2026: Build Chinese-English Agents with Tool Calling Google Veo3 API Guide 2026: Batch Video Generation, QA, and Fallbacks Claude Opus 4.8 vs Opus 4.7: Real API Benchmark Results for Developers Opus 4.8 vs Opus 4.7 Coding Test: What Changed for Developers? Opus 4.8 vs Opus 4.7 for Agents: JSON, Tool Use, and Structured Output Gemini 2.5 Flash-Lite for RAG, Agent Routing, and Cost per Successful Task Gemini 2.5 Flash-Lite for Support Automation and Ticket Triage Gemini 2.5 Flash-Lite Use Cases: The Practical Automation Tier for Developers Claude Jupiter v1-p vs GPT-5.5 Benchmark: Real API Test on Reasoning and Coding Claude Jupiter v1-p vs Claude Opus 4.7 vs Sonnet 4.6: Live API Test Claude Jupiter v1-p vs Claude Opus 4.7 vs Sonnet 4.6: Live API Test Claude Code Pricing 2026: Pro vs Max vs Team vs API Costs Claude Opus 4.7 vs DeepSeek V4 Pro: Real API Compatibility and Coding Benchmark Gemini CLI Complete Guide 2026: Repo Automation, CI Agents, and Multi-Model Routing Ideogram AI Guide 2026: Brand Design Automation, API Workflows, and Alternatives GLM 4.6 API Guide 2026: Agents, RAG, Tool Calling, and Bilingual Apps WAN 2.2 Animate Tutorial 2026: Character Consistency, Shot Control, and API Workflows Google Veo3 API Guide 2026: Production Video Pipelines, Prompts, Pricing, and Fallbacks AI API Pricing Comparison 2026: Text, Image, Video, Caching, and Router Costs Codex CLI Installation Guide 2026: Windows, macOS, Linux, Proxies, and CI Setup How to Get a Claude API Key in 2026: Secure Setup for Teams, CI, and Alternatives Gemini Advanced Review 2026: Is It Worth It for Coding, Research, and API Teams? Claude Code Pricing Guide 2026: Team Agent Budgets, API Fallbacks, and Cost Control Seedance 2.0 Pricing: Convert 46 CNY per Million Tokens to Cost per Second Qwen2.5-Omni Guide 2026: Real-Time Voice, Vision, and Multimodal Agents Kimi K2 Thinking Guide 2026: Reasoning Workflows, Evals, and Cost Control Google Veo3 API Guide 2026: Batch Video Pipelines, Pricing, and Fallbacks Codex CLI Installation Guide 2026: macOS, Linux, WSL, Proxies, and Dev Containers
Build a World Cup Odds Movement Monitor with Claude Code ...
Crazyrouter Team · 2026-06-13 · via Crazyrouter Blog (English)

Build a World Cup Odds Movement Monitor with Claude Code and claude-fable-5#

In the first article of this Claude Code project series, I built a small World Cup 2026 match predictor: Python calculated transparent Elo/Poisson probabilities, and Crazyrouter routed multiple LLMs to generate structured match previews.

The second project follows the same principle, but focuses on a different sports analytics workflow:

Can Claude Code build an odds movement monitor, then use claude-fable-5 to summarize market shifts as validated JSON?

This is still an engineering demo. It is not betting advice, and it does not recommend any wager. The purpose is to show how an AI coding agent can build a reproducible monitoring pipeline around numeric signals, alerts, LLM analysis, and validation.

The API layer was tested through Crazyrouter:


Why odds movement is a good Claude Code project#

Odds movement sounds like a betting topic, but from an engineering perspective it is really a time-series monitoring problem.

You have:

  • incoming numeric data;
  • opening and latest values;
  • derived metrics;
  • thresholds;
  • anomaly alerts;
  • human-readable summaries;
  • strict disclaimers and compliance boundaries.

That makes it a useful project for testing an AI coding agent.

The agent should not say “bet on this team.” Instead, it should build a monitoring system that answers safer engineering questions:

  • Did the implied probability change significantly?
  • Which market moved the most?
  • Is the movement mirrored by the opposite market?
  • Should we check data quality or news context?
  • Can an LLM summarize the alerts without giving betting advice?

That is a much better use of Claude Code than asking a model to guess match outcomes.


Project architecture#

The demo pipeline is intentionally small and reproducible:

The generated project lives here:

The key idea is simple:


Sample odds data#

For a reproducible demo, I used synthetic sample data instead of relying on a paid sportsbook feed.

The CSV contains four early World Cup match examples:

A production version would replace this with a real odds API, multiple bookmakers, timestamped snapshots, and data-quality checks.


Converting odds into implied probability#

Decimal odds can be converted into implied probability with a very small function:

Then we compare opening and latest implied probability:

If the absolute movement exceeds a threshold, the script creates an alert:

This makes the system transparent. The alert is not based on vibes or a black-box LLM. It is based on a deterministic calculation.


Example alert output#

The script generated four significant movement alerts:

The biggest movement was Canada win in Qatar vs Canada, where implied probability increased by 4.01 percentage points.

Again: this is not a betting signal. It is a monitoring signal that says, “Something changed enough that a system should record it and maybe ask for more context.”

World Cup odds movement monitor sample chart


Calling claude-fable-5 through Crazyrouter#

The next step was to ask claude-fable-5 to summarize the alerts as structured JSON.

The API configuration follows the OpenAI-compatible format:

The request used:

The instruction explicitly said:


claude-fable-5 test result#

The final successful test result:

ModelHTTPLatencyPrompt tokensCompletion tokensTotal tokensValid JSON
claude-fable-520012.14s8335991432True

The model returned valid JSON without needing post-cleanup:

That output is useful because it does not turn the alert into a betting recommendation. It turns the alert into an engineering checklist.


A real integration lesson: payload shape matters#

There was one important failure during testing.

My first request to claude-fable-5 returned:

The cause was not the model name. The model was available in /v1/models.

The issue was request compatibility. A slightly different payload shape worked later.

I also tested a longer JSON-output prompt with a lower token cap. That returned HTTP 200, but the content was wrapped in a Markdown code fence and sometimes reached the output limit.

The final working pattern was:

  • use model: claude-fable-5;
  • keep the input compact;
  • use max_tokens rather than extra unsupported parameters;
  • explicitly request raw JSON;
  • validate the returned JSON anyway.

This is exactly why “model quality” is not only about intelligence.

For production systems, quality includes:

  • payload compatibility;
  • schema adherence;
  • output length behavior;
  • latency;
  • retry and fallback behavior;
  • cost per accepted output.

Why this is a good Crazyrouter use case#

An odds monitor is a good example of why an API gateway helps.

The workflow has several model-dependent tasks:

  1. summarize large movement alerts;
  2. identify possible data-quality checks;
  3. explain correlated market movements;
  4. generate an analyst-friendly report;
  5. avoid prohibited or unsafe advice.

Different models may behave differently on these requirements.

With Crazyrouter, the integration stays simple:

That makes it easier to compare claude-fable-5 with other models later, without rewriting the application.


What Claude Code should build here#

A useful Claude Code workflow should not just produce a script. It should build the operational pieces around the script:

  1. sample_odds_movements.csv for reproducible input;
  2. odds_monitor_output.json for deterministic alert output;
  3. odds_movement_chart.svg for visualization;
  4. crazyrouter_raw_claude-fable-5.json for raw API audit;
  5. claude_fable_5_final_test_result.json for validation evidence;
  6. a publishable technical article.

That is the pattern I care about in this series.

Claude Code should not be treated as a magic answer machine. It should be treated as a project executor that produces files, tests, logs, and artifacts.


Limitations#

This demo intentionally uses synthetic sample data.

A production odds monitor would need:

  • real sportsbook or odds API integrations;
  • multiple bookmakers;
  • overround normalization;
  • liquidity estimates;
  • timestamp alignment;
  • lineup and injury news;
  • alert deduplication;
  • historical calibration;
  • compliance review.

The article is about building the monitoring workflow, not about making betting predictions.


Next improvements#

A stronger version could add:

  1. scheduled odds snapshots;
  2. multiple data providers;
  3. overround-adjusted implied probabilities;
  4. correlated movement detection within each match;
  5. news and lineup correlation;
  6. model comparison between claude-fable-5, GPT, Gemini, and Qwen routes;
  7. cost per valid JSON report;
  8. a small web dashboard.

The most important metric would not be token cost alone.

It would be:

That includes failed requests, retries, malformed JSON, and time spent debugging payload issues.


Final verdict#

Yes, Claude Code can build an odds movement monitor, but the right framing matters.

The best architecture is:

This project is a good second entry in the Claude Code project series because it moves from match prediction into monitoring: a more realistic pattern for analytics dashboards, financial dashboards, API observability, and operational alerts.

If you want to test claude-fable-5 or other models through one OpenAI-compatible API layer, try Crazyrouter:

https://crazyrouter.com?utm_source=crazyrouter_blog&utm_medium=article&utm_campaign=claude_code_odds_monitor_fable