Professional betting tools suite: recovery calculator, escalera calculator, and more — all client-side, math-transparent, and export-ready.
Live: https://wembie.github.io/bet-tools-suite/
Bet Tools Suite is a collection of mathematically transparent betting calculators. Unlike classic Martingale, every calculation is driven by a fixed profit target formula:
Next Stake = (Accumulated Losses + Target Profit) / (Odds − 1)
This guarantees that if any attempt wins, the net result is always exactly the target profit — regardless of how many losses preceded it.
- Mathematical transparency — formula shown, no black boxes
- Recovery plan table — sortable, copyable rows with all financial metrics
- 6-metric dashboard — capital, profit, odds, attempts, largest stake, ROI
- 4 interactive charts — stake growth, capital, losses, risk evolution
- History — auto-saved to LocalStorage, load/duplicate/delete
- Export — CSV, Excel (.xlsx), PDF (with charts)
- Dark/Light mode — preference saved
- Multi-currency — COP, USD, EUR, MXN
- Configurable formatting — separators, decimal places
- Smart alerts — low odds, high stakes, capital thresholds, too many attempts
- Fully client-side — zero backend, works offline
| Category | Technology |
|---|---|
| Framework | React 18 + TypeScript |
| Build | Vite 5 |
| Styling | TailwindCSS + shadcn/ui |
| Animation | Framer Motion |
| Charts | Recharts |
| Forms | React Hook Form + Zod |
| Export | jsPDF + jspdf-autotable + xlsx |
| Testing | Vitest |
| Deploy | GitHub Pages |
git clone https://github.com/Wembie/bet-tools-suite.git
cd bet-tools-suite
npm install
npm run devOpen http://localhost:5173/bet-tools-suite/
- Enter Initial Stake — your first bet amount
- Enter Decimal Odds — must be > 1.00 (e.g. 1.85, 2.50)
- Enter Target Profit — the fixed net gain you want on each recovery
- Enter Max Attempts — how many rows to generate (1–50)
- Click Calculate
- View the dashboard metrics, table, and charts
- Export to CSV / Excel / PDF as needed
Given:
S₁= initial stakeo= decimal oddsP= target profit
For attempt n:
S_n = (ΣS_(1..n-1) + P) / (o - 1)
If attempt n wins:
Net = S_n × o − S_n − ΣS_(1..n-1) = P ✓
src/
├── components/ # React components
│ └── ui/ # shadcn/ui primitives
├── pages/ # Page-level components
├── hooks/ # Custom hooks (calculator, history, settings)
├── utils/ # Pure functions (calculations, formatters, exporters)
├── lib/ # Shared utilities (cn)
├── types/ # TypeScript types
├── constants/ # App-wide constants
└── tests/ # Vitest unit tests
npm test # watch mode
npm run test:coverage # coverage report (>90%)Deploys automatically to GitHub Pages on push to main.
- Go to repo Settings → Pages
- Set source to GitHub Actions
- Push to
main— CI handles the rest
- Multiple recovery strategies (flat, proportional)
- Bankroll simulator
- Probability of ruin calculator
- Odds comparison tool
- Monte Carlo simulation
- PWA / offline support
See CONTRIBUTING.md.
- Fork the repo
- Create a feature branch (
git checkout -b feature/my-feature) - Commit with conventional commits
- Open a Pull Request
MIT — see LICENSE.
Wembie
This tool is for educational and analytical purposes only. Bet responsibly.