🧠 EV Tracker – Full Feature Brainstorm & Functional Spec
⸻
🟢 MVP: Core Features (Must-Have)
1. Preset Prize Configuration
Configure all possible prizes before the stream begins.
• 🔲 Name (e.g., “$5 Gift Card”)
• 🔲 Value (e.g., $5)
• 🔲 Quantity available (e.g., 50 units)
• 🔲 Category or tier label (optional but helpful: low/mid/high)
• ✅ Save/load prize configurations (via browser storage or local files)
• ✅ Quick “duplicate” button for adding similar prizes
• 📝 Dev Notes: Store as an array of prize objects:
{ name: "Gift Card", value: 5, quantity: 50, remaining: 50, category: "Low" }
⸻
2. Spin Tracker (Live Session UI)
Track spins in real time during the stream.
• 🔘 Large tappable buttons for each prize
• 🧮 Auto-decrement remaining quantity when clicked
• 🔁 “Undo Last” button to reverse previous action
• 💰 Field to input spin cost for each spin
• Autofill last-used cost by default
• 🧮 Live stats area (floating panel):
• Total Spins
• Avg. Spin Cost
• Live EV per Spin
• Total Profit/Loss
• 📝 Dev Notes: Maintain a running log of spins in memory ([{ prize: id, value: 30, cost: 10, timestamp: 1716922223 }])
This powers analytics and undo logic.
⸻
3. Real-Time EV Calculation
As prizes get removed, the EV must reflect the remaining pool.
Formula:
EV = ∑ (remainingQty × value) / totalRemainingQty
• 🔄 Auto-recalculates after each spin
• 📉 Shows “EV trend” if you add a sparkline
⸻
🟡 Tier 2: Smart Features (Helpful & Usable)
4. Keyboard Shortcuts for Speed
Users shouldn’t have to move the mouse constantly.
• ⌨️ Assign numbers or letters to each prize
• ↵ “Enter” key submits a spin
• 💵 Quick hotkey to edit spin cost
• 📝 Dev Notes: Map keycodes to prize IDs dynamically on config load
⸻
5. Session History & Export
Optional, but great for data nerds or auditing sessions.
• 📄 View full log of spins
• 📁 Export to CSV or JSON
• ⏱️ Each row: timestamp, prize, value, cost, EV at time of spin
• 🔁 Ability to reset session (and confirm it)
⸻
6. Prize Grouping / Filtering
Especially helpful with 20+ prize types
• 📦 Group by value tier or category
• 🔎 Filter/search box
• 🧹 Collapse/expand groups (e.g. “$1-$5 floor prizes”)
• 📝 Dev Notes: Use a “category” tag on each prize. Simple CSS collapsibles or tabs.
⸻
🟠 Tier 3: Advanced & Power Features
7. Probability Projections
“What are the chances a $100+ prize is still left?”
• 🎯 Display:
• % chance next spin is a “Big Prize”
• % of top prizes remaining
• 🔄 Auto-updated as prizes get hit
• 📝 Dev Notes:
let bigPrizes = prizes.filter(p => p.value >= 100);
let totalBigRemaining = bigPrizes.reduce((sum, p) => sum + p.remaining, 0);
let probBig = totalBigRemaining / totalRemainingQty;
⸻
8. Auction Price Tracking
Track what spins cost you over time.
• 💸 Optional log of each auction spin price
• 📈 Calculate:
• Avg. spin cost
• Max/Min spend
• Cumulative spend
• 📊 Graph spend over time (line or histogram)
⸻
9. Multiple Wheel Modes
For streamers who switch wheels or prize pools.
• 🎛️ Ability to swap between different prize configs
• 📂 Tabs or dropdown to switch modes
• 📝 Dev Notes: Store each as a named config object in local storage or cloud
⸻
10. EV Heat Map or Indicator
Visual indicator when your bidding opportunity is +EV.
• 🟢 EV is higher than average cost? Show “GOOD VALUE”
• 🔴 EV is lower than cost? Show “NEGATIVE EV”
• 📶 Optional: Show a bar or dial
⸻
🧪 Future Enhancements / AI-Supported
• 🤖 Auto-fill spin cost from voice input or keyphrases
• 🔁 Pattern detection (e.g., if certain prizes appear more than probability suggests)
• 📷 OCR from stream video overlay (long shot, but fun concept)
• ☁️ Cloud sync, leaderboard, collaborative betting pools
⸻
📝 Developer Implementation Notes
Tech Stack Suggestion
• Frontend: React (great for fast updates), Svelte (ultra-fast, lighter)
• State management: Zustand or Redux
• Storage: IndexedDB or localStorage for offline usage
• Export/Import: JS CSV or JSON support (Papaparse, FileSaver)
• Backend (optional): Firebase, Supabase for sync and analytics
⸻
Would you like this turned into:
• A Notion doc / Google Doc spec?
• A wireframe / UI sketch next?
• A simple no-code prototype (like Glide or Retool)?
• Or full dev planning (repo + starter project)?
Let’s keep going — what do you want to focus on next?