Open to work · RemoteGet in touch
Demo · Synthetic data · Python + SQL

Athlete Performance Monitor

CMJ · IMTP · Neuromuscular alert system

Synthetic dataset of ~6,500 measurements generated in Python — distributions calibrated against published sport-science norms. On top: an alert system with dynamic percentile thresholds (p25/p75) and longitudinal tracking with a 5-evaluation moving average.

Why synthetic data? Real athlete data contains sensitive health information. Instead of leaving it out or oversimplifying it, I generated fictitious data with the same structure and statistical distributions — IDs hashed at the source, no real name ever stored. The methodology is identical to the real system I built at Ivolution.

PythonnumpyFakerSQLWindow FunctionsPercentile AlertsSport SciencePrivacy-first

150

generated athletes

7

sports

6,500+

measurements

12

months of data

Pipeline

From generation to production alerts.

generate_athlete_dataset.py

Faker · numpy · hashlib — 150 athletes, 6,500+ measurements, 0 PII

measurements.csv / athletes.csv

Clean output · hashed athlete_id · ready to load

mart_fatigue_alerts.sql

Dynamic p25/p75 thresholds · SUPERCOMPENSATION / ATTENTION / FATIGUED

mart_athlete_trend.sql

5-evaluation moving average · % change from baseline

Monitoring dashboard

Real-time neuromuscular status · per-athlete and per-sport views

Alert logic

Dynamic 90-day window per athlete and exercise type.

SUPERCOMPENSATION

metric ≥ p75

The athlete is above their usual range. Peak performance or positive overreaching.

ATTENTION

p25 < metric < p75

Within the normal range. Keep an eye on the trend.

FATIGUED

metric ≤ p25

Dropped below the lower quartile. Review training load.

Code

Dataset generation and the two main SQL models.