r/algobetting

Why do football betting odds move so much before kickoff?

I used to assume odds mainly changed when someone placed a big bet, but I’ve learned there are quite a few factors involved. Injuries, team news, expected lineups, betting volume, and overall market activity can all influence the price before a match starts.

I also find it interesting to compare the same match across different bookmakers rather than looking at just one. Sometimes the differences are small, but watching those changes can give you a better idea of how the market is moving.

What really catches my attention is when odds change even though there doesn’t seem to be any major news about the teams. It makes me wonder how much of that movement is driven by professional bettors and how much comes from regular football fans.

For those who follow football betting, do you usually track how the odds have moved before deciding whether a particular price is worth taking?

reddit.com
u/Cloudy_Day912 — 8 days ago

Does anyone else feel like in-game execution on sports prediction markets is missing conditional triggers?

Hey everyone,

I've been spending a lot of time looking at live in-game sports markets across exchanges like Kalshi and Polymarket.

One recurring issue I keep running into is the gap between in-game situational angles and actual order execution. I find that there are three main problems I have not been able to overcome:

  1. Manual camping: If you have a thesis that relies on an in-game state—say, a favorite falling behind by ≥ 6 at the half, pace dropping below a certain threshold in the 3rd quarter, or foul disparity opening up—you're basically stuck staring at a screen for hours waiting for that exact window to manually place an order.
  2. Resting order risk: You can leave resting limit orders, but those are blind to what's actually happening on the court/field. A limit order meant for a specific scenario might fill during an injury or an unfavorable blowout and negatively impact you.
  3. The DIY hurdle: Unless someone writes and maintains their own custom Python or Node scrapers connected to official feeds and exchange APIs, there’s really no way to link a live game event to an order execution.

Does anyone else find this to be a major limitation when trading sports on these books, especially for your typical trader?

If there were a platform where you could plug in your own exchange API keys and set deterministic, "if-this-then-that" conditional rules across any sport (e.g. “If Team A is down ≥ 8 at halftime, submit limit order on Team A at ≤ 60¢”), would that actually be useful to your trading workflow, or do you prefer keeping everything in private custom scripts?

Curious how others here handle live in-game execution without being glued to a monitor and if you think a platform like this needs to come out or know of one that already does this.

reddit.com
u/Famous-Film3655 — 8 days ago

I built a Poisson-based football probability model with a human-context layer — looking for critical feedback

Hi everyone,

I'm a data scientist and I've been working on a football probability tool called TODO Mining Predictor.

The core model uses Poisson distributions to estimate scoring rates (λ) and generate a full score probability matrix. From that distribution, the system calculates probabilities for outcomes such as:

  • Home / Draw / Away
  • BTTS
  • Over / Under
  • Double Chance
  • Most probable scorelines

But there's a part of the approach I'd particularly like feedback on.

Instead of treating the statistical model as the final answer, I added an optional Guided Human Judgment (GHJ) layer.

The idea is that historical data may not fully represent the conditions of the upcoming match. The analyst can therefore incorporate contextual factors such as tactical matchup, fatigue, rotations, offensive/defensive absences, goalkeeper form and expected match tempo.

These inputs modify the scenario, and the probability distribution is recalculated.

I'm deliberately not posting accuracy claims or a win rate, because I don't think a handful of successful predictions would demonstrate that the model has an edge.

What I'm interested in now is the next step: evaluating whether these probabilities contain useful information relative to market prices.

For those of you who build or evaluate betting models:

What evidence would you want to see before considering a model like this useful?

For example:

  • Calibration?
  • Brier score / log loss?
  • Closing Line Value?
  • Comparison against no-vig market probabilities?
  • Out-of-sample backtesting?
  • ROI over a sufficiently large sample?
  • Performance with and without the human-context layer?

I'm especially interested in criticism of the methodology.

I can also share a real match example where the model's highest-probability outcome did not occur, including the inputs, λ values, probability distribution and what happened afterward. I think a failed prediction may be more useful for discussion than cherry-picking a winner.

I'm trying to determine what should be validated before adding more features to the tool.

Thanks — I'd genuinely appreciate technical feedback.

reddit.com
u/Unlikely-Owl2413 — 8 days ago

Building a price alert script in Python. Is there an API for building tools? I need order handling too.

I wrote a small Python script that pings me when a price looks +EV. Right now it reads from a free odds feed. For alerts, it works fine.

The next step is letting it place and cancel orders. That part scares me a bit.

Last week my home Wi-Fi dropped for ten minutes while I was asleep. If an order had been open, it would have sat there with nobody watching. That's the part I keep thinking about.

So what should an API do when the connection drops? Does it cancel open orders if it stops hearing from my script? How does it handle reconnecting?

And which providers explain live prices, order entry, and rate limits in plain words? I'd rather read the docs than find out the hard way.

reddit.com
u/WilliamCollins6860 — 8 days ago

Built an EPL/NBA value model — looking for feedback on methodology

Hey all — been building a statistical model for EPL/NBA value bets and wanted feedback on the approach. Not selling anything, just genuinely curious if this makes sense or if I'm missing something.

What it does
- Estimates true probabilities from recent form, injuries, and market movement
- Compares to bookmaker implied odds to find edges - Outputs 1U/2U picks based on edge strength
- Logs every pick and result publicly, win or lose

What I'm unsure about:
- Data freshness: built a guardrail that blocks picks when team/player data is stale, not sure if the threshold is right
- Sample size: ~29 logged bets so far (EPL 5 gameweeks + NBA testing) — feels small but don't want to force volume
- Market efficiency: any markets you've found consistently show more exploitable inefficiency (EPL totals vs ML, NBA props vs spreads, etc.)?

Tech stack:
- Python for data/model logic - CSV logging for now (planning to move to a proper DB)
- Manual odds capture (no real-time API yet)

Happy to share more on the probability estimation method or hear where this might be overfitting. Thanks in advance

reddit.com
u/SammyC532 — 8 days ago

I’m building a small football betting research bot

Hey everyone,

I’ve been tinkering with a betting research bot recently. I’m not trying to sell picks or pretend I’ve cracked betting. It’s paper-only for now and the goal is to find out whether combining decent data, odds and news can produce anything useful.

At the moment it runs once a day early in the morning and looks only at games being played that day. It pulls fixtures and odds, builds a basic team-form/xG baseline, checks news and availability, and then asks an AI model to review the whole picture. It can return a pick, but it can also say pass, no value, market conflict or insufficient data. I don’t want it forcing a bet just because there are games on.

For now we are only working on football and I’m currently using API-Football for fixtures and stats, Football-Data for older results and odds, and OddsPapi to test current prices and bookmaker links. I also have an OpenRouter model extracting things like injuries, suspensions, lineup news and manager changes from public sources.

One thing I learned the hard way: the API-Football predictions endpoint can produce some pretty wild probabilities. I’m treating those as a rough reference, not as the model’s answer. The bot calculates its own baseline, checks it against the market, and has safety filters for bad data, conflicting signals and suspiciously huge EV numbers.

How the bot actually makes a decision

The bot is not supposed to bet just because a team is the favorite or because an AI says it likes a pick. The intended flow is:

  1. Build the day’s slate. Once a day it fetches fixtures for enabled leagues, keeps only games scheduled for that day which have not started, and attaches the available odds.

  2. Create a basic statistical baseline. For football, the current prototype uses recent goals-for/goals-against and team-form data to estimate expected home and away goals. A simple Poisson calculation turns those expected goals into rough probabilities for 1X2 and Over/Under 2.5. This is a first baseline, not a proven or well-calibrated model.

  3. Add context. The system collects news and tries to identify relevant injuries, suspensions, managerial changes and lineup information. OpenRouter classifies the article and records the event, team, impact, confidence and evidence. Generic form articles are treated as context, not automatically as actionable news.

  4. Compare the model with the market. It looks at the bookmaker odds, converts them into approximate implied probabilities after removing the margin, and compares those with the model estimate. It also tracks odds movement. If the news suggests a team is weakened but the market moves strongly in the opposite direction, the bot marks a conflict and avoids promoting the pick.

  5. Apply hard safety filters. A recommendation can be rejected for missing data, questionable odds, conflicting information, unconfirmed lineups, a major-player rumour or an implausibly large estimated edge. An extreme calculated EV is treated as a possible model/data problem, not as “easy money.”

  6. Return a verdict. The output can be `PASS`, `LEAN`, `NO_VALUE`, `WATCH`, `WATCH_MARKET_CONFLICT`, `INSUFFICIENT_DATA` or a provisional paper candidate. It should be allowed to return no picks.

  7. Log and settle paper picks. Recommendations and odds are timestamped and stored. After the match, the result is fetched and the paper record is settled at one unit per recommendation. Duplicate recommendations for the same fixture, market and selection are excluded.

A key limitation is that the football probability estimates are not yet properly calibrated. The AI can help interpret the structured information, but its stated probability should not be treated as a reliable probability merely because it sounds confident. We’re tracking results, but we need a much larger out-of-sample sample and calibration checks before claiming an edge.

The external tipster-consensus layer is not yet part of the active decision process. I want to add public, timestamped tips as another signal, while distinguishing independent opinions from copied posts and tracking each source’s results. Odds sources and executable bookmaker prices are also still being checked separately; I don’t want the bot to present a price from one book as if it were available at another.

I’ve also started a separate EuroLeague experiment. I downloaded a full historical season with team and player stats and built an early baseline model. It looks promising on a couple of metrics, but I don’t have historical odds to test whether it would actually have found value. So, for now, that’s research only too. I will get into it after I have finalized with Football.

The results so far are mixed. The current paper sample is still small because of the Nations League, so I’m not claiming there’s an edge. I’m assuming there isn’t one until it survives a much bigger, properly logged sample.

I’m now trying to improve the data side. I’d like recommendations for:

  • Affordable odds APIs with good coverage of bookmakers ideally with historical odds and timestamps.
  • Reliable football data for xG, lineups and player availability.
  • Public tipster or analyst sources that publish timestamped picks, so I can track them properly rather than cherry-pick winning posts.
  • Ways to spot when several channels are independently backing the same pick versus just copying one source.

If you’ve built something similar, I’d especially appreciate feedback on the probability model and validation setup. What data sources have you found reliable for historical odds, xG, lineups and injuries? And what’s a sensible way to track public tipsters without counting copied posts as independent opinions?

reddit.com
u/Zealousideal_Wind_75 — 8 days ago

B365 Reverse engineering or Browser assisted?

I know most people here probably rely on third-party APIs, but for those of you running custom scrapers: are you using browser automation, or did you reverse-engineer the x-net-sync-term token?

I haven't seen many people take the reverse engineering route. Honestly, even with zero prior RE experience, it took me about two months to crack it the first time and now it only takes around 10 minutes to update whenever the VM changes.

Right now, I can scrape all pre-match sports markets across the board in 15 seconds from a single 2-vCPU container on my home network, using zero proxies or VPNs. Given how efficient pure HTTP requests are compared to headless browsers, for those who tried and gave up.. what's keeping you from giving it another shot?

reddit.com
u/Upstairs_Chip_7799 — 9 days ago

Free Esports Bet365 Api

Hey everyone,

I've been working on the odds infrastructure behind KashRock and finally added Bet365 esports odds.
The API currently pulls Bet365 lines for esports, including markets across CS2, Valorant, LoL, and more, alongside 20+ other sportsbooks/books.

If you’ve been looking for a way to get Bet365 esports odds programmatically, you can try it here:

https://www.kashrock.com/

I'm mainly posting this because I’ve seen people asking for Bet365 data repeatedly, and I figured it would be more useful to just make it available rather than keep seeing people build around scraped/manual data.

If you're building something with it, I'd also appreciate QA/feedback. There are always edge cases when you're dealing with this much market data.

Bet365 esports → API → your app/bot/model.

reddit.com
u/Hot-Natural-4427 — 9 days ago

Getting into darts and T20 cricket. Where can someone trade live markets on smaller sports?

I've been watching a lot of darts and T20 cricket this year. I'd like to bet in-play on them, but most apps don't list them live. When they do, I can't tell if anyone is on the other side.

Last week my $15 on a darts set sat unmatched until the set ended. Where can I find live markets for these that hold up once play starts?

reddit.com
u/TurbulentDub — 8 days ago

KBO win-probability modeling — 2025 OOS results and a separate 2026 historical replay

I’m the developer behind CIKADA, a KBO baseball analytics and community site. I wanted to share the evaluation results and get feedback from people working on sports probability models.

The site brings together game schedules, matchup win probabilities, starting-pitcher and bullpen information, archived predictions and results, and a fan discussion area.

For the 2025 evaluation, the model used 27 numerical features with logistic regression, trained on 2024 data and tested on a separate 2025 dataset.

The recorded results are:

  • 2025 OOS: 618 evaluated games, 368 correct, 59.55% accuracy, Brier: 0.2385.
  • 2026 historical replay/reference dataset: 494 evaluated games, 284 correct, 57.49% accuracy, Brier: 0.2455.

The 2026 dataset is a separate retrospective research sample and may contain different model/data sources. It should not be treated as verified live performance or a continuation of the same frozen model’s OOS record.

These are prediction metrics, not betting ROI. I’d welcome feedback on calibration checks and how to structure a fair comparison against timestamped market probabilities.

Disclosure: I built and operate the site.

CIKADA — cikadabaseball.com

reddit.com
u/Any-Surprise-9336 — 8 days ago