Transparency
Methodology & Data Sources
Every number on this site comes from structured feeds — not hand-entered scores or commentary. This page documents what we pull, how often it updates, and how to read the metrics.
Data sources
American Soccer Analysis
RSL match results, xG, team season stats, player goals added, Western Conference standings
Refresh: Hourly via GitHub Actions pipeline
Fixture Download
MLS upcoming fixtures (ASA only publishes completed matches)
Refresh: Hourly with the RSL pipeline
Understat
Arsenal match results, xG, Premier League standings, and player season stats
Refresh: Weekly via GitHub Actions pipeline
FBref
Planned — richer match stats, shooting, and passing detail (requires browser scraper)
Refresh: Planned
Key metrics
- Expected goals (xG)
- Chance quality model — how many goals a team or player would expect from the shots they took. Outscoring xG suggests strong finishing; underperforming suggests the opposite.
- Goals added (g+)
- ASA's positional baseline metric. A forward and centre-back are each measured against their own peer group, so compare within a player's row — not across positions.
- Expected points (xPts)
- Points a team would expect from underlying performances. Comparing actual points to xPts shows whether results are running hot or cold.
- Fixture difficulty
- Upcoming opponents rated easy, medium, or hard by their current Western Conference table position — top third, middle third, or bottom third.
Sync & freshness
RSL data is written to Supabase by a Python pipeline (scripts/data-pipeline/fetch_rsl_data.py). Dashboards revalidate hourly. The "As of" timestamp on each dashboard reflects the latest row update in the database — not when you loaded the page.
Completed matches prefer ASA over Fixture Download when both exist for the same date. Upcoming fixtures come from Fixture Download only.