Hevy-SL is a Streamlit app for the CSV export from the Hevy workout tracker. Hevy shows you what you lifted. I wanted to see whether I was getting stronger, so the app turns the raw log into strength, volume, and personal record charts.
How It Works
The app runs three calculations on every set in the export.
1. Estimated one-rep max
It uses the Epley formula to estimate a one-rep max (1RM) from any set:
\[1RM = weight \times (1 + \frac{reps}{30})\]That puts a set of 5 and a set of 12 on the same scale, so strength can be compared across rep ranges.
2. Training volume
Volume is weight times reps:
\[Volume = weight \times reps\]The app adds it up by muscle group (chest, back, legs, and so on) to show where the work is going.
3. Smoothing
Estimated maxes jump around from session to session, so the app applies an exponentially weighted moving average (EWMA):
\[\text{Smooth}(x)_t = \alpha \cdot x_t + (1-\alpha) \cdot \text{Smooth}(x)_{t-1}\]The smoothed line shows the trend instead of one good or bad day.
What’s in the App
- Workout dashboard: weekly volume heatmaps, muscle distribution charts, and set efficiency.
- Hall of Records: personal bests for every exercise, with a timeline of when each PR happened.
- Data view: filter by workout, set type, or muscle group, and export the result.
Hevy’s exports aren’t always clean, so the app normalizes date formats and handles missing values before it calculates anything. Every number is calculated per workout so it keeps its context.

