Programming Basics: Part 2

ByEric O'Connor (CF-L4)November 20, 2023

In part 1 of this series, we outlined the goals of programming, factors to consider for effective variance, considerations for intensity, and a sample system to implement when designing a single effective workout. We also briefly discussed that you can start the process of planned variance instead of randomization by just programming something a little different than what was done the day before. However, after you have been programming for a while, it will be advantageous to move on from programming on a day-to-day basis to analyzing a larger block of workouts (one to two weeks) to assess potential gaps in your plan before programming forward.

There are two basic strategies we will explore:

Strategy 1: Look back and program ahead

Looking back at previous programming and analyzing the data is a strategy for determining optimal variance that should be programmed in the future. For example, a strategy for a coach who programs one week at a time could be to analyze the previous one or two weeks of programming, assess the data, and then create two or three goals to achieve in the upcoming week. If you are looking for a resource to use for your analysis, the CrossFit Level 2 Training Guide provides an analysis worksheet to help dissect your programming.

Take a look at the following series workouts:

Table showing five days of programming.

Overall, each individual session is a good workout, but there are some things that have been neglected, specifically, key areas such as longer-duration workouts, moderate loads, lack of monostructural exercises, and higher-skill elements. If this trend continues, it will lead to glaring deficiencies in these areas and will have a significant impact on one’s overall fitness.

Based on this analysis, we can develop goals and specific workouts for the upcoming programming. I prefer to start with the major goals and then consider secondary goals:

Major Goals

  1. Moderate loads.
  2. More monostructural movements.
  3. 10-15-minute and 20-plus-minute workouts.
  4. Time-priority workout.
  5. Higher-skill elements: The previous batch of programming has a fair amount of gymnastics and weightlifting movements but lacks high skill. The upcoming week may benefit from movements such as muscle-ups, a clean variation, etc.

Minor Goals

  1. Chipper: I’m not too concerned about hitting this being that the focus should be on couplets, triplets, and single-modality sessions.
  2. I will ensure that Day 6 does not include an upper-body horizontal pushing movement as the push-up (Day 4) and burpee (Day 5) are redundant in this regard.
  3. Include some sort of a pull from the floor (deadlift, clean, etc.) as this was completely lacking on Days 1-5.

Based on what we have analyzed, below is a sample of how we can gradually fill in the gaps from the previous series of programming. Remember, our goal is not to solve for every deficiency in the next two workouts but to make a specific goal to begin to fill in the holes.

Programming table.

Strategy 2: Template Development

Creating a template to utilize for a block of time (two to six weeks) can be a useful tool to guide programming. Consider the CrossFit Journal article: “A Theoretical Template for CrossFit’s Programming.” This template is actually what I used when I first started dabbling in programming. The template focuses on varying exercise modalities as well as the duration, the scheme being used, and the priority of the day. This template, as well as all good templates, still leaves room for significant variance in other areas such as the loading and the specific movements utilized.

A starting point for creating a template for GPP (general physical preparedness) can focus on microcycle (weekly) goals to be achieved. On a weekly basis, generalists might strive to address: one heavy-focused session, one short workout, one long workout, and three classic workouts that hit the major themes prioritized with effective programming discussed in the first article of this series (sub-15 minutes, couplets, triplets, complementary movement pairings, and high power). Consider the following strategy for creating a general template using the classic three days on and one day off parameters:

Step 1: Create goals for each three-day cycle. For this template, a microcycle will consist of two sets of three-day cycles:

Three-day cycle 1: Heavy day, long workout, classic workout.

Three-day cycle 2: Classic workout, short workout, classic workout.

Step 2: Lay out the cycle with daily goals for one to two weeks. For example:

Microcycle 1

Day 1: Long workout (20+ minutes)

Day 2: Heavy

Day 3: Triplet (8-15 minutes)

Day 4: Rest

Day 5: Short workout (less than 5 minutes. Optional: two-part workout. For example, a strength element followed by a conditioning element. Two-part workouts are not prioritized due to affecting intensity negatively on one or both sections. However, these sessions can be used if the correct movements (not highly skill based) are chosen and the coach has a well established plan to manage the session).

Day 6: Triplet (10-15 minutes)

Day 7: Couplet (7-10 minutes)

Day 8: Rest

Microcycle 2 (rotate days slightly within each three-day cycle)

Day 1: Triplet (8-15 minutes)

Day 2: Long workout (20+)

Day 3: Heavy

Day 4: Rest

Day 5: Triplet (10-15 minutes)

Day 6: Short workout

Day 7: Couplet (7-10 minutes)

Day 8: Rest

Step 3: Review previous two weeks of programming.

Analyze the programming for anything missed. For this sample template, specifically focus on analyzing:

  • Movements or movement functions.
  • Loadings.
  • Schemes.

Step 4: Add deficiencies in movements, loadings, schemes into the template.

For example, based on previous programming outlined in this article, we noted a lack of high-skill movements, moderate loads, and time-priority workouts. The sample template can now be more detailed:

Microcycle

Day 1: Long workout (20+ minutes, chipper, includes high-skill gymnastics)

Day 2: Heavy (a different movement function than the previous heavy day)

Day 3: Triplet (8-15 minutes, includes moderate loads)

Day 4: Rest

Day 5: Short workout (less than 5 minutes, moderate to heavy loads with a high-skill movement)

Day 6: Triplet (10-15 minutes, unloaded, time priority)

Day 7: Couplet (7-10 minutes, light loaded, task priority)

Day 8: Rest

Step 5: Program-specific workouts. 

You can now plug in the specific workouts and assess variance across the microcycle.

Targeted Templates

You can choose to target one or two domains for a block of time (six to eight weeks). This means the programming will slightly increase the dose of a specific area without neglecting all other domains of fitness. I have typically utilized targeted blocks of programming one or two times a year based on areas of weakness that I have noticed or input from my athletes on certain areas they want to focus on. I typically bookend the six-to-eight-week block of training with testing weeks. So, if I’m going to target the back squat, I will do something like the following:

Week 1: Test 3-rep-max back squat

Weeks 2-8: Back-squat work programmed twice per week

Week 9: Retest 3-rep-max back squat.

Utilizing the sample template above, I can replace two sessions a week with back-squat sessions, and it could look like this:

Microcycle 1

Day 1: Long workout (20+ minutes)

Day 2: Back squat (week 1, day 1)

Day 3: Triplet (8-15 minutes)

Day 4: Rest

Day 5: Back squat (week 1, day 2)

Day 6: Triplet (10-15 minutes)

Day 7: Couplet (7-10 minutes)

Day 8: Rest

Microcycle 2 (rotate days slightly within each three-day cycle)

Day 1: Triplet (8-15 minutes)

Day 2: Long workout (20+)

Day 3: Back squat (week 2, day 1)

Day 4: Rest

Day 5: Triplet (10-15 minutes)

Day 6: Back squat (week 2, day 2)

Day 7: Couplet (7-10 minutes)

Day 8: Rest

We are providing variance within this slightly targeted block of training while still ensuring structure to a particular area of focus. 

Is the Program Working?

Being that CrossFit’s definition of fitness is based on measured observation, assessing if the program is effective or not is relatively simple. This occurs through repeating benchmarks and comparing the results to previous scores. You can do targeted blocks of testing (e.g., one- or two-week testing block a couple of times a year) or you can routinely throw in benchmarks as you see fit (some may program a weekly benchmark, etc.). If you notice times are improving, loads are getting heavier, etc., you are on the right track. If you notice that certain domains are not improving or are lackluster overall, you know you might have an area you can target your programming toward. The data doesn’t lie. 

While programming is important, keep in mind that it is just one piece of an effective program and is likely secondary to developing quality technique, high-quality coaching, your training environment, your nutrition, and your ability to work at high levels of intensity. 

If programming is something you are interested in, just get started! Know that you will make mistakes and that’s OK. Regardless of your level of experience, there will always be lessons learned. Don’t forget the educational resources available to you, such as CrossFit Affiliate Programming, the CrossFit.com Workout of the Day, the CrossFit Training Instagram page (@crossfittraining), and even the online Programming Course


ABOUT THE AUTHOR

Eric O'ConnorEric O’Connor is a Content Developer and Seminar Staff Flowmaster for CrossFit’s Education Department and the co-creator of the former CrossFit Competitor’s Course. He has led more than 400 seminars and has over a decade of experience coaching at an affiliate. He is a Certified CrossFit Coach (CF-L4), a former Division 1 collegiate wrestler, and a former CrossFit Games athlete.