OddsFoundry Sports Market Intelligence

Methodology

A good projection at a bad price is a bad bet.

That sentence is most of the product. Liking a team is not an edge — liking a team more than the price implies is an edge, and only until the number moves. Here's what happens between a slate opening and a position being released.

The process

Every market on the slate runs the same path. Most of them end at step five with a rejection.

01

Scan the market

Pull every available market and current price across the slate. This is the universe of things to be evaluated, not a shortlist of things we already like.

02

Project the outcome

Produce a distribution rather than a single guess. The output is a probability with a width to it, because a 52% edge held loosely is not the same position as a 52% edge held tightly.

03

Strip the vig, compare to price

The posted price implies a probability that includes the book's margin. Remove it, then compare the model's number against the market's. The gap between them is the edge — everything before this is just an opinion.

04

Stress-test the inputs

Lineups, starters, bullpen availability, workload, weather, injuries, umpire assignment where it's material. Each is a gate. A projection that qualifies on paper but depends on an unconfirmed lineup does not get released; it waits.

05

Release, hold, or reject

Every evaluated market gets a status and a playable-through price — the number past which the position stops being worth taking. Below the edge threshold it's rejected, and the rejection is published alongside everything else.

06

Record it permanently

Release price, timestamp, stake, model version and gate results are stored with the position. On settlement, the closing line and CLV are recorded. Nothing is edited after the fact and nothing is removed.

What the statuses mean

Five outcomes. Only one of them is a bet. New to why we show the rejections too? Read the lesson.

Playable now

Meets the release criteria at the current price. The card carries the playable-through number; past it, the position is no longer live.

Price watch

The model likes the market but not at this number. It becomes playable if the price moves to the stated threshold, and never becomes playable because we wanted it more.

Lineup watch

The projection qualifies but depends on information that hasn't been confirmed — a lineup, a starter, a weather window. Held until the gate clears.

Live candidate

Conditions may create an opportunity once the game is underway. Flagged for re-evaluation rather than released pre-game.

Rejected

Evaluated and passed on. Published deliberately. A service that only shows you its hits is telling you about its marketing, not its model.

Price discipline

The same selection is a different decision at different numbers. That's why every card carries a price rail rather than just a pick. See fair price vs. market price for the full breakdown.

Strong buy

Price is meaningfully better than the model's fair number. The edge survives comfortably even if the projection is somewhat off.

Playable

Edge clears the release threshold once vig is stripped. This is the normal state of a released position.

Marginal

Edge exists but sits inside the model's own error bars. Not released — the expected value doesn't justify the variance.

Pass

The number has moved past the playable-through price. The projection may still be right. The bet is no longer worth making.

How to read the results page

Four numbers, in the order they deserve your attention.

Net units

Actual profit and loss in units. This is the record. Everything else is context for it.

ROI

Net units against units risked. It makes a small record and a large one comparable, and it's harder to flatter than a raw total.

Closing line value

Whether the price we released at beat the price the market settled on. It's the earliest honest signal of an edge, because it shows up long before results do — a model can run cold for weeks while still consistently beating the close.

Win rate

Listed last, on purpose. Bet nothing but −300 favourites and you'll win 75% of the time while losing money. Treat it as decoration.

What we don't publish

Model weights, formulas and implementation details stay private. What's public is every decision the model makes, the price it made it at, and how it turned out — which is the part you'd need in order to hold us accountable anyway.

Common questions

What is OddsFoundry?

An information and analytics service that publishes model probabilities, fair prices, and a permanent record of every release for MLB markets. It is not a sportsbook and does not accept wagers, hold funds, or place bets on anyone's behalf.

How does OddsFoundry decide whether to release a bet?

Every market is projected, compared against the market price with the vig stripped out, and stress-tested against lineups and other live inputs. Only markets that clear the edge threshold and pass every gate are released; the rest are published as rejected, watched, or held.

What is a playable-through price?

The price past which a released position is no longer worth taking. Each released card lists this number, so the position stops being a play once the market moves beyond it.

Does OddsFoundry guarantee winning bets?

No. Nothing on the site is a guarantee of any outcome, and past model performance does not predict future results.

Why does OddsFoundry publish the bets it rejects?

Because a service that only shows its hits is showing its marketing, not its model. Publishing every rejection makes the full track record checkable, not just a highlight reel.