Skip to content
Dustin Apol. Projects
← All projects

Completed

Strong Workout App Analysis

An exploratory analysis of Strong workout logs using Python and an interactive dashboard to examine training frequency, exercise-level trends, and gaps in the recorded data.

Explore dashboard

Skills used

  • Defining analysis questions
  • Interpreting data
  • Reviewing assumptions
  • Dashboard design

What I’m learning

Python and pandas workflows, sensitivity analysis, and validating repeatable data updates. A key lesson: changing the comparison baseline can change the conclusion.

Developed with AI assistance. My role, implementation details, and evidence are described below.

Analysis preview showing 339 workouts, 27 recurring exercises, and the real lat pulldown estimated-strength series
Analysis preview generated from the original published workout snapshot. The chart shows recorded observations and estimated values, not tested maximums or a predetermined recovery outcome.

Exploring the questions in the data

This project explores my Strong app exports to understand workout frequency, exercise-level performance estimates, and gaps between recorded sessions. The aim is to learn from the data and discuss what the findings do and do not support, without assuming that every exercise improved or that a gap proves inactivity.

The initial export covered December 17, 2023 through October 18, 2026: 339 recorded workouts and 7,727 set rows. Later owner-uploaded exports can refresh the observations while keeping the analysis assumptions and limitations visible.

My role and implementation

I selected the personal dataset and directed the project questions and dashboard revisions. AI assistance supported implementation, review, documentation, and testing. The analysis uses Python, pandas, and NumPy, with a local Streamlit dashboard. The portfolio's interactive view uses React and a curated snapshot of those computed results; it does not require access to my private export or a running computer.

Making the comparisons explicit

Three audited invalid records are excluded. Equipment variants remain separate. Estimated one-rep max uses the best loaded set of 1–12 reps per exercise-session and the Epley formula. An exercise needs at least 15 qualifying sessions to enter the cohort. The first-five versus last-five comparison uses medians and a 5% reporting band, alongside sessions 6–10 and a narrower rep-window sensitivity check.

What the log shows

In the initial analysis of 27 recurring exercises, 11 improved, six were flat, and 10 declined under the primary rule; the median change was 0%. Replacing the opening five sessions with sessions 6–10 changes the split to seven improved, eight flat, and 12 declining. These labels describe reporting bands, not statistical significance. The choice of baseline can change the interpretation.

The longest gap spans 96 days between recorded workouts, but only four exercises have enough qualifying sessions on both sides. Missing records do not prove inactivity, and the selected comparisons do not establish physiological recovery or a causal effect of training volume.

Publishing results without publishing the original log

The public snapshot retains workout dates, exercise names, session-best performance, aggregate calendars, and comparison results. It excludes free-text notes, workout titles, exact workout times, duration, and the original set-by-set export. It is reduced personal data, not anonymous data. The private source remains unchanged. The public calculations reflect the latest owner-published upload rather than a live account connection.

Completed analysis, refreshable findings

The analysis and dashboard are complete as a portfolio project. Automated checks cover cleaning, formula boundaries, session selection, calendar counting, gap windows, sensitivity evidence, source refresh, and public packaging. The curated snapshot is checked against the original calculated results.

Visitors can explore the data and inspect the values behind the comparisons. The owner-only update page remains available to add newer Strong exports and refresh the findings. Keeping the observations current does not imply a promise of improvement or a particular fitness outcome.