Loading...
Back to the blog
By Juriy Zaytsev

How does PRzilla calculate your fitness level?

PRzilla turns Rx benchmark results into a current estimate, then gives recent consistency more influence as your training history grows.

Your Fitness Level in PRzilla combines your recent benchmark WOD performances. Each eligible workout starts on the L1-L10 scale used on individual workout pages. Difficulty and profile adjustments are applied afterward, and the current aggregate is not clamped back to L10.

The estimate gets more stable as you log more benchmark work. With one or two eligible scores, it has little evidence and should be read as an early estimate. From three scores onward, recency weighting applies. From five onward, the single lowest adjusted result is removed.

Here is what the current calculation actually does.

First, each workout gets its own level

PRzilla starts with eligible Rx scores from standard benchmark workouts. Scaled scores and scores with an unknown Rx status are not graded into Fitness Level. Custom WODs are excluded by default.

Each workout has nine thresholds that divide results into ten performance levels. The scoring unit can be time, reps, rounds, load, or distance. A 12-minute result on one workout may be L7 while the same time on another is L3 because the amount and difficulty of work are different.

The grader also respects the score's context:

  • It uses a gender-specific benchmark curve when the workout has one.
  • It uses the correct vest or no-vest curve where separate curves exist.
  • On a vest-required workout without a separate no-vest curve, an explicitly logged no-vest effort is graded against a 15% harder curve.
  • On a dual-score time-cap workout, a capped athlete is graded by completed work while a finisher is graded by time. I explain that split in Why capped and finished workouts score differently.

The result of this step is a whole-workout level from L1 through L10.

The catalog difficulty changes that workout's contribution

The service then applies the workout's reviewed difficulty classification. Medium and Hard workouts keep their raw level. Easy workouts subtract 0.5, with a floor of L1. Very Hard workouts add 0.5, and Extremely Hard workouts add 1.5.

That adjusted workout level is what enters the current-level calculation. The difficulty adjustment belongs to this aggregate; it does not rewrite the stored score or the workout's benchmark ladder.

Recent consistency beats one lifetime peak

Once you have at least three eligible scores, PRzilla looks across the six most recent months in which you recorded qualifying results. It takes up to your ten most recent scores, ordered by date.

If there are at least five scores in that group, the single lowest adjusted result is removed. Only one score comes out, so a run of inconsistent performances still pulls the result down.

The remaining scores receive exponentially smaller weights as they get older:

  • Most recent: 1.00
  • Next: 0.85
  • Third: 0.85², or 0.7225
  • Fourth: 0.85³, and so on

PRzilla divides the weighted sum of the levels by the sum of those weights. The selection stays recent, and the weighting makes each older score count a little less.

With fewer than three eligible scores, the service uses a fallback based on recent monthly averages. Newer active months get more weight, and months with more qualifying workouts get a modest volume weight. That lets Fitness Level show an early estimate without pretending one result is a stable body of evidence.

Profile adjustments are separate and explicit

After calculating the base level, PRzilla can apply the profile adjustment configured for the gender and date of birth you entered. The current service uses an 18% fitness adjustment for the female profile and adds 0.8 percentage points for each year after age 30, rounded before it is applied. Male and Other profiles have no configured gender adjustment.

The final effect is deliberately damped:

adjusted level = base level + (profile adjustment × base level × 0.3)

The percentage in that formula is expressed as a decimal. An 18% profile adjustment therefore adds 5.4% of the base level, not 18%. Body weight is not used in this particular Fitness Level calculation. The service does not clamp the adjusted aggregate, so an unusually high base level with positive adjustments can display above L10.

Why the chart and the headline number can differ

The monthly chart shows the average adjusted workout level for each month. The large current number uses the recent-score weighting, ten-score limit, and one-low-score removal described above.

They should move in the same general direction, but they are not the same calculation. A month with many older results can be prominent on the chart while having less influence on today's headline number.

The current number can also change when PRzilla corrects a benchmark ladder. Levels are calculated from the stored score and the current ladder rather than permanently stamped onto the result. That is why the 12:21 JT score changed from Rookie to Intermediate without anyone logging the workout again.

I want the number to be open to inspection. If it surprises you, start with the Rx benchmarks that contributed, when you logged them, and the ladder each workout used. Those inputs show whether the difference came from the benchmark, recency weighting, or profile adjustment.