✏️ Editing existing entry — values are pre-filled below
Joint Pain (1=none · 5=severe)
Elbow
L
1
R
1
Shoulder
L
1
R
1
Knee
L
1
R
1
Back
1
Medications Taken Today
Vitals
Nutrition
Recovery
Hydration & Alcohol
≈ 8 glasses = 2L
0
1 drink = 12oz beer / 5oz wine / 1.5oz spirits
Food Log
Activities
Add Activity
Weekly Benchmark (test once a week)
Body Composition (cm)
Evo Ops Engine
Today's Optimized Workout
⚙️
Log 3+ days to activate the optimizer
Today's Nutrition Targets
🍽️
Log check-ins to calibrate
Correlations (n=0)
Key Relationships
Log 5+ days to see correlations
Pattern Insights
Insights appear after 7 days of data
Variable Sensitivity
What Drives Your Best Days
Needs 7+ days of data
● Local · No internet required
Phase 1 · Weeks 1–4
Foundation
Build aerobic base, restore joint integrity, establish movement patterns. Volume over intensity.
This Week
Phase Notes
Biometric Trends
Resting Heart Rate
Yearly Average · bpm
Recent · 21 days
Weight (lbs)
Yearly Average · lbs
Recent · 21 days
Joint Pain Trends
Pain Scores (1=none · 5=severe)
Recovery & Performance
Sleep · Flexibility
Calorie Balance
Yearly Average · kcal
Recent · 21 days
Hydration & Alcohol
Water Intake (L)
Yearly Average · L
Recent · 21 days
Alcohol (drinks/day)
Yearly Average · drinks/day
Recent · 21 days
Body Composition
Body Fat % (weekly)
Yearly Average · %
Recent
Measurements (cm) (weekly)
Sleep Hours (Garmin)
Yearly Average · hrs
Recent · 21 days
Daily Steps (Garmin)
Yearly Average · steps/day
Recent · 21 days
Stress (avg) (Garmin)
Yearly Average · /100
Recent · 21 days
VO2 Max (Garmin)
Yearly Average · ml/kg/min
Recent measurements
Strava Fitness · Fatigue · Form (30 days)
History
📋
No entries yet
Tap any cell to edit · Scroll right for more columns
Settings
History
All entries · tap to browse
›
Medications
Define meds you take regularly. Each one becomes a tappable chip in Check-In so you can log compliance daily. Used for correlations with pain, sleep, and HR.
Stored only on this device. Included in JSON backups.
Profile
👤
My Profile
Solo · Stable Core build
Backup & Import
Export all entries as JSON for backup. Restore accepts both full backups and partial imports from the Garmin / Strava export scripts (field-level merge — won't overwrite manual entries).
Last backup: Never
Import History
Last 10 imports — tap to roll back
Install as App
iPhone
Safari → Share → "Add to Home Screen"
Android
Chrome → menu (⋮) → "Add to Home Screen"
Works offline · Data stays on device
Data Summary
Total entries0
Days tracked0
First entry—
Storage used—
Build Notes — v2.10b4
v2.10b4 — Nav cleanup:
• History moved into Settings as a tappable link card at the top — bottom nav drops from 6 to 5 tabs (Today · Log · Program · Insights · Settings). History page now has a "← Back to Settings" link at the top. Sub-text on the link card shows entry count for quick orientation.
• Text Size feature removed — control did nothing visible in practice. CSS `--scale` variable, `body.size-X` classes, `setTextSize()` and `applyTextSize()` functions all stripped clean.
v2.10b3 — Program start date fix: Program start corrected from Apr 21 (Tue) → Apr 20 (Mon). Existing week-1 completion records auto-shifted +1 day-slot via one-shot migration. Mon Apr 27 now correctly appears as start of week 2.
v2.10b2 — Today layout fix: Joint pain pills overflowed on phone width. Restructured into stacked L/R rows per joint — full screen width, larger tap targets.
v2.10b1 — Hotfix: Fixed crash when IndexedDB-cached data pre-dated the v2.9 schema (Cannot read properties of undefined). Hydration path now re-applies critical defaults after Object.assign. Added defensive guards across all D.workoutLogs and D.completedWorkouts read/write paths.
v2.10b — Today screen redesign + 6-tab nav:
Ship 2 of 2 in the v2.10 redesign. Major structural changes to the Today screen and overall navigation.
1. Hero narrative. Top of Today now shows a generated summary paragraph that reads your latest data. "You slept 7.9h. Recovery is moderate — stress was elevated. Today: Strength A." Updates whenever new data is logged.
2. Three dials. Sleep / Recovery / Strain shown as ring dials at the top of Today.
• Sleep — hours from Garmin sleepHours, falls back to sleep quality 1-5 mapped to hours (4 / 5.5 / 7 / 8 / 8.5)
• Recovery — composite 0-100% of sleep (40%) + inverse stress (25%) + inverse pain (35%). Auto-redistributes weight if components are missing.
• Strain — TSS-style training load from today's logged workouts. Uses (duration × intensity²) where intensity = avgHR / LTHR (LTHR=144). Mapped to 0-21 scale. Falls back to active minutes if HR data missing.
3. Hybrid freshness. Each dial shows "today" / "yesterday" / "Nd ago" / "Nd ago — stale" so you know how fresh the data is. Slots stay fixed; freshness is a small text indicator.
4. Inline joint pain. The bilateral pain grid now uses pill buttons (1-5) instead of just display tiles. Tap a pill to log/toggle pain for today directly from Today screen — no need to open the full Log form for quick updates.
5. 6-tab nav. Today · Log · Program · Insights · History · Settings.
• Log = Check-In renamed (sub-tabs deferred to v2.10.5)
• Insights = Optimize + Trends merged. Sub-tab bar at top toggles "Patterns" (Optimize) ↔ "Charts" (Trends).
• Settings = Sync renamed.
6. Quick tiles. Bottom of Today shows 4 condensed tiles (HR, Weight, Calories, Strava Form) with deltas. Each tap navigates to the relevant page for full context.
v2.10a: Palette B refresh — mineral teal accent, Schibsted Grotesk + Inter + Geist Mono typography, WCAG-AA contrast.
v2.9.3: Bilateral pain (L/R for elbow/shoulder/knee), back pain, medication tracking, food score clarity.