The spreadsheet that actually survives past month three
Professional Fitness Journal Setup
A professional fitness journal is simply a structured record of every training session, written so you can look back at it six months later and still understand what happened. Not decorative. Not a habit tracker with motivational quotes. Raw data in a format that doesn't require a decoder ring. Here's how I build mine. Google Sheets. One workbook per quarter. New sheet for each week. I don't use a separate app, and I don't use Excel anymore. Sheets syncs across devices and the API doesn't break when you link two files together. The columns are:
Date | Exercise | Work Sets (RPE) | Total Volume Load | Notes That's it. Five columns. If you're adding five more columns because you want to track resting heart rate, sleep score, weather conditions, and water intake, you're building a CRM for your gym life and you will abandon it. I know. I've done it three times. The Work Sets column is where most people mess up. Don't just write "3x8@185." Write each set separately with its RPE in parentheses. Like this:
Rack Pulls — 5x3@275 (8) / 4x3@285 (9) / 3x3@290 (9.5) The numbers in parentheses are the Rate of Perceived Exertion for each working set. Not the warmup sets. The actual work. This one detail separates a logbook from a journal. Without RPE, you're recording weights. With RPE, you're recording effort. Those are two different datasets. I use a simple formula for volume load. It's =SUMPRODUCT(B2:B10,C2:C10*D2:D10) adjusted for your specific column layout. Total volume load is just sets multiplied by reps multiplied by weight. You don't need anything fancier than that.
Get the Full Details

Now, the counter-intuitive part that most people get wrong: don't track everything. Pick three to five key lifts per week and log those exhaustively. The rest gets one line with a note. If you're doing a full-body day with twelve exercises, you log the squat, bench, deadlift, overhead press, and rows. The face pulls, band work, and calf raises are logged as "accessory work — standard volume." You are not building a census of your entire existence in the gym. You are tracking signal, not noise. Another thing nobody tells you about progressive overload: it's not always linear, and your journal should reflect that. If you deloaded last week because your squat felt like garbage despite hitting the prescribed weights, record it. Don't fake the numbers to make the graph look pretty. That's how you lose trust in your own data. Write "Deload week — RPEs 2 points below target across all main lifts" in the notes column and move on. I ran into a specific problem last year that made me almost abandon my spreadsheet entirely. I was running a linear periodization block and needed to see 7-day rolling averages for my main compounds to decide whether to progress or stay put. The standard moving average formula in Sheets kept breaking because I had empty rows for rest days. Every time I added a new week, the range shifted and the whole column recalculated wrong. It took me about forty-five minutes to debug a formula that should have been a one-liner.
The workaround was brutal but effective. I stopped using moving average formulas altogether. Instead, I created a separate summary sheet that pulled data from the workout sheets using QUERY and ARRAYFORMULA. The summary sheet had one row per week, per exercise, with total volume, average RPE, and the week-over-week change percentage. I set it to auto-populate whenever I added a new workout sheet. It took me an afternoon to build, and it's never broken since. Takes about two minutes to set up a new quarter now. Here's another practical thing. Conditional formatting. I used to color-code every cell — green for progression, red for regression, yellow for maintenance. It looked nice in screenshots and meant absolutely nothing after six months of data. The colors distract you from the actual numbers. I turned it all off. Now I rely on the week-over-week percentage change column. If it's positive, the number is black. If it's negative, it's red. That's the only formatting I keep. Simple. Functional. Unmistakable. Let me address the elephant in the room. This system has real limitations. Manual entry takes time. If you're logging forty exercises across five movements in three days, you're looking at ten to fifteen minutes of data entry per session. Apps like Strong or Hevy handle this in thirty seconds. If you value speed over analytical depth, use an app. There's no shame in that. The spreadsheet system is for people who want to own their data, export it, cross-reference it with other spreadsheets, and build custom analytics without being locked into a proprietary platform.
Another limitation: spreadsheets don't scale well past two years of data. Once you hit roughly a hundred workout sheets, query performance degrades noticeably. At that point, you either archive old quarters into separate files or switch to a database. I archive. I keep the active quarters in one workbook and zip the old ones into labeled folders. "2024-Q1," "2024-Q2," that sort of thing. Takes three seconds. If you want to start with something I've already built, I keep a template in my Google Drive. It has the quarterly structure, the summary sheet with the QUERY formula already wired up, and the volume load calculation ready to go. You just copy it, rename it, and start filling in your sessions. No setup required beyond that. The link is in my signature if you're on the forum. One last thing that will save you headache. Name your workout sheets consistently. Use "W01-2025-01-06" format — week number, year, date. Not "Week 1" or "Jan 6 workout." When you're querying data three quarters later, the naming convention is the only thing standing between you and a three-hour data mining session.
