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: 66
Strength Sets: 3, 5%
Hypertrophy Sets: 63, 95%
Upper Sets: 33 (33h ) , 3d
Lower Sets: 27 (27h ) , 3d
Core Sets: 6 (3s , 3h ) , 2d
Push Sets: 21 (21h ) , 2d
Pull Sets: 15 (15h ) , 2d
Legs Sets: 24 (24h ) , 2d
Shoulders: 20↓ (2s , 18h ) , 3d
Triceps: 12 (12h ) , 2d
Back: 14↓ (2s , 12h ) , 3d
Abs: 6↑ (3s , 3h ) , 2d
Glutes: 20↓ (2s , 18h ) , 4d
Hamstrings: 15↓ (2s , 14h ) , 4d
Quadriceps: 21↓ (2s , 20h ) , 4d
Chest: 17↓ (2s , 15h ) , 3d
Biceps: 6↑ (6h ) , 1d
Calves: 11 (11h ) , 3d
Forearms: 5↑ (5h ) , 1d
{"maxWidth":2400,"url":"/planner","isLoggedIn":false}
{"exportedProgram":{"customExercises":{},"program":{"deletedExercises":[],"planner":{"name":"Thinner Leaner Stronger (5-day) Phase 3","weeks":[{"name":"Week 1","days":[{"name":"Day 1 - Lower Body A","exerciseText":"t: Lunge[1-8] / used: none / 3x6-8 / 70% / @8+ / 180s / warmup: none / update: custom() {~\nif (week != 9) {\n if (setIndex > 0) {\n //state.failure = 0\n for (var.i in completedReps) {\n if (var.i <= setIndex && (completedReps[var.i] < minReps || (completedReps[var.i] == minReps && completedRPE[var.i] > RPE))) {\n if (state.failure < 3) {\n state.failure += 1\n }\n } else if (var.i <= setIndex && (completedReps[var.i] >= reps && completedRPE[var.i] <= RPE)) {\n if (state.failure > 0) {\n state.failure -= 1\n }\n }\n }\n if (state.failure < 1 && (completedReps[setIndex] >= reps && completedRPE[setIndex] <= RPE)) {\n weights = completedWeights[setIndex] + state.increment\n } else if (state.failure < 3 && (completedReps[setIndex] < minReps || (completedReps[setIndex] == minReps && completedRPE[setIndex] > RPE))) {\n weights = completedWeights[setIndex] - state.increment/2\n } else {\n weights = completedWeights[setIndex]\n }\n }\n }\n~} / progress: custom(failure: 0, increment: 5kg) {~\nif (week != 9) {\n rm1 = calculate1RM(completedWeights[numberOfSets], completedReps[numberOfSets]) * rpeMultiplier(1, completedRPE[numberOfSets])\n if (state.failure < 1 && (completedReps[numberOfSets] >= reps && completedRPE[numberOfSets] <= RPE)) {\n weights = completedWeights[numberOfSets] + state.increment\n } else if (state.failure < 3 && (completedReps[numberOfSets] < minReps)|| (completedReps[numberOfSets] == minReps && completedRPE[numberOfSets] > RPE)) {\n weights = completedWeights[numberOfSets] - state.increment/2\n } else {\n weights = completedWeights[numberOfSets]\n } \n }\n~}\n\nt: Crunch[1-8] / used: none / 3x6+ / 120s / warmup: none / progress: custom(start:6, target: 30, weeks:8, increment: 2.5kg) {~\n if (completedReps <= state.target) {\n if (completedReps >= reps) {\n reps += round(((state.target - state.start) / state.weeks))\n }\n }\n else {\n reps = state.start\n weights += state.increment\n }\n~}\n\nt: Plank[1-8] / used: none / 3x10+ / 120s / warmup: none / progress: custom(mintime:10, targettime: 120, increment: 5, variation:1) {~\n descriptionIndex = state.variation\n if (completedReps >= reps) {\n reps += state.increment\n }\n if (descriptionIndex == 1 && completedReps > state.targettime) {\n reps = state.mintime\n state.variation = 2\n descriptionIndex = state.variation\n }\n~}\n\nprimary: Squat[1-9] / used: none / 3x6-8 / 70% / @8+ / 180s / warmup: 1x10 50%, 1x4 70%\naccessory: Squat[1-9] / used: none / 3x8-10 / 75% / @9+ / 120s / warmup: none\ncore: Squat[1-8] / used: none / 3x6+ (AMRAP) / @10 / 120s / warmup: none\n\n// [Barbell Squat Video](https://www.youtube.com/watch?v=KJ_tmkdWmE0&feature=youtu.be)\nfirst: Squat[1,1-9] / ...primary: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Barbell Romanian Deadlift Video](https://m.youtube.com/watch?v=ua-Zlgpe1no&feature=youtu.be)\nRomanian Deadlift, Barbell[2,1-9] / ...primary: Squat / warmup: none / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Leg Press Video](https://m.youtube.com/watch?v=shOprEcfDPM&feature=youtu.be)\nSeated Leg Press[3,1-9] / ...accessory: Squat/ update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Dumbbell Bulgarian Split Squat Video](https://www.youtube.com/watch?v=DCGHjnIekw0&feature=youtu.be)\nBulgarian Split Squat, Dumbbell[4,1-9] / ...accessory: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }","id":"uxypqoja"},{"name":"Day 2 - Push","exerciseText":"// [Dumbbell Bench Press Video](https://m.youtube.com/watch?v=F1-6iSktxHc&feature=youtu.be)\nBench Press, Dumbbell[1,1-9] / ...primary: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Incline Barbell Bench Press Video](https://m.youtube.com/watch?v=cPbElRT55C8&feature=youtu.be)\nIncline Bench Press[2,1-9] / ...primary: Squat / warmup: none / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Barbell Bench Press Video](https://m.youtube.com/watch?v=YLBMLUfBwUo&feature=youtu.be)\nBench Press, Barbell[3,1-9] / ...accessory: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Lying Triceps Extension Video](https://m.youtube.com/watch?v=ai_dq1UGHdc&feature=youtu.be)\nSkullcrusher, EZ Bar[4,1-9] / ...accessory: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [*Plank Video*](https://www.youtube.com/watch?v=pSHjTRCQxIw&t=28s)\n//\n// *Optional Exercise, reps represent seconds to hold position*\n//\n// **Variation 1:** normal plank\n\n// [*Plank Video*](https://www.youtube.com/watch?v=pSHjTRCQxIw&t=28s)\n//\n// *Optional Exercise, reps represent seconds to hold position*\n//\n// **Variation 2:** elbows 5\" in front of shoulders, and flexed glutes\n\nPlank, Bodyweight[5,1-8] / 3x10+ (second) / ...core: Squat / progress: custom(mintime:10, targettime: 120, increment: 5, variation:1) { ...t: Plank }","id":"pbobzoeu"},{"name":"Day 3 - Pull","exerciseText":"// [Barbell Deadlift Video](https://m.youtube.com/watch?v=oZTO3clUAWU&feature=youtu.be)\nDeadlift[1,1-9] / ...primary: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Barbell Row Video](https://m.youtube.com/watch?v=f2MCvjTekS4&feature=youtu.be)\nBent Over Row, Barbell[2,1-9] / 20kg / ...primary: Squat / warmup: none / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Lat Pulldown (Medium Grip) Video](https://m.youtube.com/watch?v=PJXwrqUJG9A&feature=youtu.be)\n//\n// Medium Grip\nmediumgrip: Lat Pulldown[3,1-9] / ...accessory: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [EZ-Bar Preacher Curl Video](https://m.youtube.com/shorts/kmQSZVEsAAs?feature=share)\nPreacher Curl, EZ Bar[4,1-9] / 12kg / ...accessory: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }","id":"djpvtdqm"},{"name":"Day 4 - Upper Body","exerciseText":"// [Standing Barbell Overhead Press Video](https://m.youtube.com/watch?v=38M3yr0jsbg&feature=youtu.be)\nOverhead Press, Barbell[1,1-9] / 20kg / ...primary: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Close Grip Barbell Bench Press Video](https://m.youtube.com/watch?v=vDZ0QvMw_w0&feature=youtu.be)\nBench Press Close Grip[2,1-9] / ...primary: Squat / warmup: none / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Dumbbell Side Lateral Raise Video](https://m.youtube.com/watch?v=yUNf3UGc2fQ&feature=youtu.be)\nLateral Raise[3,1-9] / ...accessory: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 2.5kg) { ...t: Lunge }\n// [Machine Reverse Fly Video](https://m.youtube.com/watch?v=mZeq0wEazQY&feature=youtu.be)\nReverse Fly, Leverage Machine[4,1-9] / 2.5kg / ...accessory: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 2.5kg) { ...t: Lunge }\n// [*Abdominal Rollout Video*](https://www.youtube.com/watch?v=PwqJTPsI6i0&t=69)\n//\n// *Optional Exercise, As Many Reps As Possible (AMRAP)*\n//\n// **Variation 1:** on your knees\n\n// [*Abdominal Rollout Video*](https://www.youtube.com/watch?v=PwqJTPsI6i0&t=69)\n//\n// *Optional Exercise, As Many Reps As Possible (AMRAP)*\n//\n// **Variation 2:** on your feet,like a plank\n\nAb Wheel, Bodyweight[5,1-8] / 3x6+ (AMRAP) / ...core: Squat / progress: custom(mintime:6, targettime: 30, increment: 3, variation:1) { ...t: Plank }","id":"omzshnvf"},{"name":"Day 5 - Lower Body B","exerciseText":"// [Barbell Squat Video](https://www.youtube.com/watch?v=KJ_tmkdWmE0&feature=youtu.be)\nlast: Squat[1,1-9] / ...primary: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Leg Curl Video](https://m.youtube.com/watch?v=1N9BEWbf0E4&feature=youtu.be)\nLying Leg Curl[2,1-9] / ...accessory: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Dumbbell Lunge, In-Place Video](https://m.youtube.com/watch?v=1x1sL4GwQoA&feature=youtu.be)\nLunge, Dumbbell[3,1-9] / ...accessory: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }\n// [Barbell Hip Thrust Video](https://m.youtube.com/watch?v=MxrBskXjVHU&feature=youtu.be)\nHip Thrust[4,1-9] / ...accessory: Squat / update: custom() { ...t: Lunge } / progress: custom(failure: 0, increment: 5kg) { ...t: Lunge }","id":"wyypsgjp"}],"id":"vqjhbbjk"},{"name":"Week 2","days":[{"name":"Day 1 - Lower Body A","exerciseText":"","id":"uvrxxsro"},{"name":"Day 2 - Push","exerciseText":"","id":"mkhezfzk"},{"name":"Day 3 - Pull","exerciseText":"","id":"bmipfcgr"},{"name":"Day 4 - Upper Body","exerciseText":"","id":"aygccaxv"},{"name":"Day 5 - Lower Body B","exerciseText":"","id":"bkhlmbbl"}],"id":"tzrivfun"},{"name":"Week 3","days":[{"name":"Day 1 - Lower Body A","exerciseText":"","id":"qjdgrptv"},{"name":"Day 2 - Push","exerciseText":"","id":"fmoadtdo"},{"name":"Day 3 - Pull","exerciseText":"","id":"ntawdcjk"},{"name":"Day 4 - Upper Body","exerciseText":"","id":"pgyhczjn"},{"name":"Day 5 - Lower Body B","exerciseText":"","id":"gtqodnhf"}],"id":"cfzvnnli"},{"name":"Week 4","days":[{"name":"Day 1 - Lower Body A","exerciseText":"","id":"hegwkujz"},{"name":"Day 2 - Push","exerciseText":"","id":"xahzqmtm"},{"name":"Day 3 - Pull","exerciseText":"","id":"lenhvpbs"},{"name":"Day 4 - Upper Body","exerciseText":"","id":"vuftpmeb"},{"name":"Day 5 - Lower Body B","exerciseText":"","id":"ddcceral"}],"id":"fineybvl"},{"name":"Week 5","days":[{"name":"Day 1 - Lower Body A","exerciseText":"","id":"lcsheddh"},{"name":"Day 2 - Push","exerciseText":"","id":"rtmbxdix"},{"name":"Day 3 - Pull","exerciseText":"","id":"gazjkbbj"},{"name":"Day 4 - Upper Body","exerciseText":"","id":"fxesbeka"},{"name":"Day 5 - Lower Body B","exerciseText":"","id":"ehhwfjap"}],"id":"ncdvsoqq"},{"name":"Week 6","days":[{"name":"Day 1 - Lower Body A","exerciseText":"","id":"ysdoqvti"},{"name":"Day 2 - Push","exerciseText":"","id":"lirnjbph"},{"name":"Day 3 - Pull","exerciseText":"","id":"zegzatgq"},{"name":"Day 4 - Upper Body","exerciseText":"","id":"oxxinmdg"},{"name":"Day 5 - Lower Body B","exerciseText":"","id":"tikjadkb"}],"id":"ocfewgoz"},{"name":"Week 7","days":[{"name":"Day 1 - Lower Body A","exerciseText":"","id":"toqfxsls"},{"name":"Day 2 - Push","exerciseText":"","id":"haauiykr"},{"name":"Day 3 - Pull","exerciseText":"","id":"jaszxqla"},{"name":"Day 4 - Upper Body","exerciseText":"","id":"wyasaspx"},{"name":"Day 5 - Lower Body B","exerciseText":"","id":"hwjwybjz"}],"id":"inlelpgx"},{"name":"Week 8","days":[{"name":"Day 1 - Lower Body A","exerciseText":"","id":"dgdpicvs"},{"name":"Day 2 - Push","exerciseText":"","id":"jwhffnzy"},{"name":"Day 3 - Pull","exerciseText":"","id":"lwpquehz"},{"name":"Day 4 - Upper Body","exerciseText":"","id":"oecezkoh"},{"name":"Day 5 - Lower Body B","exerciseText":"","id":"fxteodgt"}],"id":"bhhtouiu"},{"name":"Week 9 - Deload Week","days":[{"name":"Day 1 - Lower Body A Deload","exerciseText":"primary: Squat / used: none / 2x3 / progress: none\naccessory: Squat / used: none / 2x4 / progress: none","id":"nxsbdytu"},{"name":"Day 2 - Push Deload","exerciseText":"","id":"vkrazsmx"},{"name":"Day 3 - Pull Deload","exerciseText":"","id":"wyuicbuh"},{"name":"Day 4 - Upper Body Deload","exerciseText":"","id":"jlplfxea"},{"name":"Day 5 - Lower Body B Deload","exerciseText":"","id":"dmegvxuf"}],"id":"qcssazgs"}],"vtype":"planner"},"exercises":[],"days":[{"name":"Day 1","exercises":[],"id":"kvkcclma"}],"deletedDays":[],"url":"","isMultiweek":false,"name":"Thinner Leaner Stronger (5-day) Phase 3","weeks":[],"nextDay":1,"shortDescription":"","clonedAt":1726738414237,"description":"","id":"ocwzquxb","tags":[],"deletedWeeks":[],"author":"","vtype":"program"},"version":"20260304084247","settings":{"timers":{"warmup":90,"workout":120,"reminder":900},"units":"kg"}},"shouldSyncProgram":false,"isMobile":false,"revisions":[]}