Football Value Bets
Generate professional, data-driven football bet slips. No gut feelings, purely statistics and value analysis.
When to activate
Activate this skill when the user:
- - Asks for a football bet, bet slip, accumulator, or picks
- Asks for match analysis for betting purposes
- Asks for bet statistics, results, or ROI
- Asks for a pick or tip for football
Prerequisites
Install dependencies (one-time):
CODEBLOCK0
Set API key (free via football-data.org/client/register):
CODEBLOCK1
Or fill in the key at {baseDir}/config/settings.json under api_key.
Mode 1: Generate Bet Slip
Step 1 -- Fetch data
Fetch current match data:
CODEBLOCK2
This returns a JSON package with:
- - All scheduled matches for today and tomorrow
- League standings and form data per team
- Head-to-head history (last 5 encounters)
Coverage: Premier League, Bundesliga, Serie A, La Liga, Ligue 1, Eredivisie, Champions League.
If the user wants a specific date:
CODEBLOCK3
Step 2 -- Analyse each match
Analyse EVERY match from the data on these factors (in order of importance):
A. Form (last 5-10 matches)
- - Use the
form field from the standings data (e.g. "W,W,D,L,W") - Calculate win percentage, goals per match
- Pay attention to home form vs away form trends
B. Home/away statistics
- - Home team: goals for/against at home
- Away team: goals for/against away
- Compare goal difference at home vs on the road
C. Head-to-head (H2H)
- - Review the
h2h data: who wins historically? - Look for patterns: does one team always score? Are these low- or high-scoring games?
D. Table position and motivation
- - Top of the table (title/CL spots): high motivation, consistent
- Mid-table: unpredictable, be cautious
- Bottom (relegation): can be surprisingly strong or weak
- Difference in table position as an indicator
E. Additional factors (via web search)
After the data analysis, search the web for EVERY shortlisted match:
- - Injuries and suspensions of key players (FotMob, Transfermarkt)
- Recent news (manager change, internal issues, transfer saga)
- xG (expected goals) data from recent matches
- Weather conditions for outdoor matches in winter months
Use search terms like: "[Team A] vs [Team B] team news injuries" and "[Team A] xG stats 2025-26"
F. Odds estimation
- - Estimate realistic odds per outcome (based on your analysis)
- Compare with common bookmaker odds (search the web if needed)
- VALUE = when your estimated probability is higher than the implied probability of the odds
- Implied probability = 1 / odds (e.g. odds 2.00 = 50% implied)
Step 3 -- Pick selection
Select ONLY picks that meet all criteria:
- 1. Estimated win probability > 45%
- Odds per pick: 1.70 - 2.50 (value range)
- Clear motivation based on data
- No more than 1 pick per match
Allowed pick types:
- - 1 / X / 2: Home win, draw, away win
- 1X / X2: Double chance
- BTTS Yes/No: Both Teams To Score
- Over/Under 2.5 goals
- Handicap -1: Team wins by 2+ goals
Step 4 -- Honesty check
If you find FEWER than 3 picks with real value:
Do NOT generate a bet slip. Say honestly:
"No strong bet slip possible today. The matches offer insufficient value based on the data. Reasons: [brief explanation]. Wait for better odds or the next matchday."
This is MANDATORY. Never force it. Honesty > revenue.
Step 5 -- Generate output
Generate TWO variants:
Variant A: Main slip (3-4 picks, total odds 8x-15x)
| Match | Pick | Odds | Motivation | Prob % | Risk |
|---|
| Ajax - PSV | BTTS Yes | 1.85 | Both teams scored in 8/10 recent matches, H2H always goals | 52% | Low |
| Arsenal - Chelsea |
Over 2.5 | 1.90 | Avg 3.2 goals per match this season, both attack-minded | 48% | Medium |
| ... | ... | ... | ... | ... | ... |
Total odds: XX.XX
Recommended stake: 5-10 EUR
Potential payout: XX.XX EUR
Variant B: Backup (2-3 picks, total odds 4x-8x)
Same table format but with safer picks (higher probabilities, lower odds).
Always include at the bottom:
- - Estimated hitrate per variant (e.g. "Main slip: ~15% chance of all picks hitting, individual picks ~50% average")
- Alternative advice: "Consider singles if you want to play it safer"
- Disclaimer: "Gamble responsibly. Max stake 5-10 EUR per slip, monthly limit 75 EUR."
Step 6 -- Save bet
Automatically save the bet slip for tracking:
CODEBLOCK4
Repeat for the backup slip with "type": "backup".
Mode 2: Record results
When the user says a bet has won or lost:
CODEBLOCK5
Result options: win, loss, INLINECODE7
Always ask the user for the date and which slip (main or backup) it concerns.
Mode 3: View statistics
When the user asks about results, stats, ROI, or hitrate:
CODEBLOCK6
Present the JSON output as a readable summary:
- - All-time hitrate and ROI
- Current month: staked, returned, profit/loss, budget remaining
- Best and worst month
Warn if the monthly budget is almost spent (>80% used).
Mode 4: View history
CODEBLOCK7
Show an overview of all bets from the last N days.
Analysis quality rules
These rules are HARD. Always follow them:
- 1. Never more than 5 picks per slip. More picks = exponentially lower chance.
- Never odds below 1.50 or above 3.00 per pick. Too low = no value, too high = too risky.
- Never 2 picks from the same match. Correlation destroys value.
- Never a pick without data backing. "Gut feeling" is not an argument.
- Always run the honesty check. No slip is better than a bad slip.
- Avoid derbies and cup matches unless the data is overwhelming. Too unpredictable.
- Always check injuries. A team without key players is a different team.
- Factor in the season phase. Early season = unreliable data. End of season = varying motivation.
Budget and responsible gambling
Configuration is in {baseDir}/config/settings.json:
- - Per bet: 5-10 EUR
- Monthly limit: 75 EUR
- Always check the stats for monthly spending before generating a new slip
If the monthly budget is at or nearly at its limit (>90%):
- - Inform the user
- Advise waiting until next month
- Do NOT generate a new slip unless the user explicitly states they want to proceed
Tone and style
- - Output in English
- Professional but accessible
- No hype, no promises
- Data and percentages front and center
- Honest about risks
足球价值投注
生成专业、数据驱动的足球投注单。不凭直觉,纯粹基于统计数据和价值分析。
何时激活
当用户出现以下情况时激活此技能:
- - 询问足球投注、投注单、串关或选择
- 询问用于投注目的的比赛分析
- 询问投注统计数据、结果或投资回报率
- 询问足球的推荐或提示
前置条件
安装依赖项(一次性):
bash
pip install requests
设置API密钥(通过football-data.org/client/register免费获取):
bash
export FOOTBALLDATAAPI_KEY=your-key-here
或在{baseDir}/config/settings.json中的api_key下填写密钥。
模式1:生成投注单
步骤1 -- 获取数据
获取当前比赛数据:
bash
python3 {baseDir}/scripts/match_fetcher.py --mode full
这将返回一个JSON包,包含:
- - 今天和明天的所有已安排比赛
- 每支球队的联赛排名和状态数据
- 历史交锋记录(最近5次交手)
覆盖范围:英超、德甲、意甲、西甲、法甲、荷甲、欧冠。
如果用户想要特定日期:
bash
python3 {baseDir}/scripts/match_fetcher.py --mode full --date-from 2026-02-15 --date-to 2026-02-15
步骤2 -- 分析每场比赛
根据以下因素分析数据中的每场比赛(按重要性排序):
A. 状态(最近5-10场比赛)
- - 使用排名数据中的form字段(例如W,W,D,L,W)
- 计算胜率、场均进球数
- 注意主场状态与客场状态的趋势
B. 主客场统计数据
- - 主队:主场进球/失球
- 客队:客场进球/失球
- 比较主场与客场的净胜球差
C. 历史交锋(H2H)
- - 查看h2h数据:历史上谁占优势?
- 寻找模式:某支球队是否总能进球?这些是低比分还是高比分比赛?
D. 排名位置和动力
- - 积分榜前列(冠军/欧冠席位):动力强,表现稳定
- 中游:难以预测,需谨慎
- 下游(保级):可能出人意料地强或弱
- 排名差距作为指标
E. 额外因素(通过网络搜索)
数据分析后,搜索每场入围比赛的相关信息:
- - 关键球员的伤病和停赛情况(FotMob、Transfermarkt)
- 近期新闻(教练更换、内部问题、转会风波)
- 近期比赛的xG(预期进球)数据
- 冬季户外比赛的天气条件
使用搜索词如:[球队A] vs [球队B] 球队新闻 伤病 和 [球队A] xG 数据 2025-26
F. 赔率估算
- - 根据分析估算每个结果的合理赔率
- 与常见博彩公司赔率比较(必要时通过网络搜索)
- 价值 = 当你的估算概率高于赔率隐含概率时
- 隐含概率 = 1 / 赔率(例如赔率2.00 = 50%隐含概率)
步骤3 -- 选择推荐
仅选择满足所有条件的推荐:
- 1. 估算胜率 > 45%
- 每个推荐的赔率:1.70 - 2.50(价值区间)
- 基于数据的明确动机
- 每场比赛不超过1个推荐
允许的推荐类型:
- - 1 / X / 2:主胜、平局、客胜
- 1X / X2:双选
- BTTS 是/否:双方都进球
- 大/小 2.5球
- 让球 -1:球队净胜2球或以上
步骤4 -- 诚实检查
如果你发现少于3个具有真正价值的推荐:
不要生成投注单。 诚实地说:
今天无法生成可靠的投注单。根据数据,这些比赛提供的价值不足。原因:[简要说明]。请等待更好的赔率或下一个比赛日。
这是强制性的。切勿强行推荐。诚实 > 收益。
步骤5 -- 生成输出
生成两个变体:
变体A:主投注单(3-4个推荐,总赔率8倍-15倍)
| 比赛 | 推荐 | 赔率 | 动机 | 概率% | 风险 |
|---|
| 阿贾克斯 - 埃因霍温 | BTTS 是 | 1.85 | 双方在最近10场比赛中有8场进球,历史交锋总有进球 | 52% | 低 |
| 阿森纳 - 切尔西 |
大2.5 | 1.90 | 本赛季场均3.2球,双方都崇尚进攻 | 48% | 中 |
| ... | ... | ... | ... | ... | ... |
总赔率:XX.XX
建议投注额:5-10欧元
潜在回报:XX.XX欧元
变体B:备用投注单(2-3个推荐,总赔率4倍-8倍)
使用相同的表格格式,但选择更安全的推荐(更高概率,更低赔率)。
始终在底部包含:
- - 每个变体的估算命中率(例如主投注单:所有推荐全部命中的概率约15%,单个推荐平均约50%)
- 替代建议:如果想更稳妥,可以考虑单场投注
- 免责声明:负责任地投注。每张投注单最高投注额5-10欧元,月度限额75欧元。
步骤6 -- 保存投注
自动保存投注单以便追踪:
bash
python3 {baseDir}/scripts/bet_tracker.py --mode save --data {
type: main,
stake: 5.0,
picks: [
{
match: Ajax - PSV,
competition: Eredivisie,
pick: BTTS Yes,
odds: 1.85,
estimated_probability: 0.52,
motivation: Both teams scored in 8/10 recent matches,
risk: low
}
],
total_odds: 12.50,
notes:
}
对备用投注单重复此操作,使用type: backup。
模式2:记录结果
当用户说某个投注已赢或输时:
bash
标记整张投注单
python3 {baseDir}/scripts/bet_tracker.py --mode result --date 2026-02-15 --slip-idx 1 --result win
标记特定推荐
python3 {baseDir}/scripts/bet_tracker.py --mode result --date 2026-02-15 --slip-idx 1 --pick-idx 2 --result loss
结果选项:win(赢)、loss(输)、void(无效)
始终询问用户日期以及涉及哪张投注单(主投注单或备用投注单)。
模式3:查看统计数据
当用户询问结果、统计数据、投资回报率或命中率时:
bash
python3 {baseDir}/scripts/bet_tracker.py --mode stats
将JSON输出呈现为可读摘要:
- - 历史总命中率和投资回报率
- 当前月份:投注额、回报额、盈亏、剩余预算
- 最佳和最差月份
如果月度预算即将用完(使用超过80%),则发出警告。
模式4:查看历史记录
bash
python3 {baseDir}/scripts/bet_tracker.py --mode history --days 30
显示过去N天的所有投注概览。
分析质量规则
这些规则是硬性规定。始终遵守:
- 1. 每张投注单最多5个推荐。 更多推荐 = 指数级降低命中概率。
- 每个推荐的赔率不低于1.50且不高于3.00。 太低 = 无价值,太高 = 风险过大。
- 同一场比赛不超过2个推荐。 相关性会破坏价值。
- 没有数据支持的推荐绝不采用。 直觉不是论据。
- 始终执行诚实检查。 没有投注单总比糟糕的投注单好。
- 避免德比和杯赛,除非数据压倒性支持。这些比赛太难以预测。
- 始终检查伤病情况。 缺少关键球员的球队是另一支球队。
- 考虑赛季阶段。 赛季初 = 数据不可靠。赛季末 = 动力各异。
预算和负责任投注
配置位于{baseDir}/config/settings.json: