Hi Olivia, welcome to the community! 
Excellent question, realtime stats and scoring are the heartbeat of a fantasy sports app. Here’s a structure that’s worked well in my experience:
1. Data Source
For automated, live updates, use a dedicated sports API. Avoid manual entry if you can, it’s not scalable.
· Football/Soccer: API-FOOTBALL, Sportmonks
· Basketball/Baseball: SportsDataIO, API-Sports
· Multi-sport: RapidAPI (multiple providers in one place)
2. Database Architecture
Keep it relational and clean:
· Players – static details (name, team, position)
· Stats – daily/real-time stats linked to players (goals, assists, rebounds, etc.) with a timestamp
· UserTeams – who owns which players
· Scores – calculated points per player per game (can be materialized or computed on retrieval)
3. Updates & Automation
Set up a background worker (cron job, serverless function, or Adalo workflow + external automation) to:
1. Pull fresh stats from the API every few minutes
2. Update your Stats table
3. Recalculate user totals in Scores
This keeps things live without manual effort.
4. Scoring Logic
Define clear rules (e.g., goal = 5 pts, assist = 3, yellow card = -1) and store them in a ScoringRules table. Compute scores in the backend, never on the client side to keep it secure and consistent.
5. In Your Adalo App
. Use Adalo’s database or Xano, Airtable, or Adalo’s external databases for the heavy lifting.
· Connect via REST API or native integrations.
· Use repeating groups tied to live data for leaderboards.
If you’re going the API + automation route, I’d recommend starting with Adalo’s database or Xano, it handles scheduling, calculations, and live updates really cleanly with Adalo.
Hope this helps! I specialize in Adalo automation, so feel free to reach out if you hit any snags during setup.