Our Protein Targets Never Ask How Old You Are
A widely debated new review argues protein needs should be personalized by age and life stage, not one flat number for every adult. Mr BITE already collects a user's age to calculate calories, then drops it completely before deciding how much protein they should eat.
A review published July 31st in Cell Press Blue, covering more than 350 studies of protein restriction across mice, rats, flies, fish and a handful of small human trials, made a case that’s since split the nutrition world down the middle: eating less protein might slow aging, by way of lower FGF21 signaling, reduced branched-chain amino acid and methionine load, and knock-on effects on cellular repair. It’s a real, thorough piece of work by Bailey Knopf and Dudley Lamming, and I want to be fair to it before I get to the part that annoyed me. The authors themselves don’t argue for a flat “eat less protein” rule. Their own conclusion is that protein guidelines should be personalized by age, activity level and life stage, not handed out as one number for every reader. Older adults facing sarcopenia, they write, plus pregnant people and anyone training hard, often need more, not less.
The public read didn’t stay that careful for long, and the pushback arrived fast. Stuart Phillips, who studies skeletal muscle at McMaster, told STAT on August 20th the review was “a beautiful mouse story, sold as human advice,” and was blunt about what happens when older adults actually cut protein: “In people over 65, and especially in the very old, low protein is linked to worse outcomes, not better ones. More frailty. More falls. Higher mortality.” Two credible camps, arguing over the same 350 studies, landing on opposite defaults for the exact same population. The one thing neither side disputes is the claim buried in the review’s own conclusion: the right number depends on how old you are.
So I went and checked what number Mr BITE actually hands out, and how it gets there. calculateMacros.ts has five presets, Balanced, Cut, High Protein, Bulk and Keto, each one a fixed grams-per-kilogram multiplier running from 1.4 to 2.2, capped at 2.2g/kg for anyone who’d otherwise exceed it. Pick “Cut” and you get 2.2g/kg whether you’re 24 or 74. The other calculator in the app, automaticTargetCalculator.ts, the one that runs during onboarding and sets targets automatically, does something a little smarter: it tiers protein by goal and by how aggressive your deficit or surplus is, a fast fat-loss pace gets 2.0g/kg, muscle gain gets a flat 1.4g/kg regardless of pace, the whole thing capped at 180 grams total. Neither multiplier moves for age. And that’s not because the app doesn’t have the number. Two lines above the protein math in automaticTargetCalculator.ts, age is already sitting there, being multiplied by 5 and subtracted straight into a Mifflin-St Jeor calorie estimate: (10 * weightKg) + (6.25 * heightCm) - (5 * age) + sexOffset. The field is required at onboarding, leaving it blank blocks the whole calculation, and it gets used for exactly one thing before it’s dropped: how many calories you burn. It never once touches how many of those calories become protein.
I don’t think this is a five-minute fix, and I’m not going to pretend I know whether a 70-year-old on Mr BITE should get a higher protein floor, a different warning, or just better copy explaining the tradeoff. That’s a real design decision, and the two experts above would probably answer it differently themselves. What I can’t defend anymore is the part that isn’t a judgment call: we already ask for age, we already do arithmetic with it, and then the one place a personalized number might actually matter, how much protein a body needs to hold onto muscle instead of losing it, treats every adult as interchangeable. The review that kicked off this fight agrees on that much. Our code doesn’t know the fight happened.
BITE of the Week: The Import Stopped Trusting the Model’s Own Math

Version status is unchanged: 1.10.0, cut August 22nd, is still the build sitting in app store review; 1.9.0 remains what’s live on both stores. None of this week’s work waited on either, because all five commits live in supabase/functions/_shared/recipeImport.ts and the shared chat function, not the client, so each shipped to prod the same day it landed.
The chain started with a real import going wrong: a Sicilian recipe came back at 1,200 kcal total when the page it was pulled from stated 2,338, and the number was self-consistent enough that nothing flagged it. The root cause was structural, not a one-off: the pipeline let the model do whole-recipe arithmetic in its head. The fix moves the addition into code. The model now states facts per ingredient line, grams and per-100g macros, each line gets screened against physics (pure fat tops out at 900 kcal/100g, per-100g figures have to satisfy their own Atwater math), and the totals get summed by us, not guessed by it. A publisher’s own nutrition label, when a page has one, now wins outright: a Delish import that had stored 300 kcal and 30g of protein against the site’s own stated 585 kcal and 68g now applies the label after the model pass instead of hoping the model read it in the first place. Buried in the same run: raw chicken breast was quietly pinned wrong (150-220g when a real raw breast runs closer to 220-250g), a basis-mixing trap where cooked grams got multiplied against raw per-100g macros, and two message-handling bugs where a pasted recipe link plus a follow-up edit request either lost the edit entirely or got answered with four unrelated recipe suggestions instead. A last commit fixed a test suite an unescaped apostrophe had silently taken down entirely, the kind of failure that passes CI for the wrong reason. Five commits, one thread: stop asking the model to be the calculator.
Three Quick Bites

-
A large preliminary study presented at the American Heart Association’s Scientific Sessions found that people with chronic insomnia who took melatonin long-term had a roughly 90% higher five-year risk of heart failure than those who didn’t, with heart-failure-related hospitalization in 19.0% of melatonin users versus 6.6% of controls. All-cause mortality was higher in the melatonin group too (7.8% vs 4.3%). It’s an observational abstract, not yet a peer-reviewed paper, and the researchers themselves note that needing melatonin nightly for years may be a marker of an underlying sleep or health problem rather than proof that melatonin itself causes the risk. ScienceDaily
-
The Environmental Working Group checked the menus of 12 major U.S. fast-food chains for ultra-processed ingredients and found exactly one, Chipotle, that used none at all, building every item from a shared list of 53 base ingredients including tortilla flour, produce, seasonings and cheese cultures. The other 11 chains, including Chick-fil-A, Subway, Panera and Taco Bell, all had at least some menu items relying on additives EWG classifies as markers of ultra-processing, though several offer a handful of non-UPF options if you know what to order. EWG
-
A University of Parma-led survey of 212 plant-based meat alternatives and beverages sold in the UK found that every single product contained at least one of 19 tested mycotoxins, fungal toxins that occur naturally in crops, with WHO-classified carcinogenic aflatoxins turning up in up to 82.6% of the meat alternatives. All measured levels stayed below EU safety guidelines, and mycotoxins are common in conventional grain-based foods too, but the researchers frame it as a contamination pattern worth monitoring as plant-based products scale up. ScienceDaily
Tool of the Week: USDA’s DRI Calculator for Healthcare Professionals

Since this issue is about a protein number that doesn’t move for age, this week’s pick is the free tool built to do exactly that. The USDA National Agricultural Library’s DRI Calculator for Healthcare Professionals generates a full Dietary Reference Intake report, calories, protein, water, vitamins and minerals, pulled from the National Academies’ actual age-and-sex-banded tables rather than a single flat multiplier. Enter age, sex, height, weight and activity level and it returns the Recommended Dietary Allowance for that specific person, not “adults” as one undifferentiated category. For readers: it’s a legitimate free second opinion before trusting any app’s default protein target, ours included. For builders: it’s a working demonstration that an age-adjusted number isn’t hard to produce, the reference tables already exist, it’s a matter of routing a field the intake form already collects into the calculation that actually needs it. USDA DRI Calculator for Healthcare Professionals. Free, no signup required.
Thanks for reading. If you’d rather your coach’s math actually knew how old you are, Mr BITE is free on iOS and Android.
Collins, building Mr BITE