Get AI summaries of any video or article — Sign up free
How To Use Notion Formulas | Ep. 2: Building A Workout Dashboard thumbnail

How To Use Notion Formulas | Ep. 2: Building A Workout Dashboard

Red Gregory·
6 min read

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.

TL;DR

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?

It first calculates BMR with an if statement keyed to sex. Women use 655 + 4.35 × weight + 4.7 × height(in inches) − 4.7 × age, while men use 66 + 6.23 × pounds + 12.7 × height(in inches) − 6.8 × years. Then calories to maintain come from another if block that multiplies BMR by an activity factor: 1.2 for “little to none,” 1.375 for “light,” 1.55 for “moderate,” 1.725 for “very active,” and 1.9 for the remaining case. Calories to lose are derived by computing pounds to lose per week (pounds to lose ÷ weeks to lose), subtracting that weekly deficit from calories to maintain using 3,500 calories per pound, and dividing by 7 to get a daily calorie intake.

Why does “calories left” require careful handling of rollups and number types?

The dashboard subtracts a daily calorie target from total calories consumed. The target is brought in via a rollup from the related calorie-calculator row. Calories consumed is computed by relating the food diary’s child rows (breakfast/lunch/snack/dinner) to itself and then rolling up a sum of their calorie values. If the subtraction uses a text value instead of a number, the result becomes invalid (e.g., “calorie weight loss is not a number”). Converting the rollup to a numeric sum resolves this so the subtraction yields a numeric “calories left.”

How does the dashboard prevent BMI and discrepancy calculations from breaking when a week has no data?

BMI categorization starts with empty checks. If weight is empty, the formula returns an empty space so the cell appears blank. When Notion raises a type mismatch (because empty placeholders aren’t numeric), the formula wraps the empty() output with to number() so the expression can still participate in numeric BMI math. For week-to-week discrepancy, another if guard checks whether last week is empty; if so, it returns an empty space instead of attempting to subtract missing values.

What’s the method for computing elapsed time and pace from a stopwatch range in Notion?

Elapsed time uses dateBetween(end of stopwatch, start of stopwatch) to get total minutes. Hours can be approximated by dividing minutes by 60 (and the transcript notes minutes/60 is more accurate than hours alone). To get leftover minutes after full hours, it uses mod: mod(minutes, 60) or equivalently the % operator. Pace then comes from dividing elapsed time by miles: miles per hour uses (minutes ÷ 60) in the denominator, and minutes per mile divides total elapsed minutes by miles. Results are rounded for readability.

How does the dashboard compare consecutive weeks for BMI and show direction with arrows?

It creates a relation to “last week” and uses a rollup to fetch last week’s BMI. The discrepancy formula computes this week’s BMI − last week’s BMI using numeric conversion (two number()) when needed. Because emojis/text formatting can block numeric operations, the discrepancy is rounded and formatted into text with arrows: a down arrow for negative values and an up arrow for positive values. An additional empty check prevents the arrow logic from running when last week doesn’t exist.

How are weekly totals and completion rate computed without manually summing everything?

Weekly mileage uses relations that anchor each run session to a week (e.g., week one) and then rollups that sum miles across all running sessions in that week. Workout completion rate uses rollups from the workout planner’s complete checkboxes: the dashboard rolls up completed items and percent checked to produce a completion percentage (example given: 75% of planned workouts completed).

Review Questions

  1. 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?
  2. What combination of empty() checks and to number() prevents BMI formulas from producing type mismatch errors when a week has no weight value?
  3. 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. 1

    BMR is computed with sex-specific if branches, then activity level selects a multiplier to produce calories to maintain.

  2. 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. 3

    “Calories left” is calculated by rolling up a numeric daily target and subtracting a numeric sum of food diary calories consumed.

  4. 4

    BMI categorization uses BMI-range if statements, while empty() guards prevent misleading values for weeks with missing weight data.

  5. 5

    Week-over-week BMI change uses a relation to last week plus a rollup, then formats the numeric discrepancy into arrow indicators.

  6. 6

    Running time uses dateBetween() for elapsed minutes and mod/% to extract leftover minutes after full hours.

  7. 7

    Weekly progress metrics are automated with rollups: sum miles for the week and compute workout completion rate from checkbox rollups.

Highlights

Calorie targets become reusable: a single calculator row feeds the food diary through relations, enabling automatic “calories left” subtraction.
Type mismatches are handled pragmatically—empty placeholders are converted with to number() when formulas need numeric math.
Running pace math relies on dateBetween() plus mod/% to split elapsed time into hours and leftover minutes before calculating mph and minutes per mile.
Week-over-week discrepancy is both numeric and human-readable by rounding and then attaching arrow emojis based on sign.

Topics