Logging
How food gets in
Four entry paths, one record format. However an item arrives, it is stored as a weight in grams with its source attached.
01 · Describe
Type what you ate, the way you would say it
The sentence is split into separate items, each with its own weight and macros. Every figure the model produced arrives marked as an estimate, with a ~ prefix, and stays that way until you change it yourself.
Parsing runs on the server. No model key ships inside the app.
02 · Photograph
Or send one to three photos of the plate
A photo is read the same way a sentence is, and returns the same reviewable list. More angles give the model more to work with; they do not make the result a measurement.
Uploads are normalised server-side, which strips EXIF, so no GPS coordinates ride along.
03 · Scan
Barcodes resolve against Open Food Facts
A scanned product brings its declared per-100 g panel with it, and its certified Nutri-Score if the database holds one. Nomtally passes that grade through rather than recomputing it.
Fields the product does not declare stay empty, not zero.
04 · Provenance
The source survives the edit
Every item records how it arrived — manual, AI, barcode or recipe — and keeps that record after you change it. Fixing an estimate's numbers does not promote it to a measurement.
This is what stops a day's total from quietly reading as measured when part of it was guessed.
05 · Units
Grams for anything new
A food you add yourself is defined per 100 g and logged by weight. There is no "1 serving" or "1 piece" left behind for you to reinterpret in six weeks.
Fields you leave blank stay blank. A nutrient nobody knows is not the same as a nutrient that is zero, and the app does not conflate them.
Every parse, same three steps
Nothing a model produced is saved until you have looked at it
The review step is not a confirmation dialog. It is an editable list, and it is the only route from a parse into the day.
AI output is an estimate. Nomtally does not claim a photograph can be weighed, and it does not save a parse on your behalf.