How It Works
A stock market simulator powered by real NBA stats
The Concept
Every NBA player is a stock. Their price is determined by how well they play on the court — not hype, not opinions, just stats. You get $10,000 in virtual cash to build a portfolio of players you believe in.
How Prices Work
Player prices are calculated from real season averages using a formula based on John Hollinger's Game Score:
Stock Price = Game Score x 13
Game Score = PTS + 0.4(FGM) - 0.7(FGA) - 0.4(FTA-FTM) + 0.7(OREB) + 0.3(DREB) + STL + 0.7(AST) + 0.7(BLK) - 0.4(PF) - TOV
This means every box score matters. A player who drops 40 points efficiently will see their stock rise. A cold streak brings prices down. Prices update daily based on the latest season averages from NBA.com and ESPN.
Dividends
When a player you own has a great game, you earn dividends — passive income on top of any price appreciation.
Dividend = Game Score x 0.5 per share
The better the performance, the bigger the payout. This rewards you for holding players who consistently produce, not just those with the highest price.
Trading
- You start with $10,000 in virtual cash
- Buy up to 25 shares of any player
- Sell anytime to lock in gains (or cut losses)
- Your portfolio is saved locally — no account needed to start trading
Leaderboard
Create a free account to save your portfolio to the leaderboard and compete against other traders. Rankings are based on total portfolio value (cash + holdings). Everyone starts with the same $10,000 — your returns come down to who you pick.
Data
- Season averages from NBA.com league leaders API
- Box scores and game data from ESPN
- Price history tracked daily and stored in a real database — no fake data
- Player headshots from NBA.com CDN
- Prices refresh once daily via automated cron job
FAQ
Is this real money?
No. This is a simulator. You trade with virtual currency only. There is no real financial risk.
Why did a player's price go down?
Prices are based on season averages. A bad game lowers the average, which lowers the Game Score, which lowers the price. Consistency is king.
How often do prices update?
Once daily. The system pulls the latest stats and recalculates every price.
Do I need an account?
No. You can browse, buy, and sell without signing up. Your portfolio saves to your browser. Creating an account lets you appear on the leaderboard.
What happens if a player gets injured?
Their season averages stay frozen (no new games to change the stats), so their price holds steady. Injury status is displayed on their card when available.