ParrotPal Data · methodology
How ParrotPal Data works
Where the numbers come from, how we keep members anonymous, and what the figures can and can’t tell you.
The data source
ParrotPal is a food and protein tracking app. Members log what they eat by voice, text, photo or barcode, and some connect Apple Health so their daily steps come in too. Our data pages use those records, copied into an analytics store we query with read-only, saved queries.
Who’s counted
- UK members are members whose app is set to UK time. The app doesn’t record a country, so the time zone is the closest thing we have. Each page says when it uses members in every country instead (steps, and the 1,800-calorie paradox).
- Internal and test accounts are left out.
- Deleted entries don’t count: if a member removes something from their diary, it isn’t in our figures.
- Before February 2026 our diary records only hold members who logged by chat, so pages that reach back to 2025 say so.
Anonymisation
We only ever publish aggregates: medians, shares and rounded group sizes. No page shows a single member’s record, name, location or diary, and no raw records leave our analytics store. Members’ age bands and gender are what they told us when they joined.
The 50/10 rule
Every group we show has at least 50 members, and no share is built on fewer than 10 people. A group that falls short is left out, even when the number would make a good story. Groups of under 200 are marked as smaller, so treat them with more care.
Rounding
- Calories to the nearest 5 (weekend totals, baselines and modelled intakes to the nearest 10).
- Shares to whole percentages, or one decimal place in league tables where places are close.
- Steps to the nearest 50; protein to the gram, or one decimal place when that’s how it was logged.
- Group sizes in words (“several hundred”, “over 1,000”), never exact small counts.
- Shares are worked out from the underlying counts, rounded once, half up.
Logged isn’t eaten
A food diary records what someone chose to log. People tend to log less than they eat, and that can vary by day, food and person. Where a page compares days, each member is compared with themselves, which helps, but it doesn’t remove the gap.
Supermarket own label
Own label means a supermarket’s own brands and sub-brands, for example Brooklea and Cowbelle at Aldi, Milbona at Lidl, Finest at Tesco and Taste the Difference at Sainsbury’s. “Protein-packed” means 15 g of protein or more with protein making up at least 30% of the calories, our definition rather than an official one.
Brand shares
A brand’s share is the share of members in a group (for example, members who logged a protein bar) who logged that brand at least once. Members can log several brands, so shares can add up to more than 100%. It measures popularity in diaries, not quality. Brand names are as members logged them.
Steps
Steps come from Apple Health for members who connect it. Each member’s typical day is their median, after leaving out days under 500 steps (phone not carried) and members with fewer than 14 days.
The 1,800-calorie paradox: the energy maths
This page compares what members logged with what their weight did. It uses members in every country who weighed in at least 3 times over 28 days or more and logged food on at least 70% of the days in between.
- Estimated maintenance is the Mifflin-St Jeor equation for resting metabolism × 1.4 for light activity. We show 1.3 and 1.5 too, and the calorie gap at 1.3 to 1.6, because the activity level is an assumption.
- Predicted weight change = (calories logged − maintenance) × days ÷ the energy in a kilo of that member’s body weight, which depends on their body fat (Hall, 2008).
- Implied intake is maintenance adjusted by the energy in the weight each member actually gained or lost.
- Limits: equations can be 10% or more off for one person, metabolism adapts modestly after weight loss, height is estimated for about two-thirds of members, and logged calories cover logged days only. So we only publish group figures, and we can’t separate under-logging from lower energy use.
Updates
League tables aim to refresh monthly and behaviour patterns (like the weekend effect) quarterly, when new diary data is in. Every page shows its data dates and when it was last updated. If a refresh changes a headline, the page says so.
How every figure is checked
Each figure comes from a saved, read-only query whose results are kept. Pages are built from those results by a script, never typed by hand, and a separate check script recomputes every published figure from the same results before a page goes live. On 7 October 2026 we found our first weekend figures had counted deleted diary entries; the pages were rebuilt without them before publication.
What to bear in mind
- App members aren’t a random sample. They’re people choosing to track food, many of them trying to lose weight.
- Patterns, not causes. Our figures describe what members logged, not why.
- Not advice. These pages are general information, not medical or dietary advice.
Using the figures
Free to use with credit and a link to the source page, under CC BY 4.0. Corrections or questions: the ParrotPal team, jacqui+press@parrotpal.com.