How Junk Volume Detector works
Methodology for the Junk Volume Detector: Schoenfeld dose-response, MRV thresholds, and intensity gating.
Scope
Classifies sets in a multi-week CSV training log as either effective or junk based on weekly volume-load progression, exercise volume thresholds, and per-week relative intensity. Designed for honest self-audit, not coaching prescription.
Formula
For each (week, exercise) pair:
weekly_volume_load = sum(sets × reps × weight)delta_pct = (load_w − load_prev) / load_prev × 100
Set classification rules:
- If weekly sets > 12 and delta_pct < 2.5% for ≥2 consecutive weeks, the excess sets above 12 are flagged as junk (volume past MRV without overload).
- Sets performed at < 60% of the heaviest single set on that exercise that same week are flagged as low-intensity junk (Israetel framework: insufficient mechanical tension).
Coefficients
| Parameter | Value | Source |
|---|---|---|
| MRV weekly sets | 12 | Schoenfeld 2017 dose-response inflection |
| Min weekly progression | 2.5% | SWC for volume load |
| Low-intensity threshold | 60% of week's top weight | Israetel / RP MEV/MAV/MRV gates |
Data sources
- Schoenfeld BJ, Ogborn D, Krieger JW. Dose-response relationship between weekly resistance training volume and increases in muscle mass: a systematic review and meta-analysis. J Sports Sci. 2017;35(11):1073-1082. — PMID 27433992. The 10-set/week threshold above which marginal hypertrophy gains taper.
- Helms ER, Valdez A, Morgan A. The Muscle and Strength Pyramid: Training. 2nd ed. 2019. — Practical implementation of MEV/MAV/MRV gates.
- Israetel M, Davis J, Case J, Hoffmann J. Scientific Principles of Hypertrophy Training. Renaissance Periodization; 2021. — Junk volume framework above MRV.
Assumptions
- The CSV has at least 3 weeks of data — fewer weeks can't show progression stalls reliably.
- Exercise names are consistent across weeks (the parser keys on exact match).
- Weights are kg; pounds will inflate "junk" detection without converting first.
Approximation range
The classifier identifies obvious junk (clearly above MRV without progression, or sets at warm-up intensity logged as work). It can't distinguish between technique-development light sets and true junk — context matters.
Limitations
- Doesn't read RPE or proximity-to-failure — a set at 70% performed close to failure is more effective than the same set with 5+ reps in reserve.
- Doesn't account for muscle group balance (chest sets and tricep sets both stimulate triceps).
- Assumes per-exercise volume tracking; people running RP-style mesos may legitimately spike past MRV in week 4 before deload.
Reproducibility
Squat: week 1 = 3×5×100 + 2×5×80 = 2300 kg-reps, 5 sets. Week 2 = 3×5×102.5 + 3×5×80 = 2738 kg-reps, 6 sets. Δ = +19% — effective. Week 3 = 3×5×103 + 4×5×80 = 3145 kg-reps, 7 sets. Δ = +15% — effective. Sets < 60% of week's top (80 vs 100) are flagged as low-intensity junk.
Change log
- 2026-05-08: methodology page first published.
Related tools
- Workout Volume Calculator — Single-session volume tally.
- Progressive Overload Planner — Plan the progression a CSV log should show.
Worked example
Computed by the same engine bundle served at
/engines/junk-volume-detector.js. Re-runnable: the values below
are the literal output of compute(engineInput).
Input
- tool
- junk_volume_detector
- csv_log
- week,exercise,sets,reps,weight 1,squat,3,5,100 2,squat,3,5,102.5 3,squat,3,5,103
Output
- totalSets
- 9
- effectiveSets
- 9
- junkSets
- 0
- junkPctOverall
- 0
- perExercise
- [{"exercise":"squat","totalSets":9,"effectiveSets":9,"junkSets":0,"junkPct":0,"weeklyVolumeLoad":[{"week":1,"load":1500,"deltaPct":0},{"week":2,"load":1538,"deltaPct":2.5},{"week":3,"load":1545,"deltaPct":0.5}],"reasonsObserved":[]}]
FAQ
- What does the Junk Volume Detector calculate?
- Methodology for the Junk Volume Detector: Schoenfeld dose-response, MRV thresholds, and intensity gating.
- What inputs does the Junk Volume Detector require?
- It takes the following inputs: csv log.
- What does the Junk Volume Detector return?
- It returns: totalSets, effectiveSets, junkSets, junkPctOverall, perExercise.
- Is the Junk Volume Detector free to use?
- Yes. It runs entirely client-side in your browser with no signup, and is also importable as an ES module engine for AI agents.
- What category does the Junk Volume Detector belong to?
- Planning. See the methodology above for formulas, assumptions, and limitations.