Raw kale. Spend 100 calories on it and you get 725.7mg of calcium back, the best return of the 188 foods we hold with usable USDA calcium and calorie figures. Raw collards land a hair behind at 725.0mg, raw arugula third at 640.0mg. All three come straight out of USDA FoodData Central — kale is FDC 168421, collards FDC 170406, arugula FDC 169387 — so look them up and you should get our arithmetic back.
The first dairy food appears seventh. Fat-free milk lands at 348.6mg of calcium per 100 calories (FDC 171270), behind four leafy vegetables and a block of tofu. If you have been told your whole life that milk is the calcium food, the per-calorie ranking does not agree.
And then there is the row that makes this list different from every other nutrient ranking we have run. The one food that finishes fifth on both the per-calorie list and the per-100g list is calcium-set tofu — and it is there because a manufacturer added the calcium. The USDA row is "Tofu, raw, firm, prepared with calcium sulfate" (FDC 172475). The coagulant is in the name of the food. We will come back to that, because it is the most useful thing on this page.
The 12 highest-calcium foods per 100 calories
Ranked across all 188 foods we hold with usable USDA calcium and calorie values. Column four is the ranking itself. Column five is the one that decides whether the ranking means anything — the weight of food sitting behind each of those 100 calories.
| Food | Calcium /100g | Calories /100g | Calcium /100 kcal | Grams per 100 kcal |
|---|---|---|---|---|
| Kale, raw | 254mg | 35 | 725.7mg | 286g |
| Collards, raw | 232mg | 32 | 725.0mg | 313g |
| Arugula, raw | 160mg | 25 | 640.0mg | 400g |
| Bok choy, raw | 61.9mg | 13 | 476.2mg | 769g |
| Tofu, firm, calcium-set | 683mg | 144 | 474.3mg | 69g |
| Spinach, raw | 99mg | 23 | 430.4mg | 435g |
| Milk, fat-free (skim) | 129mg | 37 | 348.6mg | 270g |
| Wakame seaweed, raw | 150mg | 45 | 333.3mg | 222g |
| Celery, raw | 46.3mg | 14 | 330.7mg | 714g |
| Kefir, lowfat, plain | 130mg | 43 | 302.3mg | 233g |
| Swiss chard, raw | 51mg | 19 | 268.4mg | 526g |
| Okra, raw | 82mg | 33 | 248.5mg | 303g |
The food that wins on both bases won because of an ingredient
Rankings like this one usually disagree with the per-100g version, and this one does: exactly one food appears in both top twelves. It is calcium-set tofu, fifth on each. Nothing else manages it — the per-100g leaders are seeds and hard cheeses, the per-calorie leaders are leaves.
So the obvious question is what tofu is doing that kale and parmesan cannot. The answer is in the USDA row's own name: "Tofu, raw, firm, prepared with calcium sulfate" carries 683mg of calcium per 100g (FDC 172475), and the calcium sulfate is the coagulant used to set it. It is a processing agent. Tofu set with magnesium chloride instead — nigari, the traditional Japanese coagulant — is a different food nutritionally, and it is not the row in this dataset. Our figure describes the calcium-set kind and nothing else.
This is worth stating plainly because it is the second time in two days our own data has produced a mineral headline that turned out to be manufacturing rather than biology. The USDA row for whey protein powder reports iron at 141 times Greek yogurt's, almost certainly because someone fortified it. The rule we now apply to our own tables: when a single food dominates a mineral ranking on both bases at once, check the label before you check the biology. Whole foods rarely win both ways. Formulated ones often do, because the nutrient was put there on purpose.
None of which makes calcium-set tofu a worse choice. 69g of it buys you 100 calories and 474mg of calcium, and it is a food people actually eat in that quantity. It just means the number is a fact about a recipe, not a fact about soybeans. If you buy tofu, the coagulant is on the ingredients list, and the two kinds are not interchangeable for this purpose.
Why the fifth column decides this one
Six of the top twelve are leaves or stems, which are water by weight before they are anything else. Reaching 100 calories therefore takes a bowl nobody has ever served: 769g of bok choy, 714g of celery, 526g of swiss chard, 435g of spinach. Kale is the mildest offender at 286g, and that is still an enormous amount of kale. The calcium-per-calorie figure is arithmetically sound and, on its own, describes a plate no one has ever sat down to.
Now look at the same table from the other end. Swiss cheese gives 226.5mg of calcium per 100 calories in 25g of cheese; parmesan gives 203.1mg in 24g; sardines with bone give 183.7mg in 48g; calcium-set tofu gives 474.3mg in 69g. Those rank 13th, 14th, 19th and 5th per calorie — but they are the rows where the portion and the number are both real at the same time.
This is where calcium behaves differently from the other minerals we have ranked. The iron-per-calorie list is won outright by leaves, and the practical alternatives sit well down it. Calcium has a genuine dense option near the top and seven of the top twenty per-calorie foods are dairy — fat-free milk 7th, kefir 10th, swiss cheese 13th, parmesan 14th, whole milk yogurt 15th, feta 17th, buttermilk 18th. Dairy loses the headline and wins the practical question, which is not the same as the myth being right.
The per-100g ranking is a different list almost entirely
Nearly every calcium list online sorts by milligrams per 100g, and that single choice rewrites the leaderboard. Roasted sesame seeds top that version at 989mg per 100g (FDC 170151) and drop to 20th per calorie at 175.0mg, since 565 calories ride along with every 100g of seed. Swiss cheese is 2nd per 100g and 13th per calorie. Cheddar is 4th and 21st. Dried chia seeds are 6th and 29th.
The leaves run the other way, and hard. Bok choy is 56th per 100g and 4th per calorie. Celery is 66th and 9th. Swiss chard is 62nd and 11th. Concentration, cost and feasibility are three separate questions, and each column answers exactly one: milligrams per 100g says how tightly packed the food is, milligrams per 100 calories says what the calcium costs you, and grams per 100 calories says whether the portion is one you would ever face. A ranking means nothing until you have all three, and most published lists hand you one.
Sesame seeds are the interesting exception in the other direction: 20th per calorie sounds mediocre until you notice that 100 calories of them is 18g — about two tablespoons. It is the rare food that is dense enough for the per-100g list and small enough for the portion column, and it loses the per-calorie ranking purely because it is fatty.
What this dataset cannot tell you
Three honest limits, because a ranking without them is a sales pitch.
The bottom two rows of the leaf group rest on very small calorie numbers. Bok choy is stored at 13 calories per 100g and celery at 14. At that scale a one- or two-calorie difference in the source row moves the per-100-calorie figure by 10–15%, and our own Atwater cross-check on those two rows disagrees with the stored calorie value by more than it does on any other food in the table. Treat 476.2mg and 330.7mg as "very high, imprecise" rather than as exact. Kale, collards, tofu, milk and the cheeses all cross-check within a few percent.
Absorption is not in this data, and for calcium it genuinely matters. Spinach, chard and other high-oxalate leaves bind a large share of their own calcium into a form the body takes up poorly, while the calcium in milk, kale and low-oxalate greens is absorbed far better. USDA FoodData Central reports what is in the food, not what crosses the gut wall. Spinach at 430.4mg per 100 calories is a real number that overstates what spinach does for you, and this dataset has no column that would tell you so. That is a limit of the ranking, not a footnote to it.
Cup, bunch and slice weights are not in this dataset. Every figure here is per 100g or per 100 calories because that is what the USDA rows contain. We are not going to invent a "cup of chopped kale" weight to make 286g feel smaller. One food was dropped entirely — garlic, which has no usable calcium value in our data — so the ranking covers 188 of our 189 foods.
So what should you actually eat?
If you want the per-calorie winner, it is raw kale at 725.7mg per 100 calories, and it beats spinach by 69% on this measure while also being the lower-oxalate of the two. Collards do nearly the same job at 725.0mg.
If you want the number and the portion to both be true, it is calcium-set tofu at 474.3mg per 100 calories in 69g, fat-free milk at 348.6mg in 270g, or a hard cheese at roughly 200mg in 25g. Those are the rows worth building a week around.
The catch is that none of this is decided by one meal. Calcium is a running total, and a running total is exactly the thing people stop tracking after four days because the app asks for a food, a portion, a unit and a confirmation every single time. Sunn is a WhatsApp thread: you type "big bowl of kale and a block of tofu" and the totals update. No app, no lookup, no fifth column to work out yourself.
Written by Espen Opdahl
Founder of Sunn. Building AI-powered nutrition coaching to make healthy eating simple. Nutrition data sourced from the USDA FoodData Central database.
Medical disclaimer: This content is for informational purposes only and is not a substitute for professional medical advice, diagnosis, or treatment. Always consult a qualified healthcare provider before making changes to your diet or exercise routine.