Gameplay Design Document
Version 2.0 | April 2026 | Status: Production Live
Create a free-to-play fantasy trading game where players build virtual portfolios of stocks and cryptocurrencies, competing on weekly leaderboards based on a points system - not just raw returns.
| Revenue Stream | Description | % of Revenue |
|---|---|---|
| Broker Advertising | Primary revenue - ads from trading platforms | 50% |
| Subscriptions | Premium features ($9.99-24.99/month) | 30% |
| Cosmetic IAPs | Themes, badges, avatars | 15% |
| Other | Creator packs, API access | 5% |
Fantasy Trading League adapts the popular fantasy sports format for financial markets. Instead of picking athletes, users build portfolios of stocks and cryptocurrencies. Instead of goals and assists, points are awarded for price performance, dividends, and smart picks.
| Fantasy Sports Element | Fantasy Trading Equivalent |
|---|---|
| 15 players | 10 instruments |
| GK, DEF, MID, FWD positions | Stocks, Crypto, Commodities, ETFs |
| Max 3 per club | Max per sector/exchange/asset class |
| Goals = points | Price gains = points |
| Assists | Dividends |
| Clean sheets | Low volatility bonus |
| Bonus points (BPS) | Top performer of the week bonus |
| Power Play (2x) | Power Play (3x points) |
WEEKLY CYCLE:
Monday 00:00 UTC ─────────────────────► Friday 18:00 UTC
│ │
│ TRADING WINDOW OPEN │
│ • Make trades (1 free/day) │
│ • Set Power Play │
│ • Adjust bench order │
│ • Use chips │
└───────────────────────────────────────┘
│
DEADLINE: Friday 18:00 UTC
│
▼
Friday 18:00 UTC ─────────────────────► Sunday 23:59 UTC
│ │
│ SCORING PERIOD │
│ • Portfolio locked │
│ • Watch prices move │
│ • Points accumulate │
└───────────────────────────────────────┘
│
SCORING SNAPSHOT: Sunday Midnight UTC
Age: 18-30
Motivation: Learn about markets through play
When: Weekends, evenings
Age: 25-45
Motivation: Feel connected to markets
When: Morning, lunch breaks
Age: 20-40
Motivation: Competition, bragging rights
When: Deadline rushes
Age: 18-35
Motivation: Volatility, quick action
When: 24/7, often late night
| Region | % of Users | Key Markets |
|---|---|---|
| Americas | 40% | US stocks, major cryptos |
| Europe | 30% | UK/EU stocks, crypto |
| Asia-Pacific | 25% | Crypto-heavy |
| Other | 5% | - |
| Asset Class | Min | Max | Notes |
|---|---|---|---|
| Stocks | 4 | 6 | Core of portfolio |
| Crypto | 1 | 3 | Forces engagement with volatility |
| Commodities | 0 | 1 | Optional hedge |
| ETFs | 0 | 2 | Diversification option |
| TOTAL | 10 | All 10 score every week | |
Max 3 per sector (Tech, Finance, Healthcare, etc.)
Max 4 US, Max 3 UK/EU, Max 3 Asia
Max 3 Large Cap (BTC, ETH), Max 1 Altcoin
Max 15% of portfolio in any single instrument
| Weekly Gain | Stocks | Crypto | ETFs |
|---|---|---|---|
| +1% to +3% | +2 pts | +2 pts | +2 pts |
| +3% to +5% | +4 pts | +3 pts | +3 pts |
| +5% to +10% | +7 pts | +5 pts | +5 pts |
| +10% to +20% | +12 pts | +8 pts | +8 pts |
| +20%+ | +20 pts | +12 pts | +12 pts |
| Event | Penalty |
|---|---|
| Extra trade (beyond free) | -10 pts each |
| Single-day drop >15% | -3 pts |
| Asset delisted | -10 pts |
1. All chips must be activated before Sunday 00:00 UTC for the following week.
2. Only ONE chip can be used per week - no combining chips!
| Chip | Effect | Uses/Season |
|---|---|---|
| Wildcard | Change all 10 instruments in one day | 2 |
| Power Play | Power Play scores 3x | 1 |
| Stop-Loss Shield | Biggest loser for the week doesn't count | 1 |
| Leverage Boost | One asset scores 2x (cannot be combined with power play for ) | 1 |
All monetization is designed to avoid "pay-to-win" mechanics. Free players must be able to win. Paying players get convenience and style, not victories.
| Tier | Price | Features | Competitive Advantage? |
|---|---|---|---|
| Free | $0 | Full gameplay, ads, 1 league | None - full access |
| Pro | $9.99/mo | Ad-free, 5 leagues, analytics | None - convenience only |
| Elite | $24.99/mo | Unlimited leagues, historical scenarios | None - features only |
Affiliates earn 20% lifetime commission on all payments made by users they refer. Referrals are tracked via unique referral codes embedded in signup URLs.
| Feature | Details |
|---|---|
| Commission Rate | 20% lifetime on all referred user payments |
| Minimum Payout | $50.00 |
| Commission Hold Period | 30 days (chargeback protection window) |
| Payout Method | Stripe Connect (auto) or Manual |
| Admin Approval | Required before any payout is processed |
Affiliates can connect their Stripe account for automated payouts:
Stripe handles KYC/identity verification for affiliates. One-click onboarding flow. Affiliates can access their Stripe Express dashboard to view transfer history.
30-day hold: Commissions are held for 30 days before becoming available.
Chargeback clawback: If a referred user's payment is charged back, the affiliate's commission is automatically reversed.
Admin gate: All payouts require manual admin approval.
AFFILIATE PAYOUT FLOW:
User signs up via ?ref=CODE
├── Referral tracked in database
└── User upgrades to Pro ($9.99/mo)
├── Commission calculated: $9.99 x 20% = $2.00
├── Commission HELD for 30 days
└── After 30 days → Available for payout
├── Affiliate requests payout (min $50)
├── Admin reviews and approves
└── If Stripe Connect → Auto-transfer
If Manual → Admin processes manually
This is a GAME, not a financial service. No real money at risk. Virtual currency has no cash value. Game strategy, not investment advice.
| Item | Status | Notes |
|---|---|---|
| Cosmetic purchases | Legal | No competitive advantage |
| Subscriptions | Legal | Standard SaaS model |
| Broker advertising | Legal | With proper disclosures |
| Sponsor-funded prizes | Legal | No entry fees |
| Limited Wildcards | Caution | Capped at 1 extra/season |
| Entry fee tournaments | Avoid | SEC security-based swap issue |
"Fantasy Trading League is a simulation game for entertainment and educational purposes only. No real money is at risk. Performance in this game does not indicate potential real-world trading results."
| Scale | Users | Monthly Cost |
|---|---|---|
| MVP | 0-1,000 | $0-10 |
| Launch | 1,000-5,000 | $50-100 |
| Growth | 5,000-20,000 | $150-300 |
| Scale | 20,000-100,000 | $500-1,000 |
Core portfolio builder, basic points, weekly scoring, user registration, global leaderboard
Goal: Playable game with core loopPower Play system, bench & auto-substitution, private leagues, basic chips, dividend tracking
Goal: Feature-complete for public launchFull chip system, achievements, subscriptions, API export, referral system, broker ads
Goal: Monetization enabledHistorical scenarios, advanced analytics, push notifications, multiple seasons
Goal: Sustainable growthTo enhance gameplay experience, especially during early growth phases, the game may include simulated players (AI opponents) in leaderboards and leagues.
| Requirement | Implementation |
|---|---|
| Labeling | Virtual users marked with [AI] tag |
| Disclosure | Mentioned in Terms of Service |
| Fair Play | Cannot win sponsored prizes |
| Beatable | Programmed to be competitive but not unbeatable |
Up to 500 virtual users
Reduce to 100-200
Minimal (0-50)
Free players must be able to win. Paying players get convenience and style, not victories.
FAIR REVIVAL SYSTEM:
Free Player Bankruptcy:
├── Wait until next Monday
├── Restart with V$75,000 (reduced from V$100k)
└── No cost
Paid Revival ($1.99):
├── Instant restart (skip wait)
├── Restart with V$75,000 (SAME as free)
└── Pays for convenience, not advantage
Both options = same V$. Paying only saves TIME.
| Type | Amount | Notes |
|---|---|---|
| Free Wildcards | 2 per season | Everyone gets these |
| Purchasable | Max 1 per season | $4.99 - hard cap |
| Total Possible | 3 per season | Strategy still matters |
Revenue projections at four user scales based on industry benchmarks for freemium gaming and fintech applications.
| Metric | Assumption | Industry Benchmark |
|---|---|---|
| Subscription Conversion | 3-5% of MAU | 2-7% for freemium games |
| IAP Conversion | 1-2% of MAU | 1-3% for casual games |
| Ad Revenue (CPM) | $15-30 | $10-50 for finance audience |
| Broker Lead Value | $75-150/signup | $50-200 industry range |
| Revenue Stream | Calculation | Monthly Revenue |
|---|---|---|
| Subscriptions | 30 × $9.99 avg | $300 |
| In-App Purchases | 15 × $5 | $75 |
| Display Ads | 50K impressions × $15 CPM | $750 |
| Broker Affiliates | 5 signups × $75 | $375 |
| TOTAL | $1,500/month |
| Revenue Stream | Calculation | Monthly Revenue |
|---|---|---|
| Subscriptions | 350 Pro + 50 Elite | $4,747 |
| In-App Purchases | 150 × $6 | $900 |
| Display Ads | 600K × $20 CPM | $12,000 |
| Sponsored Challenges | 1 × $5,000 | $5,000 |
| Broker Affiliates | 75 × $100 | $7,500 |
| TOTAL | $30,147/month |
| Revenue Stream | Calculation | Monthly Revenue |
|---|---|---|
| Subscriptions | 4,000 Pro + 500 Elite | $52,455 |
| In-App Purchases | 2,000 × $7 | $14,000 |
| Display Ads | 7M × $25 CPM | $175,000 |
| Sponsored Challenges | 4 × $10,000 | $40,000 |
| Broker Affiliates | 800 × $125 | $100,000 |
| API Access | 50 × $29.99 | $1,500 |
| TOTAL | $382,955/month |
| Revenue Stream | Calculation | Monthly Revenue |
|---|---|---|
| Subscriptions | 42K Pro + 8K Elite | $619,500 |
| In-App Purchases | 25,000 × $8 | $200,000 |
| Display Ads | 80M × $28 CPM | $2,240,000 |
| Sponsored Challenges | 10 × $20,000 | $200,000 |
| Broker Affiliates | 10,000 × $150 | $1,500,000 |
| API + Creator Packs | 500 × $29.99 + 100 × $99.99 | $25,000 |
| TOTAL | $4,784,500/month |
| Scale | Monthly Revenue | RPU/Month | RPU/Year |
|---|---|---|---|
| 1K MAU | $1,500 | $1.50 | $18.00 |
| 10K MAU | $30,147 | $3.01 | $36.18 |
| 100K MAU | $382,955 | $3.83 | $45.95 |
| 1M MAU | $4,784,500 | $4.78 | $57.41 |
RPU increases with scale due to higher ad rates, better broker deals, and improved conversion from brand recognition.
| Milestone | Users Needed | Timeline Est. |
|---|---|---|
| Cover infrastructure | ~500 MAU | Month 1-2 |
| $100K ARR | ~6,000 MAU | Month 6-9 |
| $1M ARR | ~30,000 MAU | Year 1-2 |
| $10M ARR | ~250,000 MAU | Year 2-3 |
| 1K MAU | $1,050/mo |
| 10K MAU | $21,103/mo |
| 100K MAU | $268,069/mo |
| 1M MAU | $3,349,150/mo |
| 1K MAU | $2,100/mo |
| 10K MAU | $42,206/mo |
| 100K MAU | $536,137/mo |
| 1M MAU | $6,698,300/mo |
| Risk | Impact | Mitigation |
|---|---|---|
| Lower subscription conversion | -20% revenue | A/B test pricing, value props |
| Broker ad market downturn | -30% ad revenue | Diversify ad partners |
| API cost increases | +$5K-50K/mo | Cache aggressively, negotiate |
| User churn spike | -40% users | Engagement features, retention |
Last Updated: April 2026
| Feature | Status | Notes |
|---|---|---|
| User Authentication | Complete | JWT-based registration, login, password reset |
| Instrument Database | Complete | 267 assets (stocks, crypto, commodities, ETFs) with admin seed |
| Live Market Data | Complete | Finnhub, CoinGecko, Yahoo Finance integrations with cron pricing |
| Portfolio Management | Complete | Buy, sell (full/partial), auto-pick, 10-instrument rule enforced |
| Power Play System | Complete | 3x multiplier on selected asset |
| Scoring Engine | Complete | Automated weekly scoring with tiered dividend system, cron-based |
| Leaderboard System | Complete | Global and weekly rankings, clickable player profiles |
| Chips System | Complete | Wildcard, Stop-Loss Shield, Leverage Boost, Power Play |
| Bot Management | Complete | Automated trading bots with randomized strategies for leaderboard population |
| Feature | Status | Notes |
|---|---|---|
| System Leagues | Complete | Rookie, Season, Major leagues with auto-enrollment |
| Mini Leagues | Complete | User-created custom leagues with invite codes |
| League of the Week | Complete | Spotlight featured league |
| Pro League Limits | Complete | Free: 1 mini league/20 max players. Pro: unlimited/500 max |
| Feature | Status | Notes |
|---|---|---|
| Pro Subscription | Complete | $9.99/mo or $99.99/yr via Stripe (LIVE) |
| Stripe Checkout | Complete | Live hosted checkout with payment tracking and webhook handling |
| Cosmetics Shop | Complete | Themes, frames, bundles (Starter $2.99, Pro $5.99, Legend $8.99, Full Flex $11.99), live preview |
| Affiliate Program | Complete | 20% lifetime commission, referral tracking, affiliate dashboard |
| Stripe Connect | Complete | Automated affiliate payouts via Express accounts, $50 minimum, 30-day hold, chargeback clawback |
| Feature | Status | Notes |
|---|---|---|
| Public Player Profiles | Complete | /player/:id - displays stats, portfolio, equipped cosmetic skins |
| Pro Portfolio Privacy | Complete | Pro users can toggle portfolio visibility; private profiles show blurred holdings |
| In-App Notifications | Complete | Automated triggers: rank change, power play, season ending, league joins |
| Notification Preferences | Complete | Toggle categories: league, achievement, portfolio, social, system, pro |
| Educational Tooltips | Complete | 16 financial terms explained across Dashboard, Scorecard, Portfolio, Leaderboard |
| How Scoring Works Tutorial | Complete | 5-step animated /how-it-works page (formula, tiers, bonuses, power play, tips) |
| Onboarding Flow | Complete | Guided setup for new users with auto-pick and tutorial links |
| PWA Support | Complete | Service worker, iOS safe-area support, add-to-homescreen |
| Email Notifications | Complete | SendGrid integration for reminders and alerts |
| Feature | Status | Notes |
|---|---|---|
| Multi-Tenant Architecture | Complete | White-label support for broker instances with custom branding |
| Super Admin Dashboard | Complete | 8 sub-components: Users, Bots, Tenants, Prices, Leagues, Affiliates, etc. |
| Creator Hub & AI Studio | Complete | AI-powered content generation for creators (GPT-4o) |
| Price Alerts | Complete | Pro feature: set price alerts on instruments |
| Developer API | Complete | Data export endpoints for external analysis |
| Category | Endpoints |
|---|---|
| Auth | /api/auth/register, /api/auth/login, /api/auth/me |
| Portfolio | /api/portfolio/, /api/portfolio/holdings/add, /api/portfolio/auto-pick |
| Instruments | /api/instruments/, /api/instruments/search?q={term} |
| Scoring | /api/scoring/my-score, /api/scoring/calculate |
| Leagues | /api/system-leagues/overview, /api/mini-leagues/create |
| Subscription | /api/subscription/checkout, /api/subscription/checkout/status/{id} |
| Cosmetics | /api/cosmetics/bundles, /api/cosmetics/purchase/bundle |
| Affiliate | /api/affiliate/stats, /api/affiliate/connect/onboard, /api/affiliate/connect/status |
| Profile | /api/profile/{user_id} |
| Notifications | /api/notifications, /api/notifications/preferences |
Starting Balance: V$100,000