Skip to content

Repository files navigation

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

  1. Clone the repo

git clone https://github.com/mraysa80/powerlifting-progression-predictor.git

cd powerlifting-progression-predictor

  1. Install dependencies

pip install -r requirements.txt

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

  1. Run the calculator

python sppcapp.py

Author Raysa Morel B.S. Computer Science — Western Governors University

About

ML model to predict powerlifting progression using OpenPowerlifting data

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages