Science

Built on real research, not vibes

Body+'s engine was built and evaluated as academic research at the University of Zurich: a transformer model trained on structured blood-panel-to-dosage pairs, benchmarked against a generative reasoning agent on real clinical profiles. Everything below — including the part that didn't work — is from that thesis.

University of Zurich
241 Structured biomarker-to-dosage pairs behind the trained model. Research cohort · University of Zurich · Dec 2024
~90% Accuracy mapping markers to dosages on held-out test data. F1 0.71 · BLEU 0.58 · ROUGE 0.80
4 Clinical profiles the reasoning agent was evaluated against. Cholesterol · ferritin · electrolytes · altitude
Zürich Researched in Switzerland, at the University of Zurich. CAS Generative AI program
Research case studies

Four panels the model has already read

These are worked examples from the research, not customer testimonials. They show how the model reasons from a panel to a formula.

Case 01 · Sedentary, 45M

High cholesterol, deficient vitamin D

Low sun exposure and a desk-bound week, with LDL elevated and 25-OH well under reference. The model separated the two problems rather than treating them as one "wellness" signal.

Vitamin D3Omega-3Plant sterols
Case 02 · Endurance athlete, 28F

Low ferritin under training load

Iron stores depleted mid-block, with hemoglobin still nominally in range — the pattern a single-marker read would miss entirely. Timing and co-factors mattered as much as the dose.

Iron bisglycinateVitamin CB12
Case 03 · MMA, 31M

Electrolyte imbalance around weight cuts

Repeated dehydration cycles showing up as sodium and potassium disturbance. The reasoning agent added recovery and rehydration context the dosage-only model didn't produce.

SodiumPotassiumMagnesium
Case 04 · Alpine skier, 24M

Cholesterol and hemoglobin at altitude

High caloric turnover and cold-and-altitude exposure producing a marker profile that reads as "athletic" until you look at the lipid panel next to the hemoglobin.

IronVitamin D3Omega-3
What didn't work

The architecture we tried and abandoned

Alongside the structured model above, the same research tested a second architecture: a smaller transformer trained on a far larger, unstructured corpus of medical question-and-answer text — over 1.7 million raw pairs, filtered down to roughly 22,600. The idea was that sheer scale of text might substitute for structured biomarker data.

It didn't. Accuracy stayed close to random guessing and the language-quality scores were near zero. The unstructured data was too noisy and the model too small to learn a reliable biomarker-to-dosage mapping from it. We moved on to the structured approach — the one with the ~90% figure above — and built the product on that.

We keep this on the record for two reasons. First, it is a useful negative result: it shows that "more sources" is not automatically better, which matters because "trained on millions of articles" is a claim this industry makes loosely. Second, it is the honest shape of research — you try things, most of them don't work, and the ones that do are more believable when you're willing to show the ones that didn't. The full methodology is in the published thesis.

The research

From Biomarkers to Recommendations: Comparing Transformer-Based and Generative AI for Vitamin Prescriptions

Supervised within the University of Zurich's CAS Generative AI program, December 2024.