Key takeaways
- "Few foods naturally contain vitamin D", says the NIH. The best are oily fish and cod liver oil.
- A serving of mackerel (125 g) can cover the 10 µg a day the NHS says adults need, and often EFSA's 15 µg, but the databases disagree: mackerel ranges from 8 to 20 µg depending on the source.
- With oily fish three times a week and an egg a day, you get 4.3–7.5 µg a day: 43–75% of the UK's 10 µg, or 28–50% of EFSA's 15 µg.
- Sunlight is the main source, and in the UK it is too weak from about October to March. That is why the NHS advises everyone to consider a 10 µg supplement in autumn and winter, whatever they eat.
The short answer
Only in part. The NIH puts it simply: “few foods naturally contain vitamin D”. Oily fish is the big exception, and a serving of mackerel or horse mackerel can cover the 10 µg a day the NHS advises, and often EFSA’s 15 µg. But eating like that every day isn’t realistic. Most people get much of their vitamin D from sunlight, and in the UK the sun is too weak to make it from about October to March. That is why the NHS advises everyone to consider a 10 µg supplement in autumn and winter, however well they eat; we explain more in vitamin D in winter.
How much vitamin D you need
| Figure | Amount | What it means |
|---|---|---|
| NHS / SACN (UK) | 10 µg (400 IU) a day, from age 1 | The daily amount; a supplement is advised in autumn and winter |
| EFSA adequate intake | 15 µg (600 IU) a day for adults | Assumes the skin makes very little vitamin D, in other words almost no sun |
| NRV on labels | 5 µg | A labelling reference, much lower than both |
The table below uses EFSA’s 15 µg, the stricter yardstick, as in our Spanish edition. For the UK figure, multiply the percentage by 1.5: a food giving 30% of 15 µg gives 45% of 10 µg.
In the UK, cows’ milk is generally not fortified with vitamin D, but most fat spreads and some breakfast cereals are.
How much each serving gives you
Food composition databases disagree on the vitamin D in fish. We give the range across the databases that list each food: CIQUAL (France), BEDCA (Spain) and USDA (United States).
| Food | Serving | Vitamin D (µg) | % of 15 µg | Databases |
|---|---|---|---|---|
| Mackerel | 125 g | 8.1–20.1 | 54–134% | CIQUAL, BEDCA, USDA |
| Horse mackerel (scad) | 125 g | 20.0 | 133% | BEDCA |
| Salmon, farmed | 125 g | 4.6–13.8 | 31–92% | CIQUAL, BEDCA, USDA |
| Cod liver oil | 1 tsp (4.5 g) | 9.4–11.2 | 63–75% | BEDCA, CIQUAL, USDA |
| Sardines, fresh | 125 g | 10.0 | 67% | BEDCA |
| Anchovies, fresh | 125 g | 10.0 | 67% | BEDCA |
| Tuna, fresh | 125 g | 9.0–9.8 | 60–65% | BEDCA, CIQUAL |
| Trout | 125 g | 2.6–7.4 | 18–49% | BEDCA, CIQUAL |
| Sardines in oil, drained | 1 tin (60 g) | 2.9–4.9 | 19–33% | BEDCA, USDA |
| Tuna in water, tinned | 1 tin (60 g) | 0.7–3.0 | 5–20% | BEDCA, CIQUAL, USDA |
| Egg | 1 medium (60 g) | 1.0–1.2 | 7–8% | BEDCA, CIQUAL, USDA |
| Hard cheese (aged) | 30 g | 0.3 | 2% | BEDCA |
| Mushrooms, ordinary | 100 g | 0.0–0.2 | 0–1% | BEDCA, USDA |
| Whole milk, not fortified | 1 glass (250 ml) | 0.1 | 0% | BEDCA |
What the table shows:
- Fresh oily fish is the only everyday food that can cover the day in one serving. Mackerel, horse mackerel, sardines and anchovies are at the top.
- Tinned fish gives less. A tin of sardines gives 3–5 µg and a tin of tuna in water 1–3 µg.
- An egg adds about 1 µg: it helps, but it isn’t enough.
- Ordinary mushrooms and unfortified milk give almost nothing. The NIH notes that some mushrooms are treated with UV light to increase their vitamin D2, and some milks and cereals have vitamin D added: the label will tell you.
A week with oily fish: is it enough?
We calculated a week with three servings of oily fish and an egg a day:
| Meal | Times a week | Vitamin D |
|---|---|---|
| Farmed salmon (125 g) | 1 | 4.6–13.8 µg |
| Mackerel (125 g) | 1 | 8.1–20.1 µg |
| Fresh sardines (125 g) | 1 | 10.0 µg |
| Egg (60 g) | 7 | 7.1–8.4 µg |
| Average per day | 4.3–7.5 µg (28–50% of 15 µg) |
That is a better diet than average, and it still covers half the adequate intake at most. The rest has to come from the sun, or from a supplement if a blood test shows you are low.
Two recipes with oily fish
One comes from our Spanish edition, one from our German edition.
Grilled mackerel with roasted peppers (2 servings)
Ingredients: 2 mackerel, filleted (about 250 g of fish), 2 roasted red peppers, olive oil, garlic, salt and a few drops of sherry vinegar.
- Pat the fillets dry and cook them on a very hot griddle, skin side first, 2–3 minutes a side.
- Serve with the peppers cut into strips and dressed with oil, chopped garlic and vinegar.
Per serving: between 8.1 and 20.1 µg of vitamin D (54–134% of 15 µg), depending on the database.
Oven-baked salmon with potatoes and broccoli (2 servings)
Ingredients: 2 salmon fillets of 125 g, 400 g potatoes, 300 g broccoli, 1 lemon, 2 tbsp rapeseed oil, salt and pepper.
- Cut the potatoes into wedges, toss with oil and salt and bake at 200 °C for 20 minutes.
- Add the salmon and broccoli florets, squeeze over the lemon and bake for 12 more minutes.
Per serving: between 4.6 and 13.8 µg of vitamin D (31–92% of 15 µg) for farmed salmon.
When food isn’t enough
- In the UK in autumn and winter, the NHS advises everyone to consider 10 µg a day, and all year if you are rarely outdoors, cover most of your skin or have dark skin.
- If you get little sun, because of work, the season or covered skin, food is unlikely to cover your vitamin D.
- The only way to know your level is a 25(OH)D blood test. If the result is low, your GP will tell you what dose to take. Compare products on our vitamin D page.
- Cod liver oil is rich in vitamin D, but also in vitamin A. The NHS advises not taking it during pregnancy.
This guide is part of the series The best supplement is on your plate.
How we calculated the numbers
For each food we looked up the value per 100 g in three official databases: CIQUAL (ANSES, France), BEDCA (AESAN, Spain) and FoodData Central SR Legacy (USDA, United States). Where they disagree, we give the lowest and highest values; where only one database lists the food, we give that value. NutriMetrics calculates the servings, percentages and the example week. The real vitamin D content of fish varies from one fish to the next.
FAQ
How much vitamin D do I need a day?
In the UK, the NHS says 10 µg (400 IU) a day for everyone from the age of 1. EFSA sets an adequate intake of 15 µg (600 IU) a day for adults, calculated on the assumption that the skin makes very little vitamin D.
Is milk a good source of vitamin D in the UK?
Generally not. The NHS notes that cows' milk in the UK is not usually fortified with vitamin D, unlike in some other countries. Fortified foods in the UK include most fat spreads and some breakfast cereals; check the label.
Which food has the most vitamin D?
Cod liver oil (about 10 µg per teaspoon) and oily fish: mackerel, horse mackerel, sardines, anchovies, salmon and fresh tuna. An egg gives about 1 µg.
Do mushrooms contain vitamin D?
Ordinary mushrooms contain almost none. The NIH notes that some mushrooms are treated with UV light to increase their vitamin D2; if so, the label will say so.
Can I take cod liver oil during pregnancy?
No. The NHS advises not taking cod liver oil or supplements containing vitamin A during pregnancy, because too much vitamin A can harm the baby.
Why are the figures ranges?
Because the French, Spanish and US databases give very different values for the same fish. We would rather show you the range than a falsely precise number.
Sources
- NHS — Vitamin D
- NHS — Fish and shellfish
- NIH Office of Dietary Supplements — Vitamin D, fact sheet for health professionals
- EFSA (2016) — Dietary reference values for vitamin D
- USDA FoodData Central — SR Legacy (food composition per 100 g)
- AESAN — Spanish food composition database (BEDCA)
- ANSES — CIQUAL French food composition table
- NHS — Vitamins, supplements and nutrition in pregnancy