A calm, practical map of the day

/journey/ is not a perfect productivity scorecard. It is a gentle reflection of where I showed up each day—mindful, active, caring, and creative—based on my real logging.

How today gets translated into this page

  • I log short events on my phone throughout the day (for example: meditation, workouts, supplements, acupuncture, hydration, and sleep).
  • Those events are sent to Airtable (the back end for the Journey system) through a webhook using iOS Shortcuts automations.
  • Macros are added from my nutrition flow (MyFitnessPal → Apple Health → nightly iOS shortcut to Journey).
  • A scheduled GitHub Action runs the Journey sync and builds a clean cached snapshot for the website.
  • The /journey/ page reads that snapshot for display.

One common example:

  • For many meditation sessions, I run a shortcut that uses the track length (for example, “Tuning in to New Potentials”), sets my phone to Quiet Focus, logs those minutes to Apple Health Mindfulness, and sends the completed event into the Journey system.

That means the page updates on a regular cadence and stays stable while I log events.

The intent

Each logged event belongs to one of these categories:

  • Presence – practices like meditation, breathwork, journaling
  • Movement – workouts, walks, and other physical work
  • Care – acupuncture, supplements, sleep, hydration, macro logging
  • Creative Practice – music, voice, writing, and other craft routines

Each category has a target so the day is scored as a balanced picture, not just a single habit tally.

The site keeps non-predictive context and score together:

  • The Journey card and progress summary are calculated from completed, visible logged events.
  • The home-page Mug and Journal card only changes art when today has one or more day-notes entries.
  • day-notes are visible in a popover on the journey page for that selected day; they are not shown in the page header card.
  • Future-dated events stay out of the page until their local date arrives, so scheduled or pre-entered logs appear naturally on the intended day.

How the score is built

Think of the day score as four gentle lanes:

  • Category scores are goal-based and configured in Airtable under Journey Settings.
  • Each category has its own target (minutes, hydration, care targets, etc.) and earns points up to a weighted category target.
  • The total day score is the weighted sum across categories.
  • The current state label is derived from configurable thresholds in state_thresholds_json (defaults: Quiet Day, Grounded, Flourishing, Inspired, Exceptional). The score bands map to:
    • 0–34: Quiet Day
    • 35–59: Grounded
    • 60–79: Flourishing
    • 80–95: Inspired
    • 96–100: Exceptional

Why events feel different in impact

Most events add points in proportion to logged minutes, which helps the movement of the day feel reflected naturally.

Some entries are treated as non-minute metrics:

  • Binary-like practices are complete/incomplete actions that use configured point values. Examples: acupuncture, supplements taken, or a marker event like “morning routine.”
  • Sleep uses the Apple Watch sleep score and details through the webhook payload.
  • Water scores from hydration goal progress.
  • Macros gives care points when nutrition values land inside the current daily hit ranges from the nutrition flow. The current daily ranges are protein 165-195g, net carbs 160-200g, and fat 55-75g. Values below a range show as Under; values above a range show as Exceeded.
  • Steps gives Movement credit for everyday motion that may not look like a formal workout. This is meant for walking-heavy days, travel days, park days, errands, and other ambient movement that still belongs in the Journey. Steps are logged in the existing notes field as steps=9995, so the webhook shape stays the same. Step scoring is tiered and capped: 4,000+ steps starts adding Movement points, 10,000+ reflects a stronger walking day, and 15,000+ reaches the step cap. If a completed workout is also logged that day, steps score fractionally so the day can acknowledge the extra movement without double-counting cardio or workout activity.
  • Zone 2 cardio is tracked as context on regular workout events, not as a separate practice. When Apple Fitness workout details are logged, Zone 2 seconds, workout duration, average heart rate, effort, and recovery heart-rate notes stay in the existing notes field. The Journey system can then summarize weekly Zone 2 minutes and session context without changing the workout score or adding a medical interpretation.

The weekly Journey review uses separate weekly-average macro ranges for reflection context: protein 170-190g/day, net carbs 170-190g/day, and fat 60-70g/day.

Only events marked complete and visible are counted in the public display.

If a day has notes, you can hover over (or tap on mobile) the journal card to see them in a quick note card.

Journey distinguishes two note types:

  • Day notes: standalone day context comments (for example, “Dr Joe Retreat Day”). These do not add score.
  • Event notes: notes attached to regular logged events (for example “Tuning in to New Potentials”). These are used only as context for AI reflection and do not change score math.

You can think of it as:

  • Timed practices shape Presence, Movement, and Creative Practice lanes.
  • Single check-ins shape Care in smaller, meaningful increments.

Heart Coherence

Heart Coherence is tracked as a reflection layer, not as part of the Journey score. It uses coherence data from my HeartMath sensor and app sessions to show whether meditation and breathing are settling into a steadier rhythm.

When a selected day has an average coherence value, the meditating figure shows a hollow heart marker with that value. The heart color follows the current coherence scale:

  • Soft Terracotta under 2.0: still settling, breath finding rhythm
  • Slate Blue from 2.0-3.9: stable, focused, improving
  • Sage Green at 4.0+: coherent, centered, flowing

The Heart Coherence Trend card shows the rolling seven days ending on the selected Journey day, with a 30-day measured-session average for longer context. It remains visible as an accountability marker even when no sessions were measured, showing zero with empty daily gaps. When sessions are present, it summarizes the measured-day average, the best day, and the number of sessions and minutes; unmeasured days are not averaged in as zero in either window.

Daily heart coherence can come from two places:

  • A meditation event note with a HeartMath average coherence value
  • The long-term Heart Coherence Sessions table synced from session history

If a meditation note has a coherence value for that day, the daily heart marker uses the note value. The weekly trend uses the session table so it can show the broader HeartMath pattern over the selected week.

HRV and cardio context

HRV is tracked as a quiet recovery context layer, not as a score. It comes from Apple Health HRV using SDNN milliseconds. The Shortcut groups Health readings by day and sends that day’s grouped value; Journey watches the pattern rather than judging one isolated reading.

The Heart Rate Variability card sits with Heart Coherence as a separate recovery reflection. It shows the seven-day average and measured daily values, with missing days left as gaps rather than counted as zero. The 30-day average provides longer context. Selecting another path stone recalculates both windows through that day.

Journey also carries a year-aware HRV target range for longer reflection. For 2026, the rolling 30-day measured-day target is 33-37 ms, centered on 35 ms, with 40 ms as a stretch marker. A quiet rail beneath the seven-day bars places the current 30-day average against that target band and stretch marker. This range is applied to the 30-day average rather than to an individual reading. A day without HRV remains missing data, not zero, and neither the target nor its status contributes points to the Journey score.

The HRV table is separate from ordinary Journey events because it is a daily metric stream, more like Heart Coherence session history than a practice I complete. Journey keeps HRV and Heart Coherence as distinct measurements so their patterns can be considered together without blending them into one number or implying that one caused the other.

Zone 2 cardio stays attached to workout notes. When a selected seven-day window contains structured Zone 2 workout data, the HRV card may show those minutes as supporting movement context. The dashboard and weekly report do not claim Zone 2 caused a specific HRV, sleep, coherence, or mood change.

What must be logged for a meaningful day

For best results, every event should include:

  • A clear event type, so it lands in the right category
  • The right day (event_date) and time
  • Minutes for timed practices
  • A completed flag when the activity was done

Why I use it this way

This is meant to be encouraging, not punitive. The score is a lens, not a verdict: small routines matter, consistency compounds, and the language is about tending to life—not grinding through it.

Back to today’s Journey