ruslanmv/sports-trends-dataset
โฝ๐๐พ๐ Sports-Trends Dataset A leakage-safe, multi-sport match data lake โ raw fixtures โ engineered features โ training splits. The data backbone of Ruslan Magana Sports Intelligence โ refreshed automatically every day. TL;DR โ A continuously-updated, medallion-architecture data lake for football, basketball, tennis and cricket: immutable raw ingests, cleaned/standardized layers, an engineered feature store, and ready-to-train chronological splits inโฆ See the full description on the dataset page: https://huggingface.co/datasets/ruslanmv/sports-trends-dataset.
<div align="center">
โฝ๐๐พ๐ Sports-Trends Dataset
A leakage-safe, multi-sport match data lake โ raw fixtures โ engineered features โ training splits.
The data backbone of [Ruslan Magana Sports Intelligence](https://ruslanmv.com/sports-trends/) โ refreshed automatically every day.
   
</div>
TL;DR โ A continuously-updated, medallion-architecture data lake for football, basketball, tennis and cricket: immutable raw ingests, cleaned/standardized layers, an engineered feature store, and ready-to-train chronological splits in partitioned Parquet. Built to be leakage-safe and reproducible. ๐ค Pairs with the sports-trends-models repo.
๐๏ธ What's inside (medallion layout)
Large data never lives in GitHub โ it lives here, partitioned by sport / date / layer.
raw/<sport>/provider=<p>/date=YYYY-MM-DD/fixtures.json # immutable ingest (source of truth)
bronze/ silver/ # cleaned + standardized records
gold/
features/<feature>/sport=<sport>/date=.../part.parquet # engineered feature store
training/<sport>/{train,validation,test}.parquet # chronological, leakage-safe splits
inference/tomorrow/date=YYYY-MM-DD/inference_input.parquet
quality/{leakage_report,schema_validation,...}.json # automated data-quality reports
registry/{dataset_manifest,latest_versions}.json # versioning + production pointers- Raw is append-only and immutable โ full provenance back to the source API.
- Bronze/Silver normalize to one canonical schema with stable IDs and de-duplication.
- Gold is analytics/ML-ready: a feature store plus train/validation/test splits.
- ML data is partitioned Parquet (by sport/date/layer) โ never one giant CSV.
๐งฎ Engineered features (gold)
Every feature is computed leakage-safely โ for a given fixture, only matches with date < fixture.match_date are used:
The prediction label is the realized match outcome (home/draw/away or 2-way per sport).
โ Data quality & leakage prevention
- Chronological splits. Training data is ordered by time โ train precedes validation precedes test. No random shuffling across the time boundary.
- Leakage assertions. Automated checks (
quality/leakage_report.json) verify feature/label disjointness and chronological ordering; a regression test plants a future blowout and confirms pre-match features are unchanged. - Schema validation. Records are validated against the canonical schema (
quality/schema_validation.json). - Versioned manifests.
registry/dataset_manifest.jsonrecords version, timestamp, sports covered, layers present, and quality counts.
๐ Load the data
import pandas as pd
from huggingface_hub import hf_hub_download
REPO = "ruslanmv/sports-trends-dataset"
# Ready-to-train football split (chronological, leakage-safe)
train = pd.read_parquet(hf_hub_download(REPO, "gold/training/football/train.parquet", repo_type="dataset"))
print(train.shape)
print(train.head())Or stream everything for a sport with the ๐ค datasets library:
from datasets import load_dataset
ds = load_dataset("ruslanmv/sports-trends-dataset", data_files="gold/training/football/*.parquet")๐ Update cadence
All updates run automatically via GitHub Actions.
โ๏ธ Sources, license & intended use
- Sources. Aggregated from free sports APIs and public-domain feeds (e.g. OpenFootball for World Cup data), normalized into a common schema. Raw partitions retain provider provenance.
- License. MIT for this dataset's structure, schema, and engineered features. Please respect the terms of the underlying upstream providers for the raw factual data.
- Intended use. Sports analytics, ML research, education, and powering the ruslanmv.com/sports-trends dashboard.
- ๐ซ Not betting advice. Provided for information and entertainment only.
๐งพ Citation
@dataset{magana_sports_trends_dataset_2026,
author = {Ruslan Magana Vsevolodovna},
title = {Sports-Trends: A leakage-safe multi-sport match data lake},
year = {2026},
url = {https://huggingface.co/datasets/ruslanmv/sports-trends-dataset},
note = {Live dashboard: https://ruslanmv.com/sports-trends/}
}<div align="center">
Built and maintained by [Ruslan Magana Vsevolodovna](https://ruslanmv.com) โ AI / ML engineer.
๐ [ruslanmv.com](https://ruslanmv.com) ยท ๐ [Live dashboard](https://ruslanmv.com/sports-trends/) ยท ๐ค [Models](https://huggingface.co/ruslanmv/sports-trends-models) ยท ๐ป [GitHub](https://github.com/ruslanmv/sports-trends)
<sub>Powered by Hugging Face ๐ค + GitHub Actions โ๏ธ ยท Licensed MIT ยท Not betting advice.</sub>
</div>
