Android · offline first · no ads

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.

Get Broccoli Scroll the app
Today’s log
1,842± 96 kcal today
Weighed 1,168Estimated 545Typed 129
4,694foods on the phone, searchable with no network
2,109Indian foods and recipes from INDB 2024
4confidence tiers, one honest ± on every total
0accounts or signal needed for the daily loop
Keep scrolling

The problem

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.

What a careful person logs
1,800 logged
What they actually ate
1,980 to 2,250 eaten

+180 to 450 kcal nobody sees

10–20%

How much food diaries under-count, checked against lab measurements. Nobody is lying. Portions are guessed by eye. 250 a day is 7,500 a month, about a kilogram.

One: you guess the portion

One bowl of rice, 120 g to 265 g±38%

Whose bowl? The biggest error in food logging, and every app leaves it to you.

Two: the database disagrees with itself

Same food, four entries: 130, 112, 148, 121±20%

The app then reports your day to the calorie, as if your pick never happened.

Three: the target was set once

A formula guessed your metabolism on day oneStatic

Your body adapted. The number never moved. This is why plans stall in week six.

The tolerance bar

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%.

databaseportion± your band

Where the ± comes from

Portion is how it was measured: a scale is tight, an eyeball is loose. Database is how good the food record is: lab data is tight, crowdsourced is loose. The band is the long side, and it is what you see on the bar.

band = √(portion² + database²)
Four ways to log

Four ways in. One log.

Weigh it

Grams from a kitchen scale

±10%

Scan the pack

Barcode, label figures

±18%

Snap the plate

Photo scan, as a draft

±28%

Type it

From memory, hatched

±45%

Illustrative band for a single entry.

DRAFT

Snap the plate. Get a draft, not a verdict.

Basmati rice210 g · 273 kcal ± 76
Dal tadka160 g · 188 kcal ± 62
Salad, mixed95 g · 31 kcal ± 12

Nothing is logged until you confirm. Tap any item to weigh it instead. It stays marked as estimated, for good.

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.

Adaptive coach

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.

2,610
kcal a day observed, ± 90. The formula said 2,739. It needs 10 counted days first.
Maintenance over time
Observed2,610Formula2,739
2,9002,8002,7002,6002,5002,4002,7392,610Window 1Window 83,0002,8002,6002,400Window 1Window 8

ObservedRange, narrowingFormula

Your steps, and how you walked them.

8,412steps today, read from Health Connect. An example.
  • Easy38%
  • Walk34%
  • Brisk22%
  • Run6%

How close it gets, by days of data

21 days±160 kcal
28 days±100 kcal
56 days±60 kcal

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.

Diagnostic

Steps, never eaten back

Health Connect steps and weigh-ins sharpen the estimate. A long walk never adds food to your day.

Health Connect

Safety floors first

Intake floors, a rate ceiling and BMI guards run before any target is written. Eating-disorder help is offered, never forced.

Always on
India first

Dal, 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.

You say"2 roti, 1 katori dal"Hinglish in, a plate out.
It logs394 kcal, 2 itemsRoti 2 pc, 208 kcal. Dal tadka 1 katori, 186 kcal. Both from INDB, both editable.
Rajma, dry250 g · 833
Onion180 g · 72
Tomato240 g · 43
Mustard oil30 g · 265
Ginger garlic25 g · 30
Whole spices12 g · 38
Sunday rajma1,281kcal, weighed
214
214
214
214
214
214

Weighed parts, one pot, six bowls of 214 kcal each. An example.

Built for every day

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.

34

days in a row

Best ever 42 · Days over target 6 · Streaks lost to it 0

Only logging counts. Go over your target and you get a number and a sentence. Never a red screen. An example.

Peanut3 days
Mirchi7 days
Nimbu14 days
Avocado30 days
Broccoli60 days
Nariyal100 days
Kaddu200 days
Kathal365 days

Eight coins by days logged. Miss a day and you have 48 hours to backfill it. Your best streak is kept forever.

Everything else

The rest of the instrument.

Offline by construction

Works 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.

Why it is better

Everyone counts calories. Nobody counts the error.

Swipe sideways to see every column.

Solid: yesHalf: partlyHollow: no

Rows covered, out of 12

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.

Price

Free for the daily loop. Plus keeps it safe.

Free, always

  • Logging, search, recipes, coach
  • Works offline with no account
  • Full export and account deletion
  • No ads, data never sold

Broccoli Plus

₹1,099₹92 a month, billed yearly
₹149 a month now. ₹199 once Broccoli reaches 1,000 users. Yours stays put.
  • 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: get a free month when they subscribe
The refusals

Things Broccoli will never do.

No red screens for going over.
No guilt notifications.
No food called clean, bad or a cheat.
No ads. No ad tracking.
No selling your data, at any price.
No fake countdowns or “today only”.
No export held back. Your log is yours.
No number shown as surer than it is.

Every one of these costs us something. That’s the point.

Questions

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.