
Making plant milk at home without a machine
One hundred grams of almonds contain 270 mg of calcium and 0.2 micrograms of iodine. Blend those 100 g into a litre of water and your drink will never exceed those two numbers. A litre of cow’s milk delivers 1200 mg and 100 micrograms. For iodine, that is a factor of 500.
This is not an argument against homemade plant milk. It is the first thing to understand before making any, because it settles everything else: what the drink can deliver, what it never will, and what you need to find elsewhere in the day.
Homemade plant milk is a good drink. It is not a nutritional substitute for milk, and most recipes online skip that part.
The extraction ceiling governs everything
Making plant milk means moving part of a seed’s contents into water, then throwing the rest away. You cannot end up with anything that was not in the seed to begin with. Obvious, perhaps, but the consequences are concrete and kitchens routinely ignore them.
The table below gives the theoretical ceiling per litre for six common bases, calculated from the Swiss Food Composition Database maintained by the Federal Food Safety and Veterinary Office, using values for the dry raw material. This really is a ceiling: what the seed holds if absolutely everything crossed into the liquid.
| Base (per litre) | Amount | Energy | Protein | Calcium | Iron | Iodine | Fibre |
|---|---|---|---|---|---|---|---|
| Almond | 100 g | 624 kcal | 25.6 g | 270 mg | 3.3 mg | 0.2 µg | 10.6 g |
| Rolled oats | 80 g | 305 kcal | 10.8 g | 43 mg | 2.8 mg | 0.4 µg | 8.4 g |
| Dry soya beans | 80 g | 317 kcal | 30.6 g | 160 mg | 5.3 mg | 5.0 µg | 17.6 g |
| Hazelnut | 100 g | 661 kcal | 16.4 g | 160 mg | 3.6 mg | 6.5 µg | 9.7 g |
| Cashew | 100 g | 619 kcal | 21.5 g | 40 mg | 5.9 mg | 5.0 µg | 3.6 g |
| Dried coconut | 100 g | 653 kcal | 7.6 g | 11 mg | 2.8 mg | 6.0 µg | 24.7 g |
Nobody reaches these figures. Part of the material stays in the pulp, and that share varies enormously by nutrient. Fibre stays almost entirely in the residue, by definition: it is what the filter catches. So does much of the fat, which is why the 624 kcal per litre ceiling for almond sits far above reality.
A 2026 review in Molecules on almond protein extraction explains why recovery is hard: the proteins sit alongside lipid bodies in the cotyledons of a hard, dense kernel. Industrial aqueous extraction achieves moderate to high yields with equipment no kitchen owns. A blender and a cloth do worse.
So the ceiling is mostly useful in one direction: it tells you what is impossible. You cannot extract iodine from an almond that does not contain any. And there the margin is zero.
What a shop-bought drink actually contains, and what milk does
The other half of the comparison deserves numbers rather than impressions. Again from the Swiss database, per litre:
| Product (per litre) | Protein | Calcium | Iodine | B12 | B2 | Vitamin D |
|---|---|---|---|---|---|---|
| Milk, Swiss average | 32 g | 1200 mg | 100 µg | 2.2 µg | 1.6 mg | 1.0 µg |
| Soya drink, plain | 36 g | 120 mg | 13 µg | 0 | 0.1 mg | 0 |
| Soya drink, fortified | 36 g | 1200 mg | 13 µg | 2.8 µg | 1.6 mg | 6.0 µg |
| Almond drink, plain | 11 g | 120 mg | 4 µg | 0 | 0.2 mg | 0 |
| Almond drink, fortified | 11 g | 1100 mg | 4 µg | 3.6 µg | 2.0 mg | 7.0 µg |
| Oat drink, plain | 5 g | 10 mg | 4 µg | 0 | 0.1 mg | 0 |
| Oat drink, fortified | 5 g | 1100 mg | 83 µg | 2.5 µg | 1.4 mg | 9.0 µg |
| Coconut drink, plain | 4 g | 27 mg | 6 µg | 0 | 0 | 0 |
| Rice drink, plain | 2 g | 50 mg | 0 | 0 | 0 | 0 |
Three things stand out, and none of them points where you would expect.
First, an unfortified plant drink is nutritionally thin. Shop-bought oat drink delivers 10 mg of calcium per litre, 120 times less than milk. A 2026 narrative review in The Journal of Nutrition reaches the same conclusion across nine diet modelling studies: dairy alternatives made from cereals, coconut and nuts have significantly lower protein than their animal counterparts, with soya the only comparable one.
Second, fortification changes the picture entirely, and beats milk on several counts. Fortified almond drink exceeds milk for B12 and vitamin D. That is not an accident, it is a formulation decision.
Third, the word “fortified” does not say with what. Fortified oat drink carries 83 micrograms of iodine per litre; fortified almond drink carries 4. Both wear the same word on the carton. If iodine matters to you, read the nutrition panel rather than the front-of-pack claim. A study of 68 drinks on the Ecuadorian market, published in the Journal of the Science of Food and Agriculture, found nutrition claims on 91% of products, with concentrations that frequently did not match those in cow’s milk.
Homemade sits squarely in the first category: unfortified, by construction.
The calculation every recipe leaves out
Swiss dietary recommendations set 2 to 3 portions of dairy a day, one portion being 200 ml of milk. Take two portions, 400 ml, and swap them for homemade almond milk.
What you give up each day, using the extraction ceiling rather than the real yield, so being generous to the homemade version:
- calcium: 480 mg less than the 400 ml of milk, with at best 108 mg retained
- iodine: 40 µg become 0.08 µg
- vitamin B12: 0.88 µg become zero, since plants contain none
None of this is a reason to stop. It is a reason to know where to find the rest. Calcium exists in plenty of plant foods, and the question deserves its own treatment. B12 requires supplements or fortified foods on a vegetarian or vegan diet, with no exceptions. Iodine, in Switzerland, comes mainly from iodised salt and dairy.
A German modelling study published in 2025 in the Journal of Health, Population and Nutrition put numbers on exactly this scenario in young children eating a balanced diet: replacing milk with unfortified plant drinks, roughly 80% of what the market sells, cut daily calcium, B2, B12 and iodine intake to around half. With fortified products, only iodine remained short.
The German DONALD cohort, analysed in 2026 across 7676 three-day weighed dietary records from 1072 participants aged 3 to 18, adds useful precision: calcium fell significantly below dietary reference intakes at every substitution level, B2 from 50% replacement onwards, B12 from 75%. Protein stayed above the references regardless.
The method, weighed
Here is the base procedure for every seed except soya, which gets its own section.
- Weigh 100 g of nuts or 80 g of rolled oats per litre. Weigh rather than measure by volume: the gap between a packed cup and a loose one easily exceeds 30%, and it is the main reason results come out inconsistent.
- Soak nuts for 8 to 12 hours in three times their volume of cold water, in the fridge during summer. Rolled oats need only 10 to 15 minutes, and over-soaking turns them slimy.
- Discard the soaking water and rinse. It holds some of the soluble compounds behind the bitterness, along with some of the minerals.
- Blend for 60 to 90 seconds with a litre of cold water. For oats, stop at 30 seconds: starch released by long blending gives a gelatinous texture that never goes away.
- Strain through a nut milk bag or a tight cloth, pressing firmly. This step decides your yield.
- Re-blend the pulp with 200 ml of water and strain a second time. That second pass recovers a meaningful amount of material most recipes leave behind.
- Salt very lightly, a pinch per litre. At that dose salt does not taste salty, it makes the seed’s own aromas readable.
- Chill quickly and bottle in a clean, sealed container in the fridge.
The leftover pulp is not waste. With almond it concentrates much of the fibre and some protein, and earns its place in biscuit dough, vegetable patties or porridge. With soya it is okara, an ingredient in its own right in Japanese cooking.
Soya is the one case where cooking is not optional
Raw soya beans contain trypsin inhibitors, chiefly the Kunitz inhibitor and the Bowman-Birk inhibitor. A 2025 review in Foods describes their effect: they impair soy protein digestion and pancreatic health, and their inactivation is described as a critical unit operation of the process, not an optional improvement.
In practice, for homemade soya milk:
- soak the beans at least 8 hours, then rinse
- boil them before blending, then hold the strained liquid at a boil for at least 10 minutes
- never taste the raw mixture
Soaking alone does not do it. These are proteins, and what denatures them is heat.
The smell that comes off during this cooking is normal, and the foam that rises should be skimmed. Properly cooked homemade soya milk is then the best base for making plant yogurt, because its protein content, ceiling 30.6 g per litre from 80 g of beans, comes close to cow’s milk.
Soaking does less than its reputation suggests
Soaking gets described everywhere as the step that “removes phytic acid”. That overstates it.
A 2026 review in the Journal of Food Science on legume processing sets out the orders of magnitude. Soaking raises soluble dietary fibre by as much as 33%, but some minerals and phenolic compounds leach into the water and leave with it. Thermal treatments neutralise heat-sensitive antinutritional factors effectively while cutting antioxidant capacity by 50 to 95% depending on the case. Fermentation reduces phytates, tannins and saponins by more than 60%.
A 2026 scoping review in Foods on legume fermentation goes further: microbial organic acid production and fungal hyphal penetration drive a 90 to 100% degradation of phytates and condensed tannins, doubling the bioaccessibility of iron, zinc and calcium.
Soaking, then, improves texture and blending, which is reason enough to do it. But if your goal is to make minerals more available, the work is done by sprouting and fermentation, not by a few hours in a bowl of water. Our page on soaking and sprouting legumes covers the ground.
Storage: three to four days, and why that is short
Homemade plant milk is not pasteurised. It is also low in acidity, rich in nutrients and kept liquid, which makes it a serviceable growth medium.
A 2026 study in the Journal of Food Science tracked Bacillus cereus, Escherichia coli and Salmonella Typhimurium in commercial plant drinks over 12 hours at 25 degrees. E. coli and Salmonella populations rose significantly more at 37 than at 25 degrees, and growth also depended on substrate composition, particularly protein, fibre, fat and pH.
Cold slows this down considerably, but does not stop everything. Work published in Food Microbiology in 2026 on psychrotolerant strains of the Bacillus cereus group shows those strains expressing cytotoxic virulence factors at 10 degrees in a dairy food model, at a low but measurable level. Thermal treatments at 65, 75 and 100 degrees significantly reduced that cytotoxicity without abolishing it.
In practice, three rules cover it:
- refrigerate immediately after making, without letting it cool on the worktop
- use within three to four days, the usual window for an unpasteurised product kept cold
- throw it out at the first doubt, without tasting, if it smells sour, thickens oddly or bubbles
The WHO five keys to safer food apply here as anywhere: clean equipment, separating raw from ready-to-eat, thorough cooking, safe temperatures, and safe water and raw materials.
One word on a common reflex: homemade is not automatically cleaner than industrial. A 2025 study in Foods measured heterocyclic aromatic amines in plant drinks for the first time, commercial and homemade, from almond, soya, cashew and peanut. Concentrations ranged from 0.09 to 13.66 µg/L, higher after thermal treatment, especially with added sugar and higher protein content. The estimated cumulative cancer risk stayed below the threshold of concern, which is reassuring, but the measurement exists and it does not spare homemade on principle.
Children, and the special case of rice
This is where guesswork costs the most, so it deserves to be plain.
The NHS advises against giving rice drinks to children under 5 because of arsenic levels, and says unsweetened calcium-fortified alternatives such as soya, oat or almond drinks can be given from age 1 as part of a healthy balanced diet. Before 1, none of these drinks replaces breast milk or infant formula.
A 2026 review in Deutsches Ärzteblatt International gathered the available growth data. Comparative cross-sectional and cohort studies show that even partly replacing cow’s milk with plant drinks is associated with lower linear growth and body mass index: per daily cup in five-year-olds, a height-for-age z-score of -0.04 and a BMI-for-age z-score of -0.06, corresponding to roughly 0.2 cm and 0.1 kg. The authors also note case reports of severe malnutrition from exclusive or predominant consumption, mainly in the first two years, and the absence of any randomised trial comparing the two.
The per-cup effects are small. But they all point one way, and unfortified homemade milk sits furthest from the products tested in that work. For a child, the fortified shop-bought drink is the safer choice.
Picking a base for what you want from it
Soya, if you want protein. Its ceiling of 30.6 g per litre from 80 g of beans is the only one that approaches milk. It is also the most demanding to prepare, mandatory cooking included.
Oats, if you want price and availability. A litre costs you 80 g of flakes, and the detailed cost calculation holds a few surprises. In exchange, the calcium ceiling is 43 mg per litre, and the absence of enzyme treatment gives a drink less sweet and thicker than the commercial version.
Almond, if you want flavour and versatility. It is also the only base in the table with meaningful riboflavin, 0.94 mg at the ceiling per 100 g, and the highest starting calcium.
Hazelnut, for hot drinks and desserts. Pronounced flavour, decent yield, high price.
Cashew, if you would rather not strain. The soft flesh blends fine enough to stay suspended, giving a thick drink with no straining step and all the fibre retained.
Coconut, with a numerical caveat. One hundred grams of dried coconut contain 53.3 g of saturated fat, more than double a litre of whole milk. That base belongs in cooking, curries and desserts. As a daily drink it has a weaker case.
Rice, to be avoided for young children, and thin on everything else: 2 g of protein and 50 mg of calcium per litre in the commercial version.
Five common mistakes
Blending oats too long. The released starch gelatinises and the texture turns stringy when cold. Thirty seconds is enough.
Boiling homemade oat milk. Same mechanism: it thickens and goes lumpy. Reheat gently, without letting it boil.
Counting on homemade plant milk for calcium. An almond base tops out at 270 mg per litre, an oat base at 43 mg, against 1200 mg for milk and for fortified drinks. That comparison is the reason this page exists.
Keeping the drink more than four days, or leaving it at room temperature. The product is not pasteurised, and its composition suits bacterial growth.
Believing homemade eliminates additives by principle. Industrial emulsifiers and stabilisers have a technical function, and it can help to know what they do rather than avoid them reflexively.
What these numbers do not tell you
The Swiss database gives values for generic categories. A Californian almond and a Sicilian one do not have exactly the same composition, and the iodine content of any raw material depends on the soil.
Milk’s iodine content varies too. The Swiss database gives 10 µg per 100 ml. A 2025 study in Nutrients that measured iodine in 146 winter and 142 summer dairy products in Portugal by the Sandell-Kolthoff reaction found a median of 19.9 µg per 100 ml, with no effect of thermal processing, fat content or season, but with regional differences. The factor of 500 for almond holds as an order of magnitude, not as a constant.
No public figure gives the exact transfer rate from a domestic blender into the bottle. The ceiling values on this page are upper limits, and the only way to know your real yield would be a laboratory analysis of your own production.
Finally, the data on children come from observational and modelling studies, not controlled trials. The authors of the Deutsches Ärzteblatt review say so themselves: no longitudinal studies on long-term outcomes and no randomised intervention trials comparing cow’s milk with plant drinks were found.
Frequently asked questions
Do almonds really need soaking? For blending, yes: soaking softens them and the result is noticeably finer. For removing antinutritional compounds the effect is real but modest, and sprouting or fermentation do far more.
Can I keep the soaking water? No, not for nuts and legumes. It holds some of the dissolved bitter compounds. It also carries off some minerals, which is the price of the step.
How long does homemade plant milk keep? Three to four days in the fridge, in a clean sealed container, chilled quickly after making. The product is not pasteurised.
Is homemade cheaper than shop-bought? Entirely dependent on the base and the purchase price. For oats, the full calculation shows the answer is not obvious.
Is homemade plant milk better for the climate? The comparison depends on the raw material, its origin and the functional unit chosen. A 2026 study in Foods shows the same milk changing rank depending on whether impact is expressed per 100 g of product or per 100 g of protein. Our page on the carbon impact of plant drinks works through it.
Can I give it to a baby? Not before 1 year as a main drink, and never in place of breast milk or infant formula. After 1, the NHS points towards unsweetened calcium-fortified versions and advises against rice drinks before 5.
Does homemade soya milk replace milk for protein? In quantity, almost: 30.6 g per litre at the ceiling against 32 g for milk. The wider question of protein quality across a plant-based diet is covered in our plant protein guide.
Why does my milk separate? Because it contains no emulsifier and has not been homogenised under pressure. That is normal behaviour for an unstabilised emulsion: shake before use.
How do I read the label on a fortified drink? By looking at the nutrition panel rather than the front of the carton, since “fortified” products are not fortified with the same nutrients. We have a page on reading a nutrition label.
What do I do with the pulp? Freeze it in portions and work it into biscuit dough, patties, porridge. Soya okara has many culinary uses, and the Swiss food-soya supply chain is worth a detour.
Sources
- Swiss Food Composition Database, FSVO and its data file
- Swiss dietary recommendations for adults, FSVO
- Research projects on iodine intake in Switzerland, FSVO
- Food safety, WHO
- Drinks and cups for babies and young children, NHS
- Plant-based drinks as an alternative to cow’s milk in early life, Deutsches Ärzteblatt International, 2026
- Replacing cow’s milk with plant-based drinks in young children, Journal of Health, Population and Nutrition, 2025
- Substitution of dairy foods, DONALD cohort, Food Science and Nutrition, 2026
- Mapping iodine sources, milk and plant-based alternatives, Nutrients, 2025
- The role of plant-based alternatives to animal foods, The Journal of Nutrition, 2026
- Label-declared nutritional composition of 68 plant-based beverages, Journal of the Science of Food and Agriculture, 2026
- Almond protein extraction, Molecules, 2026
- Inactivation of soybean trypsin inhibitors, Foods, 2025
- Processing methods for legumes, Journal of Food Science, 2026
- Microbial growth dynamics in plant-based milk alternatives, Journal of Food Science, 2026
- Psychrotolerant Bacillus cereus group isolates, Food Microbiology, 2026
- Heterocyclic aromatic amines in plant-based milk beverages, Foods, 2025
- Food safety and nutritional aspects of plant-based alternatives, Food Science and Nutrition, 2026
- Nut-based dairy alternatives, Foods, 2026
- Bioavailability of nutrients from animal-derived foods versus other sources, Nutrients, 2026