A calorie diary built on government food tables.
Most trackers run on one crowd-sourced database, so a search for rice returns forty versions of somebody's estimate. Macro Tracker ships thirteen national food composition tables, the ones dietitians work from, and tells you which one each number came from.
If you live in one of those thirteen countries, it uses your country's table first. A Norwegian searching for brød gets Matvaretabellen. A Spaniard searching for merluza gets BEDCA.
The numbers
- 416,179foods, on the device
- 40,131from national food tables
- 13countries with their own table
All of it ships inside the app, a download of about 70 MB. Search works on a plane, in a basement, on a train through a tunnel.
Your country's food, first
National food composition tables are published by government institutes. They are small, laboratory-measured, and they are what dietitians in each country actually work from. Thirteen of them are in the app.
- AustraliaAFCD
- CanadaCanadian Nutrient File
- DenmarkFrida
- FinlandFineli
- FranceANSES-Ciqual
- GermanyBLS
- NorwayMatvaretabellen
- PortugalTCA
- SpainBEDCA
- SwedenLivsmedelsdatabasen
- SwitzerlandSwiss Food Composition Database
- United KingdomCoFID
- United StatesUSDA FoodData Central
The app picks yours on first launch from your device's region, and you can change it in Settings. Results from your own table come first, in your own language, under the names your shops use. Where your table doesn't have something ordinary, the app borrows from another table that shares your language rather than leaving you with nothing.
Barcodes and packaged food
Government labs analyse ingredients. They don't analyse a particular brand of protein bar, so the app also carries 376,048 branded products from Open Food Facts, the open database of packaged food. Scan a barcode and it resolves on the device, with no network involved.
Open Food Facts is a volunteer project, and the app is built to give back to it. If you scan something it doesn't have, you can type in what's on the label and send it, so the next person who scans that barcode finds it. That's off by default and you turn it on in Settings.
What it does
Log by weight, by volume, or by a named portion the food already carries. Set daily targets or let the app work them out from your height, weight and activity, and update them as your weight changes. Export the lot to CSV whenever you want, because it's your diary.
- Diary by day, with protein, fat and carbohydrate against your targets
- Barcode scanning, offline
- Your own foods, which always rank above anything bundled
- Eight languages, with food names in your own where the table has them
- Dark theme, following your system setting
- Every text size follows your system setting, with nothing hardcoded to override it, and colour is never the only way anything is labelled
- CSV export, of everything you have logged
Free, no account
There's no sign-up, no email, no password, and no subscription. There is no paid tier and there isn't going to be one. Nothing in the app is held back, and nothing you log is sold or profiled.
I build software that's paid for once or not at all. This one is not at all.
Privacy policy
Last updated 4 September 2026
The app has no account, no analytics SDK, no crash reporter, no ad network and no advertising identifier. Your diary is a file on your phone and nothing uploads it. Two features can reach the network, both off until you turn them on. Because the app is distributed through Google Play, Google collects its own install and crash statistics, and we see those as aggregate figures. That is the whole of it, and the rest of this page is the detail.
Your diary
Everything you log is written to a database in the app's private storage. Android's automatic backup is switched off for this app, so your diary is not copied to Google Drive. Uninstalling deletes it.
What Google Play collects
We don't run servers and we don't have an account system, but Google Play does. When you install from Play, Google records install counts, device models, Android versions and crash reports, and shows them to us as aggregated, anonymised figures. We use them to see whether the app is broken on a device we don't own. We can't connect any of it to you, and this happens for every app on Play whether or not it has any code of its own to do it.
When the app uses the network
On a fresh install, never. Two optional features can make a request, and both are off until you turn them on in Settings. They are separate from each other, and neither runs in the background or on a schedule.
The barcode lookup
If you turn this on and tap the button that appears when a scan finds nothing locally, the app asks Open Food Facts about that single barcode. The request contains the barcode and a line identifying the app by name, version and our support address. It carries no identifier for you or your device. As with any request to any website, Open Food Facts can see the IP address it came from, and we have no way to prevent that.
Contributing a product
If you turn this on, and Open Food Facts has confirmed it doesn't have the barcode, a checkbox appears on the Add product screen offering to send it. The checkbox starts ticked, and leaving it ticked as you save publishes the product. What is sent is the barcode, the product name, the brand, and the four per-100g values you entered, along with the app's name and version.
Submissions are made under a single Open Food Facts account belonging to the app, so you never create one. Sent with them is a short identifier derived from your installation, so Open Food Facts moderators can block a single source of bad submissions without blocking every user of the app. It's generated the first time you contribute. It's pseudonymous rather than anonymous: it stays the same for as long as the app is installed, so contributions from one installation can be recognised as coming from the same place. It isn't linked to anything else, and clearing the app's data ends it.
Contributions to Open Food Facts are public and permanent. Nothing from your diary is ever included, and the app doesn't upload photographs.
The camera
The camera permission is used for one thing, reading a barcode. Frames are processed on the device and are never stored or transmitted. You can refuse the permission and every other part of the app keeps working.
Your country
On first launch the app reads the region set on your device, to preselect a sensible food table. Where your SIM card reports a different country, the app asks you to choose rather than guessing. Both values are read on the device, need no permission, and are not sent anywhere. You can change the choice at any time in Settings.
Exporting
Exporting writes a CSV file and hands it to whichever app you choose to send it to. From that point what happens to the file is up to you and to that app.
Children
The app isn't directed at children, and since it collects nothing, it collects nothing from them either.
Changes
If this policy changes, the revised version will appear here with a new date. Should a future version of the app collect anything at all, that would be described here first.