TempoLife › Features › Grocery list with nutrition totals
Grocery list with nutrition totals
Build a shopping list from 400 everyday foods and watch the calories, protein, carbohydrate and fat for the whole basket add up. The list stays in your browser; type prices and it works out cost per gram of protein.
The builder runs in your browser. With JavaScript switched off the buttons do nothing — the worked basket and the reference table below are computed on the server and are the useful part of this page either way.
A worked basket
This is a plain week of shopping for one adult who cooks, priced at nothing because prices are yours to fill in. Every figure beside it is computed from the same database the builder uses, so it doubles as a check that the arithmetic above is doing what it claims.
| Item | Shelf | Grams | kcal | Protein g | Carbs g | Fat g |
|---|---|---|---|---|---|---|
| Chicken breast | Meat & poultry | 1 000 | 1 650 | 310 | 0 | 36 |
| Egg (hard-boiled) | Eggs | 600 | 930 | 76 | 7 | 64 |
| Greek yogurt | Dairy | 1 000 | 590 | 102 | 36 | 4 |
| Rolled oats | Grains & pasta | 1 000 | 3 890 | 169 | 663 | 69 |
| White rice | Grains & pasta | 1 000 | 1 300 | 27 | 282 | 3 |
| Lentils | Legumes | 500 | 570 | 45 | 98 | 2 |
| Black beans | Legumes | 400 | 528 | 36 | 95 | 2 |
| Broccoli | Vegetables | 500 | 170 | 14 | 33 | 2 |
| Carrot | Vegetables | 500 | 205 | 5 | 48 | 1 |
| Onion | Vegetables | 500 | 200 | 6 | 47 | 1 |
| Tomato | Vegetables | 600 | 108 | 5 | 23 | 1 |
| Banana | Fruit | 1 200 | 1 068 | 13 | 274 | 4 |
| Apple | Fruit | 1 000 | 520 | 3 | 138 | 2 |
| Whole milk | Dairy | 2 000 | 1 220 | 64 | 96 | 66 |
| Cheddar cheese | Dairy | 200 | 806 | 46 | 7 | 67 |
| Olive oil | Fats & oils | 500 | 4 420 | 0 | 0 | 500 |
| Rye bread | Bread | 700 | 1 813 | 60 | 338 | 23 |
| Peanut butter | Legumes | 350 | 2 093 | 78 | 78 | 180 |
| Whole basket | 13 550 | 22 081 | 1 057 | 2 261 | 1 026 |
That basket is 22 081 kcal and 1 057 g of protein across 13.6 kg of food. Spread over 7 days that is about 3 154 kcal and 151 g of protein a day, before anything is wasted, burnt or eaten out. It carries 340 g of fibre and 28.8 g of salt from the foods themselves — the salt you cook with is not in that figure and is usually the larger part.
By energy the basket splits roughly 19% protein, 40% carbohydrate and 41% fat using the Atwater factors of 4, 4 and 9 kcal per gram. That is the shape of what you brought home, which is not quite the shape of what you eat — waste, sharing and meals out all bend it.
Cost per gram of protein
The one number this page will not make up is money. Prices move by country, shop, brand and week, so there is no honest way to print one here. Type what you actually paid into the price box and the builder divides it by the protein in that item, giving a cost per gram of protein you can compare across the basket. Leave the box empty and the column stays empty; nothing is estimated in its place.
The comparison is usually the interesting part rather than the absolute figure. Eggs, milk, dried pulses, oats and whole chickens tend to sit at one end of that ranking, and single-serve packaged protein at the other, but which is which where you shop is a question your own receipt answers and a website cannot.
Reference: what a shelf costs you in calories
Per 100 g for a cross-section of the picker, one line per category, so the page is useful even with scripting off.
| Shelf | Food | kcal/100 g | Protein | Carbs | Fat | kcal per g protein |
|---|---|---|---|---|---|---|
| Fruit | Pear | 57 | 0.4 | 15.2 | 0.1 | 143 |
| Fruit | Kiwi | 61 | 1.1 | 14.7 | 0.5 | 55 |
| Fruit | Lemon | 29 | 1.1 | 9.3 | 0.3 | 26 |
| Nuts & seeds | Coconut | 354 | 3.3 | 15.2 | 33.5 | 107 |
| Eggs | Egg (hard-boiled) | 155 | 12.6 | 1.1 | 10.6 | 12 |
| Eggs | Egg white | 52 | 10.9 | 0.7 | 0.2 | 5 |
| Eggs | Scrambled egg | 149 | 10.0 | 1.6 | 11.0 | 15 |
| Meat & poultry | Turkey | 159 | 29.1 | 0.0 | 3.8 | 5 |
| Meat & poultry | Ground turkey | 203 | 27.4 | 0.0 | 10.4 | 7 |
| Meat & poultry | Ham | 157 | 25.1 | 0.0 | 5.5 | 6 |
| Fish & seafood | Salmon | 182 | 25.4 | 0.0 | 8.1 | 7 |
| Fish & seafood | Tuna | 184 | 29.9 | 0.0 | 6.3 | 6 |
| Fish & seafood | Shrimp | 99 | 24.0 | 0.2 | 0.3 | 4 |
| Bread | Rye bread | 259 | 8.5 | 48.3 | 3.3 | 30 |
| Bread | Bagel | 250 | 10.2 | 48.9 | 1.5 | 25 |
| Bread | Flour tortilla | 306 | 8.2 | 49.4 | 8.0 | 37 |
| Grains & pasta | Couscous | 112 | 3.8 | 23.2 | 0.2 | 29 |
| Grains & pasta | Barley | 123 | 2.3 | 28.2 | 0.4 | 53 |
| Grains & pasta | Whole-wheat pasta | 149 | 6.0 | 30.1 | 1.7 | 25 |
| Breakfast | Oatmeal | 71 | 2.5 | 12.0 | 1.5 | 28 |
| Potatoes | Sweet potato | 90 | 2.0 | 20.7 | 0.2 | 45 |
| Potatoes | Potato (boiled) | 87 | 1.9 | 20.1 | 0.1 | 46 |
| Vegetables | Kale | 35 | 2.9 | 4.4 | 1.5 | 12 |
| Vegetables | Cabbage | 25 | 1.3 | 5.8 | 0.1 | 19 |
| Vegetables | Cauliflower | 25 | 1.9 | 5.0 | 0.3 | 13 |
| Dairy | Skim milk | 34 | 3.4 | 5.0 | 0.1 | 10 |
| Dairy | 2% milk | 50 | 3.3 | 4.8 | 2.0 | 15 |
| Dairy | Cottage cheese | 81 | 10.5 | 4.8 | 2.3 | 8 |
| Sweets | Vanilla ice cream | 207 | 3.5 | 23.6 | 11.0 | 59 |
| Fats & oils | Coconut oil | 892 | 0.0 | 0.0 | 99.1 | — |
| Fats & oils | Canola oil | 884 | 0.0 | 0.0 | 100.0 | — |
| Nuts & seeds | Pecans | 691 | 9.2 | 13.9 | 72.0 | 75 |
| Nuts & seeds | Pistachios | 560 | 20.2 | 27.2 | 45.3 | 28 |
| Legumes | Tempeh | 192 | 20.3 | 7.6 | 10.8 | 9 |
| Legumes | Soybeans | 172 | 18.2 | 8.4 | 9.0 | 9 |
| Legumes | Soy milk | 54 | 3.3 | 6.3 | 1.8 | 16 |
| Fats & oils | Olive oil | 884 | 0.0 | 0.0 | 100.0 | — |
| Drinks | Black tea | 1 | 0.0 | 0.3 | 0.0 | — |
| Drinks | Coffee | 1 | 0.1 | 0.0 | 0.0 | 10 |
| Drinks | Red wine | 85 | 0.1 | 2.6 | 0.0 | 850 |
| Sweets | Dark chocolate | 546 | 4.9 | 61.2 | 31.3 | 111 |
| Sweets | Honey | 304 | 0.3 | 82.4 | 0.0 | 1 013 |
| Potatoes | Hash browns | 226 | 2.4 | 27.7 | 12.0 | 94 |
| Breakfast | Açaí bowl | 145 | 3.0 | 23.0 | 5.0 | 48 |
| Breakfast | Banana pancake | 235 | 6.0 | 36.0 | 8.0 | 39 |
How the totals are worked out
Each line is a food from the database and an amount in grams. The nutrients are the per-100 g values scaled by that amount, and the basket total is their sum — no rounding until the moment a number is printed, and no adjustment for cooking, draining or waste. Millilitres are treated as grams for water-like liquids, which is close for milk and juice and wrong for oil, so weigh oil if the fat column matters to you.
Nothing about a basket is a prediction of what you will eat. It is what you bought, which is the only number a shopping list can honestly produce. It is still worth having: the gap between what comes into the house over a week and what you think you eat is usually the most informative figure on this page.
These are database averages for general information, not dietary or medical advice, and nothing here is a diagnosis. Energy and protein needs vary with body size, activity, age, pregnancy and health conditions. For a target that applies to you, speak to a clinician or a registered dietitian.
Source: USDA FoodData Central SR Legacy family, baked into this site as lib/nutrition_index.php · checked 2026-09-02
Frequently asked questions
Where is my list stored?
In your own browser, in localStorage. It is never sent to this site, so it is private to this device and this browser, and clearing your site data clears it.
Why is the cost column empty?
Because nobody here knows what you pay. Prices differ by country, shop and week, and inventing them would make every figure on the page fiction. Type a price and the cost per gram of protein appears; leave it and the column stays blank.
Are these cooked or raw weights?
They are the weights you buy, matched to the database entry for that food. Rice, pasta and pulses are dry unless the entry says otherwise, which is how they are sold and how the totals below are computed.
Can I print the list?
Yes — the print button strips the site furniture and leaves the list and its totals. The copy button puts a plain-text version on your clipboard for a notes app or a message.
From the list to the log
TempoLife turns the shop into the week: log what you actually cooked, and the app keeps the running totals without a spreadsheet.