Skip to main content

FAQ: Program Plans & Enrollment

This page answers common questions about Program Plans, how you enroll in them, and how scheduling works in OpenLift.

Q1: What is a Program Plan in OpenLift? A: A ProgramPlan is a complete, multi-week (or multi-session) structured training program available in the OpenLift catalog. It's designed by admins or coaches and outlines a path towards a specific fitness goal (e.g., hypertrophy, strength, endurance) for a particular experience level (e.g., beginner, intermediate, advanced). It contains an ordered sequence of ProgramWorkoutTemplates, a default ProgramTrainingFocus, and can include ProgramPlanWeeklyModifiers.

Q2: How do I find and choose a Program Plan? A: You can browse the catalog of available ProgramPlans within the OpenLift app. Plans will typically display their name, description, intended goal, level, duration (e.g., 8 weeks), and workouts per week. You can select one that best matches your objectives and current fitness level.

Q3: What happens when I enroll in a Program Plan? A: When you enroll:

  1. A ProgramUserInstance (PUI) is created for you, which tracks your personal progress through that plan.
  2. Snapshots are created: You get personal, immutable copies of the plan itself (UserProgramPlanSnapshot), all its workout templates (UserProgramPWTSnapshot), the exercises within those templates (UserProgramPWESnapshot), and any weekly modifiers (UserProgramWeeklyModifierSnapshot). This locks in your program structure.
  3. You'll provide your preferred training days.
  4. The Intelligent Scheduling Service populates your in-app calendar with UserProgramScheduledWeekWorkout entries for the initial weeks of your plan, based on your preferences and the plan structure.

Q4: What is a UserProgramPlanSnapshot? A: It's your personal, unchangeable copy of the ProgramPlan's core details (like its name, version, duration, and default training focus) as they were when you enrolled. This ensures your program's overall structure remains consistent throughout your enrollment, even if the master plan in the catalog is updated later. It's the parent record for your PWT, PWE, and Weekly Modifier snapshots.

Q5: Can I be enrolled in multiple Program Plans at the same time? A: Typically, OpenLift is designed for you to actively follow one ProgramPlan at a time to ensure focused training and clear progression tracking. Your ProgramUserInstance will usually have a status like ACTIVE or PAUSED. You would generally end or complete one program before enrolling in a new one.

Q6: What are ProgramPlanWeeklyModifiers and how do they affect me? A: ProgramPlanWeeklyModifiers are adjustments defined in the master ProgramPlan for specific weeks. For example, Week 4 might be a "Deload Week" with reduced target reps or sets, or Week 8 might be a "Peak Week" with increased intensity. When you enroll, these are captured in your UserProgramWeeklyModifierSnapshots. The "Effective Workout" engine then applies these snapshotted modifiers to your daily workout targets when you start a session that falls within such a modified week of your program.

Q7: How does my progress through a Program Plan work? A: Your ProgramUserInstance (PUI) tracks your currentPlanWeekNumber (the logical week of program content you are on) and lastCompletedPwtOrderInWeek (the last workout snapshot you finished or skipped in that logical week).

  • When you complete or skip a scheduled workout, these PUI fields are updated.
  • If you finish all workouts for a logical week, your currentPlanWeekNumber advances.
  • The scheduling service uses this information to determine what workout content to schedule next.

Q8: What if I change my preferred training days mid-program? A: You can! If you update your preferredTrainingDays in your program settings, OpenLift will clear your future SCHEDULED (but not yet done) workouts and then intelligently regenerate your upcoming schedule based on your new preferences, picking up from where you left off in your program's logical progression.

Q9: What does "Intelligent Catch-Up" mean for my plan? A: If you miss a scheduled workout, OpenLift won't let you fall too far behind on your plan's content. The next time your schedule is generated (e.g., when you open the app for a new week), it will try to schedule that missed workout into an available preferred slot in your current calendar week. You also have the option to "skip" such catch-up workouts if you prefer, and the system will adjust your progression to move you to the next item in your plan's sequence.

Q10: What's the difference between "completing" and "skipping" a workout in my plan? A:

  • Completing: You perform the workout, log your sets, and mark it done. This fully counts towards your training. A WorkoutHistoryEntry is created and linked.
  • Skipping: You choose not to do a specific scheduled workout. OpenLift marks it as SKIPPED_USER. For the purpose of advancing your program sequence, it's treated as if you "notionally completed" it – meaning your lastCompletedPwtOrderInWeek (and potentially currentPlanWeekNumber) will advance. This allows you to move to the next planned workout without being stuck on the one you skipped. No WorkoutHistoryEntry is created for a skipped workout. This feature gives you flexibility if a catch-up workout isn't feasible or desired.