Every ParlayIQ market shows an edge number — the gap between our model's win probability and the market price. This page explains exactly how that gap is calculated, where the AI probability comes from underneath it, and how we turn settled contracts into the hit-rate and ROI numbers that show up in your portfolio.
Edge is the gap between the AI probability and the current market price, expressed in cents. The arithmetic is the same one ParlayIQ's UI uses — the same formula powering the /edges leaderboard and the edge badge on every market card:
edge = (ai_probability − market_price) × 100
A positive edge means our model thinks the contract is more likely to resolve YES than the market is currently pricing — YES looks underpriced relative to the AI signal, and that is the setup ParlayIQ surfaces to your dashboard. A negative edge flips the read: the market is more bullish on YES than the model, so NO is the underpriced side.
Edge is the number that powers /edges — the live ranked view of every open market where the disagreement between model and price is largest.
The number that flows into the edge calculation above comes from a deliberately readable model. Every sport has a base rate — the long-run share of games that resolve YES under normal conditions. On top of that base, the model applies a small home-field adjustment and a sport-specific variance band so leagues with wider week-to-week swings (UFC) get wider AI estimates than leagues with tighter ones (NFL). Confidence is a function of how close the AI estimate lands to the live market price — when the two agree, confidence is high; when they diverge widely, confidence drops so we stay honest about where our disagreements are biggest.
For the data sources and model internals, see → How ParlayIQ computes AI win probabilities. That guide walks through the SPORT_BASE / SPORT_VARIANCE tables, the home-field adjustment, and how confidence is computed.
Suppose a market is priced at 52¢ (the market thinks there's a 52% chance YES resolves), and the AI model reads the same game at a 58% win probability. Plugging those into the formula:
edge = (0.58 − 0.52) × 100 = +6.0¢
That +6.0¢ edge is exactly the number you'd see on the /edges leaderboard and on the market card itself. The same formula runs in views/edges.ejs for every row.
The edge number is a forward-looking signal — it's what the model thinks at the moment you click. The hit-rate and ROI numbers in your portfolio are the same idea applied backward, over settled markets. ParlayIQ computes them on every settled contract in your positions table.
Hit rate is the share of settled contracts where your side won, expressed as a percentage. The formula is wins / (wins + losses), which is the same win_rate_pct shown in the navigation bar at the top of every page when you're signed in. Pushes — markets that resolved without a winner — are excluded from the denominator so a refunded market doesn't drag your hit rate down.
ROI is the profit on settled contracts divided by the capital you risked to earn it. The portfolio summary tracks this as (total payout − total cost basis) / total cost basis, and it's the same number that powers the leaderboard ranking. Profit is realized when a position is settled to YES or NO; trades on markets still open contribute to your active count but not to ROI until they resolve.
Edge-adjusted hit rate is the honest test of whether edge is meaningful — it's the share of contracts you entered under a positive edge that resolved YES. If a model surfaces a +6¢ edge and those contracts win at a higher rate than the unfiltered hit rate, the signal earns its keep. If it doesn't, we'd surface that as well. The point of the edge number is to be testable, not decorative.
These are the same metrics that show up in the navigation bar above every page, in your profile, and on the leaderboard — they're not extra columns we've bolted on; they're how ParlayIQ already measures settled performance.