Grams, not guesses.
A calorie tracker that tells you what you ate, and how far to trust the number. Then it corrects itself against your real body.
The number on your screen is fiction.
Food diaries checked against doubly-labelled water land on one finding: people under-report what they eat by 10 to 20 percent, and they do it honestly. It is a measurement problem wearing a discipline problem's clothes.
One: you guess the portion
Whose bowl? The biggest error in food logging, and every app leaves it to you.
Two: the database disagrees with itself
The app then reports your day to the calorie, as if your pick never happened.
Three: the target was set once
Your body adapted. The number never moved. This is why plans stall in week six.
Every number carries its error.
Portion error and database error are independent, so they add in quadrature. Summing them would make the app look useless. Dropping one would make it a liar. A weighed, labelled food still carries ±10.2%, and Broccoli says so. Move the sliders.
Illustration: entries of about 150 kcal each. Weighed ±10%, barcode ±18%, AI photo ±28%, typed ±45%.
Four ways in. One log.
Kitchen scale
Pick a food, type the grams. A one-tap keypad, tare, and your last weight already filled in. Three taps from Today.
Weighed ±10%Barcode and label
2,123 packaged foods bundled for offline scans. On-device OCR reads the printed nutrition panel when a pack is new.
Scanned ±18%Photo
Photograph the plate and get an editable draft. Weigh one item and the rest re-estimate from it. A failed scan refunds the credit.
Estimated ±28%Typed or spoken
Hold plus and say "2 roti, 1 katori dal". It becomes a plate. Restaurant meals still count, drawn hatched so they look like the guess they are.
Typed ±45%It learns your habits: your usual breakfast is one tap, portions remember themselves, and a saved meal logs in one go. Recipes freeze their numbers at the moment you eat, so editing one never rewrites history.
The formula guesses. Your scale corrects it.
A two-state Kalman filter over 120 days of intake, weigh-ins and steps solves for what your body actually burns. It proposes, you decide, and safety floors run first.
How close it gets, by days of data
Mean absolute error over 60 simulated runs with realistic water noise. A 4 kg misread moves the estimate by under 60 kcal. Both signs are unit-tested.
It refuses, out loud
Plateau, low adherence, suspected under-logging or recomposition each get a plain explanation instead of a bad proposal. Rising weight on a logged deficit is reported as a logging signal, never a metabolism verdict.
DiagnosticSteps, never eaten back
Health Connect steps and weigh-ins sharpen the estimate. A long walk never adds food to your day.
Health ConnectSafety floors first
Intake floors, a rate ceiling and BMI guards run before any target is written. Eating-disorder help is offered, never forced.
Always onDal, roti and sabzi, modelled properly.
2,109 lab-analysed Indian foods and recipes from INDB 2024 sit beside USDA data, with regional aliases, katori and thali portions, and cooking oil counted on the plate. Raw-to-cooked yield is reconciled so a serving matches the pot you weighed.
Opened daily, never guilt-tripped.
Plan the week with high and low days. Go over and you get a number and a sentence, never a red screen. Only logging counts toward a streak.
Weekends higher: Saturday and Sunday +300, the other five give back 120 each. The week still adds up to the same target, and no day goes under your safety floor.
Eight struck coins by days logged. Miss a day and you have 48 hours to backfill it. Your best streak is kept forever.
The rest of the instrument.
Guest first
Full access with no account, email or password. Signing up later carries every log across with no loss.
Account optionalTransparent targets
BMR by Mifflin-St Jeor, or Katch-McArdle with body fat, then activity, deficit and a protein floor (1.6 to 2.2 g/kg), every step on screen.
How it is calculatedRecipes and custom foods
Weigh raw ingredients, record the cooked weight, log by the bowl. Build any food per 100 g.
Raw to cookedWaist, body fat and water notes
A waist log shows recomposition when the scale is flat. A calm note explains a one-day jump that sodium and carbs can account for.
Weight pageReports and share cards
Day, week and month PDFs, CSV and JSON export, and cards that share how carefully you tracked, never your weight or body.
Free exportWidgets and reminders
A Today widget and a progress widget that redraw only when you log. Reminders written without guilt, about dabba lunches and evening chai.
AndroidSwaps
Higher-protein and lower-calorie alternatives for what you are craving, offline for common foods.
Compare and swapReferrals
A friend subscribes and you both get a free month. It pays out of revenue, never on a bare install.
PlusWorks on a plane. Not an "offline mode".
The daily loop is local, so it never stalls in a kitchen, gym, canteen or basement. First search results arrive in under 100 ms.
Search 4,694 foods
AlwaysWeigh and log a meal
AlwaysScan a cached barcode
AlwaysRecipes and saved meals
AlwaysWeight, charts and the coach
AlwaysReports, PDF and CSV export
AlwaysEvery safety behaviour
AlwaysAI photo scan
Needs signalBackup and sync
Needs accountEveryone counts calories. Nobody counts the error.
| Global incumbents | Indian coaching apps | AI photo apps | Broccoli | |
|---|---|---|---|---|
| Large food database | ||||
| Lab-analysed Indian foods | ||||
| Barcode scanning | ||||
| AI photo, labelled as an estimate | ||||
| The error shown on every number | ||||
| Target corrected by your weight trend | ||||
| Cooking oil counted on the plate | ||||
| Daily loop works offline | ||||
| Usable with no account | ||||
| Full export, free after cancelling | ||||
| No ads, data never sold | ||||
| No shame mechanics |
Columns are categories of app, from public listings. Indicative, not a review of any one product.
Annual price in India
To match this, a tracker with a hundred million users would have to print an error band on every number it has ever shown. That is not an engineering problem. It is a confession.
Free for the daily loop. Plus keeps it safe.
Free, always
- Logging, search, recipes, charts and the coach
- Works offline with no account
- Full export and account deletion
- No ads, data never sold
Broccoli Plus
₹149 a month or ₹1,099 a year
- Cloud backup, synced across devices
- 100 photo scans a month
- Founding price, locked while you stay subscribed. It becomes ₹199 once Broccoli reaches 1,000 users.
- Refer a friend: a free month for both of you when they subscribe
Straight answers.
Do I need an account?
No. Guest mode is complete. An account adds photo scans, backup and sync, and signing up keeps everything you already logged.
Does it really work with no signal?
Search, logging, barcodes already seen, recipes, charts and the coach all run on the phone. Only AI photo scans, new-product lookups, sign-in and sync need a connection.
Where does my data go?
Signed out, nothing leaves the phone except a barcode string for a new product. No analytics, no ad IDs, and health data is scrubbed from crash reports. Export everything, or delete your account, for free.
Is it medical advice?
No. Broccoli is an instrument, not a medical device. Talk to a healthcare professional before big changes to your diet.