CoolFace
Datasetpublic

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.

sourceHugging Facemitupdated 1h agoView on Hugging Face
5likes4.6kdownloads
Dataset Card

<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.

![๐ŸŒ Live dashboard](https://ruslanmv.com/sports-trends/) ![๐Ÿค— Models](https://huggingface.co/ruslanmv/sports-trends-models) ![GitHub](https://github.com/ruslanmv/sports-trends) ![License: MIT](https://github.com/ruslanmv/sports-trends/blob/main/LICENSE)

</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:

FeatureDescription
Elo ratingSelf-correcting team/player strength, updated after each result.
Recent formRolling performance over the last N matches.
Head-to-headHistorical record between the two sides.
Rest daysFatigue / fixture congestion.
Home advantageVenue effect (+ host-nation & neutral-venue handling for the World Cup).
League / tournament strengthCompetition-level context weighting.
Stage importanceGroup โ†’ knockout โ†’ final weighting for tournaments.
Social interestPopularity signal (used for ranking, not core outcome).

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.json records version, timestamp, sports covered, layers present, and quality counts.

๐Ÿš€ Load the data

python
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:

python
from datasets import load_dataset
ds = load_dataset("ruslanmv/sports-trends-dataset", data_files="gold/training/football/*.parquet")

๐Ÿ”„ Update cadence

CadenceWhat refreshes
Every 30 minLive/today fixtures + raw partitions.
DailyInference window, regenerated features, tomorrow's predictions.
WeeklyRebuilt training datasets feeding model retraining.

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

bibtex
@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>