Nine years of training in spreadsheets. Did any of it work?
I’ve tracked my training in a spreadsheet for nine years. It all started in 2017, back in college. Before that, I kept a year of workouts written by hand on paper, photographed them on my phone so I wouldn’t lose them. Before that, in 2015, I had a trainer for a while before taking things over myself. Count the lifting, and it’s eleven years. Count the competitive swimming, the conditioning that taught me how to show up, and it’s closer to thirteen. I’ve been programming for myself a long time, and for most of it, I did it the hard way.
The hard way looked like this: a plan living in Excel, written a cycle ahead, block by block. The sessions I actually did went into an Apple Note, with a folder for each year and a note for each month, typed in as I was lifting. Duration came from my Apple Watch and later from Strava. A one-rep max I half remembered, some documented in videos. Three tools that never talked to each other, plus my own memory, all held together by copy and paste. Every plan, every workout, I built from research, pulled from other programs, and whatever I’d figured out before.
The setup · nine years
held together by copy and paste
It worked, technically. I trained. I got stronger. But it never answered the question I actually cared about: was any of this working? Not whether I showed up; I always showed up. Whether the block I wrote four weeks ago did what I built it to do. To figure that out, I’d scroll back through my own notes like a research project, searching for a lift, comparing the numbers from a previous cycle I wasn’t sure I remembered correctly. Trending up, or simply maintaining? The data was all there, yet it never gave me an answer.
Showing up has never been the hard part for me. I can lock in on days I don’t want to be there. I always have. That’s likely thanks to swimming. You learn early, whether you feel like it or not, that discipline outlasts the sport. So, the problem was never putting in the effort. Rather, I couldn’t see whether the work was trending in the right direction.
The data was all there, yet it never gave me an answer
That’s when everything finally caught up with me. In 2024, I set a goal of running 10 miles while increasing speed, and I was starting to, so I kept pushing. I continued lifting five days a week. I wasn’t willing to give up my strength and all the work it took to build. On top of that, I walked on average six miles a day. I told myself I was building toward a half marathon until I admitted I didn’t care about the race. The only thing I actually cared about was hitting the bar I’d set. A bar nobody set but me. No coach, no meet, no plan but mine.
Then I ran two 30-mile weeks back-to-back, tried to take one easy week, and that was it. I never dealt with the injury. I trained around it, because stopping wasn’t in the plan I’d written. Running became painful, so it stopped being fun. I slowed down, the weather turned, and the treadmill felt like a chore. The one thing I loved about running was the time I spent outside, especially in the summer. My trail, the trees, the lake. Something I did every day until I didn’t. So, it slowly drifted. The gym never did. That’s when I locked in and redialed.
So, 2025 became a strength year. I’d been rebuilding since 2020, when COVID hit and took away what I had. With the running gone, I leaned all the way into max strength with the main focus on rebuilding muscle. I wrote the cycles, the blocks, and ran it. I pulled 275 on deadlift and hit 475 on hip thrust, the strongest I’d ever been, meeting PR goals I had for years. On paper it was a good year. It also never quite felt like enough, and I couldn’t have told you why. I kept chasing the version of me from 2024, the one who could do everything at once, and kept coming up short of a feeling I couldn’t name.
About a month before I started building the Dial Factory app, I did what I should have done years earlier. I compiled three years of training data, including all the Strava exports, spreadsheets, and Apple Notes, and handed it to AI, along with the periodization research I’d been trying to apply on my own. I asked it to analyze the whole thing.
Most of what came back I hadn’t seen. I knew I was overtraining, especially when it came to running in 2024. I didn’t know I’d ramped from 8 runs a month to 20 in a single summer with no base, which is probably how I ended up injured and why it ended. I didn’t know the stretch where I stacked nearly 20 runs and 17 lifts into the same month would get flagged outright. It was a concurrent load I had no business carrying without a plan to manage the fatigue.
From my own log · summer 2024
My 2025 strength block, the one I was proud of, was interrupted mid-year due to life, which is real. Yet I never restructured, only chased. By fall it had drifted toward detraining without me even noticing. There was no real plan across the year. Only a string of hard efforts I’d convinced myself added up.
That was the thing. I hit my numbers, so I read that as the plan working. The data read it differently. It said I’d been pouring real effort into the wrong places, fixated on the wrong things, chasing a year I couldn’t get back. Meeting the goal masked the misdirection. A spreadsheet can hold the plan and the log, but it can’t put the two side by side and tell you what they mean. I needed someone to read it back to me, and I’d never had that.
Meeting the goal masked the misdirection
Then it built me a 12-week plan based on my real numbers and my real goals, properly periodized, with blocks that progressed and a deload where one belonged. We went back and forth. I changed what I wanted to change, and I ran it.
That was the moment the app began, before a line of code was written, because the thing I’d just done by hand, once, was the whole job: take the history, read it against the science, build the plan that fits, then adjust. The next day I started building the Dial Factory app.
After all, that’s what a coach does. And it’s what I’d failed to do for myself for nine years. Not for lack of effort, but because it’s hard to see your own training clearly while you’re in it. And a one-time read isn’t a coach. The real version runs continuously, with the plan adapting as sessions land, each week measured against what it was supposed to be, so the answer to “is this working” is there every day you finish, not a project you run on yourself when it’s too late to change anything.
That’s what I set out to build. One app where the plan, the log, and the log read exist together, and a coach that knows your training because it can actually see all of it. I’ve trained on it for nine weeks now. It’s not finished, least of all the plan builder, which I keep reworking instead of shipping, because a plan you can’t trust is the exact problem I started with, and I’m not going to rebuild it.
That’s the why. If you want the practical version, I’ve written two longer pieces on the mechanics: one on what a plan built around you actually looks like and another on how to build a training plan for yourself. Dial Factory is what came out of all this. It’s almost in beta, and everyone on the waitlist gets in. If the spreadsheet years sound like yours, sign up below.