← All posts

Why spreadsheets break down at the second mesocycle

A spreadsheet models a workout fine. It stops modelling a training plan the moment progression, autoregulation and multiple athletes enter the picture.

Almost every strength and conditioning coach starts in a spreadsheet, and for good reason. It is free, it is flexible, and the first training block you build in it looks great: sets, reps and percentages laid out week by week, exactly the way you think about them. The trouble starts later, usually somewhere around the second mesocycle, when the plan has to start reacting to what actually happened in the first one.

The first block is easy

A single block is a static document. You know the athlete, you know the goal, and every cell holds a number you chose on purpose. Nothing has been trained yet, so nothing needs to change. A spreadsheet is very good at that kind of table.

The second block is different. It has to start from where the athlete really is, not where the plan assumed they would be. That means pulling in tested maxes, missed sessions, the weeks where RPE ran high, and the lifts that moved faster than expected. A grid of cells has no idea any of that happened.

Progression lives in formulas nobody can see

To make a sheet progress on its own, coaches reach for formulas: percentage of a 1RM cell, plus a weekly increment, rounded to the nearest plate. It works until someone sorts a column, pastes over a row or inserts a deload week. Then a reference shifts by one cell and the sheet keeps producing numbers that look perfectly reasonable and are quietly wrong.

The logic of the plan, the part that actually encodes your coaching, ends up hidden in cell references that only the person who wrote them can read. Hand the sheet to an assistant coach and they get the numbers without the reasoning.

One file per athlete

Every new athlete means another tab or another copy of the template. Fix a mistake in the master and you now have to fix it in fourteen places. Adjust one athlete for a sore shoulder and their copy drifts away from everyone else, so the next template update either overwrites the change or skips that athlete entirely.

By the second block the copies no longer match each other or the original, and nobody is quite sure which version is the truth.

Autoregulation has nowhere to go

Good programming is not only prescribed load. It is prescribed load adjusted by how the athlete actually performed: an RPE target, a rep range, a top set that sets the back-off work. A spreadsheet can hold a target RPE in a cell, but it cannot take the RPE the athlete reported and turn it into next week's load without another layer of fragile formulas.

So in practice the autoregulation happens in the coach's head, the sheet keeps the original numbers, and the gap between the plan on paper and the training that happened grows every week.

Data arrives too late to act on

Loads and RPE typically get typed up days after the session, if they get typed up at all. Paper logs go missing, screenshots sit in group chats, and someone eventually transcribes them into the sheet. By then the decision about next week has already been made, blind.

This is the real cost of a spreadsheet at the second mesocycle. It is not the formatting or the formulas. It is that the information you need to program the next block arrives after you have already programmed it.

What a training plan actually needs

Strip it back and a multi-block plan needs a few things a spreadsheet was never designed to give: one template that can be adjusted per athlete without breaking the original, progression rules that stay readable, and session data that arrives while it is still useful, logged by the athlete as they train.

That is the gap PeakPlan was built to close. You build the program once, adjust it per athlete, and every rep, load and RPE your athletes log lands in your dashboard the moment they finish the set, so the second block starts from what actually happened in the first.