Setting Up a Workout Tracker in Notion
I built my first workout journal in Notion about three years ago. It was a mess of linked databases and formulas that broke every time I updated a template. After burning through two weekends troubleshooting, I simplified everything down to a single-page database with rollups and relations. It still works fine today. The core idea is straightforward. You create one database for your workouts, link it to a exercises database, and use relations to track sets, reps, and weight over time. The setup takes roughly 30 to 45 minutes if you already know Notion's interface. First, create a new database with these properties: Date (date), Exercise (relation to exercises database), Sets (number), Reps (number), Weight (number), Notes (text), and RPE (number 1 to 10). That's the minimum viable setup. Everything else is optional bloat. The exercises database should contain at least the exercise name and muscle group. Some people build out separate tabs for each muscle group. That works until you realize deadlifts hit posterior chain, lower back, and grip simultaneously, and your categorization becomes useless after two weeks of actual training. Keep it simple. Muscle group is a filter, not a rigid classification system.
Here's where most people go wrong. They create a separate database for each workout type, or they build complex templates for push days, pull days, leg days, and cardio. This creates data fragmentation. When you try to analyze progress across months, you're querying four different databases instead of one. Merge everything into a single database with a workout type property. Filter views by type rather than splitting tables. I spent about an hour once trying to troubleshoot why my PR calculations were consistently off. The issue was that I had two entries for the same exercise on the same day because I logged them separately instead of grouping sets under one workout record. Notion treated them as distinct sessions. The fix was adding a unique ID field that I could reference when combining sets from the same training block. Now I log one row per set with the workout ID to group them, and a rollup formula aggregates the max weight per exercise automatically. Advanced users will want a progression tracker. You can add a formula property that compares today's weight against the previous session's weight for the same exercise. It returns a percentage change. This is useful for spotting plateaus without opening a spreadsheet. The formula looks like this:
=IF(AND(Exercise = Previous Exercise, Date > Previous Date), Weight / Previous Weight - 1, 0) Notion doesn't have native date subtraction in formulas, so this requires a workaround using the Previous() function or a separate tracking database. The real solution is using a relation to the same database and pulling the previous entry's weight through a rollup. It's finicky but functional. One thing people don't tell you about Notion for workout tracking: it's slow on mobile. If you're logging sets between rounds at a busy gym, the app lags for 2 to 4 seconds per entry. This is acceptable for most people but brutal if you're doing supersets or circuit training where speed matters. The desktop version loads instantly. Use it there whenever possible, or accept the delay on mobile.
Get the Full Details

Backup strategy matters more than most people realize. Notion doesn't export cleanly to CSV without paying for a workspace plan. If your page gets corrupted or deleted, recovering three months of training data becomes a scramble. I use a weekly Google Sheets export via a Notion-to-Sheets integration. It takes about five minutes to set up and runs automatically. Your data survives even if Notion itself becomes unusable. Cost is another factor. Free Notion accounts give you 500 blocks per workspace. A detailed workout journal with daily entries, photos, and notes will hit that limit within two to three months. Upgrading to Plus costs $10 per month per user. For most lifters, this is worth it. The block limit is a hard ceiling that will interrupt your tracking mid-session if you hit it unexpectedly. There are alternatives. If you want something faster and purpose-built, consider apps like Hevy, Strong, or FitNotes. They load instantly, track progress automatically, and cost less than Notion's upgrade. But they lack the flexibility of Notion. You can't customize the layout, add custom fields, or integrate with your nutrition tracker in the same workspace. Notion trades speed for control. Know which one you value more before committing time to the setup.
When I review my workout history now, the format I've settled on works. A single database, filtered views for different exercise categories, and a dashboard page that shows last week's volume and this week's PRs. It takes about 20 seconds to log a workout. That's the target. Anything slower and you'll stop using it within a month.