A small Streamlit app to practice pro betting fundamentals:
- Convert odds → implied probability
- Compare to your fair probability
- Compute EV and Kelly sizing
- Daily Trainer mode (practice drills)
- Optional Backtest tab (CSV upload → ROI + bankroll curve)
✅ Open the app: https://mrponyrivers-bet-decision-trainer.streamlit.app/
YouTube: https://youtu.be/p4s3mTzzzJU
Channel: https://www.youtube.com/@PonyRivers-x7i
This project demonstrates a sports odds + decisioning workflow: converting odds to implied probability, comparing to a user’s fair probability, then producing EV + Kelly sizing with a simple backtest loop. Built with a clean Streamlit UI and export-friendly outputs — designed to demo in under a minute.
- Open the Live demo
- Click Trainer → New question → Check answer
- Go to Backtest (CSV) → click Load sample backtest (instant results)
- Optional: click Download sample CSV to see the expected format
git clone https://github.com/mrponyrivers/bet-decision-trainer.git
cd bet-decision-trainer
python -m venv .venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows PowerShell
pip install -r requirements.txt
streamlit run app.pyEnter:
- Bet type (ML / Spread / Total)
- Odds (Decimal or American)
- Fair probability (from your model) or fair odds
Get:
- Implied probability
- Edge (fair − implied)
- EV (per $1 and %)
- Kelly % (full + fractional)
- Stake recommendation (with caps)
Generate practice questions and grade yourself on:
- +EV decision (BET/PASS)
- Break-even probability (implied probability)
- Kelly %
Upload a CSV with:
odds_decimal(decimal odds, > 1.0)fair_prob(0–1)outcome(1 = win, 0 = loss)
The app outputs ROI, profit, bankroll curve, and max drawdown.
This app is educational. Betting involves variance and risk.
“Fair probability” = your estimate (ideally from your model like an NFL POWERBOOK / ratings system).
- Add example CSV template button (already included in-app)
- Add “Saved bets” history (session-based)
- Add spread/total probability helpers (optional conversion from model margin/total)



