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.
{"exportedProgram":{"customExercises":{},"program":{"deletedExercises":[],"planner":{"name":"Temp","vtype":"planner","weeks":[{"name":"week1","days":[{"name":"day1","exerciseText":"// T1 - Bench Press\n// Set 1RM before first session. Starts at 80% of Training Max (90% of 1RM)\n// If 3x4,1x4+ fails -> 3x3, 1x3+ -> 3x2,1x2+\nBench_T1: Bench Press / 3x4, 1x4+ / 3x3, 1x3+ / 3x2, 1x2+ / 60kg 180s / progress: custom(stage1weight: 50kg, increase: 2.5kg) {~\n if (completedReps[4] >= reps[4] + 1) {\n weights = completedWeights[4] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[4]\n setVariationIndex = 2\n weights = completedWeights[4] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[4] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// T2 - Overhead Press\n// Set 1RM before first session. Starts at 60% of 1RM\n// If 4x12 fails -> 4x10 -> 4x8\nOHP_T2: Seated Overhead Press / 4x12 / 4x10 / 4x8 / 30kg 120s / progress: custom(stage1weight: 0kg, increase: 2.5kg) {~\n if (completedReps >= reps) {\n weights = completedWeights[1] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[1]\n setVariationIndex = 2\n weights = completedWeights[1] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[1] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nT3: Incline Bench Press / 4x15+ / 4x12+ / 3x10+ / 0kg / progress: custom(stage: 2, savedSet: 2) { ...nml: Triceps Dip }\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nnml: Triceps Dip / 4x15+ / 4x12+ / 3x10+ / 0kg 90s / progress: custom(stage: 1, stage1weight: 0kg, increase: 2.5kg, savedSet: 1) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nLateral Raise / 4x15+ / 4x12+ / 3x10+ / 2.5kg 90s / progress: custom(stage: 1, stage1weight: 0kg, increase: 2.5kg, savedSet: 1) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nCrunch, Bodyweight / 4x15+ / 4x12+ / 3x10+ / 2.5kg 90s / progress: custom(stage: 1, stage1weight: 0kg, increase: 2.5kg, savedSet: 1) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}"},{"name":"day2","exerciseText":"// T1 - Squat\n// Set 1RM before first session. Starts at 80% of Training Max (90% of 1RM)\n// If 3x4,1x4+ fails -> 3x3, 1x3+ -> 3x2,1x2+\nSquat_T1: Squat / 3x4, 1x4+ / 3x3, 1x3+ / 3x2, 1x2+ / 75kg 180s / progress: custom(stage1weight: 70kg, increase: 2.5kg) {~\n if (completedReps[4] >= reps[4] + 1) {\n weights = completedWeights[4] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[4]\n setVariationIndex = 2\n weights = completedWeights[4] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[4] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// T2 - Romanian Deadlift\n// Set 1RM before first session. Starts at 60% of 1RM\n// If 4x12 fails -> 4x10 -> 4x8\nRDL_T2: Romanian Deadlift, Barbell / 4x12 / 4x10 / 4x8 / 60kg 120s / progress: custom(stage1weight: 0kg, increase: 2.5kg) {~\n if (completedReps >= reps) {\n weights = completedWeights[1] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[1]\n setVariationIndex = 2\n weights = completedWeights[1] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[1] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nT3: Bulgarian Split Squat / 4x15+ / 4x12+ / 3x10+ / 2.5kg / progress: custom() { ...nml: Triceps Dip }\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nPendlay Row / 4x15+ / 4x12+ / 3x10+ / 35kg 90s / progress: custom(stage: 1, stage1weight: 0kg, increase: 2.5kg, savedSet: 1) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nPreacher Curl / 4x15+ / 4x12+ / 3x10+ / 22.5kg 90s / progress: custom(stage: 1, stage1weight: 0kg, increase: 2.5kg, savedSet: 1) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nHanging Leg Raise, Bodyweight / 4x15+ / 4x12+ / 3x10+ / 2.5kg 90s / progress: custom(stage: 1, stage1weight: 0kg, increase: 2.5kg, savedSet: 1) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}"},{"name":"day3","exerciseText":"// T1 - Overhead Press\n// Set 1RM before first session. Starts at 80% of Training Max (90% of 1RM)\n// If 3x4,1x4+ fails -> 3x3, 1x3+ -> 3x2,1x2+\nOHP_T1: Overhead Press / 3x4, 1x4+ / 3x3, 1x3+ / 3x2, 1x2+ / 42.5kg 180s / progress: custom(stage1weight: 40kg, increase: 2.5kg) {~\n if (completedReps[4] >= reps[4] + 1) {\n weights = completedWeights[4] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[4]\n setVariationIndex = 2\n weights = completedWeights[4] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[4] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// T2 - Incline Bench Press\n// Set 1RM before first session. Starts at 60% of 1RM\n// If 4x12 fails -> 4x10 -> 4x8\nInclineBench_T2: Incline Bench Press Wide Grip / 4x12 / 4x10 / 4x8 / 47.5kg 120s / progress: custom(stage1weight: 0kg, increase: 2.5kg) {~\n if (completedReps >= reps) {\n weights = completedWeights[1] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[1]\n setVariationIndex = 2\n weights = completedWeights[1] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[1] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nLateralRaise_T3B: Lateral Raise / 4x15+ / 4x12+ / 3x10+ / 5kg 90s / progress: custom(stage: 2, stage1weight: 5kg, increase: 2.5kg, savedSet: 2) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nT3: Pull Up / 4x15+ / 4x12+ / 3x10+ / 2.5kg 90s / progress: custom(stage: 1, stage1weight: 0kg, increase: 2.5kg, savedSet: 1) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nT3: Triceps Dip / 4x15+ / 4x12+ / 3x10+ / 7.5kg / progress: custom(stage1weight: 5kg) { ...nml: Triceps Dip }\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nCrunch, Bodyweight / 4x15+ / 4x12+ / 3x10+ / 2.5kg 90s / progress: custom(stage: 1, stage1weight: 0kg, increase: 2.5kg, savedSet: 1) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}"},{"name":"day4","exerciseText":"// T1 - Deadlift\n// Set 1RM before first session. Starts at 80% of Training Max (90% of 1RM)\n// If 3x4,1x4+ fails -> 3x3, 1x3+ -> 3x2,1x2+\nDeadlift_T1: Deadlift / 3x4, 1x4+ / 3x3, 1x3+ / 3x2, 1x2+ / 85kg 180s / progress: custom(stage1weight: 80kg, increase: 2.5kg) {~\n if (completedReps[4] >= reps[4] + 1) {\n weights = completedWeights[4] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[4]\n setVariationIndex = 2\n weights = completedWeights[4] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[4] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n// T2 - Front Squat\n// Set 1RM before first session. Starts at 60% of 1RM\n// If 4x12 fails -> 4x10 -> 4x8\nT2: Front Squat / 4x12 / 4x10 / 4x8 / 35kg 120s / progress: custom(stage1weight: 0kg, increase: 2.5kg) {~\n if (completedReps >= reps) {\n weights = completedWeights[1] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[1]\n setVariationIndex = 2\n weights = completedWeights[1] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[1] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nT3: Hip Thrust / 4x1-15+ / 4x12+ / 3x10+ / 2.5kg / progress: custom() { ...nml: Triceps Dip }\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nChin Up / 4x15+ / 4x12+ / 3x10+ / 2.5kg 90s / progress: custom(stage: 1, stage1weight: 0kg, increase: 2.5kg, savedSet: 1) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nBiceps_T3C: Hammer Curl / 4x15+ / 4x12+ / 3x10+ / 12.5kg 90s / progress: custom(stage: 2, stage1weight: 0kg, increase: 2.5kg, savedSet: 2) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}\n\n// Uses 3-stage progression:\n// Stage 1: 4x15+ (goal: 60 reps)\n// Stage 2: 4x12+ (goal: 45 reps)\n// Stage 3: 3x10+ (goal: 30 reps)\n// All sets are AMRAP. Advance to next stage if you miss the rep target. Return to Stage 1 with more weight after Stage 3.\n// Start with a weight you can do for 60 reps in 3 sets. Add weight each week until you can't get 60 reps in 3 sets, at which point you add a fourth set. Keep adding weight each week until you can't get 60 reps in 4 sets, at which point you start doing myo-reps after the 4th set to hit the rep goal. Once you can't get 60 reps even with myo-reps, that's when you jump to Stage 2 and have your target be 45 reps. Same deal, keep adding weight each week until you can't get 45 reps with 4 sets + myo-reps. Then Stage 3. Once Stage 3 is failed, reset with a weight you can do 60 reps in 3 sets with.\nHanging Leg Raise, Bodyweight / 4x15+ / 4x12+ / 3x10+ / 2.5kg 90s / progress: custom(stage: 1, stage1weight: 0kg, increase: 2.5kg, savedSet: 1) {~\n if (setVariationIndex == 1) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] >= 60) {\n weights = completedWeights[4] + state.increase\n } else {\n state.stage = 2\n setVariationIndex = 2\n state.savedSet = 2\n weights = completedWeights[4]\n }\n } else if (setVariationIndex == 2) {\n if (completedReps[1] + completedReps[2] + completedReps[3] + completedReps[4] < 45) {\n state.stage = 3\n setVariationIndex = 3\n state.savedSet = 3\n weights = completedWeights[4]\n } else {\n weights = completedWeights[4] + state.increase\n }\n } else {\n weights = state.stage1weight + state.increase\n state.stage1weight = weights\n setVariationIndex = 1\n state.stage = 1\n state.savedSet = 1\n }\n~}"}]}]},"exercises":[],"days":[],"vtype":"program","deletedDays":[],"url":"","isMultiweek":false,"name":"P-ZERO UL/UL ","weeks":[],"nextDay":1,"shortDescription":"","clonedAt":1749126533536,"description":"","id":"xjszemks","tags":[],"deletedWeeks":[],"author":""},"version":"20260304084247","settings":{"timers":{"warmup":90,"workout":180,"reminder":900},"units":"kg"}},"shouldSyncProgram":false,"isMobile":false,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","revisions":[]}