10K BUILD · WK 8 / 12MOONLIGHT RUN 10K · ~5 WKS · no plan linked yet
PAINLeft hamstring2Lower back1About the same as last week. Held up through the Aug 14-23 road trip, though he did not exercise them much. A little sore from the Aug 26 run but overall good.
51m
Aerobic Z2–3
51m / 79m
0.80
Load ratio
0.80 / 1.05
6.4h
Sleep avg
⚠ 3d ago
180.2lb
Weight
Open with John S
6 in flight
Source priority: John S says Oura first, John says the sleep study — implemented as John asked
John S set Oura → Google Band → Sleep Study → 8 Sleep. John then asked for the normalised sleep study FIRST, on the grounds it is a clinical device carrying strictly more information (AHI, SpO2, fragmentation). Built John’s order. Note the premise did not survive testing: there is no common scale to put them on (see below), so this choice decides which device reports a night AND in whose units — it is not just a preference between equivalents. Worth one sentence between them.
Per-night normalisation was tested and does not work — nights are reported as measured
Fitted the candidate curves against the 45 paired Oura/sleep-study nights before trusting any of them. Correlation between the two devices is r = 0.195; every one-parameter model (ratio 1.13, ratio 1.10, offset +0.68h) has NEGATIVE R², i.e. predicts worse than simply guessing the mean, and the best-fit line has slope 0.16 — what the study measured barely tells you what Oura would have said that night. They agree within 30 min on 16 of 45 nights. So the correction (0.68h) is smaller than its own error bar (0.88h) and adds error. Nights are now shown as the device reported them, with the source named. What IS stable is the LEVEL — Oura averages +0.68h over the study — so an aggregate mixing sources can be level-corrected even though a single night cannot be translated.
Dropout, not scale, was the bigger problem — nights under 3h are now rejected
A source reporting under 3h while another saw a full night happens 28 times for Oura, 5 for the sleep study, 1 for Eight Sleep. On 2026-08-24 Oura logged 18 minutes against Eight Sleep’s 6.0h and that 18 minutes was the number on this page. Those are failed recordings, not short nights, and no scale factor rescues them. The reference scale being the least reliable capturer is fine — Oura defines the units, it does not have to supply the value.
Fitbit (Google Band) is in the hierarchy but uncalibrated and not yet syncing
First worn 2026-08-29. No rows in health.db yet, and no fetcher exists — the other devices each have one (fetch_oura.py, fetch_eightsleep.py). Two routes: the Fitbit Web API, which matches the existing pattern but needs an app registration John must do; or letting the Fitbit app write into Apple Health, which needs no new code but arrives unlabelled and so cannot be calibrated separately. It needs ~20 paired nights against Oura before its readings can be trusted on the same scale.
Bridge API key — waiting on John S (≈ week of Sep 1)
Set and rep detail is the one thing the adherence integration cannot get today. Nothing to build until the key lands; then strength can show prescribed-vs-completed per set.
Ben’s workouts — needs a capture from John, not a build
John S can import them into the Bridge program from an upload, screenshot or rough recall, so the blocker is getting sessions recorded at all. The last one that reached the database was the manual “Gym with Ben” entry on 2026-08-11.
Needs a call
2 open · tell jbot which call and it carries into next week's plan
Program expired
No Foot & Hamstring Rehab session in 30 days · nothing scheduled ahead · Left hamstring 2/10
Reprogram the Foot & Hamstring Rehab block?
Send a new blockFold it into the strength daysDischarge, monitor pain only
Data gap
Watch reported on 4 of 7 days → load ratio 0.80 is understated · food logged in full 0 of 7 days (treat the rest as unmeasured, not low)
Trust the "undertraining" read this week?
Ignore the ratio — judge from the session logTrust it as reported
Coach's read
15 min at Z3+ across 1 session, 38% of training minutes at Z2 or above. One quality touch — a build usually wants two.
HRV is no lower after hard days — 30 vs 25 ms (n=3/6). He is absorbing the current intensity.
Longest run this week was 51 min against 74 earlier in the block — the long day has come down.
Week over week
Sleep averaged 6h47/night (up from 5h50).
Training frequency not comparable — the watch reported on only 4 of 7 days this week and 3 of 7 last week.
51 aerobic min against a 150 target, up 42 on last week.
Is it working? ⓘ
HRV · weeklyJun 13 → Aug 15
27.4ms-2.6
Overnight HRV, averaged by week. Shaded is the middle half of this window — his own normal, not a clinical range. Rising is recovery; drifting to the floor of the band under load is the early warning.
Aerobic min / weekvs 150 target
51/ 150+42
Dashed line is the 150-minute target — reached in 1 of these 12 weeks.
Body composition6 scans · 27 months
134.9lb lean+20.6
lean lbbody fat %
Lean mass against body fat, from the DEXA scans. Both lines matter together: lean climbing while fat holds is the scale going up for the right reason.
Pain vs run volumeworst reported area
2/ 10-1
run minpain /10
Bars are running minutes; the line is the worst pain score you reported. Dots are the weeks you actually checked in — a dashed run between them is a gap, not a reading.
Prescribed → Done ⓘ
Aerobic minutesZ2–3 · 15m at Z3+ this week
51 / 150
Prescribed sessionsFoot & Hamstring Rehab has run out — nothing scheduled; last done 30 days ago
expired
Set completionmedian of prescribed sets · 2 sessions finished short
100%
Sleep at target7h+ · over the 6 nights a tracker recorded
1 / 6
Proteinno day was logged in full — intake is unmeasured, not low
—
Confidence: watch 4/7 days · sleep 6/7 nights · food logged in full 0/7 days · Eight Sleep vs Sleep Study disagreed by 6.2h on Tue (Eight Sleep used)
Admin · what we need to cover ⓘ
Left hamstring
2
Lower back
1
Mood:Good energy, feeling good overall.
Other:Some soreness from yesterdays run. Nothing else bothering him.
Travel:—
New / notable:Aug 25: 30 min elliptical plus 60 min strength session with Ben. Aug 26: 51 min run at avg HR 124, solidly Z2 - the one that left him sore. Aug 23: 60 min elliptical plus 20 min run. Week 3 of the 12-week base block (base runs through week 5); target race is the Moonlight Run 10k at the end of September.
06-18Left hamstring 3 · Lower back 1Side corrected 2026-08-10: recorded as Right in error; always the left.
08-10Left hamstring 2 · Lower back 1High hamstring feels better; now feel it more in the middle after run & cycle over the weekend. Lower back basically fine.
08-12Left hamstring 2 · Lower back 1About the same as last week. Some general soreness after a couple of runs.
08-27Left hamstring 2 · Lower back 1About the same as last week. Held up through the Aug 14-23 road trip, though he did not exercise them much. A little sore from the Aug 26 run but overall good.
Action itemsshared with coach; you update status with jbot
Build a travel fitness routine for the Aug 14-23 road trip
John
done
Ask Snyder how to train dynamic/athletic capacity, not just strength
John
open
Plan the next 90 days through year end, including where the week-12 VO2max retest goes given the late-October travel week
John
open
Week ahead: nothing scheduled that changes the plan.
Ben's workouts: log or screenshot them and John S can import via Bridge's AI. Last captured session is whatever appears in Strength below.
Day by day ⓘ
Z1Z2Z3Z4Z5bar length = training minutes · full width = 120m