← All comparisons

Should you just build this yourself?

Often, yes — and we would rather say so than pretend otherwise. Reading a bookmaker's public endpoint is not hard. What takes the time is everything after: deciding that two feeds describe the same game, removing the margin correctly, keeping a change log rather than a poll log, and noticing when a book quietly stops returning anything.

Choose building it yourself when

You need one or two books for one league, or the data is a means to something you care about more. A weekend gets you a working scraper, and you will own it completely.

Choose PredictHQ when

You want the second year of it — the identity resolution, the calibration record, and the part that notices a silently broken feed before it costs you.

What we have that they do not

Where building it yourself is ahead

Listed because you would find out anyway, and better from us.

Feature by feature

A tick on our side means it is shipped and the file that backs it is named. A dash means we do not do it.

Feature PredictHQ building it yourself
Reading one book's prices

Genuinely a weekend. This is not the hard part and we would not claim it is.

Deciding two feeds mean the same game

Matching on names attaches prices to the wrong game, silently. That module exists because it happened.

app/Services/ingest/resolve.ts

History as a change log, not a poll log

Snapshot every poll and you have billions of rows a season saying nothing.

app/Services/ingest/prices.ts — snapshots appended only on change

Noticing a feed that has silently stopped

A feed matching nothing looks exactly like a quiet market until you check.

app/Services/watchdog.ts + IngestRun provenance

De-vigged fair value on every market

A raw price includes the book's margin. Every honest edge compares against the fair number, not the quoted one.

app/Support/ — de-vig and fair price, with FairPrice recorded per selection

Calibration: how well past probabilities held up

A model that says 70% should be right about 70% of the time. Without this the number is an opinion.

CalibrationBucket model + /api/v1/calibration

Automated positions with risk limits

Bankroll cap, position cap, daily loss limit, and a global stop that outranks all of them.

app/Services/trading/ — judgement, execution, reconciliation, positions

Paper trading before real money

A strategy has a track record before it has money behind it.

TradingStrategy paper mode — same decisions, same limits, simulated fills

Evidence recorded next to every decision

Why the engine did what it did, kept whether or not the trade worked.

DecisionEvidence + TradeDecision models

Prediction markets alongside sportsbooks

Order-book probabilities next to bookmaker prices, in the same units.

app/Services/prediction-markets/ — Kalshi and Polymarket clients

Pricing

building it yourself

Free, plus your time, plus whatever a wrong number costs you.

PredictHQ

Flat monthly.

Questions

What is the part people underestimate?

Identity. Every provider names the same league, club, and market differently, and matching them by name fails quietly rather than loudly — prices land on the wrong game and nothing errors.

See it on live markets

The board is public. No card, no signup to look.

Open the board See pricing

Other comparisons