← Back to Tools
Enter the spread odds for both sides. The calculator reveals the implied probability, the vig (juice), and the fair odds without the house edge.
Favorite Implied Probability
—
Underdog Implied Probability
—
Total Implied Probability
—
Vig (Juice)
—
Fair Favorite Odds
—
Fair Underdog Odds
—
For informational purposes only. Not legal gambling advice. Must be 21+ in your jurisdiction.
Gamble responsibly. If you or someone you know has a gambling problem, call 1-800-522-4700.
// Calculator
function americanToDecimal(odds) {
const o = parseFloat(odds);
if (isNaN(o) || o === 0) return null;
return o > 0 ? (o / 100) + 1 : (100 / Math.abs(o)) + 1;
}
function decimalToAmerican(d) {
return d >= 2 ? '+' + Math.round((d - 1) * 100) : Math.round(-100 / (d - 1));
}
function calculate() {
const favDec = americanToDecimal(document.getElementById('favOdds').value);
const dogDec = americanToDecimal(document.getElementById('dogOdds').value);
const spread = parseFloat(document.getElementById('spread').value);
if (!favDec || !dogDec || isNaN(spread)) return;
const favProb = (1 / favDec) * 100;
const dogProb = (1 / dogDec) * 100;
const totalProb = favProb + dogProb;
const vig = totalProb - 100;
// Fair odds (remove vig equally)
const fairFavProb = favProb / (totalProb / 100);
const fairDogProb = dogProb / (totalProb / 100);
const fairFavDec = 100 / fairFavProb;
const fairDogDec = 100 / fairDogProb;
document.getElementById('favProb').textContent = favProb.toFixed(2) + '%';
document.getElementById('dogProb').textContent = dogProb.toFixed(2) + '%';
document.getElementById('totalProb').textContent = totalProb.toFixed(2) + '%';
document.getElementById('vig').textContent = vig.toFixed(2) + '%';
document.getElementById('fairFav').textContent = decimalToAmerican(fairFavDec);
document.getElementById('fairDog').textContent = decimalToAmerican(fairDogDec);
document.getElementById('results').classList.remove('hidden');
// Increment smart bets counter
if (window.incrementSmartBets) window.incrementSmartBets();
}
document.addEventListener('input', function(e) {
if (['favOdds', 'dogOdds', 'spread'].includes(e.target.id)) {
const r = document.getElementById('results');
if (!r.classList.contains('hidden')) calculate();
}
});
calculate();