How To Use Notion Formulas | Ep. 2: Building A Workout Dashboard
Based on Red Gregory's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.
BMR is computed with sex-specific if branches, then activity level selects a multiplier to produce calories to maintain.
Briefing
A workout dashboard built in Notion can do far more than track meals and runs: it can calculate calorie targets, BMI, week-over-week changes, and running pace using formulas that reference related rows inside the same database. The core payoff is a connected system where user inputs (sex, age, weight, height, exercise level, food entries, and run sessions) automatically roll up into progress metrics—so weekly results update without manual recalculation.
The calorie section starts with a calculator that derives BMR (basal metabolic rate) using sex-specific Harris-Benedict-style equations. For women, BMR is computed from weight, height (in inches), and age via an if statement keyed to the sex property; men use a different if branch. That BMR then feeds a second if block that applies an activity multiplier (from “little to none” through “very active”) to produce calories to maintain. From there, weight-loss targets become another calculation: pounds lost per week equals pounds to lose divided by weeks to lose, then daily calories to eat are computed by subtracting the weekly deficit (using 3,500 calories per pound) and dividing by seven.
Meal tracking connects to this calculator through relations. Each food diary entry relates to the single calorie-calculator row, and a rollup pulls the computed daily calorie target into the diary. To compute “calories left,” the dashboard sums calories consumed across child relations (breakfast, lunch, snack, dinner) and subtracts that total from the rolled-up calorie target. A key implementation detail is that the subtraction requires numeric rollups; the workflow uses a sum rollup to force the result into a number type. The transcript also flags a practical limitation: deleting the child rows for a day removes the relations and rollups, so the safer approach is manual cell clearing rather than removing the rows.
The user section adds BMI and turns it into readable categories. BMI is calculated with 703 × weight ÷ height^2, using Notion’s pow function (or an equivalent exponent shortcut). Then if statements map BMI ranges to labels like underweight, normal weight, overweight, and obese. Empty weeks are handled with an empty() check to avoid misleading zeros, and type mismatches are resolved by converting empty placeholders into numbers with to number() before combining with numeric BMI.
To measure progress, the dashboard compares consecutive weeks. A relation to “last week” feeds a rollup that retrieves last week’s BMI, and a discrepancy formula subtracts last week’s BMI from this week’s BMI. Because Notion treats emojis and text differently from numbers, the discrepancy is rounded and formatted into text with arrows indicating direction (down for negative, up for positive), and it includes an empty guard when last week doesn’t exist.
Finally, the running database calculates time and pace from a stopwatch date range. dateBetween() computes elapsed minutes, hours are derived from minutes, and mod (or the % operator) extracts leftover minutes after full hours. Pace metrics come from dividing elapsed time by miles, then rounding for readability. For week totals, the system relates each run to a week anchor and uses rollups to sum miles and compute completion rate from workout planner checkboxes. The result is a template-like dashboard that turns daily entries into automated weekly progress tracking.
Cornell Notes
The dashboard uses Notion formulas plus relations/rollups to turn inputs (sex, age, weight, height, activity level, food calories, run sessions) into automated weekly metrics. Calorie targets come from BMR calculations using if statements, then activity multipliers, then a weight-loss adjustment using 3,500 calories per pound. Food diary entries relate to the calculator so “calories left” is computed by rolling up the daily target and subtracting a numeric sum of consumed calories. BMI is calculated with 703 × weight ÷ height^2, categorized with BMI-range if statements, and protected against empty weeks using empty() and to number(). Running pace uses dateBetween() for elapsed time, mod/% for minutes remainder, and rollups to compare weeks and sum weekly mileage.
How does the dashboard compute calories to maintain and calories to lose using only Notion properties?
Why does “calories left” require careful handling of rollups and number types?
How does the dashboard prevent BMI and discrepancy calculations from breaking when a week has no data?
What’s the method for computing elapsed time and pace from a stopwatch range in Notion?
How does the dashboard compare consecutive weeks for BMI and show direction with arrows?
How are weekly totals and completion rate computed without manually summing everything?
Review Questions
- In the calorie calculator, how do the activity multipliers connect to calories to maintain, and where does the 3,500 calories per pound constant enter the weight-loss calculation?
- What combination of empty() checks and to number() prevents BMI formulas from producing type mismatch errors when a week has no weight value?
- For running pace, how do dateBetween() and mod/% work together to produce hours and leftover minutes from a stopwatch start/end range?
Key Points
- 1
BMR is computed with sex-specific if branches, then activity level selects a multiplier to produce calories to maintain.
- 2
Daily calories to lose weight come from pounds-to-lose-per-week multiplied by 3,500, divided by 7, and subtracted from calories to maintain.
- 3
“Calories left” is calculated by rolling up a numeric daily target and subtracting a numeric sum of food diary calories consumed.
- 4
BMI categorization uses BMI-range if statements, while empty() guards prevent misleading values for weeks with missing weight data.
- 5
Week-over-week BMI change uses a relation to last week plus a rollup, then formats the numeric discrepancy into arrow indicators.
- 6
Running time uses dateBetween() for elapsed minutes and mod/% to extract leftover minutes after full hours.
- 7
Weekly progress metrics are automated with rollups: sum miles for the week and compute workout completion rate from checkbox rollups.