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. Add New Week Duplicate Week Add Week Description
Add Day Description
Delete Day
Add Day Description
Delete Day
Add Day Description
Delete Day
Add Day Description
Delete Day
Add Day Description
Delete Day
Add Day
Week Stats Total Sets: 97
Strength Sets: 22, 23%
Hypertrophy Sets: 75, 77%
Upper Sets: 65 (15s , 50h ), 3d Lower Sets: 32 (7s , 25h ), 3d Core Sets: 0
Push Sets: 35 (10s , 25h ), 2d Pull Sets: 31 (6s , 25h ), 2d Legs Sets: 31 (6s , 25h ), 2d Shoulders: 33↓ (10s , 23h ), 3d Triceps: 21↓ (5s , 16h ), 3d Glutes: 23↓ (7s , 16h ), 3d Hamstrings: 19↓ (4s , 15h ), 3d Quadriceps: 18↓ (7s , 11h ), 3d Biceps: 20↓ (3s , 17h ), 2d Calves: 16↓ (4s , 12h ), 3d Forearms: 16↓ (3s , 13h ), 2d {"maxWidth":2400,"url":"/planner"}
{"exportedProgram":{"customExercises":{},"program":{"weeks":[{"name":"Week 1","days":[{"id":"btiqozbf"},{"id":"epmudmwu"},{"id":"zpjzrckx"},{"id":"rvzxjdmz"},{"id":"dmhzfmnd"},{"id":"lkwcvizk"}],"id":"xwkegjuw"}],"author":"/u/metallicadpa","clonedAt":1741221873885,"description":"PPL program for beginners balancing \"bro\" muscles, but also giving enough intensity in the main movements","shortDescription":"Beginner Push/Pull/Legs split","url":"https://www.reddit.com/r/Fitness/comments/37ylk5/a_linear_progression_based_ppl_program_for/","tags":[],"exercises":[{"quickAddSets":false,"variationExpr":"day == 1 ? 1 : 1","exerciseType":{"equipment":"barbell","id":"deadlift"},"variations":[{"sets":[{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false}]}],"name":"Deadlift","id":"xxkwtfhj","state":{"successes":0,"failures":0},"finishDayExpr":"// progress: lp(10lb, 1, 0, 10%, 1, 0)\nif (completedReps >= reps && completedRPE <= RPE) {\n state.successes += 1;\n if (state.successes >= 1) {\n weights += 10lb\n state.successes = 0\n state.failures = 0\n }\n}\nif (!(completedReps >= reps && completedRPE <= RPE)) {\n state.failures += 1;\n if (state.failures >= 1) {\n weights -= 10%\n state.failures = 0\n state.successes = 0\n }\n}","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 1 ? 1 : day == 4 ? 2 : 1","exerciseType":{"equipment":"cable","id":"latPulldown"},"variations":[{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]}],"name":"Lat Pulldown","id":"jaretsbx","state":{"successes":0,"failures":0},"finishDayExpr":"// progress: lp(5lb, 1, 0, 10%, 1, 0)\nif (completedReps >= reps && completedRPE <= RPE) {\n state.successes += 1;\n if (state.successes >= 1) {\n weights += 5lb\n state.successes = 0\n state.failures = 0\n }\n}\nif (!(completedReps >= reps && completedRPE <= RPE)) {\n state.failures += 1;\n if (state.failures >= 1) {\n weights -= 10%\n state.failures = 0\n state.successes = 0\n }\n}","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 1 ? 1 : day == 4 ? 2 : 1","exerciseType":{"equipment":"cable","id":"seatedRow"},"variations":[{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]}],"name":"Seated Row","id":"ljreistx","state":{"successes":0,"failures":0},"finishDayExpr":"// progress: lp(5lb, 1, 0, 10%, 1, 0)\nif (completedReps >= reps && completedRPE <= RPE) {\n state.successes += 1;\n if (state.successes >= 1) {\n weights += 5lb\n state.successes = 0\n state.failures = 0\n }\n}\nif (!(completedReps >= reps && completedRPE <= RPE)) {\n state.failures += 1;\n if (state.failures >= 1) {\n weights -= 10%\n state.failures = 0\n state.successes = 0\n }\n}","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 1 ? 1 : day == 4 ? 2 : 1","exerciseType":{"equipment":"cable","id":"facePull"},"variations":[{"sets":[{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false}]}],"name":"Face Pull","id":"rgzvgyzd","state":{},"finishDayExpr":"","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 1 ? 1 : day == 4 ? 2 : 1","exerciseType":{"equipment":"dumbbell","id":"hammerCurl"},"variations":[{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]}],"name":"Hammer Curl","id":"rsccecnk","state":{},"finishDayExpr":"","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 1 ? 1 : day == 4 ? 2 : 1","exerciseType":{"equipment":"dumbbell","id":"bicepCurl"},"variations":[{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]}],"name":"Bicep Curl","id":"qiszavhw","state":{},"finishDayExpr":"","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 2 ? 1 : day == 5 ? 2 : 1","exerciseType":{"equipment":"barbell","id":"benchPress"},"variations":[{"sets":[{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":true,"repsExpr":"5","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]}],"name":"Bench Press","id":"mvahcali","state":{"successes":0,"failures":0},"finishDayExpr":"// progress: lp(5lb, 1, 0, 10%, 1, 0)\nif (completedReps >= reps && completedRPE <= RPE) {\n state.successes += 1;\n if (state.successes >= 1) {\n weights += 5lb\n state.successes = 0\n state.failures = 0\n }\n}\nif (!(completedReps >= reps && completedRPE <= RPE)) {\n state.failures += 1;\n if (state.failures >= 1) {\n weights -= 10%\n state.failures = 0\n state.successes = 0\n }\n}","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 2 ? 1 : day == 5 ? 2 : 1","exerciseType":{"equipment":"barbell","id":"overheadPress"},"variations":[{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":true,"repsExpr":"5","logRpe":false,"askWeight":false}]}],"name":"Overhead Press","id":"elolquxy","state":{"successes":0,"failures":0},"finishDayExpr":"// progress: lp(5lb, 1, 0, 10%, 1, 0)\nif (completedReps >= reps && completedRPE <= RPE) {\n state.successes += 1;\n if (state.successes >= 1) {\n weights += 5lb\n state.successes = 0\n state.failures = 0\n }\n}\nif (!(completedReps >= reps && completedRPE <= RPE)) {\n state.failures += 1;\n if (state.failures >= 1) {\n weights -= 10%\n state.failures = 0\n state.successes = 0\n }\n}","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 2 ? 1 : day == 5 ? 2 : 1","exerciseType":{"equipment":"dumbbell","id":"inclineBenchPress"},"variations":[{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]}],"name":"Incline Bench Press","id":"dhmdlcap","state":{},"finishDayExpr":"","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 2 ? 1 : day == 5 ? 2 : 1","exerciseType":{"equipment":"cable","id":"tricepsPushdown"},"variations":[{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]}],"name":"Triceps Pushdown","id":"bvgucevv","state":{},"finishDayExpr":"","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 2 ? 1 : day == 5 ? 2 : 1","exerciseType":{"equipment":"dumbbell","id":"tricepsExtension"},"variations":[{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]}],"name":"Triceps Extension","id":"gryeznac","state":{},"finishDayExpr":"","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 2 ? 1 : day == 5 ? 2 : 1","exerciseType":{"equipment":"dumbbell","id":"lateralRaise"},"variations":[{"sets":[{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false},{"weightExpr":"50%","isAmrap":false,"repsExpr":"20","logRpe":false,"askWeight":false}]}],"name":"Lateral Raise","id":"tqwukany","state":{},"finishDayExpr":"","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 3 ? 1 : day == 6 ? 2 : 1","exerciseType":{"equipment":"barbell","id":"squat"},"variations":[{"sets":[{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false}]}],"name":"Squat","id":"snxzbrtu","state":{"successes":0,"failures":0},"finishDayExpr":"// progress: lp(5lb, 1, 0, 10%, 1, 0)\nif (completedReps >= reps && completedRPE <= RPE) {\n state.successes += 1;\n if (state.successes >= 1) {\n weights += 5lb\n state.successes = 0\n state.failures = 0\n }\n}\nif (!(completedReps >= reps && completedRPE <= RPE)) {\n state.failures += 1;\n if (state.failures >= 1) {\n weights -= 10%\n state.failures = 0\n state.successes = 0\n }\n}","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 3 ? 1 : day == 6 ? 2 : 1","exerciseType":{"equipment":"barbell","id":"romanianDeadlift"},"variations":[{"sets":[{"weightExpr":"78.6%","isAmrap":false,"repsExpr":"8","logRpe":false,"askWeight":false},{"weightExpr":"78.6%","isAmrap":false,"repsExpr":"8","logRpe":false,"askWeight":false},{"weightExpr":"78.6%","isAmrap":false,"repsExpr":"8","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"78.6%","isAmrap":false,"repsExpr":"8","logRpe":false,"askWeight":false},{"weightExpr":"78.6%","isAmrap":false,"repsExpr":"8","logRpe":false,"askWeight":false},{"weightExpr":"78.6%","isAmrap":false,"repsExpr":"8","logRpe":false,"askWeight":false}]}],"name":"Romanian Deadlift","id":"niltmexg","state":{"successes":0,"failures":0},"finishDayExpr":"// progress: lp(5lb, 1, 0, 10%, 1, 0)\nif (completedReps >= reps && completedRPE <= RPE) {\n state.successes += 1;\n if (state.successes >= 1) {\n weights += 5lb\n state.successes = 0\n state.failures = 0\n }\n}\nif (!(completedReps >= reps && completedRPE <= RPE)) {\n state.failures += 1;\n if (state.failures >= 1) {\n weights -= 10%\n state.failures = 0\n state.successes = 0\n }\n}","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 3 ? 1 : day == 6 ? 2 : 1","exerciseType":{"equipment":"leverageMachine","id":"legPress"},"variations":[{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]}],"name":"Leg Press","id":"virmhmnf","state":{"successes":0,"failures":0},"finishDayExpr":"// progress: lp(5lb, 1, 0, 10%, 1, 0)\nif (completedReps >= reps && completedRPE <= RPE) {\n state.successes += 1;\n if (state.successes >= 1) {\n weights += 5lb\n state.successes = 0\n state.failures = 0\n }\n}\nif (!(completedReps >= reps && completedRPE <= RPE)) {\n state.failures += 1;\n if (state.failures >= 1) {\n weights -= 10%\n state.failures = 0\n state.successes = 0\n }\n}","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 3 ? 1 : day == 6 ? 2 : 1","exerciseType":{"equipment":"leverageMachine","id":"seatedLegCurl"},"variations":[{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]}],"name":"Seated Leg Curl","id":"peooqvax","state":{"successes":0,"failures":0},"finishDayExpr":"// progress: lp(5lb, 1, 0, 10%, 1, 0)\nif (completedReps >= reps && completedRPE <= RPE) {\n state.successes += 1;\n if (state.successes >= 1) {\n weights += 5lb\n state.successes = 0\n state.failures = 0\n }\n}\nif (!(completedReps >= reps && completedRPE <= RPE)) {\n state.failures += 1;\n if (state.failures >= 1) {\n weights -= 10%\n state.failures = 0\n state.successes = 0\n }\n}","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 3 ? 1 : day == 6 ? 2 : 1","exerciseType":{"equipment":"dumbbell","id":"standingCalfRaise"},"variations":[{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]},{"sets":[{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false},{"weightExpr":"73.31%","isAmrap":false,"repsExpr":"10","logRpe":false,"askWeight":false}]}],"name":"Standing Calf Raise","id":"xateooxd","state":{},"finishDayExpr":"","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false},{"quickAddSets":false,"variationExpr":"day == 4 ? 1 : 1","exerciseType":{"equipment":"barbell","id":"bentOverRow"},"variations":[{"sets":[{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":false,"repsExpr":"5","logRpe":false,"askWeight":false},{"weightExpr":"86.53%","isAmrap":true,"repsExpr":"5","logRpe":false,"askWeight":false}]}],"name":"Bent Over Row","id":"ebncckpu","state":{"successes":0,"failures":0},"finishDayExpr":"// progress: lp(5lb, 1, 0, 10%, 1, 0)\nif (completedReps >= reps && completedRPE <= RPE) {\n state.successes += 1;\n if (state.successes >= 1) {\n weights += 5lb\n state.successes = 0\n state.failures = 0\n }\n}\nif (!(completedReps >= reps && completedRPE <= RPE)) {\n state.failures += 1;\n if (state.failures >= 1) {\n weights -= 10%\n state.failures = 0\n state.successes = 0\n }\n}","descriptions":[""],"descriptionExpr":"1","enableRpe":false,"enableRepRanges":false}],"name":"Metallicadpa PPL","days":[{"name":"Monday - Pull","exercises":[{"id":"xxkwtfhj"},{"id":"jaretsbx"},{"id":"ljreistx"},{"id":"rgzvgyzd"},{"id":"rsccecnk"},{"id":"qiszavhw"}],"id":"btiqozbf"},{"name":"Tuesday - Push","exercises":[{"id":"mvahcali"},{"id":"elolquxy"},{"id":"dhmdlcap"},{"id":"bvgucevv"},{"id":"gryeznac"},{"id":"tqwukany"}],"id":"epmudmwu"},{"name":"Wednesday - Legs","exercises":[{"id":"snxzbrtu"},{"id":"niltmexg"},{"id":"virmhmnf"},{"id":"peooqvax"},{"id":"xateooxd"}],"id":"zpjzrckx"},{"name":"Friday - Pull","exercises":[{"id":"ebncckpu"},{"id":"jaretsbx"},{"id":"ljreistx"},{"id":"rgzvgyzd"},{"id":"rsccecnk"},{"id":"qiszavhw"}],"id":"rvzxjdmz"},{"name":"Saturday - Push","exercises":[{"id":"elolquxy"},{"id":"mvahcali"},{"id":"dhmdlcap"},{"id":"bvgucevv"},{"id":"gryeznac"},{"id":"tqwukany"}],"id":"dmhzfmnd"},{"name":"Sunday - Legs","exercises":[{"id":"snxzbrtu"},{"id":"niltmexg"},{"id":"virmhmnf"},{"id":"xateooxd"},{"id":"peooqvax"}],"id":"lkwcvizk"}],"id":"metallicadpappl","planner":{"name":"Metallicadpa PPL","weeks":[{"name":"Week 1","days":[{"name":"Monday - Pull","exerciseText":"Deadlift / 1x5+ / progress: custom(failCount: 0) {~\n if (completedReps < reps) {\n state.failCount += 1;\n if (state.failCount >= 3) {\n weights *= 0.9;\n state.failCount = 0;\n }\n } else {\n state.failCount = 0;\n weights += 5kg;\n }\n~}\nPullover, Dumbbell / 3x8-12 / progress: dp(2.5kg, 8, 12)\nIncline Row, Dumbbell / 3x8-12 / progress: dp(2.5kg, 8, 12)\nFace Pull, Cable / 4x10-12 / progress: dp(2.5kg, 10, 12)\nHammer Curl / 4x8-12 / progress: dp(2.5kg, 8, 12)\nBicep Curl, EZ Bar / 4x8-12 / progress: dp(2.5kg, 8, 12)"},{"name":"Tuesday - Push","exerciseText":"Bench Press / 4x5, 1x5+ / progress: custom(failCount: 0) {~\n if (completedReps < reps) {\n state.failCount += 1;\n if (state.failCount >= 3) {\n weights *= 0.9;\n state.failCount = 0;\n }\n } else {\n state.failCount = 0;\n weights += 2.5kg;\n }\n~}\nOverhead Press / 3x10 / progress: custom(failCount: 0) {~\n if (completedReps < reps) {\n state.failCount += 1;\n if (state.failCount >= 3) {\n weights *= 0.9;\n state.failCount = 0;\n }\n } else {\n state.failCount = 0;\n weights += 2.5kg;\n }\n~}\nIncline Bench Press, Dumbbell / 3x8-12 / progress: dp(2.5kg, 8, 12)\nTriceps Pushdown / 3x8-12 / progress: dp(2.5kg, 8, 12)\nSkullcrusher, EZ Bar / 3x8-12 / progress: dp(2.5kg, 8, 12)\nLateral Raise / 6x12-14 / progress: dp(2.5kg, 12, 14)"},{"name":"Wednesday - Legs","exerciseText":"Squat / 2x5, 1x5+ / progress: custom(failCount: 0) {~\n if (completedReps < reps) {\n state.failCount += 1;\n if (state.failCount >= 3) {\n weights *= 0.9;\n state.failCount = 0;\n }\n } else {\n state.failCount = 0;\n weights += 2.5kg;\n }\n~}\nRomanian Deadlift, Barbell / 3x8-12 / progress: dp(2.5kg, 8, 12)\nLeg Press / 3x8-12 / progress: dp(5kg, 8, 12)\nSeated Leg Curl / 3x8-12 / progress: dp(2.5kg, 8, 12)\nHack Squat, Smith Machine / 3x8-12 / progress: dp(2.5kg, 8, 12)"},{"name":"Thursday - Upper","exerciseText":"Bent Over Row / 4x5, 1x5+ / progress: custom(failCount: 0) {~\n if (completedReps < reps) {\n state.failCount += 1;\n if (state.failCount >= 3) {\n weights *= 0.9;\n state.failCount = 0;\n }\n } else {\n state.failCount = 0;\n weights += 2.5kg;\n }\n~}\nOverhead Press / 4x5, 1x5+ / progress: custom(failCount: 0) {~\n if (completedReps < reps) {\n state.failCount += 1;\n if (state.failCount >= 3) {\n weights *= 0.9;\n state.failCount = 0;\n }\n } else {\n state.failCount = 0;\n weights += 2.5kg;\n }\n~}\nBench Press / 3x10 / progress: custom(failCount: 0) {~\n if (completedReps < reps) {\n state.failCount += 1;\n if (state.failCount >= 3) {\n weights *= 0.9;\n state.failCount = 0;\n }\n } else {\n state.failCount = 0;\n weights += 2.5kg;\n }\n~}\nLat Pulldown / 3x8-12 / progress: dp(2.5kg, 8, 12)\nIncline Curl, Dumbbell / 4x8-12 / progress: dp(2.5kg, 8, 12)\nTriceps Extension, Dumbbell / 4x8-12 / progress: dp(2.5kg, 8, 12)"},{"name":"Friday - Lower","exerciseText":"Zercher Squat, Barbell / 2x5, 1x5+ / progress: custom(failCount: 0) {~\n if (completedReps < reps) {\n state.failCount += 1;\n if (state.failCount >= 3) {\n weights *= 0.9;\n state.failCount = 0;\n }\n } else {\n state.failCount = 0;\n weights += 2.5kg;\n }\n~}\nGood Morning, Barbell / 3x8-12 / progress: dp(2.5kg, 8, 12)\nHip Thrust, Barbell / 3x8-12 / progress: dp(2.5kg, 8, 12)\nBulgarian Split Squat, Dumbbell / 2x8-12 / progress: dp(2.5kg, 8, 12)\nStanding Calf Raise / 5x8-12 / progress: dp(2.5kg, 8, 12)"}]}]},"nextDay":1,"isMultiweek":true},"version":"20250306192146","settings":{"timers":{"warmup":90,"workout":180,"reminder":900},"units":"kg"}},"shouldSyncProgram":false,"isMobile":false,"revisions":[]}