jbot//WEEKLY · AUG 23 – AUG 29
jbot // WEEKLY
Training Readout
Aug 23 – Aug 29, 2026
Your week at a glance.
10K BUILD · WK 8 / 12MOONLIGHT RUN 10K · ~5 WKS · no plan linked yet
PAINLeft hamstring 2Lower 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.
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

Week over week

Is it working?

HRV · weeklyJun 13 → Aug 15
27.4ms-2.6
18.125.031.9Jun 13: 29.949810768898466Jun 20: 30.279900243747974Jun 27: 26.462725397407826Jul 4: 24.89891509573723Jul 11: 19.67321946602385Jul 18: 27.050511223675123Jul 25: 27.408770016498302Aug 1: 28.368358799208217Aug 8: 25.744227212718048Aug 15: 27.37440476190476Jun 13Jul 18Aug 29
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
089.5179target 15006/13: 12806/20: 5506/27: 9807/04: 10307/11: 17907/18: 7007/25: 8808/01: 14208/08: 12008/15: 10708/22: 908/29: 5106/1307/1808/29
Dashed line is the 150-minute target — reached in 1 of these 12 weeks.
Body composition6 scans · 27 months
134.9lb lean+20.6
111125138Mar 24: 114.3Jul 24: 117.7Oct 24: 120.5Apr 25: 121.6Jan 26: 131.9Jun 26: 134.9Mar 24: 24/10Jul 24: 23.9/10Oct 24: 23.4/10Apr 25: 23.5/10Jan 26: 24/10Jun 26: 23.5/10240Mar 24Oct 24Jun 26
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
074.514906/13: 11406/20: 13006/27: 10507/04: 007/11: 007/18: 14907/25: 408/01: 008/08: 7408/15: 7208/22: 008/29: 7206/20: 3/1008/15: 2/1008/29: 2/103006/1307/1808/29
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 1 Side corrected 2026-08-10: recorded as Right in error; always the left.
  • 08-10Left hamstring 2 · Lower back 1 High 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 1 About the same as last week. Some general soreness after a couple of runs.
  • 08-27Left hamstring 2 · Lower back 1 About 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 items shared with coach; you update status with jbot
Build a travel fitness routine for the Aug 14-23 road tripJohndone
Ask Snyder how to train dynamic/athletic capacity, not just strengthJohnopen
Plan the next 90 days through year end, including where the week-12 VO2max retest goes given the late-October travel weekJohnopen
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
Sleep & recovery
Eight Sleep6h 28m
Sleep & recovery
Eight Sleep6h 36m
Sleep & recovery
Eight Sleep7h 18m
Training
Running 51m — Z1 13m · Z2 26m · Z3 12m avg 124 bpm
Sleep & recovery
Sleep Study5h 05m
Eight Sleep7h 29m
Training
Strength 60m — no HR data
Elliptical 30m — no HR data
Sleep & recovery
Sleep Study0h 41m
Eight Sleep6h 54m
Food
Not assigned to a meal480 kcal · 28g p
7:42 AMStarbucks, Caffe Latte with Soymilk, Venti 1.00 venti 190 kcal · 13g p
7:43 AMMush, Overnight Oats, Chocolate Peanut Butter 1.00 container 290 kcal · 15g p
Sleep & recovery
Oura0h 19m
Sleep Study1h 59m
Eight Sleep6h 03m
Training
Running 20m — Z1 8m · Z2 9m · Z3 3m avg 119 bpm
Elliptical 60m — Z1 60m avg 85 bpm
goal metunder targetunder 6h sleepnothing loggedno data* partial diary — unmeasured, not lowtargets: 7h sleep · 2000 kcal · 150g protein

Training Load

derived from workout HR · Aug 23 – Aug 29
117
Acute · 7-day
147
Chronic · 3-wk
Sun
Mon
Tue
Wed
Thu
Fri
Sat
0.80
Low (<0.8)Optimal (0.8–1.3)Caution (1.3–1.5)High (>1.5)
Undertraining — room to build
Acute:chronic ratio — keep it in the green band to build safely.

Sleep & Recovery

Oura · SleepImage · latest Aug 26
Sunno data
Mon6h 03m Eight Sleep
  • Oura0h 19m
  • Sleep Study1h 59m
  • Eight Sleep6h 03m
Tue6h 54m Eight Sleep
  • Sleep Study0h 41m
  • Eight Sleep6h 54m
Wed5h 05m Sleep Study
  • Sleep Study5h 05m
  • Eight Sleep7h 29m
Thu7h 18m Eight Sleep
Fri6h 36m Eight Sleep
Sat6h 28m Eight Sleep
MetricThis week3-wk avg
Sleep
Sleep (avg/night)6h 24m4h 44m
CPAP Score (SleepHQ)9895
Recovery
Heart Rate Variability27 ms
Resting Heart Rate60 bpm
jbot // WEEKLY · auto from health.db + calendar · italic = Wed check-in (jbot fills via WhatsApp) · hover any ⓘ for what it means