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: 117
Strength Sets: 45, 38%
Hypertrophy Sets: 72, 62%
Upper Sets: 60 (15s , 45h ) , 6d
Lower Sets: 38 (23s , 15h ) , 3d
Core Sets: 12 (7s , 5h ) , 2d
Push Sets: 21 (6s , 15h ) , 4d
Pull Sets: 41 (9s , 32h ) , 6d
Legs Sets: 38 (23s , 15h ) , 3d
Shoulders: 33↓ (6s , 28h ) , 6d
Triceps: 13↓ (5s , 8h ) , 4d
Back: 48↓ (21s , 28h ) , 6d
Abs: 12 (7s , 5h ) , 2d
Glutes: 21↓ (16s , 6h ) , 3d
Hamstrings: 21↓ (11s , 11h ) , 4d
Quadriceps: 25↓ (16s , 10h ) , 4d
Chest: 17↓ (6s , 12h ) , 6d
Biceps: 20↓ (5s , 16h ) , 6d
Calves: 20↓ (13s , 8h ) , 3d
Forearms: 18↓ (6s , 12h ) , 5d
{"maxWidth":2400,"url":"/planner","isLoggedIn":false}
{"exportedProgram":{"customExercises":{"uaqnqbix":{"types":["upper","pull"],"isDeleted":false,"smallImageUrl":"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTWW65yqrydjaT1IEt6R7N-Dsb8ecZmbfxI7g&s","vtype":"custom_exercise","meta":{"synergistMuscles":["Brachialis","Brachioradialis","Biceps Brachii"],"targetMuscles":["Latissimus Dorsi","Trapezius Lower Fibers","Trapezius Middle Fibers"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://www.kingofthegym.com/wp-content/uploads/2018/04/How-to-Do-Chest-Supported-T-Bar-Rows.jpg","name":"Narrow Grip Chest Supported T Bar Row, Landmine","id":"uaqnqbix"},"vxpsklst":{"name":"Belt Squat","types":[],"id":"vxpsklst","isDeleted":true,"vtype":"custom_exercise","meta":{"synergistMuscles":[],"targetMuscles":[],"bodyParts":[],"sortedEquipment":[]}},"vsdpeigf":{"types":["upper","pull"],"isDeleted":false,"smallImageUrl":"https://gymvisual.com/img/p/3/7/5/4/3/37543.gif","vtype":"custom_exercise","meta":{"synergistMuscles":["Biceps Brachii","Trapezius Lower Fibers","Trapezius Middle Fibers","Deltoid Posterior"],"targetMuscles":["Latissimus Dorsi"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://fitwill.app/_next/image?url=https%3A%2F%2Ffitwill.app%2Fapi%2Fimage%2F5034%3Fw%3D1024%26h%3D576&w=3840&q=75","name":"Meadows Row, Lat Focused","id":"vsdpeigf"},"edwzieuy":{"name":"1","types":[],"id":"edwzieuy","isDeleted":false,"vtype":"custom_exercise","meta":{"synergistMuscles":[],"targetMuscles":[],"bodyParts":[],"sortedEquipment":[]}},"mufdpzso":{"types":["upper","push"],"isDeleted":false,"smallImageUrl":"https://cdn.shopify.com/s/files/1/0250/0362/2496/files/321.gif?v=1644650162","vtype":"custom_exercise","meta":{"synergistMuscles":["Deltoid Lateral","Triceps Brachii"],"targetMuscles":["Deltoid Anterior"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://www.burnthefatinnercircle.com/members/images/2077b.jpg?cb=20250102040759","name":"1-arm Landmine OHP, Kneeling","id":"mufdpzso"},"aorwwfki":{"types":["upper","pull"],"isDeleted":false,"smallImageUrl":"https://burnfit.io/wp-content/uploads/2023/11/UNDER_HIGH_ROW_MC.gif","vtype":"custom_exercise","meta":{"synergistMuscles":["Trapezius Middle Fibers","Deltoid Posterior","Biceps Brachii"],"targetMuscles":["Latissimus Dorsi","Trapezius Lower Fibers"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQDqk8gK8mOTiZGDFiJqJ_nzC9mPIVi-iuJFWyux7UvS5uDkxbEiWvm7aAxdD5vg30iwQo&usqp=CAU","name":"Underhand High row","id":"aorwwfki"},"zmvylrwx":{"types":["lower","legs"],"isDeleted":false,"smallImageUrl":"https://www.liftosaur.com/userimages/user-uploads/sxzvaepdtw/xkmzbuku-zmvylrwx.jpg","vtype":"custom_exercise","meta":{"synergistMuscles":["Soleus"],"targetMuscles":["Gastrocnemius"],"bodyParts":[],"sortedEquipment":[]},"name":"Standing Calf Raise, Kabuki Bar","id":"zmvylrwx"},"gmsldbqz":{"types":["upper","push"],"isDeleted":false,"smallImageUrl":"https://www.liftosaur.com/userimages/user-uploads/sxzvaepdtw/lflykmix-gmsldbqz.gif","vtype":"custom_exercise","meta":{"synergistMuscles":[],"targetMuscles":["Triceps Brachii"],"bodyParts":[],"sortedEquipment":[]},"name":"Decline SkullCrusher, Dumbell","id":"gmsldbqz"},"qfjoayeg":{"name":"10 minute Block","types":[],"id":"qfjoayeg","isDeleted":false,"vtype":"custom_exercise","meta":{"synergistMuscles":[],"targetMuscles":[],"bodyParts":[],"sortedEquipment":[]}},"zfhtfkyy":{"types":["upper","push"],"isDeleted":false,"smallImageUrl":"https://bellsofsteel.us/cdn/shop/files/P-ARCHNEM-BAR-carousel-lifestyle-2.jpg?v=1735840123&width=2048","vtype":"custom_exercise","meta":{"synergistMuscles":["Deltoid Anterior","Triceps Brachii"],"targetMuscles":["Pectoralis Major Sternal Head"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://www.strengthresurgence.com/wp-content/uploads/2023/09/Swiss-Bar-Training-Benefits-Blog-Cover-Image.jpg","name":"Bench Press, MG4CN - Narrow Grip","id":"zfhtfkyy"},"huosedcb":{"types":["push","upper"],"isDeleted":false,"smallImageUrl":"https://fitnessprogramer.com/wp-content/uploads/2021/02/Low-Cable-Crossover.gif","vtype":"custom_exercise","meta":{"synergistMuscles":["Deltoid Anterior","Biceps Brachii"],"targetMuscles":["Pectoralis Major Clavicular Head","Pectoralis Major Sternal Head"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://fitnessvolt.com/wp-content/uploads/2018/04/low-cable-cross-over-1.jpg","name":"Low to High Cable Crossover, Cable","id":"huosedcb"},"ramqxfhq":{"name":"Trap Bar OHP, on Knees","types":["upper","push"],"id":"ramqxfhq","isDeleted":false,"vtype":"custom_exercise","meta":{"synergistMuscles":["Triceps Brachii"],"targetMuscles":["Deltoid Anterior","Deltoid Lateral"],"bodyParts":[],"sortedEquipment":[]}},"ichyklst":{"types":["pull"],"isDeleted":true,"smallImageUrl":"https://www.lyfta.app/_next/image?url=%2Fthumbnails%2F42141201.jpg&w=3840&q=20","vtype":"custom_exercise","meta":{"synergistMuscles":["Biceps Brachii"],"targetMuscles":["Deltoid Posterior","Trapezius Middle Fibers","Trapezius Lower Fibers","Latissimus Dorsi"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://gymvisual.com/18062-large_default/lever-low-row-plate-loaded.jpg","name":"Pronated Machine Low Row","id":"ichyklst"},"dqnosgjl":{"types":["push","upper"],"isDeleted":false,"smallImageUrl":"https://burnfit.io/wp-content/uploads/2023/11/SEAT_DIPS_MC.gif","vtype":"custom_exercise","meta":{"synergistMuscles":["Pectoralis Major Sternal Head","Pectoralis Major Clavicular Head","Latissimus Dorsi"],"targetMuscles":["Triceps Brachii"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://fitwill.app/api/image/1451?p=1&w=1920&h=1080","name":"Seated Triceps Dip","id":"dqnosgjl"},"jfbjmceu":{"types":["legs","lower"],"isDeleted":false,"smallImageUrl":"https://gymvisual.com/33873-large_default/dumbbell-hyperextension-male.jpg","vtype":"custom_exercise","meta":{"synergistMuscles":["Gluteus Maximus"],"targetMuscles":["Hamstrings"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://cdn-0.weighttraining.guide/wp-content/uploads/2016/10/45-degree-hyperextension.png?ezimgfmt=ng%3Awebp%2Fngcb4","name":"45° Hyperextension","id":"jfbjmceu"},"ckxxrnpc":{"name":"Hatfield Squat","types":[],"id":"ckxxrnpc","isDeleted":true,"vtype":"custom_exercise","meta":{"synergistMuscles":[],"targetMuscles":[],"bodyParts":[],"sortedEquipment":[]}},"hhtvmmfa":{"types":["upper"],"isDeleted":false,"smallImageUrl":"https://fitnessprogramer.com/wp-content/uploads/2022/01/Hand-Gripper.gif","vtype":"custom_exercise","meta":{"synergistMuscles":[],"targetMuscles":["Wrist Flexors"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSio0xFPHRILms6bGYAmXuMeJG3yV3cN_9EKT5Tf9Spy_N6T-ORIdeQ6Nd1QEjOK_JmPM0&usqp=CAU","name":"Gripper","id":"hhtvmmfa"},"kgxjswkj":{"types":["legs","lower"],"isDeleted":false,"smallImageUrl":"https://cdn-ilbpcgf.nitrocdn.com/oYuCommTzsGQSwpvkrjrxmZojSdETFmy/assets/images/optimized/rev-7db4608/shreddeddad.com/wp-content/uploads/2023/04/gmwd-leverage-gym-reviews-102-1024x1018.jpeg","vtype":"custom_exercise","meta":{"synergistMuscles":["Adductor Brevis","Adductor Longus","Adductor Magnus","Soleus"],"targetMuscles":["Quadriceps"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://assets.myworkouts.io/exercises-media/R9YozhJ3H39MrCq4o/lever_split_v-squat_male_v15_thumb100Poster_capoff.jpg","name":"Reverse lunge, Levergym","id":"kgxjswkj"},"ezvchpxh":{"name":"2","types":[],"id":"ezvchpxh","isDeleted":false,"vtype":"custom_exercise","meta":{"synergistMuscles":[],"targetMuscles":[],"bodyParts":[],"sortedEquipment":[]}},"kztesbds":{"types":["pull","upper"],"isDeleted":false,"smallImageUrl":"https://i.pinimg.com/originals/22/66/d2/2266d28d56dc4967aa2b0a8f3da013d9.gif","vtype":"custom_exercise","meta":{"synergistMuscles":["Latissimus Dorsi","Levator Scapulae","Teres Major","Teres Minor"],"targetMuscles":["Trapezius Middle Fibers","Trapezius Lower Fibers","Deltoid Posterior"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://static.strengthlevel.com/images/exercises/meadows-row/meadows-row-800.jpg","name":"Meadows Row","id":"kztesbds"},"hzkqazpq":{"types":["upper","push"],"isDeleted":false,"smallImageUrl":"https://i.pinimg.com/originals/68/67/45/686745c9e8c904b4aa10ebb7db8dcf0e.gif","vtype":"custom_exercise","meta":{"synergistMuscles":[],"targetMuscles":["Deltoid Lateral"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://www.dmoose.com/cdn/shop/articles/1_f5ad53c0-fbb1-4cf9-9a8b-fe4f4ef84a75.jpg?v=1647857839","name":"Lying dumbell lateral raise","id":"hzkqazpq"},"vpstukbv":{"types":["upper","pull"],"isDeleted":false,"smallImageUrl":"https://gymvisual.com/img/p/1/5/7/5/1/15751.gif","vtype":"custom_exercise","meta":{"synergistMuscles":["Biceps Brachii","Brachialis"],"targetMuscles":["Brachioradialis"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://gymvisual.com/illustrations/3484-lever-reverse-grip-preacher-curl.html","name":"Reverse Grip Preacher Curl","id":"vpstukbv"},"yvixfhzg":{"types":["legs","lower"],"isDeleted":false,"smallImageUrl":"https://www.liftosaur.com/userimages/user-uploads/sxzvaepdtw/nhdfowmv-yvixfhzg.gif","vtype":"custom_exercise","meta":{"synergistMuscles":["Soleus","Gastrocnemius"],"targetMuscles":["Quadriceps","Gluteus Maximus"],"bodyParts":[],"sortedEquipment":[]},"name":"Leg Press Machine","id":"yvixfhzg"}},"program":{"vtype":"program","id":"kcpacxlu","name":"My Program","url":"","author":"","shortDescription":"","description":"","nextDay":1,"weeks":[],"isMultiweek":false,"days":[{"id":"vdweersi","name":"Day 1","exercises":[]}],"exercises":[],"tags":[],"deletedDays":[],"deletedWeeks":[],"deletedExercises":[],"clonedAt":1783432998745,"planner":{"vtype":"planner","name":"My Program","weeks":[{"name":"Week 1","days":[{"name":"A - Bench Press","exerciseText":"// Configurable Parameters for exercise 1:\n// - s1Sets: 2, s1Min: 4, s1Max: 6, s1RPE: 7, s1Timer: 120\n// - s2Sets: 3, s2Min: 5, s2Max: 8, s2RPE: 8, s2Timer: 135\n// - s3Sets: 4, s3Min: 6, s3Max: 10, s3RPE: 8, s3Timer: 165\n// - s4Sets: 5, s4Min: 8, s4Max: 12, s4RPE: 9, s4Timer: 180\n// - weightInc: 5lb\n// - deload: 0.9\n1 / used: none / 2x4-6 @7+ 120s / 3x5-8 @8+ 135s / 4x6-10 @8+ 165s / 5x8-12 @9+ 180s / 115lb / warmup: 1x15 45lb, 1x5 55%, 1x3 85%, 1x2 95%, 1x1 105% / update: custom() {~\n var.i = setIndex\n if (var.i > 0) {\n // Check if current set failed to meet minimum reps for current stage\n var.failedMinReps = 0\n if (numberOfSets == state.s1Sets && completedReps[var.i] < state.s1Min) {\n var.failedMinReps = 1\n } else if (numberOfSets == state.s2Sets && completedReps[var.i] < state.s2Min) {\n var.failedMinReps = 1\n } else if (numberOfSets == state.s3Sets && completedReps[var.i] < state.s3Min) {\n var.failedMinReps = 1\n } else if (numberOfSets == state.s4Sets && completedReps[var.i] < state.s4Min) {\n var.failedMinReps = 1\n }\n \n // Apply deload to remaining sets if current set failed\n if (var.failedMinReps == 1) {\n for (var.j in weights) {\n if (var.j > var.i) {\n weights[var.j] = completedWeights[var.i] * state.deload\n }\n }\n }\n }\n~} / progress: custom(s1Sets: 2, s1Min: 4, s1Max: 6, s1RPE: 7, s1Timer: 120, s2Sets: 3, s2Min: 5, s2Max: 8, s2RPE: 8, s2Timer: 135, s3Sets: 4, s3Min: 6, s3Max: 10, s3RPE: 8, s3Timer: 165, s4Sets: 5, s4Min: 8, s4Max: 12, s4RPE: 9, s4Timer: 180, weightInc: 5lb, deload: 0.9) {~\n // Determine current stage based on number of sets\n var.currentStage = 1\n var.currentMaxReps = state.s1Max\n var.currentMinReps = state.s1Min\n \n if (numberOfSets == state.s2Sets) {\n var.currentStage = 2\n var.currentMaxReps = state.s2Max\n var.currentMinReps = state.s2Min\n } else if (numberOfSets == state.s3Sets) {\n var.currentStage = 3\n var.currentMaxReps = state.s3Max\n var.currentMinReps = state.s3Min\n } else if (numberOfSets == state.s4Sets) {\n var.currentStage = 4\n var.currentMaxReps = state.s4Max\n var.currentMinReps = state.s4Min\n }\n \n // Check if first set hit max reps for progression\n if (completedReps[1] >= var.currentMaxReps) {\n // Check if all sets met minimum reps\n var.allMetMinimum = 1\n for (var.j in completedReps) {\n if (completedReps[var.j] < var.currentMinReps) {\n var.allMetMinimum = 0\n }\n }\n \n // Progress if all conditions met\n if (var.allMetMinimum == 1) {\n if (var.currentStage == 4) {\n // At final stage - increase weight and reset to first stage\n weights += state.weightInc\n setVariationIndex = 1\n } else {\n // Move to next stage\n setVariationIndex += 1\n }\n }\n }\n \n // Update RPE and timers for current stage\n if (var.currentStage == 1) {\n RPE = state.s1RPE\n timers = state.s1Timer\n } else if (var.currentStage == 2) {\n RPE = state.s2RPE\n timers = state.s2Timer\n } else if (var.currentStage == 3) {\n RPE = state.s3RPE\n timers = state.s3Timer\n } else if (var.currentStage == 4) {\n RPE = state.s4RPE\n timers = state.s4Timer\n }\n~}\n// Configurable Parameters for exercise 2:\n// - sets: 2 (number of sets)\n// - min: 6 (minimum reps in range)\n// - max: 10 (maximum reps in range)\n// - rpe: 10 (RPE target)\n// - timer: 135 (rest time in seconds)\n// - weightInc: 5lb (weight to add on progression)\n// - deload: 0.9 (multiplier for failed set deload)\n// Progression: Hit max reps on first set + all sets in range = add weight\n// Failure: Can't hit min reps = 10% deload for remaining sets, keep weight for next week\n2 / used: none / 2x6-10 / 150lb @10+ 135s / warmup: 1x5 55%, 1x3 85%, 1x1 105% / update: custom() {~\n var.i = setIndex\n if (var.i > 0) {\n // Check if current set failed to meet minimum reps\n if (completedReps[var.i] < reps[var.i]) {\n // Apply deload to remaining sets\n for (var.j in weights) {\n if (var.j > var.i) {\n weights[var.j] = completedWeights[var.i] * state.deload\n }\n }\n }\n }\n~} / progress: custom(sets: 2, min: 6, max: 10, rpe: 10, timer: 135, weightInc: 5lb, deload: 0.9) {~\n // Check if first set hit max reps\n if (completedReps[1] >= state.max) {\n // Check if all sets hit at least min reps\n var.allInRange = 1\n for (var.j in completedReps) {\n if (completedReps[var.j] < state.min) {\n var.allInRange = 0\n }\n }\n \n // Progress if all conditions met\n if (var.allInRange == 1) {\n weights += state.weightInc\n }\n }\n \n // Update RPE and timer\n RPE = state.rpe\n timers = state.timer\n~}\n// Configurable Parameters for exercise 3:\n// - s1Sets: 2, s1Min: 5, s1Max: 8, s1Timer: 120\n// - s2Sets: 3, s2Min: 6, s2Max: 10, s2Timer: 150\n// - rpe: 9\n// - weightInc: 5lb\n// - deload: 0.9\n3 / used: none / 2x5-8 120s / 3x6-10 150s / 32.5lb @9+ / warmup: 1x5 55%, 1x3 85%, 1x1 105% / update: custom() {~\n var.i = setIndex\n if (var.i > 0) {\n // Check if current set failed to meet minimum reps for current stage\n var.failedMinReps = 0\n if (numberOfSets == state.s1Sets && completedReps[var.i] < state.s1Min) {\n var.failedMinReps = 1\n } else if (numberOfSets == state.s2Sets && completedReps[var.i] < state.s2Min) {\n var.failedMinReps = 1\n }\n \n // Apply deload to remaining sets if current set failed\n if (var.failedMinReps == 1) {\n for (var.j in weights) {\n if (var.j > var.i) {\n weights[var.j] = completedWeights[var.i] * state.deload\n }\n }\n }\n }\n~} / progress: custom(s1Sets: 2, s1Min: 5, s1Max: 8, s1Timer: 120, s2Sets: 3, s2Min: 6, s2Max: 10, s2Timer: 150, rpe: 9, weightInc: 5lb, deload: 0.9) {~\n // Determine current stage based on number of sets\n var.currentStage = 1\n var.currentMaxReps = state.s1Max\n var.currentMinReps = state.s1Min\n \n if (numberOfSets == state.s2Sets) {\n var.currentStage = 2\n var.currentMaxReps = state.s2Max\n var.currentMinReps = state.s2Min\n }\n \n // Check if first set hit max reps for progression\n if (completedReps[1] >= var.currentMaxReps) {\n // Check if all sets met minimum reps (stayed in range)\n var.allMetMinimum = 1\n for (var.j in completedReps) {\n if (completedReps[var.j] < var.currentMinReps) {\n var.allMetMinimum = 0\n }\n }\n \n // Check if all sets were at full weight (no deloads occurred)\n var.allSameWeight = 1\n for (var.j in completedWeights) {\n if (completedWeights[var.j] < completedWeights[1]) {\n var.allSameWeight = 0\n }\n }\n \n // Progress if all conditions met\n if (var.allMetMinimum == 1 && var.allSameWeight == 1) {\n if (var.currentStage == 2) {\n // At final stage - increase weight and reset to first stage\n weights += state.weightInc\n setVariationIndex = 1\n } else {\n // Move to next stage\n setVariationIndex += 1\n }\n }\n }\n \n // Update RPE and timers for current stage\n RPE = state.rpe\n if (var.currentStage == 1) {\n timers = state.s1Timer\n } else if (var.currentStage == 2) {\n timers = state.s2Timer\n }\n~}\n// Configurable Parameters for drop sets:\n// - s1Sets: 2, s1Min: 8, s1Max: 12, s1RPE: 9, s1Timer: 90\n// - s2Sets: 3, s2Min: 10, s2Max: 15, s2RPE: 10, s2Drop1: 0.8, s2Timer: 105\n// - s3Sets: 6, s3Min: 12, s3Max: 18, s3RPE: 10, s3Drop1: 0.8, s3Drop2: 0.6, s3Timer: 120\n// - dropTimer: 20\n// - weightInc: 2.5lb\n// - deload: 0.9\nDropsets / used: none / 2x8-12 @9+ / 3x10-15 @10+ / 6x12-18 @10+ / 100lb / update: custom() {~\n var.i = setIndex\n \n // Initialize dropsets and timers at beginning of workout\n if (var.i == 0) {\n if (numberOfSets == state.s1Sets) {\n // Stage 1: set timers\n timers[1] = state.s1Timer\n timers[2] = state.s1Timer\n } else if (numberOfSets == state.s2Sets) {\n // Stage 2: set 3 is dropset of set 2\n weights[3] = weights[2] * state.s2Drop1\n timers[1] = state.s2Timer\n timers[2] = state.dropTimer\n timers[3] = state.s2Timer\n } else if (numberOfSets == state.s3Sets) {\n // Stage 3: set 3 is dropset of set 2, sets 5&6 are dropsets of set 4\n weights[3] = weights[2] * state.s3Drop1\n weights[5] = weights[4] * state.s3Drop1\n weights[6] = weights[4] * state.s3Drop2\n timers[1] = state.s3Timer\n timers[2] = state.dropTimer\n timers[3] = state.s3Timer\n timers[4] = state.dropTimer\n timers[5] = state.dropTimer\n timers[6] = state.s3Timer\n }\n }\n \n // Handle failures on MAIN sets\n if (var.i > 0) {\n var.isMainSet = 0\n var.failedMinReps = 0\n \n // Determine if current set is a MAIN set and if it failed\n if (numberOfSets == state.s1Sets) {\n // Stage 1: sets 1 and 2 are MAIN\n var.isMainSet = 1\n if (completedReps[var.i] < state.s1Min) {\n var.failedMinReps = 1\n }\n } else if (numberOfSets == state.s2Sets) {\n // Stage 2: sets 1 and 2 are MAIN, set 3 is dropset\n if (var.i == 1 || var.i == 2) {\n var.isMainSet = 1\n if (completedReps[var.i] < state.s2Min) {\n var.failedMinReps = 1\n }\n }\n } else if (numberOfSets == state.s3Sets) {\n // Stage 3: sets 1, 2, 4 are MAIN\n if (var.i == 1 || var.i == 2 || var.i == 4) {\n var.isMainSet = 1\n if (completedReps[var.i] < state.s3Min) {\n var.failedMinReps = 1\n }\n }\n }\n \n // If a MAIN set failed, deload remaining MAIN sets and update their dropsets\n if (var.isMainSet == 1 && var.failedMinReps == 1) {\n if (numberOfSets == state.s1Sets) {\n // Stage 1: deload remaining main sets\n if (var.i == 1) {\n weights[2] = completedWeights[1] * state.deload\n }\n } else if (numberOfSets == state.s2Sets) {\n // Stage 2: deload remaining main sets and update dropset\n if (var.i == 1) {\n weights[2] = completedWeights[1] * state.deload\n weights[3] = weights[2] * state.s2Drop1\n } else if (var.i == 2) {\n weights[3] = completedWeights[2] * state.s2Drop1\n }\n } else if (numberOfSets == state.s3Sets) {\n // Stage 3: deload remaining main sets and update dropsets\n if (var.i == 1) {\n weights[2] = completedWeights[1] * state.deload\n weights[4] = completedWeights[1] * state.deload\n weights[3] = weights[2] * state.s3Drop1\n weights[5] = weights[4] * state.s3Drop1\n weights[6] = weights[4] * state.s3Drop2\n } else if (var.i == 2) {\n weights[4] = completedWeights[2] * state.deload\n weights[3] = completedWeights[2] * state.s3Drop1\n weights[5] = weights[4] * state.s3Drop1\n weights[6] = weights[4] * state.s3Drop2\n } else if (var.i == 4) {\n weights[5] = completedWeights[4] * state.s3Drop1\n weights[6] = completedWeights[4] * state.s3Drop2\n }\n }\n }\n }\n~} / progress: custom(s1Sets: 2, s1Min: 8, s1Max: 12, s1RPE: 9, s1Timer: 90, s2Sets: 3, s2Min: 10, s2Max: 15, s2RPE: 10, s2Drop1: 0.8, s2Timer: 105, s3Sets: 6, s3Min: 12, s3Max: 18, s3RPE: 10, s3Drop1: 0.8, s3Drop2: 0.6, s3Timer: 120, dropTimer: 20, weightInc: 2.5lb, deload: 0.9) {~\n // Determine current stage\n var.currentStage = 1\n var.currentMaxReps = state.s1Max\n var.currentMinReps = state.s1Min\n \n if (numberOfSets == state.s2Sets) {\n var.currentStage = 2\n var.currentMaxReps = state.s2Max\n var.currentMinReps = state.s2Min\n } else if (numberOfSets == state.s3Sets) {\n var.currentStage = 3\n var.currentMaxReps = state.s3Max\n var.currentMinReps = state.s3Min\n }\n \n // Check if first MAIN set hit max reps\n if (completedReps[1] >= var.currentMaxReps) {\n // Check if all MAIN sets met minimum reps\n var.allMainSetsMetMin = 1\n \n if (var.currentStage == 1) {\n // Stage 1: check sets 1 and 2\n if (completedReps[1] < var.currentMinReps || completedReps[2] < var.currentMinReps) {\n var.allMainSetsMetMin = 0\n }\n } else if (var.currentStage == 2) {\n // Stage 2: check sets 1 and 2\n if (completedReps[1] < var.currentMinReps || completedReps[2] < var.currentMinReps) {\n var.allMainSetsMetMin = 0\n }\n } else if (var.currentStage == 3) {\n // Stage 3: check sets 1, 2, and 4\n if (completedReps[1] < var.currentMinReps || completedReps[2] < var.currentMinReps || completedReps[4] < var.currentMinReps) {\n var.allMainSetsMetMin = 0\n }\n }\n \n // Check if all MAIN sets were at full weight (no deloads occurred)\n var.allMainSamWeight = 1\n if (var.currentStage == 1) {\n if (completedWeights[2] < completedWeights[1]) {\n var.allMainSamWeight = 0\n }\n } else if (var.currentStage == 2) {\n if (completedWeights[2] < completedWeights[1]) {\n var.allMainSamWeight = 0\n }\n } else if (var.currentStage == 3) {\n if (completedWeights[2] < completedWeights[1] || completedWeights[4] < completedWeights[1]) {\n var.allMainSamWeight = 0\n }\n }\n \n // Progress if all conditions met\n if (var.allMainSetsMetMin == 1 && var.allMainSamWeight == 1) {\n if (var.currentStage == 3) {\n // At final stage - increase weight and reset to first stage\n weights += state.weightInc\n setVariationIndex = 1\n } else {\n // Move to next stage\n setVariationIndex += 1\n }\n }\n }\n \n // Update RPE for current stage\n if (var.currentStage == 1) {\n RPE = state.s1RPE\n } else if (var.currentStage == 2) {\n RPE = state.s2RPE\n } else if (var.currentStage == 3) {\n RPE = state.s3RPE\n }\n~}\n// Configurable Parameters for myoreps:\n// - s1Sets: 2, s1Min: 6, s1Max: 10, s1RPE: 9, s1Timer: 90\n// - s2Sets: 4, s2Min: 8, s2Max: 12, s2RPE: 10, s2Timer: 105, s2MyoMin: 3, s2MyoMax: 50\n// - s3Sets: 8, s3Min: 10, s3Max: 15, s3RPE: 10, s3Timer: 120, s3MyoMin: 3, s3MyoMax: 50\n// - myoTimer: 15\n// - weightInc: 2.5lb\n// - deload: 0.9\n\nmyoreps / used: none / 2x6-10 @9+ 90s / 2x8-12 @10+ 105s, 2x3+ @10 15s / 2x10-15 @10+ 120s, 2x3+ @10 15s, 1x10-15 @10+ 120s, 3x3+ @10 15s / 25lb / update: custom() {~\n var.i = setIndex\n \n // Initialize timers at beginning of workout\n if (var.i == 0) {\n if (numberOfSets == state.s1Sets) {\n // Stage 1: main timers for sets 1 and 2\n timers[1] = state.s1Timer\n timers[2] = state.s1Timer\n } else if (numberOfSets == state.s2Sets) {\n // Stage 2: sets 1-2 main, sets 3-4 myo-reps\n timers[1] = state.s2Timer\n timers[2] = state.myoTimer\n timers[3] = state.myoTimer\n timers[4] = state.s2Timer\n } else if (numberOfSets == state.s3Sets) {\n // Stage 3: sets 1-2 main + 3-4 myo, set 5 main + 6-7-8 myo\n timers[1] = state.s3Timer\n timers[2] = state.myoTimer\n timers[3] = state.myoTimer\n timers[4] = state.s3Timer\n timers[5] = state.myoTimer\n timers[6] = state.myoTimer\n timers[7] = state.myoTimer\n timers[8] = state.s3Timer\n }\n }\n \n // Handle failures\n if (var.i > 0) {\n var.isMainSet = 0\n var.failedMinReps = 0\n var.currentMinReps = 0\n \n // Determine if current set is MAIN or myo-rep and if it failed\n if (numberOfSets == state.s1Sets) {\n // Stage 1: sets 1 and 2 are MAIN\n var.isMainSet = 1\n var.currentMinReps = state.s1Min\n if (completedReps[var.i] < state.s1Min) {\n var.failedMinReps = 1\n }\n } else if (numberOfSets == state.s2Sets) {\n // Stage 2: sets 1-2 are MAIN, sets 3-4 are myo-reps\n if (var.i == 1 || var.i == 2) {\n var.isMainSet = 1\n var.currentMinReps = state.s2Min\n if (completedReps[var.i] < state.s2Min) {\n var.failedMinReps = 1\n }\n } else {\n var.currentMinReps = state.s2MyoMin\n if (completedReps[var.i] < state.s2MyoMin) {\n var.failedMinReps = 1\n }\n }\n } else if (numberOfSets == state.s3Sets) {\n // Stage 3: sets 1, 2, 5 are MAIN, rest are myo-reps\n if (var.i == 1 || var.i == 2 || var.i == 5) {\n var.isMainSet = 1\n var.currentMinReps = state.s3Min\n if (completedReps[var.i] < state.s3Min) {\n var.failedMinReps = 1\n }\n } else {\n var.currentMinReps = state.s3MyoMin\n if (completedReps[var.i] < state.s3MyoMin) {\n var.failedMinReps = 1\n }\n }\n }\n \n // Apply deload only when a MAIN set failed; myo-rep failures don't deload anything\n if (var.failedMinReps == 1 && var.isMainSet == 1) {\n for (var.j in weights) {\n if (var.j > var.i) {\n weights[var.j] = completedWeights[var.i] * state.deload\n }\n }\n }\n }\n~} / progress: custom(s1Sets: 2, s1Min: 6, s1Max: 10, s1RPE: 9, s1Timer: 90, s2Sets: 4, s2Min: 8, s2Max: 12, s2RPE: 10, s2Timer: 105, s2MyoMin: 3, s2MyoMax: 50, s3Sets: 8, s3Min: 10, s3Max: 15, s3RPE: 10, s3Timer: 120, s3MyoMin: 3, s3MyoMax: 50, myoTimer: 15, weightInc: 2.5lb, deload: 0.9) {~\n // Determine current stage\n var.currentStage = 1\n var.currentMaxReps = state.s1Max\n var.currentMinReps = state.s1Min\n \n if (numberOfSets == state.s2Sets) {\n var.currentStage = 2\n var.currentMaxReps = state.s2Max\n var.currentMinReps = state.s2Min\n } else if (numberOfSets == state.s3Sets) {\n var.currentStage = 3\n var.currentMaxReps = state.s3Max\n var.currentMinReps = state.s3Min\n }\n \n // Check if first MAIN set hit max reps\n if (completedReps[1] >= var.currentMaxReps) {\n // Check if second MAIN set met minimum reps\n var.allMainSetsMetMin = 1\n if (completedReps[2] < var.currentMinReps) {\n var.allMainSetsMetMin = 0\n }\n \n // For stage 3, also check third MAIN set (set 5)\n if (var.currentStage == 3) {\n if (completedReps[5] < var.currentMinReps) {\n var.allMainSetsMetMin = 0\n }\n }\n \n // Check if all MAIN sets were at full weight (no deloads occurred)\n var.allMainSameWeight = 1\n if (completedWeights[2] < completedWeights[1]) {\n var.allMainSameWeight = 0\n }\n if (var.currentStage == 3) {\n if (completedWeights[5] < completedWeights[1]) {\n var.allMainSameWeight = 0\n }\n }\n \n // Progress if all conditions met\n if (var.allMainSetsMetMin == 1 && var.allMainSameWeight == 1) {\n if (var.currentStage == 3) {\n // At final stage - increase weight and reset to first stage\n weights += state.weightInc\n setVariationIndex = 1\n } else {\n // Move to next stage\n setVariationIndex += 1\n }\n }\n }\n \n // Update RPE for current stage\n if (var.currentStage == 1) {\n RPE = state.s1RPE\n } else if (var.currentStage == 2) {\n RPE = state.s2RPE\n } else if (var.currentStage == 3) {\n RPE = state.s3RPE\n }\n~}\n10 minute Block / used: none / 16x2 / 95.71% 20s / warmup: 1x15 45lb, 1x5 55%, 1x3 85%, 1x2 95%, 1x1 105% / update: custom() {~\n if (setIndex > 0) {\n timers[setIndex + 1] = timers[1] + setIndex * 3\n }\n~} / progress: custom() {~\n if (sum(completedReps) >= 16) {\n weights += 5lb \n }\n~}\n//deadlift progression\nTrap Bar Deadlift / used: none / 2+x4-6 @7+ 150s / 3+x4-6 @8+ 165s / ! 3+x5-7 @8+ 180s, 1+x8 180s / 3+x6-8 @9+ 210s, 2+x8 180s / 275lb / warmup: 1x15 45lb, 1x5 55%, 1x3 85%, 1x2 95%, 1x1 105% / update: custom() {~\n if (setIndex == 0) {\n weights[4] = completedWeights[1] * 0.85\n weights[5] = completedWeights[1] * 0.7\n }\n~} / progress: custom() {~\n if (setVariationIndex == 1 || setVariationIndex == 2) {\n if (completedReps >= reps) {\n setVariationIndex = setVariationIndex + 1 \n }\n } else if (setVariationIndex == 3) {\n if ((completedReps[1] + completedReps[2] + completedReps[3]) >= 20) {\n setVariationIndex = setVariationIndex + 1\n }\n } else if (setVariationIndex == 4) {\n if ((completedReps[1] + completedReps[2] + completedReps[3]) >= 22) {\n setVariationIndex = 1\n weights += 5lb\n }\n }\n~}\n// manually increase gripper, when moving from stage 1 to stage 2 buy the next gripper for the static holds\nGripper /used: none / 2x6-12 100lb @9 / 3x10-15 100lb @9, 3x1 120lb @10, 1x8-12 80lb / warmup: 1x10 40lb, 1x5 80lb / progress: custom() {~\n if (setVariationIndex == 1) {\n if (completedReps >= 12) {\n setVariationIndex = 2\n }\n } else {\n if (completedReps[1] >= 15 && completedReps[2] >= 10 && completedReps[2] >= 10) {\n setVariationIndex = 1\n weights += 20lb \n }\n }\n~}\n// Change at week 48\n// Exercise Order\n// Narrow Grip Swiss Bar,Dumbell bench press, Dips, Narrow Grip BP, Regular Grip Swiss bar (105x8,7,6), Regular grip barbell (115x11,8,8,7->102.5x10), narrow grip swiss bar\nBench Press, MG4CN - Narrow Grip / ...1 / ! 2x4-6 @7+ 120s / 3x5-8 @8+ 135s / 4x6-10 @8+ 165s / 5x8-12 @9+ 180s / 120lb\n// Change at week 45\n// Excercise order\n// T-Bar Row, Wide Grip 45deg BB row,Bent Over One Arm Row - pronated/wide, Pronated Machine high row (145x8,7), Meadows Row,Chest Supported Mg4CN row (120x10,10), Wide Grip Machine Low row\nPronated Machine Low Row / ...2 / 92.5lb / progress: custom(weightInc: 2.5lb) { ...2 }\n// Change at week 55\n// Excercise order\n// Belt Squat(higher rep range), Goblet squat kabuki, Leverage Squat, Landmine Reverse Lunge (higher rep range), Leg Press (230x11,10,9), Landmine Squat (change to lower rep range) (use flex wedge at an angle 6) 105x12,12,12, Hack Squat (chnage to lower rep range)65x12,12,10\nBelt Squat / ...3 / ! 2x6-10 120s / 3x8-12 150s / 150lb / progress: custom(s1Min: 6, s1Max: 10, s2Min: 8, s2Max: 12) { ...3 }\n// Change at week 49\n// Excercise order\n// # decline by 5° with each progression until get hitting ground at beginning of movement\n// # currently at -10\n// Reverse crunch, Russian twist (on nordic), GHD Sit up (weight it down on front), Landmine Twist, hanging knee raise, Woodchoppers, Decline Sit up (nordic, abdmat), cable crunch (65x16,12,10), Side Bends on Nordic hyper ghd (22.5x15,15->17.5x15),\nReverse Crunch / ...myoreps / 2x6-10 @9+ 90s / ! 2x8-12 @10+ 105s, 2x3+ @10 15s / 2x10-15 @10+ 120s, 2x3+ @10 15s, 1x10-15 @10+ 120s, 3x3+ @10 15s / 0lb / update: custom() {~\n if (weights[1] == 0lb) {\n weights = bodyweight -40lb\n }\n~}\n// Change at week 51\n// Excercise order\n// Strict EZ Bar curl (either strict or arm blaster - change to myoreps, Dumbell Curl, Rope Hammer Curl, Cable EZ Bar curl, Machine hammer curl, Machine preacher curl, DB Hammer Curl curl (29x12,12->3,2) myoreps, Cable Bayesian Curl (drop sets) 25x15, 13->20x8, Machine Reverse Grip EZ Bar Preacher curl,\nReverse Grip Preacher Curl / ...myoreps / 2x6-10 @9+ 90s / 2x8-12 @10+ 105s, 2x3+ @10 15s / ! 2x10-15 @10+ 120s, 2x3+ @10 15s, 1x10-15 @10+ 120s, 3x3+ @10 15s / 50lb / progress: custom(weightInc: 5lb) { ...myoreps }"},{"name":"B - Deadlift day","exerciseText":"// Change at week 54\n// Exercise Order\n// Sumo 10 minute block, ???Hip Thrusts???, Conventional, Trap bar 10 minute block, Sumo, Hip Thrust 10 minute block, Conventional 10 minute Block, Trap Bar deadlift (275x6,6,6)\n// Other considerations - snatch grip, deficit\nSumo Deadlift / 16x2 / 280lb 20s / warmup: 1x15 45lb, 1x5 55%, 1x3 85%, 1x2 95%, 1x1 105% / update: custom() {~\n if (setIndex > 0) {\n timers[setIndex + 1] = timers[1] + setIndex * 3\n }\n~} / progress: custom() {~\n if (sum(completedReps) >= 16) {\n weights += 5lb \n }\n~}\n// Change at week 48\n// Exercise Order\n// Regular Grip incline Swiss bar, Neutral grip incline Dumbell bench press, Regular Grip incline bench press, Machine neutral Grip Incline BP, Narrow Grip incline Swiss bar, DB Incline BP, Barbell close grip Incline bench press (95x9,8), Decline pushup (deficit) (17.5x76), Machine Incline chest press\nIncline Chest Press, Leverage Machine / ...2 / 62.5lb / progress: custom(weightInc: 2.5lb) { ...2 }\n// Change at week 50\n// Excercise order\n// Meadows Row, Levergym Pronated low row, DB Seal Row (higher rep range), Levergym Pronated high row, T-bar row, Seated Wide Grip Row (higher rep range), Inverted row (lower the rep range) (j-hook 11, BWx11,10,9), pronated Helm's row (42.5x11,10,10)\nMeadows Row / ...3 / 2x5-8 120s / ! 3x6-10 150s / 92.5lb / progress: custom(weightInc: 2.5lb) { ...3 }\n// Change at week 56\n// Excercise order (all these higher rep range)\n// Dumbell upright row (https://www.youtube.com/watch?v=K0dYqPCaO14), Face Pull (underhand grip https://www.youtube.com/watch?v=SgyUoY0IZ7A&t=661s), EZ bar Upright Row, Dumbell High Pull (35x5,5, see notes, unsure if I will repeat this, if not put AX facepull here or rope upright row and move facepull to day 6 and rearrange the order so no 2 upright rows next to each other), Cable upright row with EZ bar 52.5x8,7. Barbell High Pull 60x10,10,10(+.- snatch grip).\n// https://www.youtube.com/watch?v=wji6JNt_E-c&t=2m10s\nUpright Row / ...3 / ! 2x6-10 120s / 3x8-12 150s / 20lb / progress: custom(s1Min: 6, s1Max: 10, s2Min: 8, s2Max: 12, weightInc: 2.5lb) { ...3 }\n// Change at week 54\n// Excercise order\n// Incline/decline db skull crusher, Skull Destroyer (will need to change programming), Low to High OVerhead Extension, DB French Press (not sure If i like, 35x13,8(4,2)32x12(5,4,4), EZ Bar Skullcrusher (50x10,10@8) (myoreps), High Pulley overhead triceps extension (dropset, 45x14,13)\nDecline SkullCrusher, Dumbell / ...myoreps / 2x6-10 @9+ 90s / ! 2x8-12 @10+ 105s, 2x3+ @10 15s / 2x10-15 @10+ 120s, 2x3+ @10 15s, 1x10-15 @10+ 120s, 3x3+ @10 15s / 20lb"},{"name":"C - Vertical Pull","exerciseText":"// Change at week 60\n// Exercise Order\n// Neutral grip pull up - use medium mag grip (bw-40x12,10,9,9,8), Supinate chin - use narrow mag grip (BWx10,8,7,6), Pronated Pullup - Use widest mag grip,\n// # Use wideest grip mag\nPull Up / ...1 / 2x4-6 @7+ 120s / ! 3x5-8 @8+ 135s / 4x6-10 @8+ 165s / 5x8-12 @9+ 180s / 0lb / update: custom() {~\n if (weights[1] == 0lb) {\n weights = bodyweight -40lb\n }\n~}\n// Change week 55\n// Exercise Order\n// 45 degree Back Extension with barbell, Hip Thrust (machine), Nordic curls, Levergym Good Morning?, RDL, Good Morning, Glute-ham raise (bw+20x10,10), Snatch Grip RDL 230x9,8 (didnt love, dont do again, maybe replace with levergyn RDL?)\n45° Hyperextension / ...2 / 80lb\n// Change week 45\n// Exercise Order\n// Levergym High row, T-Bar row, Inverted Row, Chest Supported BB Row, Levergym pronated low row, Meadows Row, Pronated Helms Row (higher rep range) (37.5x10,9), Seated Wide Grip Row (higher rep range) (102.5x10,9@10)\nHigh Row / ...3 / 2x5-8 120s / ! 3x6-10 150s / 140lb / progress: custom(weightInc: 2.5lb) { ...3 }\n// Change week 51\n// Exercise Order\n// Leverage Squat (Myoreps), andmine squat (Flex wedge, myoreps), Sissy Squat (Myoreps), Leg Extension (dropset), Belt Squat (Myoreps) (130x15,15->9,8, 15->7,6,5), Hack squats (myoreps) 50x12,12->4,3, Reverse nordic *notes at bottom (myorreps) 5x14->10,10, Leg Press (Myoreps)\nLeg Press Machine / ...myoreps / 2x6-10 @9+ 90s / 2x8-12 @10+ 105s, 2x3+ @10 15s / ! 2x10-15 @10+ 120s, 2x3+ @10 15s, 1x10-15 @10+ 120s, 3x3+ @10 15s / 200lb / progress: custom(weightInc: 5lb) { ...myoreps }\n// Change week 47\n// # 6 week blocks\n// alternating sides, this ios meant for stmina and muscles\n// Exercise Order\n// Copenhagan planks (myo or drop physical weight), isolator reverse hyper, Cossack Squats(myo or drop physical weight), Neck extension and curl (4 weeks block, buy a harness, myo), Leg press calf raise (myo), Cable Abduction (drop) 17.5x12,12, Standing Calf Raise, Hack Squat (myo) (warmup with 3 sets of 5 reps with 5s of stretching between reps) start at 120 for 2 sets, Cable Adduction (drop) 25x12,12, Side lunges (myoreps, see below notes) 30x15,15,15, Kabuki Calf Raise (myo),\nStanding Calf Raise, Kabuki Bar / ...myoreps / 2x6-10 @9+ 90s / ! 2x8-12 @10+ 105s, 2x3+ @10 15s / 2x10-15 @10+ 120s, 2x3+ @10 15s, 1x10-15 @10+ 120s, 3x3+ @10 15s / 215lb / progress: custom(weightInc: 5lb) { ...myoreps }"},{"name":"D - Overhead Press Day","exerciseText":"// Change at week 56\n// Exercise Order\n// On Knees Trap OHP, Seated OHP (85x7x6x5->77.5x8), On Knees Swiss OHP, Seated Trap OHP, On knees OHP , Seated Swiss OHP, (45° swiss BP - DO NOT REPEAT, 95x8,7,6,6)\nTrap Bar OHP, on Knees / ...1 / 2x4-6 @7+ 120s / ! 3x5-8 @8+ 135s / 4x6-10 @8+ 165s / 5x8-12 @9+ 180s / 85lb\n// Change at week 50\n// # do partials until rep target\n// # superset with first exercise\n// Exercise Order\n// Underhand high row, ?????Chest supported Mg4CN????, Narrow Meadows Row, Bent over 1 arm row, Neutral Grip Machine Low row (87.5x10,9), Chest Supported T Bar Row (need to redo as nuetral grip\nUnderhand High row / ...2 / 172.5lb / progress: custom(weightInc: 2.5lb) { ...2 }\n// Change at week 46\n// Exercise Order\n// redo this to alternate between mid-chest and upper chest\n// Standing Low to high Cable crossover (higher rep range), Seated Cable Press, Incline dumbell Fly (higher rep range), Pushup (deficit vs rings) (Higher rep range),Leverbench fly(Higher rep range), Decline Machine Chest Press, Seated Cable Crossover (Higher rep range),Levergym Chest Press,Dumbell Chest fly (Higher rep range) 22.5x14,13,11 (+/- Bands, or just lower ROM), Machine Incline chest press (lower the rep range)(52.5x12,10,10)\nLow to High Cable Crossover, Cable / ...3 / ! 2x6-10 120s / 3x8-12 150s / 20lb / progress: custom(s1Min: 6, s1Max: 10, s2Min: 8, s2Max: 12, weightInc: 2.5lb) { ...3 }\n// Change at week 52\n// # when core is weak spot, change to one arm at a time while holding rack\n// Exercise Order\n// EZ Strict curl (arm blaster?, myo), Ab handle curl (DS), Dumbell spider curl (myop), EZ Bar curl (myo), Machine hammer curl with bulletproof (ds),Incline Dumbell Curl (myo), Levergym Drag curl (powertec video) (myo) 57.5x10,10), Cable Hammer Curl (DS) 50x18,14,12, Dumbell Curl (myo),\nBicep Curl / ...myoreps / 2x6-10 @9+ 90s / ! 2x8-12 @10+ 105s, 2x3+ @10 15s / 2x10-15 @10+ 120s, 2x3+ @10 15s, 1x10-15 @10+ 120s, 3x3+ @10 15s / 27.5lb\n// Change at week 44\n// progression will be first adding weight. Once at 25lb buy new wheel that does not assist on the way back and start again. Once at 25lb with that then start on feet (go down to knees as needed) then add weight (https://www.youtube.com/watch?v=PK4n7qJpOhM)\n// Exercise Order\n// Ab wheel side rollouts, Deadbug (may need ankle weights), Side plank, Plank, Pallof Press 37.5x15,15->30x15, Ab Wheel (see progression scheme in template day),\nAb Wheel / ...myoreps / 2x6-10 @9+ 90s / 2x8-12 @10+ 105s, 2x3+ @10 15s / ! 2x10-15 @10+ 120s, 2x3+ @10 15s, 1x10-15 @10+ 120s, 3x3+ @10 15s / 12.5lb"},{"name":"E -Squat Day","exerciseText":"// Change at week 50\n// Exercise Order\n// Hatfield squat, Pin HBBS Squat, Front squat (150x10,10,10,10,10)\n// each of the squats should first be pinned, once the depth is good then the HBBS and Front Squat are regular and hatfield is paused\nHatfield Squat / ...1 / 2x4-6 @7+ 120s / ! 3x5-8 @8+ 135s / 4x6-10 @8+ 165s / 5x8-12 @9+ 180s / 175lb\n// Change at week 55\n// Exercise Order\n// Landmine press, Pronated Machine OHP, Arnold OHP (35x11,10,8), Kneeling landmine Press, Pronated Machine OHP (viking) (40x10,10), DB OHP (40x11,9,8)\n1-arm Landmine OHP, Kneeling / ...3 / ! 2x5-8 120s / 3x6-10 150s / 70lb / progress: custom(weightInc: 2.5lb) { ...3 }\n// Change at week 49\n// Exercise Order\n// use flex wedge to increase ROM abd versa gripp for sleeve grab\n// Supinated (medium grip) Lat pulldown, Levergym supinated low row, DB Seal Row (Higher rep range), Leverygym narrow grip pulldown, T-bar row, 1-arm pulldown (Higher rep range), Supinated (narrow grip) lat pulldown, ,Levergym supinated pulldown, narrow grip cable row(Higher rep range), Incline bench neutral DB row (Higher rep range)(30deg) (37.5x15,14,13), 2-hand straight arm pulldown (Higher rep range)(not sure will repeat) 65x13,11,10, Narrow Meadows Row,\nMeadows Row, Lat Focused / ...3 / 2x5-8 120s / ! 3x6-10 150s / 95lb / progress: custom(weightInc: 2.5lb) { ...3 }\n// Change at week 51\n// Exercise Order\n// Levergym Dips (gray matter) (myo), Bullet proof triceps pushdown (DS), Cross body pushdown with cuffs (ds), Levergym or MG4CN JM press (Myo), Triceps pushdown with rope (DS), DB kickback (myo) (22x18->17.5x18->12x18), Triceps push down with straight bar or other bar (DS) (60x18,14,14+myo)\nSeated Triceps Dip / ...myoreps / 2x6-10 @9+ 90s / ! 2x8-12 @10+ 105s, 2x3+ @10 15s / 2x10-15 @10+ 120s, 2x3+ @10 15s, 1x10-15 @10+ 120s, 3x3+ @10 15s / 170lb\n// Change at week 47\n// # set bench to 45°\n// Exercise Order\n// Behind the back Y-raise(https://www.youtube.com/watch?v=SgyUoY0IZ7A&t=546s), DB Side lateral raise, Rope upright row (https://www.youtube.com/watch?v=SgyUoY0IZ7A&t=595s), Cable Y-raise (consider 2 hands, this is JN look up Eugene https://www.youtube.com/watch?v=SgyUoY0IZ7A&t=533s) Landmine Lateral raise, cable lateral raise, Incline bench DB Lat raise (15x11,11->4,3), Lying cable lateral raise (HC) (17.5x??), lying DB Lateral raise (like arnold, bench at 45°),\nLying dumbell lateral raise / ...myoreps / ! 2x6-10 @9+ 90s / 2x8-12 @10+ 105s, 2x3+ @10 15s / 2x10-15 @10+ 120s, 2x3+ @10 15s, 1x10-15 @10+ 120s, 3x3+ @10 15s / 20lb"},{"name":"F -Horizontal Row Day","exerciseText":"// Change at week 49 (then 60 then q16 weeks)\n// Exercise Order\n// Wide Grip T-Bar Row (Chest supported??), Pendlay row, Seal Row (100x6,6) (Deficit) Bent over row 110x5,5, Inverted Row (once increase weight to 25lb, the raise legs and start again at BW)\nInverted Row / ...1 / 2x4-6 @7+ 120s / 3x5-8 @8+ 135s / 4x6-10 @8+ 165s / ! 5x8-12 @9+ 180s / 0lb / update: custom() {~\n if (weights[1] == 0lb) {\n weights = bodyweight\n }\n~}\n// Change at week 54\n// # elevate both feet using wooden belt squat boxes\n// Exercise Order\n// levergym reverse lunge, Kettle bell swings, Landmine Reverse Lunge, Pull through, Bulgarian Split Squat, Reverse Lunge (52x8,7), Hip Thrust (on machine will no longer do barbell if it is done as main deadlift day, last barbell was 255x9,7), Split Squat (Both feet elevated) 115x10,10,\nReverse lunge, Levergym / ...2 / 95lb\n// Change at week 53\n// Exercise Order\n// Neutral T-Bar Row, Neutral Grip Medium cable row (Higher rep range), Helms row (Higher rep range), Neutral grip medium pulldown, Narrow Meadows Row, DB Pullover, Levergym Neutral grip low row, Pronated Lat pulldown (Wide grip), DB Seal row (Higher rep range)(47.5x10,10), Neutral Grip narrow pulldown\nNarrow Grip Chest Supported T Bar Row, Landmine / ! 2x5-8 120s / 3x6-10 150s / 125lb / progress: custom(weightInc: 2.5lb) { ...3 }\n// Change at week 48\n// Exercise order\n// Seated Leg Curl, Lying leg curl (55x12,12), 45° Hyperextension (65x12,12->6,3)\nSeated Leg Curl / ...Dropsets / 2x8-12 @9+ / 3x10-15 @10+ / ! 6x12-18 @10+ / 55lb / progress: custom(weightInc: 5lb) { ...Dropsets }\n// Change at week 45\n// # 6 week blocks\n// Exercise Order\n// DB Holds (when max DB then add Fat Gripz, when max that move to trap bar or BB, every time plate is added and now need to go up 5 lbs, use fat gripz instead until back to that weight), Power shrugs, Wrist roller 2 exerciseses, one for rolling forward and one for backward?), Behind back shrugs (4 week block only), Reverse cablefly (12.5x15,15), Trap bar shrugs (185x13,10+myo,10+myo), Wrist curls (start at 20lbs, AND wrist extension start at 15lbs), DB Reverse fly (infinity arm),\nReverse Fly / ...myoreps / 2x6-10 @9+ 90s / ! 2x8-12 @10+ 105s, 2x3+ @10 15s / 2x10-15 @10+ 120s, 2x3+ @10 15s, 1x10-15 @10+ 120s, 3x3+ @10 15s / 22.5lb"}]}]}},"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":[]}