Methodology & Limitations

Effective: 13 September 2026

Specification version: 2026.09.06.1 · Exercise registry: 2026.08.29.3 · Workout document schema: 1 · Voice workflow schema: 2 · Meal request schema: 2

General wellness only. BodyNorth is not a medical device and its outputs are not diagnoses, treatment, dietary prescriptions, laboratory measurements, or guarantees. The methods below have not been clinically validated for this app. Review every result and consult a qualified professional when appropriate.

Workout generation

Manual, deterministic and optional AI-directed workouts use the same versioned plan document, exercise registry and validator. Deterministic workouts are generated on the iPhone from goal, one to seven sessions per week, rotation, planning time, venue, available equipment and More/Less/Never preferences. Gym displays the full ordered workout; opening an exercise places its static illustration above the logging controls.

Optional AI Workout Coach

After current app-wide AI consent, the user sends a completed recording of up to 60 seconds or a typed request of up to 4,000 characters. The authenticated Worker receives the exact baseline, workout settings, computed age, calculation sex, height, weight, activity level, calorie goal, saved lifestyle preferences, a 30-day workout summary with up to 30 exercise aggregates, a 14-day meal summary and optional active-session progress. Birthday, account/email identifiers, raw meals, locations, photos and Apple Health sleep data are excluded from model context. Missing logs are unknown, not evidence of fasting or inactivity. Cloudflare-hosted Whisper Large V3 Turbo transcribes audio. Google requests use zero-data-retention routing; gateway content logging and response caching are disabled.

The coach opens with a choice of training goals. Build my training plan prepares a request using the selected goal and saved equipment and workout context; it does not submit or activate a plan. Voice and text requests use the same coach screen for progress and an expandable preview. Stopping a recording or tapping Send starts interpretation and generation without a mode chooser or intermediate approval. Z.ai GLM 5.3 Flash infers creation versus modification and today-only versus ongoing scope; explicit new-plan requests create, while other requests refine the displayed preview or active baseline. Missing details use saved settings and disclosed assumptions. Corrections preserve earlier requirements unless corrected. Only Use plan activates a validated preview and any requested preference updates. Discarding or generating a preview changes neither. Continued notes share one workflow and daily allowance.

For supported clients, the Coach proposes validated adaptive training rules. The iPhone builds the preview and makes routine next-workout, recovery and progression adjustments locally from actual logged work. Starting a session freezes its targets. Missing or partial training does not automatically count as failure, unknown weights are never invented, and session duration is a ceiling. Updated rules require Use plan; older supported clients continue receiving complete plan documents.

A versioned unified request freezes context, baseline and optional prior structured intent. An iPhone file-backed background upload survives ordinary app switching, screen dismissal and device locking. A saved request identity recovers lost responses, duplicate submissions and relaunches. Force-quitting before upload completion resumes on reopening; already accepted server generation continues. At ingress, Whisper transcribes voice and GLM interprets intent; raw audio, typed notes and transcripts are never stored server-side. The validated structured result is encrypted and automatically handed to a durable Cloudflare generation workflow. Inputs and results expire within 24 hours and are removed earlier after confirmed local saving, cancellation or account deletion. Protected local upload files are excluded from backups and diary sync and removed on completion, cancellation or expiry. Content-free leases, revisions and cancellation markers fence late results. GLM reasoning is enabled and excluded from returned content; interpretation allows 16,384 tokens. Planning retains bounded output budgets, one content correction and one shared transient retry per phase. Privacy routing and price ceilings are enforced. Validation diagnostics contain codes and field paths without request content.

Server and app validation reject unknown exercises, unavailable equipment, Never preferences, unsupported experience, invalid prescriptions, duplicate identities, stale registry versions and unfulfilled typed changes. Safe identity canonicalization restores unchanged exercises to their baseline identifiers without relabeling replacements as logged work. A valid result creates an undoable revision and reconciles unfinished exercises with any running session while preserving logged work and rest deadlines. Today-only scope changes the active or first day and leaves other days intact; future plans restore at the next local midnight. If online generation fails, a labelled local fallback uses the shared deterministic builder and previews only changes it can validate, with explicit Use plan activation. Unrepresentable freeform requirements keep the existing workout available for direct editing or retry. Private iCloud sync can retain diary records and durable coach state as described in the Privacy Policy. AI can still produce unsuitable programming; medical, rehabilitation, supplement and meal-planning requests are outside this feature.

Time fitting

The chosen duration is a maximum planning window. The algorithm reserves 12.5% for preparation, transitions, equipment setup, warm-up, and cool-down, clamped to 3–10 minutes. It estimates repetition work at three seconds per repetition, adds prescribed rest and 45 seconds of transition time per exercise, and shares remaining time across duration-based work. If needed, it reduces non-focus sets first and then focus sets, never below one. Extra time is not automatically filled with more exercise.

Workout active-calorie range

The displayed range estimates active energy above rest:

active kcal = max(MET − 1, 0) × 3.5 × body mass kg ÷ 200 × minutes

Each activity uses a broad lower, midpoint, and upper MET profile. Examples range from about 1.8–4.0 MET for balance or mobility, 3.0–6.0 for general resistance work, and 7.0–12.0 for running. When only total time and an exercise list are known, time is divided equally—a material assumption. Actual expenditure can differ substantially with pace, load, rest, technique, fitness, efficiency, environment, illness, medication, and sensor error. A target-calorie value is a planning goal, not a burn requirement or measurement.

Meal-photo estimation

After explicit consent, one meal photo is resized, redrawn on an opaque canvas, stripped of source-file metadata, and sent through OpenRouter or Cloudflare AI Gateway to Google. An enabled fallback may process the request if the primary service fails. The request excludes meal location, profile, Health data, and workout history. The Worker does not persist images, prompts, or results and requires zero-data-retention provider routing.

Automatic sizing sourceHow it is usedMinimum range floor
Visible scene contextRecognizable nearby objects, dishware, container geometry, and perspective provide approximate relative scale±25%
Typical-dimension fallbackContext-appropriate defaults are used when no trustworthy scene anchor exists; an ambiguous cup defaults to about 7.5 cm inner diameter, 9 cm usable height, and roughly 300 mL capacity±25%

The app does not ask the user to place paper or another scale reference, measure the plate, weigh the food, or take a second photo. Visual anchors and default dimensions are approximate; variable, hidden, distorted, or contradictory geometry widens uncertainty.

The model estimates visible edible item mass before calories, applies typical prepared-food energy density, and returns item-level gram and calorie ranges, assumptions, warnings, and confidence. The Worker rejects malformed or inconsistent output, derives totals from accepted items, caps confidence, and enforces the uncertainty floor above. This floor is a product safeguard, not a statistically calibrated confidence interval; the real value can fall outside the displayed range.

Photos cannot reliably reveal hidden oil, sauce, sugar, fillings, exact recipes, density, allergens, or food outside the frame. Labels, recipes, and a properly used kitchen scale are better evidence. Do not use a photo result for allergen safety, insulin or medication dosing, a medical diet, diagnosis, treatment, or eating-disorder management.

Meal descriptions after unclear scans

A failed or explicitly unclear scan can be supplemented by a recording of up to 30 seconds. Spoken food and portion details guide an approximate calorie range, with typical-serving assumptions where details are missing. The original photo can provide supporting context. You review foods and calories before updating the same diary entry. Speech recognition and portion estimates can be wrong; confidence is capped and conservative ranges remain in place. This feature has not been clinically validated.

Daily calorie guide

When required profile inputs are present, the automatic guide uses the Mifflin–St Jeor resting-energy equation, one of five self-selected activity multipliers (1.2–1.9), and a heuristic goal multiplier of 0.9 for lose, 1.0 for maintain, or 1.1 for gain, then rounds to 10 kcal. If calculation sex is undisclosed, the app requires a manual target rather than guessing.

Population equations can be materially wrong for an individual. The guide does not account for pregnancy, breastfeeding, growth, disease, medications, adaptive metabolism, or body-composition extremes and is not a prescribed diet.

Versioning and verification

Material output changes require an updated implementation or registry/schema version, automated tests, limitations, and change record. Tests verify deterministic behavior, equipment and time constraints, energy equations, request/response bounds, uncertainty floors, and malformed-output rejection. Automated tests do not establish medical safety or real-world meal accuracy. No production accuracy percentage has been established for BodyNorth.

Research sources

These sources inform the design; none endorses or validates BodyNorth.

  1. US Physical Activity Guidelines: key recommendations.
  2. American College of Sports Medicine resistance-training guidance (2026).
  3. 2024 Adult Compendium of Physical Activities and its conditioning MET categories.
  4. Nutrition5k: Towards Automatic Nutritional Understanding of Generic Food.
  5. Single-View Food Portion Estimation Based on Geometric Models.
  6. USDA FoodData Central Foundation Foods documentation.
  7. Mifflin–St Jeor resting-energy equation.
  8. Food-photograph portion-selection validation study.

Policies and help

Read the Terms of Use, Privacy Policy, or visit Support.