<aside> ๐Ÿ‹๐Ÿป

Hi, it's Mikie. This is the page we're building together at REVL Bukit Timah. Duplicate it into your own workspace so you can keep training with it after today. Everything here is yours to break. ๐Ÿ˜

</aside>

<aside> <img src="/icons/home_gray.svg" alt="/icons/home_gray.svg" width="40px" />

Home

My Profile

Fitness Tracking Database

</aside>

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled


๐Ÿ”ฅ Workshop ยท Build your Sessions โ†’ Goals tracker

What we're building

Two databases that make your training honest. Not a plan you abandon in February, a system that shows you the truth every week.

  1. Database 1 ยท Workout Log โ€” one row per session. The thing you actually did.

  2. Database 2 ยท 2026 Fitness Goals โ€” the two or three things you're training toward.

๐ŸŽฏ The payoff: by the end, every session you log moves a live progress bar on the goal it belongs to. Log the HIIT class you're about to do, and watch the bar move in front of you.


Part 1 - Workout Log

Part 1 ยท Database 1 โ†’ Workout Log

A Notion database is a spreadsheet where every row opens its own page. That's the bit a spreadsheet can't do. One row = one session.

Build it

  1. Type /database inline โ†’ name it DB1 Workout Log
  2. Add these properties (the columns):

โš ๏ธ Name Done and Minutes exactly like that. The formula in Part 3 looks for those words. Spelling matters more than vibes here.

Working Space


Part 2 - Goals + Relation

Part 2 ยท Database 2 โ†’ Goals, then Relate them

A log is nice. A log that proves progress on the goal you care about is a system. This is where that happens.

Build the Goals database

  1. Type /database inline โ†’ name it DB2 2026 Fitness Goals
  2. Properties:

๐Ÿ‘‰๐Ÿป Add 2 or 3 goals. Keep it small.


Now bring Database 1 in here

You don't need to scroll back up. Pull the log into this page as a linked view: same database, new window. Nothing gets duplicated.

๐Ÿ‘‰๐Ÿป Type /linked view of data source โ†’ choose DB1 Workout Log

Working Space


Part 3 - Formula

Part 3 ยท Formula โ†’ watch the bar move

The payoff. Your sessions, divided by your target, drawn as a bar you actually want to look at.

Paste this in

On DB2 2026 Fitness Goals โ†’ + โ†’ Formula โ†’ name it Progress โ†’ paste this whole thing:

lets(
  target, prop("Target"),
  done, prop("Sessions").filter(current.prop("Done")).length(),
  pct, if(target > 0, min(done / target, 1), 0),
  filled, round(pct * 10),
  bar, style(repeat("โ–ˆ", filled), "red") + style(repeat("โ–ˆ", 10 - filled), "gray"),
  if(
    target == 0,
    "โš ๏ธ Set a Target",
    bar + "  " + format(done) + "/" + format(target) + "  ยท  " + format(round(pct * 100)) + "%"
  )
)

Hit Done. Every goal now shows a live red bar: sessions completed out of your target. Tick Done on a session and watch it move. That's the whole workshop in one property.

<aside> ๐Ÿงฉ

If it says "Property not found", it's one of these three. Every time.

  1. Your relation on DB2 isn't named exactly Sessions
  2. Your number property isn't named exactly Target
  3. Your checkbox on DB1 isn't named exactly Done

Fix the name, the formula fixes itself. It's always the names.

</aside>

Want minutes instead of sessions?

The lazy shortcut (no formula at all)

๐Ÿค– The real shortcut: Notion AI writes any formula from plain English. Try: "a red progress bar of how many linked Sessions are Done out of Target". Then read what it wrote, that's how you learn formulas.

Working Space



<aside> ๐Ÿฅค

That's it. Log the class you just did, then go get your Dancingrain kefir. Questions after today: @mikie.build ยท Built at REVL Bukit Timah, 18 July 2026.

</aside>