This tool allows you to quickly build your weightlifting programs, ensure you have proper weekly volume per muscle group , and balance it with the time you spend in a gym . You can build multi-week programs, plan your mesocycles, deload weeks, testing 1RM weeks, and see the weekly undulation of volume and intensity of each exercise on a graph.
Set the program name, create weeks and days, type the list of exercises for each day, putting each exercise on a new line, along with the number of sets and reps after slash (/) character, like this:
Squat / 3x3-5
Romanian Deadlift / 3x8
Autocomplete will help you with the exercise names. You can also create custom exercises if they're missing in the library.
On the right you'll see Weekly Stats , where you can see the number of sets per week per muscle group, whether you're in the recommended range (indicated by color), strength/hypertrophy split, and if you hover a mouse over the numbers - you'll see what exercises contribute to that number, and how much.
The exercise syntax supports RPEs , percentage of 1RM , rest timers, various progressive overload types, etc. Read more about the features in the docs !
When you're done, you can convert this program to Liftosaur program, and run what you planned in the gym, using the Liftosaur app !
To use this program:
Install Liftosaur app Copy the link to this program by clicking on below Import the link in the app, on the Choose Program screen. Week Stats
Total Sets: 95
Strength Sets: 49, 52%
Hypertrophy Sets: 46, 48%
Upper Sets: 58 (24s , 34h ) , 5d
Lower Sets: 37 (25s , 12h ) , 5d
Core Sets: 0
Push Sets: 33 (14s , 19h ) , 5d
Pull Sets: 35 (20s , 15h ) , 5d
Legs Sets: 32 (20s , 12h ) , 5d
Shoulders: 35↓ (18s , 17h ) , 5d
Triceps: 18↓ (7s , 11h ) , 4d
Back: 29↓ (17s , 12h ) , 5d
Abs: 0↑
Glutes: 26↓ (18s , 8h ) , 5d
Hamstrings: 19↓ (13s , 6h ) , 5d
Quadriceps: 31↓ (23s , 8h ) , 5d
Chest: 26↓ (12s , 14h ) , 5d
Biceps: 15↓ (7s , 8h ) , 5d
Calves: 17↓ (13s , 4h ) , 5d
Forearms: 13↓ (5s , 8h ) , 4d
{"maxWidth":2400,"url":"/planner","isLoggedIn":false}
{"exportedProgram":{"customExercises":{"hgfgzamc":{"name":"Deadlift Snatch Grip","types":["pull","lower","legs"],"id":"hgfgzamc","isDeleted":false,"vtype":"custom_exercise","meta":{"synergistMuscles":["Hamstrings","Adductor Magnus","Soleus","Trapezius Upper Fibers","Trapezius Middle Fibers","Trapezius Lower Fibers","Levator Scapulae","Deltoid Lateral"],"targetMuscles":["Gluteus Maximus","Quadriceps","Erector Spinae"],"bodyParts":[],"sortedEquipment":[]}},"nszljcre":{"name":"Chest Supported Row, Dumbbell","types":["pull","upper"],"id":"nszljcre","isDeleted":false,"vtype":"custom_exercise","meta":{"synergistMuscles":["Trapezius Lower Fibers","Deltoid Posterior","Teres Major","Biceps Brachii","Brachialis","Brachioradialis"],"targetMuscles":["Latissimus Dorsi","Trapezius Middle Fibers"],"bodyParts":[],"sortedEquipment":[]}}},"program":{"deletedExercises":[],"planner":{"name":"SBS RTR/RIR/HYP x5 080426","vtype":"planner","weeks":[{"name":"Week 1","days":[{"name":"Day 1","exerciseText":"main_rtf_logic / used: none / 0x1 0lb / progress: custom() {~\n if (week != 7 && week != 14 && week != 21) {\n if (completedReps[ns] > reps[ns] + 4) {\n rm1 = rm1 * 1.03\n } else if (completedReps[ns] < reps[ns] - 1) {\n rm1 = rm1 * 0.95\n } else if (completedReps[ns] < reps[ns]) {\n rm1 = rm1 * 0.98\n } else if (completedReps[ns] > reps[ns]) {\n rm1 = rm1 * (1.0 + ((completedReps[ns] - reps[ns]) * 0.005))\n }\n }\n~}\n\nmain_rir_logic / used: none / 0x1 0lb / progress: custom() {~\n if (week != 7 && week != 14 && week != 21) {\n if (completedReps[ns] < reps[ns] && completedReps[ns - 1] < reps[ns - 1]) {\n rm1 *= 0.95\n } else if (completedReps[ns] < reps[ns]) {\n rm1 *= 0.98\n } else if (completedReps >= reps) {\n if (completedRPE[ns] > RPE[ns]) {\n rm1 *= 0.98\n } else if (completedRPE[ns] - RPE[ns] >= 5) {\n rm1 *= 1.03\n } else {\n rm1 *= (1.0 + (RPE[ns] - completedRPE[ns]) * 0.005)\n }\n }\n }\n~}\n\nmain_hyp_logic / used: none / 0x1 0lb / progress: custom() {~\n if (week != 7 && week != 14 && week != 21) {\n if (completedReps[ns] > reps[ns] + 4) {\n rm1 = rm1 * 1.03\n } else if (completedReps[ns] < reps[ns] - 1) {\n rm1 = rm1 * 0.95\n } else if (completedReps[ns] < reps[ns]) {\n rm1 = rm1 * 0.98\n } else if (completedReps[ns] > reps[ns]) {\n rm1 = rm1 * (1.0 + ((completedReps[ns] - reps[ns]) * 0.005))\n }\n }\n~}\n\nAcc[1-21] / used: none / 0x1 0lb / progress: custom() {~\n for (var.i in completedReps) {\n weights[var.i] = completedWeights[var.i]\n }\n~}\n\nmain_rtf / used: none / 4x5, 1x10+ / 70% / progress: custom() { ...main_rtf_logic }\nmain_rir / used: none / 4x5, 1x5 @7+ / 70% / progress: custom() { ...main_rir_logic }\nmain_hyp / used: none / 3x10, 1x12+ / 70% / 240s / warmup: 1x5 45lb, 1x5 70% / progress: custom() { ...main_hyp_logic }\naux_rtf / used: none / 3x7, 1x14+ / 60% / progress: custom() { ...main_rtf_logic }\naux_rir / used: none / 4x7, 1x7 @7+ / 60% / progress: custom() { ...main_rir_logic }\naux_hyp / used: none / 3x12, 1x15+ / 65% / 180s / warmup: 1x5 45lb, 1x5 70% / progress: custom() { ...main_hyp_logic }\n\nmain_rir: Squat, Barbell[1-21] / ...main_rir\naux_hyp: Romanian Deadlift, Barbell[1-21] / ...aux_hyp\naux_hyp: Incline Bench Press, Barbell[1-21] / ...aux_hyp\n\nAcc: Pull Up[1-21] / ...Acc / 3x5 0lb, 2x5 30lb\nAcc: Bicep Curl, Barbell[1-21] / ...Acc / 3x15 / 30lb"},{"name":"Day 2","exerciseText":"main_rtf: Bench Press, Barbell[1-21] / ...main_rtf\nmain_hyp: Leg Press, Leverage Machine[1-21] / ...main_hyp\naux_hyp: Overhead Press, Dumbbell[1-21] / ...aux_hyp\n\nAcc: Chest Supported Row, Dumbbell[1-21] / ...Acc / 3x10 / 30lb\nAcc: Hammer Curl, Dumbbell[1-21] / ...Acc / 3x15 / 30lb"},{"name":"Day 3","exerciseText":"main_rir: Deadlift, Barbell[1-21] / ...main_rir\naux_rtf: Bench Press Close Grip, Barbell[1-21] / ...aux_rtf\naux_rir: Bulgarian Split Squat, Dumbbell[1-21] / ...aux_rir\n\nAcc: Chin Up[1-21] / ...Acc / 3x5 0lb, 2x5 30lb"},{"name":"Day 4","exerciseText":"main_rtf: Overhead Press, Barbell[1-21] / ...main_rtf\nmain_hyp: Hack Squat[1-21] / ...main_hyp\naux_hyp: Bench Press, Dumbbell[1-21] / ...aux_hyp\n\nAcc: Bent Over Row, Barbell[1-21] / ...Acc / 3x10 / 30lb\nAcc: Triceps Extension, Cable[1-21] / ...Acc / 3x15 / 20lb"},{"name":"Day 5","exerciseText":"aux_rir: Front Squat, Barbell[1-21] / ...aux_rir\naux_rir: Deadlift Snatch Grip, Barbell[1-21] / ...aux_rir\naux_rtf: Push Press, Barbell[1-21] / ...aux_rtf\n\nAcc: Reverse Fly[1-21] / ...Acc / 3x15 / 55lb"}]},{"name":"Week 2","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x4, 1x8+ / 75%\nmain_rir / used: none / 4x4, 1x4 @8+ / 75%\nmain_hyp / used: none / 3x9, 1x11+ / 72.5% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x6, 1x12+ / 65%\naux_rir / used: none / 4x6, 1x6 @7+ / 65%\naux_hyp / used: none / 3x11, 1x13+ / 67.5% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 3","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x3, 1x6+ / 80%\nmain_rir / used: none / 4x3, 1x3 @8+ / 80%\nmain_hyp / used: none / 3x8, 1x10+ / 75% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x5, 1x10+ / 70%\naux_rir / used: none / 4x5, 1x5 @7+ / 70%\naux_hyp / used: none / 3x10, 1x12+ / 70% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 4","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x5, 1x9+ / 72.5%\nmain_rir / used: none / 4x5, 1x5 @7+ / 72.5%\nmain_hyp / used: none / 3x9, 1x11+ / 72.5% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x7, 1x13+ / 62.5%\naux_rir / used: none / 4x7, 1x7 @7+ / 62.5%\naux_hyp / used: none / 3x11, 1x13+ / 67.5% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 5","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x4, 1x7+ / 77.5%\nmain_rir / used: none / 4x4, 1x4 @8+ / 77.5%\nmain_hyp / used: none / 3x8, 1x10+ / 75% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x6, 1x11+ / 67.5%\naux_rir / used: none / 4x6, 1x6 @7+ / 67.5%\naux_hyp / used: none / 3x10, 1x12+ / 70% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 6","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x3, 1x5+ / 82.5%\nmain_rir / used: none / 4x3, 1x3 @8+ / 82.5%\nmain_hyp / used: none / 3x7, 1x9+ / 77.5% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x5, 1x9+ / 72.5%\naux_rir / used: none / 4x5, 1x5 @7+ / 72.5%\naux_hyp / used: none / 3x9, 1x11+ / 72.5% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 7","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 5x5 / 60%\nmain_rir / used: none / 5x5 / 60%\nmain_hyp / used: none / 4x5 / 60% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 5x5 / 50%\naux_rir / used: none / 5x5 / 50%\naux_hyp / used: none / 4x5 / 55% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 8","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x4, 1x8+ / 75%\nmain_rir / used: none / 4x4, 1x4 @8+ / 75%\nmain_hyp / used: none / 3x9, 1x11+ / 72.5% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x6, 1x12+ / 65%\naux_rir / used: none / 4x6, 1x6 @7+ / 65%\naux_hyp / used: none / 3x11, 1x13+ / 67.5% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 9","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x3, 1x6+ / 80%\nmain_rir / used: none / 4x3, 1x3 @8+ / 80%\nmain_hyp / used: none / 3x8, 1x10+ / 75% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x5, 1x10+ / 70%\naux_rir / used: none / 4x5, 1x5 @7+ / 70%\naux_hyp / used: none / 3x10, 1x12+ / 70% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 10","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x2, 1x4+ / 85%\nmain_rir / used: none / 4x2, 1x2 @9+ / 85%\nmain_hyp / used: none / 3x7, 1x9+ / 77.5% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x4, 1x8+ / 75%\naux_rir / used: none / 4x4, 1x4 @8+ / 75%\naux_hyp / used: none / 3x9, 1x11+ / 72.5% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 11","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x4, 1x7+ / 77.5%\nmain_rir / used: none / 4x4, 1x4 @8+ / 77.5%\nmain_hyp / used: none / 3x8, 1x10+ / 75% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x6, 1x11+ / 67.5%\naux_rir / used: none / 4x6, 1x6 @7+ / 67.5%\naux_hyp / used: none / 3x10, 1x12+ / 70% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 12","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x3, 1x5+ / 82.5%\nmain_rir / used: none / 4x3, 1x3 @8+ / 82.5%\nmain_hyp / used: none / 3x7, 1x9+ / 77.5% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x5, 1x9+ / 72.5%\naux_rir / used: none / 4x5, 1x5 @7+ / 72.5%\naux_hyp / used: none / 3x9, 1x11+ / 72.5% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 13","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x2, 1x3+ / 87.5%\nmain_rir / used: none / 4x2, 1x2 @9+ / 87.5%\nmain_hyp / used: none / 3x6, 1x8 / 80% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x4, 1x7+ / 77.5%\naux_rir / used: none / 4x4, 1x4 @8+ / 77.5%\naux_hyp / used: none / 3x8, 1x10+ / 75% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 14","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 5x5 / 60%\nmain_rir / used: none / 5x5 / 60%\nmain_hyp / used: none / 4x5, 1x5 / 60% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 5x5 / 50%\naux_rir / used: none / 5x5 / 50%\naux_hyp / used: none / 4x5 / 55% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 15","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x3, 1x6+ / 80%\nmain_rir / used: none / 4x3, 1x3 @8+ / 80%\nmain_hyp / used: none / 3x8, 1x10+ / 75% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x5, 1x10+ / 70%\naux_rir / used: none / 4x5, 1x5 @7+ / 70%\naux_hyp / used: none / 3x10, 1x12+ / 70% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 16","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x2, 1x4+ / 85%\nmain_rir / used: none / 4x2, 1x2 @9+ / 85%\nmain_hyp / used: none / 3x7, 1x9+ / 77.5% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x4, 1x8+ / 75%\naux_rir / used: none / 4x4, 1x4 @8+ / 75%\naux_hyp / used: none / 3x9, 1x11+ / 72.5% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 17","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x1, 1x2+ / 90%\nmain_rir / used: none / 4x1, 1x1 @9+ / 90%\nmain_hyp / used: none / 3x6, 1x8 / 80% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x3, 1x6+ / 80%\naux_rir / used: none / 4x3, 1x3 @8+ / 80%\naux_hyp / used: none / 3x8, 1x10+ / 75% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 18","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x2, 1x4+ / 85%\nmain_rir / used: none / 4x2, 1x2 @9+ / 85%\nmain_hyp / used: none / 3x7, 1x9+ / 77.5% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x4, 1x8+ / 75%\naux_rir / used: none / 4x4, 1x4 @8+ / 75%\naux_hyp / used: none / 3x9, 1x11+ / 72.5% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 19","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x1, 1x2+ / 90%\nmain_rir / used: none / 4x1, 1x1 @9+ / 90%\nmain_hyp / used: none / 3x6, 1x8 / 80% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x3, 1x6+ / 80%\naux_rir / used: none / 4x3, 1x3 @8+ / 80%\naux_hyp / used: none / 3x8, 1x10+ / 75% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 20","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 4x1, 1x1+ / 95%\nmain_rir / used: none / 4x1, 1x1 @9+ / 95%\nmain_hyp / used: none / 3x5, 1x6 / 82.5% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 4x2, 1x4+ / 85%\naux_rir / used: none / 4x2, 1x2 @9+ / 85%\naux_hyp / used: none / 3x7, 1x9+ / 77.5% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]},{"name":"Week 21","days":[{"name":"Day 1","exerciseText":"main_rtf / used: none / 5x5 / 60%\nmain_rir / used: none / 5x5 / 60%\nmain_hyp / used: none / 4x5 / 60% / 240s / warmup: 1x5 45lb, 1x5 70%\naux_rtf / used: none / 5x5 / 50%\naux_rir / used: none / 5x5 / 50%\naux_hyp / used: none / 4x5 / 55% / 180s / warmup: 1x5 45lb, 1x5 70%"},{"name":"Day 2","exerciseText":""},{"name":"Day 3","exerciseText":""},{"name":"Day 4","exerciseText":""},{"name":"Day 5","exerciseText":""}]}]},"exercises":[],"vtype":"program","days":[],"deletedDays":[],"url":"","isMultiweek":false,"name":"SBS RTR/RIR/HYP x5 080426","weeks":[],"nextDay":1,"shortDescription":"","clonedAt":1785880126528,"description":"","tags":[],"deletedWeeks":[],"author":"","id":"lszhjhin"},"version":"20260702120000","settings":{"timers":{"warmup":90,"workout":180,"reminder":900},"units":"lb"}},"shouldSyncProgram":false,"isMobile":false,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","revisions":[]}