Powerlifting Progression Predictor
A machine learning tool that predicts a competitive powerlifter's DOTS score progression over 5 years based on their current performance and meet history.
Built as a Computer Science capstone project using real competition data from the OpenPowerlifting dataset.
What is DOTS?
DOTS is a bodyweight-adjusted scoring system used in powerlifting to compare performance across different weight classes and sexes. It's the standard used by USAPL and many other federations.
How it works The user runs the script from the command line and enters:
Sex (M/F) Weight class (in kg) Current DOTS score from their last meet Years competing (number of meets)
The model then projects their DOTS score year-by-year for the next 5 years based on historical progression patterns from competitive USA raw powerlifters.
Example output:
=== Strength Progression Predictions Calculator ===
Enter your sex (M/F): F
Enter your weight class in kg (e.g. 83, 93, 105): 52
Enter your DOTS score at your last meet: 330
How many years have you been competing?: 1
=== Your Projected DOTS Progression ===
Disclaimer: Projections are based on historical data from competitive USA
raw powerlifters who have achieved 450+ DOTS over 5+ years of meet experience.
Your current DOTS score: 330.0
Years competing: 1.0
Year Projected DOTS Change
Year 1 414.9 +84.9
Year 2 437.4 +107.4
Year 3 444.4 +114.4
Year 4 444.4 +114.4
Year 5 444.4 +114.4
Total projected gain: +114.4 DOTS over 5 years
Dataset
Source: OpenPowerlifting — an open database of powerlifting competition results worldwide.
Scope: Filtered to competitive USA raw powerlifters who achieved 450+ DOTS over 5+ years of meet experience, providing a meaningful progression trajectory for intermediate-to-advanced athletes.
Models Three regression models were trained and compared: Linear Regression - Baseline model Random Forest - Selected model — best fit for non-linear progression patterns Gradient Boosting - Strong performance but higher complexity
Random Forest was selected as the final model because powerlifting progression is non-linear; athletes improve rapidly early in their career and plateau over time, which tree-based models capture better than linear approaches.
Model performance (Random Forest): R² (training): 0.953 R² (testing): 0.697
The gap between training and testing R² reflects the natural variability in how individual athletes progress. Performance is influenced by factors outside the dataset, like programming, nutrition, and injury history.
Tech stack Python Pandas, NumPy Scikit-learn
How to run
- Clone the repo
git clone https://github.com/mraysa80/powerlifting-progression-predictor.git
cd powerlifting-progression-predictor
- Install dependencies
pip install -r requirements.txt
- Download the dataset
A cleaned dataset (cleaned_powerlifting.csv) is included in this repo so you can run the calculator immediately.
For the most up-to-date data, download directly from https://openpowerlifting.gitlab.io/opl-csv/bulk-csv.html. Records are updated nightly. Replace the existing CSV with your new cleaned download.
- Run the calculator
python sppcapp.py
Author Raysa Morel B.S. Computer Science — Western Governors University