Skip to content

Food calorie calculator: count calories from a meal description or a photo

Type what you ate (“2 eggs, a slice of toast with butter”) or use a food photo, then fix any row and get calories, protein, carbs, fat and fibre from USDA data.

Loading tool…

How it works

Describe a meal the way you would say it, for example “2 eggs, a slice of toast with butter and a cup of orange juice”, and the calculator splits it into foods, reads the amounts and units, matches each food in the USDA database and shows calories, protein, carbohydrate, fat and fibre for every item plus the meal total. Every row is editable: pick a different food from its list, change the amount or serving, or type the grams.

Prefer a picture? The From a photo tab recognises a single dish with a small AI model (OpenAI’s CLIP) that runs inside your browser. It shows its five best guesses with a match score; you tick what is on the plate and set the portion. The photo is never uploaded, and a photo cannot show how much food there is, so the portion is always yours to set.

The nutrition values come from the USDA National Nutrient Database for Standard Reference (SR28), which USDA FoodData Central publishes as SR Legacy: about 8,250 foods with values per 100 g and USDA’s measured household portions (a large egg is 50 g, a cup of cooked white rice 158 g). It is public domain and free to use. The results are estimates to help you keep track, not medical or nutrition advice.

How it works

Text: the description is split into items at commas, “and”, semicolons and new lines. Each item is read for a quantity (digits, fractions like 1/2 or ½, ranges like 2-3, and words such as a, half, one and a half, a dozen), a unit (g, kg, oz, lb, ml, l, cup, tbsp, tsp, slice, piece, serving, can, clove, strip, small, medium, large) and the food name. “Toast with butter” becomes toast plus a pat of butter; “chicken breast with skin” stays one food because USDA has a food with that name. The food name is matched against about 620 everyday foods with short names and search words first, then the whole USDA list, allowing a typo or two; the closest alternatives go into the row’s drop-down list.

Amounts use USDA’s own portion weights: “2 eggs” is two large eggs (2 × 50 g), “a cup of orange juice” is 248 g, “a slice of toast” is one slice of white bread (29 g). A food with no count (“rice”, “milk”) gets one cup or one serving; a spread or sauce without an amount gets a spoonful. Bowl, plate and handful have no USDA weight, so the tool assumes 1 cup, 1 serving and 1 oz and marks the row as estimated. Nothing is guessed silently: every row shows its grams, and you can change them.

Photo: the image is cropped to a square and passed to CLIP ViT-B/32, an image-and-text model released by OpenAI under the MIT licence, running on your device with ONNX Runtime Web. The model compares the photo with descriptions of about 260 common foods and dishes (“a photo of hummus, a type of food”) and ranks them. Each guess is linked to a USDA food, so the numbers you add are the same USDA values as in text mode.

Meals in Arabic and other languages

The text box also reads meals written in Arabic (Modern Standard Arabic and Egyptian, Gulf, Levantine, Iraqi and Maghrebi dialects), Arabizi such as “nos taba2 foul”, and Spanish, French, German, Portuguese, Italian, Turkish, Hindi and Urdu (Devanagari, Urdu script or Latin letters), Indonesian/Malay and Russian. The language is picked from the script and from the words each language’s word list knows, and the row shows the food’s name in that language above the USDA name. English text goes through the same English parser as before.

Each language has a hand-written word list for numbers and fractions, containers and spoons, and the most common foods, linked to the same USDA foods: «نص طبق مربى» (half a plate of jam) is USDA “Jams and preserves”, half a plate. Plates, bowls, small cups, handfuls and sandwiches keep the estimated-weight rules above and are marked estimated. Dishes that USDA does not describe, such as koshari, mulukhiyah, mandi, paella or biryani, are listed as not in the database with buttons for their main ingredients rather than given invented numbers. On phrasings written after the word lists were finished, 52 of 58 meals (90%) were read completely right; the rest need a row fixed by hand.

Everyday measures we understand

Few people weigh their food, so the text box also reads everyday amounts in every supported language: “a pinch of salt”, “a bit of rice”, “a heaped tablespoon of sugar”, “a cup and a bit of milk”, «ربع وشوية رز» (a quarter and a bit of rice), «معلقتين سكر», «لقمتين عيش», “un chorrito de aceite” or “ek chutki namak”. Each expression means either a share of the food’s usual USDA serving or an assumed volume or weight. The row shows the words you wrote with a ≈ note that states the assumption, is marked estimated, and you can change the amount or the grams.

Where a convention exists it is used: a pinch is 1/16 teaspoon (0.31 ml, about 0.4 g of salt), a dash ⅛ teaspoon, a metric drop 0.05 ml, and teaspoons, tablespoons and cups are the US measures USDA weighs its portions with. Where the meaning is fuzzy by nature (a bit, a bite, a splash, a knob of butter) there is no standard, so the table gives the middle value chosen. Arithmetic words work too: “and a bit” adds a quarter of the amount before it (at least 1/12), so a quarter and a bit is ⅓; “minus a bit” takes off 10%; “more than” and “less than” multiply by 1.2 and 0.8, “almost” by 0.9; “about” keeps the number and marks it estimated. A small, large or jumbo cup, bowl or plate counts as 0.75, 1.5 or 2 of the usual one, and a heaped spoon as 1.5 level spoons.

Everyday measures, the amounts the calculator assumes, and how each supported language writes them
MeasureAssumed amountHow it is written
a bit¼ serving: ≈ 40 g cooked rice, 4 g sugarEnglish: bit, little bit, little, tad · Arabic: شوية, شويا, شوي, شوايه · Spanish: un poco, poco, algo · French: un peu, peu · German: ein bisschen, bisschen, ein wenig, wenig · Portuguese: um pouco, pouco, um bocado · Italian: un po, po · Turkish: biraz, bir parça · Hindi/Urdu: thoda, thodi, thora, thori · Indonesian/Malay: sedikit, sikit, sesikit · Russian: немного
½ × a bit½ × (¼ serving: ≈ 40 g cooked rice, 4 g sugar)English: tiny bit, wee bit, teeny bit · Arabic: حاجة بسيطة, شوية صغيرين, شوية صغيرة, شوية بسيطة · Spanish: un poquito, poquito · French: un petit peu · German: ein klein wenig, ein kleines bisschen · Portuguese: um pouquinho, pouquinho · Italian: un pochino, pochino · Turkish: birazcık, azıcık, az biraz · Hindi/Urdu: zara sa, zara si, bas thoda, ज़रा सा · Indonesian/Malay: sedikit sekali, sedikit saja, secuil · Russian: немножко, чуть, чуть чуть, чуточку
¼ × a bit¼ × (¼ serving: ≈ 40 g cooked rice, 4 g sugar)Arabic: نتفة صغيرة · Spanish: un poquitín · French: un tout petit peu · Italian: un pochettino
2 × a bit2 × (¼ serving: ≈ 40 g cooked rice, 4 g sugar)Arabic: شويتين
a pinch0.31 ml ≈ 0.4 g saltEnglish: pinch, pinches · Arabic: رشة, قبصة, قرصة · Spanish: una pizca, pizca, pizcas, pellizco · French: pincée, pincées, une pincée · German: prise, prisen, eine prise · Portuguese: pitada, pitadas, uma pitada · Italian: pizzico, pizzichi, un pizzico · Turkish: tutam, bir tutam, çimdik, bir çimdik · Hindi/Urdu: chutki, chutki bhar, चुटकी, चुटकी भर · Indonesian/Malay: sejumput, jumput, secubit, cubit · Russian: щепотка, щепотку, щепотки, щепоть
«حبة»: one piece or a bitone piece of a countable food, else a bitArabic: حبة, حباية
«حبة»: one piece or a bitone piece of a countable food, else 6 × a bitArabic: حبة كبيرة
2 × a pinch2 × (0.31 ml ≈ 0.4 g salt)Arabic: رشتين, قبصتين
½ × a pinch½ × (0.31 ml ≈ 0.4 g salt)Arabic: رشة خفيفة · Spanish: pizquita
a dash0.62 ml ≈ 0.6 g hot sauceEnglish: dash, dashes · French: un soupçon, soupçon, un trait, trait · German: spritzer, ein spritzer, messerspitze, msp · Portuguese: pingo, um pingo · Italian: spruzzata · Indonesian/Malay: secipratan, sepercik
a smidgen0.15 mlEnglish: smidge, smidgen
a drop0.05 mlEnglish: drop, drops · Arabic: نقطة, نقط · Spanish: gota, gotas, gotita · French: goutte, gouttes · German: tropfen · Portuguese: gota, gotas · Italian: goccia, gocce · Turkish: damla · Hindi/Urdu: boond, boondein, बूंद, बूँद · Indonesian/Malay: setetes, tetes · Russian: капля, капли, капель
2 × a drop2 × (0.05 ml)Arabic: نقطتين
3 × a drop3 × (0.05 ml)Turkish: birkaç damla · Russian: несколько капель
a splash5 ml ≈ 5 g milkEnglish: splash, splashes · Arabic: دفقة · Spanish: un chorrito, chorrito · French: un nuage, nuage · German: schuss, ein schuss, einen schuss · Italian: goccio, un goccio
a drizzle5 ml ≈ 4.6 g olive oilEnglish: drizzle · Spanish: un hilo, un hilito · French: un filet, filet · Portuguese: um fio, fio · Italian: un filo, filo
½ × a drizzle½ × (5 ml ≈ 4.6 g olive oil)Portuguese: fiozinho
a sprinkle4.9 ml ≈ 2 g grated parmesanEnglish: sprinkle, sprinkling · Italian: spolverata, una spolverata
a dollop14.8 ml ≈ 15 g yogurtEnglish: dollop, dollops, blob · Spanish: pegote · German: klecks, ein klecks, einen klecks, klacks
a knob10 gEnglish: knob, knobs · Spanish: nuez de, una nuez de · French: noix de, une noix de · Italian: noce di, una noce di
½ × a knob½ × (10 g)French: noisette de, une noisette de
a bite15 gEnglish: bite, bites, mouthful, mouthfuls · Arabic: لقمة, لقم, قضمة · Spanish: bocado, bocados, mordisco · French: bouchée, bouchées · German: bissen, happen · Portuguese: garfada, garfadas, mordida, dentada · Italian: boccone, bocconi, morso · Turkish: lokma, bir lokma, ısırık, bir ısırık · Hindi/Urdu: niwala, nivala, kaur, निवाला · Indonesian/Malay: sesuap, suap, segigit, gigit · Russian: укус
2 × a bite2 × (15 g)Arabic: لقمتين, لقمة كبيرة, قضمتين
½ × a bite½ × (15 g)Arabic: لقمة صغيرة
a sip15 mlEnglish: sip, sips · Arabic: بق, شفطة, رشفة, رشفات · Spanish: sorbo, sorbos · French: gorgée, gorgées · German: schluck, schlucke, einen schluck · Portuguese: gole, goles · Italian: sorso, sorsi · Turkish: yudum, bir yudum · Hindi/Urdu: ghoont, ghut, घूंट, گھونٹ · Indonesian/Malay: seteguk, teguk · Russian: глоток, глотка, глотков
2 × a sip2 × (15 ml)Arabic: بقين, شفطتين, رشفتين
½ × a sip½ × (15 ml)Spanish: sorbito · German: schlückchen · Portuguese: golinho · Russian: глоточек
a gulp30 mlEnglish: gulp, gulps, swig · Arabic: جرعة, شربة · Spanish: trago, tragos · French: lampée · Portuguese: golada · Italian: sorsata
2 × a gulp2 × (30 ml)Arabic: جرعتين
handful1 oz = 28 g (1 cup of leafy greens)English: handful, handfuls · Arabic: كمشة, كف, ملو الإيد, ملو ايد · Spanish: puñado, un puñado, puñados · French: poignée, une poignée, poignées · German: handvoll, eine handvoll · Portuguese: punhado, um punhado, punhados · Italian: manciata, una manciata, manciate · Turkish: avuç dolusu, avuç, bir avuç · Hindi/Urdu: mutthi, मुट्ठी, مٹھی, mutthi bhar · Indonesian/Malay: genggam, segenggam · Russian: горсть, горсти, пригоршня, пригоршню
½ handful½ oz = 14 g (½ cup of leafy greens)English: small handful · Spanish: puñadito, un puñadito · French: une petite poignée · German: kleine handvoll · Portuguese: punhadinho · Italian: una piccola manciata · Russian: горстку, горсточка, горсточку
1½ tablespoon1½ tbsp = 22.19 mlEnglish: heaped tablespoon, heaped tablespoons, heaping tablespoon, heaping tablespoons · Turkish: bir kaşık dolusu
1½ teaspoon1½ tsp = 7.4 mlEnglish: heaped teaspoon, heaped teaspoons, heaping teaspoon, heaping teaspoons
1¼ tablespoon1¼ tbsp = 18.49 mlEnglish: rounded tablespoon
1¼ teaspoon1¼ tsp = 6.16 mlEnglish: rounded teaspoon
tablespoon1 tbsp = 14.79 mlEnglish: level tablespoon, level tbsp, spoonful, spoonfuls · Spanish: chorro, un chorro, cucharada sopera, cuchara sopera · French: cuillerée, cuillerées · Portuguese: colherada, colheradas · Italian: cucchiaiata · Indonesian/Malay: sesudu
teaspoon1 tsp = 4.93 mlEnglish: level teaspoon, level tsp · Arabic: معلقة قهوة, معلقة صغنونة · Russian: ложечка, ложечку
2 teaspoon2 tsp = 9.86 mlEnglish: dessert spoon, dessertspoon · Arabic: معلقة حلو · Spanish: cucharada de postre · French: cuillère à dessert · Turkish: tatlı kaşığı
1½ cup1½ cup = 355 mlEnglish: big glass, tall glass, big mug, big cup
1½ bowl1½ cup = 355 mlEnglish: big bowl
1½ plate1½ × one USDA servingEnglish: big plate
2 plate2 × one USDA servingEnglish: huge plate · Arabic: ماعونين
2 bowl2 cup = 473 mlEnglish: huge bowl
1½ fl oz1½ fl oz = 44 mlEnglish: shot glass, shot
½ plate½ × one USDA servingEnglish: side plate
¼ teaspoon¼ tsp = 1.23 mlArabic: طرف معلقة, طرف المعلقة, سن معلقة
2 handful2 oz = 57 g (2 cup of leafy greens)Arabic: كمشتين, كفين, حفنتين
45 ml45 mlArabic: فنجان عربي, فنجال عربي, فنجان قهوة عربي, فنجال قهوة عربي
plate1 × one USDA servingArabic: ماعون
bottle1 × USDA's bottle size for the drinkArabic: غرشة, قزازة, ازازة, قنينة
cup1 cup = 237 mlArabic: قلاص, غلاص, قلاس · Indonesian/Malay: secawan
piece1 pieceArabic: صباع, اصبع, صوابع, اصابع
½ cup½ cup = 118 mlSpanish: cucharón · French: louche · German: schöpfkelle, kelle · Portuguese: concha, conchas · Italian: mestolo · Hindi/Urdu: karchhi, करछी · Russian: половник, поварёшка
190 ml190 mlPortuguese: copo americano
40 ml40 mlItalian: bicchierino
¾ cup¾ cup = 177 mlTurkish: kepçe, bir kepçe
100 g100 gIndonesian/Malay: centong, secentong
200 ml200 mlRussian: гранёный стакан
heaped spoon (× 1½)1½ × the spoonArabic: مليانة, مليان, مقببة, عامرة · Spanish: colmada, colmadas, colmado · French: bombée, bombées, bien pleine · German: gehäuft, gehäufter, gehäufte, gehäuften · Portuguese: cheia, cheias, bem cheia · Italian: colmo, colma, colmi · Turkish: tepeleme · Hindi/Urdu: bhar ke, bhara hua, भर के, بھر کے · Indonesian/Malay: munjung, penuh · Russian: с горкой
level spoonthe spoon as it isArabic: سادة, مسطحة, مستوية · Spanish: rasa, rasas · French: rase, rases · German: gestrichen, gestrichener, gestrichene, gestrichenen · Portuguese: rasa, rasas · Italian: raso, rasa, rasi · Turkish: silme · Indonesian/Malay: peres, rata · Russian: без горки
jumbo× 2 on a cup, bowl or plate; USDA's size for a pieceArabic: جامبو
extra large× 1¾ on a cup, bowl or plate; USDA's size for a pieceArabic: كبير قوي, كبيرة قوي, كبير جداً
tiny× ½ on a cup, bowl or plate; USDA's size for a pieceArabic: صغنن, صغنونة, صغنون, صغنطوط
3 (a count)3 pieces or servingsEnglish: few, a few · Arabic: كذا, كذا حبة · Spanish: unos cuantos, unas cuantas
4 (a count)4 pieces or servingsEnglish: several
2½ (a count)2½ pieces or servingsEnglish: two or three · Arabic: اتنين تلاتة, اتنين تلات, ثنتين ثلاث · Spanish: dos o tres · French: deux ou trois · German: zwei drei, zwei oder drei · Portuguese: dois ou três · Italian: due o tre · Turkish: iki üç · Hindi/Urdu: do teen, दो तीन, دو تین · Indonesian/Malay: dua tiga · Russian: два три
3½ (a count)3½ pieces or servingsEnglish: three or four · Arabic: تلات أربع, تلاتة أربعة, ثلاث أربع · Spanish: tres o cuatro · French: trois ou quatre · German: drei vier · Portuguese: três ou quatro · Italian: tre o quattro · Turkish: üç dört · Hindi/Urdu: teen char, तीन चार · Indonesian/Malay: tiga empat · Russian: три четыре
a lot1.5 × the usual serving (or 1.5 pieces)English: lots, a lot, lots of, plenty of · Arabic: كتير, كثير, بزاف, واجد · Spanish: un montón, mucho, mucha, bastante · French: beaucoup, pas mal de · German: viel, viele, eine menge · Portuguese: muito, muita · Italian: tanto, tanta, parecchio, parecchia · Turkish: çok, bir sürü, bolca · Hindi/Urdu: bahut, बहुत, بہت · Indonesian/Malay: banyak · Russian: много
and a bit"and a bit" adds ¼ of the amount before it (at least 1/12, at most ½): ¼ and a bit ≈ ⅓.English: and a bit, and a little, plus a bit, a bit more than · Arabic: وشوية, و شوية, وشوي, و شوي · Spanish: y pico, y un poco, un poco más de · French: et quelques, et des poussières, un peu plus de · German: etwas mehr als · Portuguese: e pouco, e um pouco, um pouco mais de · Italian: abbondante, abbondanti, e un po · Turkish: biraz fazla, küsur · Hindi/Urdu: thoda zyada, थोड़ा ज़्यादा · Indonesian/Malay: lebih sedikit · Russian: с небольшим, с хвостиком, чуть больше
minus a bit"minus a bit" takes off 10% (at least 1/24): a cup minus a bit ≈ 0.9 cup.English: minus a bit, a bit less than, just under · Arabic: إلا شوية, إلا حبة, إلا شوي, أقل شوية من · Spanish: un poco menos de · French: un peu moins de · German: etwas weniger als, knapp · Portuguese: um pouco menos de · Italian: scarso, scarsa · Turkish: biraz az · Hindi/Urdu: thoda kam, थोड़ा कम · Russian: чуть меньше
more than"more than" = 1.2 × the amount.English: more than, over · Arabic: أكتر من, أكثر من · Spanish: más de · French: plus de · German: mehr als, über · Portuguese: mais de · Italian: più di · Turkish: den fazla, fazlası · Hindi/Urdu: se zyada, से ज़्यादा, से ज्यादा, سے زیادہ · Indonesian/Malay: lebih dari · Russian: больше, больше чем
less than"less than" = 0.8 × the amount.English: less than, under · Arabic: أقل من · Spanish: menos de · French: moins de · German: weniger als · Portuguese: menos de · Italian: meno di · Turkish: den az · Hindi/Urdu: se kam, से कम, سے کم · Indonesian/Malay: kurang dari · Russian: меньше
almost"almost" = 0.9 × the amount.English: almost, nearly · Arabic: قرب, تقريباً كامل · Spanish: casi · French: presque · German: fast · Portuguese: quase · Italian: quasi · Turkish: neredeyse · Indonesian/Malay: hampir · Russian: почти
about"about" keeps the amount and marks it estimated.English: about, around, roughly, approximately · Arabic: حوالي, حوالى, تقريباً, على الأقل · Spanish: aproximadamente, aprox, alrededor de, más o menos · French: environ, à peu près, autour de · German: etwa, ca, circa, ungefähr · Portuguese: mais ou menos, cerca, cerca de, aproximadamente · Italian: circa, più o meno, all'incirca · Turkish: yaklaşık, kadar, aşağı yukarı, civarı · Hindi/Urdu: lagbhag, लगभग, kareeb, takreeban · Indonesian/Malay: sekitar, kira kira, kurang lebih · Russian: около, примерно, где то, приблизительно

The word lists hold 780 everyday expressions across the eleven languages; the table shows up to four spellings per language. Grams depend on the food: a splash of milk is about 5 g but a splash of oil 4.6 g, because the calculator converts volumes with each food’s own USDA density.

Sources: Cooking weights and measures (dash, pinch, smidgen) (checked 2026-09-23); Drop (unit): the metric drop of 0.05 ml (checked 2026-09-23)

Calories in common foods and portions

Values from USDA SR28 (SR Legacy), using USDA’s measured portion weights, worked out when this page was built. Protein, carbohydrate, fat and fibre are in grams; “–” means USDA has no fibre analysis for that food.

Calories and macronutrients in common foods and portions (USDA SR28)
PortionGramsCalories (kcal)ProteinCarbsFatFibreUSDA food
1 large egg50726.30.44.80Egg, whole, raw (#01123)
2 large eggs10014312.60.79.50Egg, whole, raw (#01123)
1 fried egg46906.30.46.80Egg, fried (#01128)
1 cup cooked white rice1582054.344.50.40.6White rice, long-grain, cooked (#20045)
1 cup cooked brown rice2022485.551.723.2Brown rice, cooked (#20037)
1 cup cooked spaghetti1241967.238.31.22.2Pasta, cooked (#20121)
1 slice white bread29772.614.310.8White bread (#18069)
1 pita bread (6½ inch)601655.533.40.71.3Pita bread, white (#18041)
1 medium banana1181051.3270.43.1Banana, raw (#09040)
1 medium apple182950.525.10.34.4Apple, raw, with skin (#09003)
1 orange (2⅝ inch)131621.215.40.23.1Orange, raw (#09200)
1 cup orange juice2481121.725.80.50.5Orange juice, fresh (#09206)
1 cup whole milk2441497.711.77.90Milk, whole (3.25%) (#01077)
1 cup plain whole-milk yogurt2451498.511.480Plain yogurt, whole milk (#01116)
100 g chicken breast, roasted1001653103.60Chicken breast, skinless, roasted (#05064)
3 oz salmon, cooked8517518.8010.50Salmon, Atlantic farmed, cooked (#15237)
1 tbsp olive oil13.51190013.50Olive oil (#04053)
1 tbsp butter14.21020.1011.50Butter, salted (#01001)
1 tbsp peanut butter16963.63.68.20.8Peanut butter, smooth (#16098)
2 tbsp hummus30502.44.32.91.8Hummus, store-bought (#16158)
1 falafel patty (2¼ inch)17572.35.43–Falafel (#16138)
1 cup cooked lentils19823017.939.90.815.6Lentils, boiled (#16070)
1 oz almonds (about 23)28.416466.114.23.5Almonds, raw (#12061)
1 Medjool date24660.41801.6Dates, Medjool (#09421)
1 cup cooked oatmeal2341665.928.13.64Oatmeal (porridge), cooked with water (#08121)
1 medium baked potato1731614.336.60.23.8Potato, baked, with skin (#11674)
1 slice cheese pizza (14 inch)10728512.235.710.42.5Cheese pizza, 14 inch, regular crust (#21299)
1 croissant (medium)572314.726.1121.5Croissant, butter (#18239)
1 tbsp honey21640.117.300Honey (#19296)
1 tsp white sugar4.21604.200Sugar, white granulated (#19335)

What the photo mode can and cannot do

  • It recognises one main food per photo from a fixed list of about 260 common foods and dishes, including Middle-Eastern staples such as hummus, falafel, pita, tahini, fava beans and dates. Dishes outside the list get the nearest label, which may be wrong.
  • Mixed plates, sauces, drinks in opaque cups, unusual angles and poor light make guesses worse. The match score says how much better one label fits than the others; it is not the probability that the guess is right.
  • It cannot measure portions. A photo has no scale, and the same plate can hold 100 g or 400 g of rice, so you choose the portion from USDA’s servings or type the grams.
  • The photo stays on your device. The model runs in your browser; nothing is uploaded, stored or shared.
  • Not every dish has a USDA value. SR28 has hummus, falafel, pita, tahini, naan, chapati, bulgur and couscous, but not dishes such as biryani, shawarma or tabbouleh; describe their ingredients instead.

Sources and licences

Nutrition data: USDA National Nutrient Database for Standard Reference, Release 28 (SR28), SR28, September 2015, by the U.S. Department of Agriculture, Agricultural Research Service, Nutrient Data Laboratory; distributed in FoodData Central as FoodData Central “SR Legacy” (April 2018). Public domain (U.S. Government work, 17 U.S.C. 105); FoodData Central data are published under CC0 1.0. The page uses 8,257 foods (every SR28 food except baby foods and the American Indian/Alaska Native group), with values per 100 g and USDA’s portion weights copied unchanged.

Photo model: CLIP ViT-B/32 by OpenAI (MIT licence), image part only, stored with 8-bit weights and run on your device. OpenAI has not published its training data; its model card describes crawled image–caption pairs and says the model was built for research and should be tested for each use, which is why this tool only offers suggestions from a fixed food list and leaves the choice to you.

Sources: USDA FoodData Central (SR Legacy) (checked 2026-09-23); OpenAI CLIP (model and model card) (checked 2026-09-23)

Not medical or nutrition advice

This calculator gives estimates for everyday tracking. Real foods vary with variety, recipe, brand and cooking, and portions are easy to misjudge. If you manage diabetes, kidney disease, allergies, an eating disorder or another medical condition, follow the advice of your doctor or a registered dietitian and use the nutrition label of packaged foods.

How to use it

  1. Open Describe a meal and type what you ate, separating foods with commas, “and” or new lines. Amounts can be numbers, fractions or words (2, 1/2, ½, a, half, a couple), with units such as g, oz, cup, tbsp, slice, piece, can or large.
  2. Press Calculate calories. Every recognised food appears in the meal table; anything the tool does not recognise is listed with “did you mean” suggestions.
  3. Check each row. If the food is not quite right (fried instead of boiled, whole instead of skim), pick another one from the row’s list; change the amount, the serving or the grams if your portion was different.
  4. For a photo, open From a photo, choose a picture of one dish and press Recognise food. The first time, the model (about 104 MB) downloads once and stays in your browser. Tick the right food, set the portion, and add it to the meal.
  5. Read the total at the bottom of the table. For a daily target to compare it with, use the calorie calculator.

Frequently asked questions

How do I count the calories in a meal?

Type the meal in plain words, such as “2 eggs, a slice of toast with butter and a cup of orange juice”, and press Calculate calories. Each food gets its own row with calories, protein, carbs, fat and fibre, and the total is at the bottom. Fix any row that is not quite right.

How many calories are in 2 eggs?

Two large raw or boiled eggs (100 g) have about 143 kcal, 12.6 g of protein and 9.5 g of fat, according to USDA SR28. A fried egg has more because of the cooking fat: one large fried egg is about 90 kcal.

How many calories are in a cup of rice?

One cup of cooked long-grain white rice (158 g) has about 205 kcal and 44.5 g of carbohydrate; a cup of cooked brown rice (202 g) about 248 kcal and 3.2 g of fibre. Uncooked rice has roughly three times the calories per gram, so match the entry to how you measured it.

Can it count calories from a photo?

It can suggest what the food is. The photo mode runs a CLIP image model in your browser and ranks about 260 common foods and dishes; you pick the right one and set the portion. It cannot tell how much food is on the plate, so photo estimates are rough and you should check the portion yourself.

Can I type the meal in Arabic or another language?

Yes. Write it the way you would say it, for example «نص طبق فول ورغيفين عيش» in Egyptian Arabic, “dos huevos y una tostada” in Spanish or “2 roti aur ek katori dal” in Hindi. The calculator reads Arabic in any dialect and Arabizi, plus Spanish, French, German, Portuguese, Italian, Turkish, Hindi/Urdu, Indonesian/Malay and Russian, all on your device. There is also an Arabic version of this page.

How many grams are in a pinch, a handful or a spoonful?

By the conventions the calculator uses: a pinch is 1/16 teaspoon, about 0.4 g of salt; a dash is ⅛ teaspoon; a level teaspoon of sugar is 4.2 g and a level tablespoon 12.6 g (USDA), a heaped one about 1.5 times that; a handful is taken as 1 oz (28 g) of nuts or 1 cup of leafy greens; a knob of butter 10 g; a bite 15 g and a sip 15 ml. “A bit” is a quarter of the usual serving, for example about 40 g of cooked rice or 1 teaspoon of sugar. These are assumptions, marked with ≈ in the table; weigh the food when it matters.

Is my photo uploaded?

No. The recognition model runs on your device inside the browser. The photo is not uploaded, stored or shared; only the model files are downloaded, once, from this site.

Where do the calorie numbers come from?

From the USDA National Nutrient Database for Standard Reference, Release 28 (SR28), published by the U.S. Department of Agriculture and distributed in FoodData Central as SR Legacy. It is public domain. Values are per 100 g of the food as described, and the servings are USDA’s measured household portions.

How accurate is the total?

The per-100 g values are laboratory averages, so most of the error comes from portions and preparation. A “cup” of rice can be 20% more or less than USDA’s 158 g, and oil, butter, sauces and sugar in drinks add calories that are easy to forget. Weigh food when it matters and add cooking fat as its own item.

Why is a food missing or matched to the wrong thing?

The database has no brand-name packaged foods and few restaurant dishes, and a short description can match several foods. Pick the right food from the row’s list, try a simpler or more specific name (“brown rice, cooked”), or describe a dish by its ingredients. For packaged food, the label is the better source.