The BetsPlug engine

How we turn raw match data
into predictions you can trust.

Every pick on BetsPlug is the end of a long, carefully engineered pipeline. No hunches, no cherry-picking, no hidden rules. This is the exact process - from the moment a fixture is announced, to the moment a verified pick lands on your dashboard.

3
Data sources
6
European leagues
3
Ensemble models
6h
Sync cycle
The pipeline

Seven stages. Full transparency.

Each stage is built and monitored independently. Here's exactly what happens under the hood.

  1. 01
    Data acquisition
  2. 02
    Cleaning & normalisation
  3. 03
    Feature engineering
  4. 04
    Model ensemble
  5. 05
    Value detection
  6. 06
    Publishing & grading
  7. 07
    Continuous evaluation
01
Stage 01 · Data acquisition

We start where the market starts: the raw feed.

Garbage in, garbage out. So our pipeline begins with reliable data sources covering fixtures, results, standings and bookmaker odds.

Every 6 hours we sync fixtures, results and standings from API-Football and football-data.org for 6 European leagues. Bookmaker odds are fetched from The Odds API every 2 hours. During match hours (12:00-24:00 UTC), live scores update every 5 minutes so your dashboard stays current.

Every record is timestamped so we can replay any moment in history exactly as our models saw it - critical for honest backtesting.

Live ingestion

3 data providers

API-Football, football-data.org and The Odds API - each covering different aspects of the match.

6-hour sync cycle

Fixtures and predictions refresh every 6 hours. Live scores update every 5 minutes during match hours.

Point-in-time storage

Nothing is overwritten. Every change is a new row - history is permanent.

02
Stage 02 · Cleaning & normalisation

We enforce one source of truth before a model ever sees the data.

Raw sports data is famously messy. Team names differ between feeds, leagues rename themselves, markets get suspended mid-match. We fix all of it - in a deterministic, reproducible way.

Teams, leagues, players and market types are mapped to a single canonical schema through a manually audited lookup table. Suspended, voided or late-cancelled markets are flagged and excluded before any model ever touches them.

Outlier detection catches bad data the moment it lands. Any record that fails a sanity check (impossible scores, negative times, odds outside a 1.01–1000 range) gets pulled out of the pipeline and logged for manual review.

What we clean
  • Team & league aliases unified
  • Timezones normalised to UTC
  • Suspended / voided markets removed
  • Odds sanity-checked across books
  • Missing values explicitly marked (never silently imputed)
03
Stage 03 · Feature engineering

Multiple signal families per match - each one earns its place.

A prediction is only as sharp as the signals it's built on. This is where a match becomes a structured profile our models can reason about.

For every fixture we compute features across several families: Elo ratings, Poisson goal rates, league standings, recent form, head-to-head history and bookmaker odds. These feed into three independent models that each look at the data differently.

All features use only data available before kick-off. Our models never see the future when generating a prediction - a key safeguard against overfitting.

Elo ratings

Dynamic team strength ratings updated after every match result.

Poisson goal rates

Expected attacking and defensive rates for each team based on recent matches.

Head-to-head

Historical meetings between the two teams, home and away.

Bookmaker odds

Pre-match odds from major bookmakers via The Odds API.

League standings

Current league position, points, goal difference and recent form.

Match context

Home/away status, scheduling and fixture details.

04
Stage 04 · Model ensemble

Three independent models. One honest probability.

A single model will always have blind spots. So we run three different statistical approaches and combine their predictions with weighted averaging.

Each model captures a different aspect of match dynamics. Their predictions are combined into a single set of win/draw/loss probabilities plus a confidence score for every upcoming match.

M1

Elo Rating Model

A dynamic team strength rating that updates after every result. Converts the rating gap between two teams into win probabilities.

M2

Poisson Goal Model

Estimates expected attacking and defensive goal rates for each team and integrates over all possible scorelines to produce match outcome probabilities.

M3

Logistic Regression

A statistical classifier that uses multiple match features - form, standings, home advantage - to predict match outcomes directly.

Weighted averaging

The three probabilities are combined through weighted averaging. The current weights (Elo 1.0, Poisson 1.5, Logistic 1.0) give slightly more influence to the Poisson model.

05
Stage 05 · Value detection

We only publish picks where our edge survives the real world.

Being right isn't enough. A pick only becomes a pick when our probability suggests value compared to the available odds.

We compare our ensemble probabilities to bookmaker odds fetched from The Odds API. Our Strategy Lab filters predictions using rules validated through walk-forward backtesting - such as requiring high home-win probability or low draw probability.

Currently 3 strategies have passed statistical validation with positive backtested ROI over 90 days. But these are backtested results on a limited sample - real-world performance will vary. We are honest about that.

The check every pick has to pass
Model probability × Best odds
− expected slippage
− bookmaker margin
= real edge

If this number isn't clearly above zero, the pick never leaves the lab.

06
Stage 06 · Publishing & grading

Every pick is timestamped, shipped and publicly gradable.

This is where most prediction sites get vague. This is where we get loud.

The moment a pick is generated, it is timestamped, signed, and published to your dashboard and our public ledger at the same second. You and a regulator see the exact same record.

Once the match ends, every pick is graded automatically against the official result feed. Wins, losses and pushes are all recorded. Losing picks stay on the ledger forever - because a track record that only shows winners isn't a track record, it's marketing.

Same-second publishing

Subscribers and the public ledger are updated simultaneously - no back-dating possible.

Automatic grading

Results are scored from the official feed, not by a human who might look the other way.

Nothing is deleted

Losing picks are permanent. The ledger is append-only by design.

07
Stage 07 · Continuous evaluation

Every prediction is graded against the real result.

Predictions mean nothing if you don't check them. Our system automatically evaluates every prediction once the match is finished.

Every 6 hours, after results are synced, the system scores all finished predictions. Each pick is evaluated with Brier score and log-loss metrics, and marked as correct or incorrect. This lets us track real accuracy over time.

Current 3-way accuracy (home/draw/away) is around 50% - above the 33% random baseline, but not extraordinary. We publish all results, wins and losses alike, so you can verify the track record yourself.

Quality gates
  • 6-hour evaluation cycle
  • Brier score and log-loss tracking
  • All predictions graded automatically
  • Wins and losses both published permanently
Why this matters

The reason our predictions actually hold up.

Every choice in this pipeline exists for one reason: to give you an honest, data-driven probability - not a guess.

No hindsight bias

Models only see data available before kick-off. Predictions are generated and timestamped before the match starts.

Ensemble, not one-trick-pony

Three independent models (Elo, Poisson, Logistic) cross-check each other. One blind spot can't poison the whole prediction.

Backtested strategies

Strategy Lab filters are validated with walk-forward backtesting and bootstrap confidence intervals before being published.

Full transparency

You can verify every prediction we've published. Wins and losses. Current 3-way accuracy is around 50%.

Evaluated every 6 hours

Every finished match is scored automatically. Brier score and log-loss track calibration over time.

Built by people who ship

A two-person team of sports fanatics with an ICT background. Every line of this pipeline is hand-rolled, not bolted together from plugins.

Honest answers

The questions every serious analyst asks us.

If you've tried a tipster site before, you've probably been burned. Here's exactly why BetsPlug is different.

How accurate are your predictions?
Our 3-way match predictions (home/draw/away) hit around 50% accuracy. That's above the 33% random baseline, but we're honest - it's not a magic number. Every prediction is timestamped before kick-off and graded automatically after the match, so you can verify the track record yourself.
What happens on a losing streak?
Losing predictions stay visible permanently. We publish them just as openly as the winners. Our Strategy Lab strategies were backtested on a 90-day sample, so we expect variance. Losing streaks happen - that's sport.
Why not just use one really smart model?
Because every model has blind spots. Our three models - Elo ratings, Poisson goal model and Logistic regression - each capture different patterns. The ensemble with weighted averaging consistently outperforms any single member.
Can I actually profit from these predictions?
Our backtested strategies show positive ROI over 90 days, but backtesting is not a guarantee. Real-world performance depends on odds you get, timing, and variance. We provide the data and analysis - the rest is your call.
What sports and leagues do you cover?
Football only, covering 6 European leagues: Premier League, La Liga, Bundesliga, Serie A, Ligue 1 and Eredivisie. We plan to expand, but we'd rather do a few leagues well than many leagues poorly.
Is this gambling advice?
No. BetsPlug is a sports analytics platform. We publish probabilities, confidence scores and a verifiable track record. What you do with that information is entirely your decision.
Ready to see it in action?

Stop guessing. Start trusting the pipeline.

Now you know exactly how the pipeline works. See the predictions it produces - live, timestamped and ready to verify.