Open data analysis of the Burkina Faso national football team (Les Etalons): ETL pipeline plus a bilingual FR/EN static dashboard covering every player called up since AFCON 2021.
# Étalons Analytics
Open data project on the **Burkina Faso senior national football team** (Les Étalons):
an ETL pipeline and a bilingual (FR/EN) analytics dashboard following **every player
called up since AFCON 2021 (January 2022)** — who they are, where they play (verified),
how much they actually play and produce for the national team, and how the team itself
performs (history since 1960, Elo, formations, projections to AFCON 2027 / WC 2030).
The analysis is designed to evolve with time and contributions: sources are snapshotted,
transforms are deterministic, every metric is gated by sample size, and hand-maintained
knowledge lives in small seed files anyone can extend — see CONTRIBUTING.md.
**Live site:
rolandsanou.github.io
**Docs:** **Guide — run it, understand it, change it** ·
Architecture · Data model ·
Contributing · Roadmap
## Deploying
The site is served from the `gh-pages` branch (the contents of `site/` at its
root). To publish an update:
```bash
bash tools/deploy.sh
```
`.github/workflows/pages.yml` does the same job automatically on every push to
`main`; it is in place but idle while GitHub Actions is unavailable on the
account. When Actions runs again, set Pages back to "GitHub Actions" in the
repository settings and the script becomes unnecessary.
## Architecture
```
EXTRACT TRANSFORM LOAD
sources -> data/raw/ raw -> data/staging/ staging -> data/marts/
(immutable snapshots) (typed, clean tables) (analysis-ready CSVs)
+ site/data/*.json (dashboard)
```
```
python -m etl all # extract -> transform -> load -> quality
python -m etl all --force # refresh volatile sources (new matches, new call-ups)
python -m etl all --force-profiles # clubs only: after a transfer window
python -m etl quality # data-quality report only
```
- **Extract** (`etl/extract/`) — one module per source. Finished matches never chan …