{{ intakeMetaText(item) }}
{{ weekText('kcal') }}{{ weekText('protein') ? ' · ' + weekText('protein') : '' }}
{{ extraNutrientsText(summary?.intake?.totals) }}
{{ alcoholOverText() }}
{{ selectedDate === todayIso() ? 'Today' : 'That day' }} {{ alcoholWeek()?.day }} of {{ alcoholWeek()?.day_drinks }} · heaviest day {{ alcoholWeek()?.max }} · a standard drink is {{ alcoholWeek()?.drink_g }} g of alcohol
No recent foods yet.
Searching catalog…
No foods match "{{ logQuery }}".
{{ pickedItem?.brand }}
Read the label; figures are stored, never photos.
Leave blank when unknown, 0 is zero.
Nothing logged for {{ selectedDate }} yet.
{{ intakeMetaText(item) }}
{{ ex.kcal ? ex.kcal + ' kcal' : '' }}{{ ex.distance_m ? ' · ' + ex.distance_m + ' m' : '' }}{{ ex.avg_hr ? ' · ' + ex.avg_hr + ' bpm' : '' }}{{ ex.notes ? ' · ' + ex.notes : '' }}
{{ sl.deep_min ? 'Deep ' + sl.deep_min + 'm ' : '' }}{{ sl.rem_min ? 'REM ' + sl.rem_min + 'm ' : '' }}{{ sl.score ? 'Score ' + sl.score : '' }}
{{ formatSource(m.source) }}
{{ trendCaption }}
No metrics recorded yet.
No records in range.
{{ dayTotalsText(day) }}
{{ intakeMetaText(item) }}
{{ ex.kcal ? ex.kcal + ' kcal' : '' }}{{ ex.distance_m ? ' · ' + ex.distance_m + ' m' : '' }}{{ ex.avg_hr ? ' · ' + ex.avg_hr + ' bpm' : '' }}{{ ex.notes ? ' · ' + ex.notes : '' }}
{{ sl.deep_min ? 'Deep ' + sl.deep_min + 'm ' : '' }}{{ sl.rem_min ? 'REM ' + sl.rem_min + 'm ' : '' }}{{ sl.score ? 'Score ' + sl.score : '' }}
{{ formatSource(m.source) }}
Signed in as {{ userEmail || userUid }}
Cardio counts heart-rate minutes at 64% of max heart rate or more; minutes at 77% or more count double. Food search ranks catalog results from this region first.
{{ savedMsg }}Summary of facts and data gaps for GP checkups; print-friendly one-page summary.
{{ googleLoginEnabled ? 'Add this URL to Claude, ChatGPT, or any MCP client; it asks you to sign in with Google.' : 'Paste this URL into Claude, ChatGPT, or any MCP client on mobile or desktop.' }}
For clients that can't sign in: send Authorization: Bearer with the key, or add ?key= to the MCP URL. It grants full access to your data.
Most Android wearables write to Health Connect.
Loading health report…
{{ healthReport?.header?.userName }}
Period: {{ healthReport?.header?.period?.start }} to {{ healthReport?.header?.period?.end }} ({{ healthReport?.header?.period?.days }} days)
Generated: {{ healthReport?.header?.generatedDate }}
{{ healthReport?.header?.disclaimer }}
Sources: {{ healthReport?.header?.sources?.join(', ') || 'None recorded' }}
| Scope | Days with data | Coverage | Longest gap |
|---|---|---|---|
| {{ s.scope }} | {{ s.daysWithData }} / {{ s.totalDays }} | {{ s.coveragePct }}% | {{ s.longestGapDays }} days |
Weight: {{ healthReport?.body?.weight?.first?.date }}: {{ healthReport?.body?.weight?.first?.value }} {{ healthReport?.body?.weight?.unit }} → {{ healthReport?.body?.weight?.last?.date }}: {{ healthReport?.body?.weight?.last?.value }} {{ healthReport?.body?.weight?.unit }} (change: {{ (healthReport?.body?.weight?.change ?? 0) > 0 ? '+' : '' }}{{ healthReport?.body?.weight?.change }} {{ healthReport?.body?.weight?.unit }}) · min: {{ healthReport?.body?.weight?.min }} {{ healthReport?.body?.weight?.unit }}, max: {{ healthReport?.body?.weight?.max }} {{ healthReport?.body?.weight?.unit }} (n = {{ healthReport?.body?.weight?.count }} readings)
Weight: {{ healthReport?.body?.weightGap }}
Body fat (same device): {{ healthReport?.body?.bodyFat?.first?.date }}: {{ healthReport?.body?.bodyFat?.first?.value }}% → {{ healthReport?.body?.bodyFat?.last?.date }}: {{ healthReport?.body?.bodyFat?.last?.value }}% (change: {{ (healthReport?.body?.bodyFat?.change ?? 0) > 0 ? '+' : '' }}{{ healthReport?.body?.bodyFat?.change }}%) · min: {{ healthReport?.body?.bodyFat?.min }}%, max: {{ healthReport?.body?.bodyFat?.max }}% (n = {{ healthReport?.body?.bodyFat?.count }} readings)
Resting HR: {{ healthReport?.body?.restingHr?.gap }}
Cardio: {{ healthReport?.activity?.cardio?.gap }} Median {{ healthReport?.activity?.cardio?.weeklyMedian }} min/week against {{ healthReport?.activity?.cardio?.guidelineMin }} min guideline (n = {{ healthReport?.activity?.cardio?.weeksCount }} weeks)
Strength: {{ healthReport?.activity?.strength?.gap }} Median {{ healthReport?.activity?.strength?.weeklyMedian }} sessions/week (n = {{ healthReport?.activity?.strength?.weeksCount }} weeks)
Steps: {{ healthReport?.activity?.steps?.gap }} Median {{ healthReport?.activity?.steps?.dailyMedian }} steps/day (n = {{ healthReport?.activity?.steps?.daysCount }} days)
{{ healthReport?.sleep?.gap }}
Median duration: {{ healthReport?.sleep?.medianDurationFormatted }} (n = {{ healthReport?.sleep?.nightsCount }} nights)
Nights < 6 h: {{ healthReport?.sleep?.pctUnder6h }}% ({{ healthReport?.sleep?.countUnder6h }} of {{ healthReport?.sleep?.nightsCount }} nights)
Nights > 9 h: {{ healthReport?.sleep?.pctOver9h }}% ({{ healthReport?.sleep?.countOver9h }} of {{ healthReport?.sleep?.nightsCount }} nights)
Standard drinks / week: {{ healthReport?.alcohol?.standardDrinksPerWeek }} (guideline ≤ {{ healthReport?.alcohol?.guidelineWeekDrinks }})
Heaviest day: {{ healthReport?.alcohol?.maxDayDrinks }} drinks (guideline ≤ {{ healthReport?.alcohol?.guidelineDayDrinks }})
Coverage: {{ healthReport?.alcohol?.loggedDays }} of {{ healthReport?.alcohol?.totalDays }} days logged · standard drink = {{ healthReport?.alcohol?.drinkGram }} g alcohol
{{ healthReport?.labs?.emptyMessage }}
Couldn't load your account.