The glycemic index has a famous blind spot: it ignores how much you actually eat. Watermelon is the classic example. Gram for gram of carbohydrate, it lifts blood sugar fast — a high index. But a normal slice is mostly water, so the carbohydrate that reaches your bloodstream is tiny. Eat a slice and your blood sugar barely stirs.
That gap — between "how fast per gram" and "how much per portion" — is the entire reason glycemic load exists. Glycemic index (GI) ranks a carbohydrate food from 0 to 100 by how sharply it raises blood glucose, but it does so using a fixed 50-gram dose of digestible carbohydrate. Real servings are almost never 50 grams of pure carbs. Glycemic load (GL) folds the portion back in, and it turns out to be the number that actually matters.
Nutrication grades on glycemic load, not index. Here is what the difference means in practice, why portion changes everything, and how the app estimates GL for a packaged snack or a photographed meal.
What glycemic index measures — and what it misses
GI answers one narrow question: for a set amount of carbohydrate, how fast does this food push glucose into your blood? Pure glucose sits at the top of the scale at 100. A food around 70 raises blood sugar quickly; a food around 30 does it slowly and gently. That is genuinely useful information about carbohydrate quality.
The problem is the fixed dose. GI is measured on 50 grams of available carbohydrate, no matter what weight of food that takes. For watermelon, reaching 50 grams of carbs means eating far more than anyone puts on a plate. So a food can look alarming on the GI scale and be trivial in a real serving. GI describes the carbohydrate. It says nothing about the amount in front of you.
Glycemic load: index times the portion on your plate
Glycemic load closes the gap with simple arithmetic — the same formula Nutrication uses:
GL = (GI × grams of carbohydrate in the serving) ÷ 100
A high-GI food in a small-carb portion lands at a low GL. A moderate-GI food eaten by the bowlful lands high. The standard bands, which the app applies directly, are:
| Glycemic load per serving | What it means |
|---|---|
| 10 or under | Low — steady energy |
| 11 to 19 | Medium |
| 20 or more | High — likely to spike, then crash |
Notice how forgiving the low band is. A food can carry a fairly high index and still score as low-load if the serving simply doesn't contain many carbs — which is exactly why whole fruit, beans, and nuts do so well despite their sugars or starch.
The same foods, ranked by load
Here is the pattern in practice. The GI values below are the ones Nutrication estimates from a food's name and category; the carbohydrate amounts are typical for the serving shown, so the loads are illustrative rather than lab-exact.
| Food | Est. GI | Typical serving | Carbs | GL | Band |
|---|---|---|---|---|---|
| Breakfast cereal (cornflakes) | 80 | 40 g | ~34 g | ~27 | High |
| White rice, cooked | 73 | 150 g | ~42 g | ~31 | High |
| Cola | 70 | 330 ml can | ~35 g | ~25 | High |
| White bread | 75 | 1 slice (40 g) | ~20 g | ~15 | Medium |
| Banana | 55 | 1 medium | ~27 g | ~15 | Medium |
| Apple | 40 | 1 medium | ~22 g | ~9 | Low |
| Lentils, cooked | 35 | 3/4 cup | ~26 g | ~9 | Low |
| Peanuts | 20 | small handful (30 g) | ~5 g | ~1 | Low |
The banana and the slice of white bread land in the same band from opposite directions: a moderate index carried by a real portion of carbs versus a high index carried by a smaller one. Peanuts barely register because there is almost nothing there to convert. This is also why liquid calories punch above their weight — a can of cola delivers a full portion of fast carbs with no fiber, chewing, or bulk to slow it down.
Why portion is the whole game
If portion drives GL, then the serving size the app assumes has to be sensible. Nutrication learned this the hard way. Rating a dense dry food like muesli at a flat 100-gram "serving" produced a glycemic load around 60 — nonsense, because nobody eats 100 grams of muesli dry. So the engine uses category-typical servings instead: about 40 g for cereal and bread, 30 g for crackers, cookies, and chips, and 14 g for oils. Drinks get real volumes — 330 ml for a can, 240 ml for a glass — after an early version understated soda's load roughly threefold by treating a serving as 100 ml, a third of a can.
One more portion rule matters: fiber. When a food carries meaningful fiber relative to its carbs (Nutrication's threshold is a carb-to-fiber ratio of 6 or lower, with at least 5 g of carbs per 100 g on file), it earns a small bonus toward its GL score. That is the structural reason oats, beans, and whole grains behave more gently than their carb count alone suggests — the fiber blunts the spike. Our fiber guide covers why that slowdown is worth chasing.
Meals add up, one item at a time
A single GI number works for one packaged product. It falls apart for a plate of food. Score "chicken salad with crackers" as one thing and you would price all of its carbs at the cracker's index — even the chicken and greens, which have essentially none.
So when you photograph a meal, Nutrication switches to the textbook mixed-meal method: it estimates a GI for each item, computes each item's load from that item's own carbs, and sums the loads. Zero-carb items like chicken and olive oil contribute nothing. An unrecognized item with under 5 g of carbs is ignored; one with 5 g or more gets a moderate mixed-food estimate rather than being silently dropped. The meal is then scored against the same low/medium/high bands, and the app reports the carb-weighted average index across everything on the plate.
How Nutrication uses this
Glycemic load is one of six measures in the overall grade, worth up to 15 points. A low load (10 or under) scores the full 15 and earns a "Low glycemic load" highlight; a medium load scores 8; a high load (20 or more) scores 2 and raises a "High glycemic load" warning. The fiber bonus adds up to 3 points on top, capped at 15, and surfaces a "Whole-food carb profile (fiber-rich)" note.
Because Open Food Facts doesn't publish GI, the app estimates it from the food's name, category, and ingredient text using a curated keyword table, most-specific match first — so "brown rice cookies" is scored as cookies, its dominant carb source, not as brown rice. Foods with no real blood-sugar impact — meat, fish, eggs, oils, unsweetened drinks — are awarded the full 15 even when carb data is missing, because the category makes the answer certain. And when GL genuinely can't be determined, the app leaves the measure out and re-weights the rest rather than guessing. That honest-abstention approach runs through the whole engine; see how we grade for the full picture, and added vs. natural sugar for how the sugar side of the same food is handled.
What to actually do
- Judge carbs by load, not index. A high-GI food in a small portion is rarely the problem. A moderate-GI food eaten in bulk usually is.
- Anchor on portion. Watermelon, carrots, and whole fruit look scary on the GI scale and score low once you account for how much carbohydrate a real serving actually contains.
- Pair carbs with fiber, protein, or fat. Slowing digestion flattens the spike — the same logic behind the app's fiber bonus.
- Treat drinks as the sharpest source. A can of soda or juice delivers a full carb load with nothing to slow it down. This is the easiest high-GL habit to cut.
- Use the meal scan for plates, not just packages. Adding chicken or greens to a bowl of rice lowers the meal's overall load, and the per-item math will show it.
General dietary guidance, including the emphasis on fiber-rich whole carbohydrates, is summarized by bodies like the USDA. None of this is medical advice — if you manage diabetes or another blood-sugar condition, follow the plan you set with your doctor.