What a photo can, and can't, tell you about heavy metals in food
AIM can flag that a category of food has a documented contamination history. It will never print a number for lead in your protein powder, because a photograph cannot know that.
A request that arrives in one form or another, a lot: tell me if what I just scanned has heavy metals in it.
Part of that can be done honestly. The other part cannot be done at all. This article is about where the line sits and why it was drawn there.
What is actually knowable from a photograph
Contamination is a measurement. Lead in a protein powder is parts per billion, established by mass spectrometry, and it varies between production lots of the same product from the same factory. Two tubs on the same shelf can differ.
An image and a description contain none of that. A model looking at a photo of a shake can identify a shake. It cannot see the lot number, and even if it could, it does not have the assay.
So any app that shows you a number for lead in your lunch invented that number. There is no dataset it could have come from. It will look precise, it will be wrong in an unknowable direction, and it will be indistinguishable from a real measurement, which is the part that makes it worse than saying nothing.
A plausible wrong answer is indistinguishable from a real one. That rule is written into how the app treats every estimate, and contamination is where it bites hardest.
What is knowable
Categories have histories, and those histories are public.
- Cocoa and dark chocolate: repeated consumer testing has found cadmium and lead above California's Proposition 65 thresholds in a meaningful share of products tested.
- Rice and rice-based products: rice takes up inorganic arsenic from soil and water more readily than other grains; the FDA has published action levels for infant rice cereal because of it.
- Protein powders: third-party testing programs have repeatedly found detectable lead and cadmium, with plant-based and chocolate-flavored products testing higher on average.
- Large predatory fish: swordfish, shark, king mackerel and bigeye tuna accumulate methylmercury; the FDA and EPA publish a joint advice list.
- Some imported spices and traditional remedies: lead adulteration has been documented by multiple state health departments.
None of that tells you about your tub. All of it tells you that the category is one where the question is reasonable, and where buying a brand that publishes third-party test results is a sensible response.
How AIM handles it
Flags in AIM are a separate thing from nutrients, deliberately. A nutrient has a unit, a daily total and a goal line. A flag has none of those. It carries two fields:
- What was found, "dark chocolate", "whey protein isolate", "aspartame".
- Why it is being mentioned: one sentence, in plain language, with the reason.
There is no number, because a number would imply a measurement. There is no score, because a score is a number wearing a costume.
Flags come at two volumes. A note is worth knowing and not worth worrying about. A caution is either something with a documented reason for care, or, more often, something you told the app you avoid.
Your own watch list
The more useful half of this feature is not AIM's list, it is yours.
Add the terms you care about: an additive you avoid, a sweetener you react to, an oil you would rather not eat, an allergen you are managing for someone else. When one turns up in a meal, the flag says so and marks it as yours rather than as general advice.
That distinction matters. "You asked to be told about aspartame, and this has aspartame" is a different statement from "aspartame is dangerous", and only the first one is something an app is in a position to say.
What AIM will not add
For the sake of being explicit, because these get requested:
- A contamination score per meal. It would be fabricated.
- A "toxin load" total for the day. Same problem, larger.
- A safe/unsafe verdict on a specific branded product. There is no assay behind it, and the batch that was tested is not the batch you bought.
What AIM does instead is name what is in front of you, say why the category comes up, and leave the decision to you. That is the whole of what the information supports.
Common questions
- Can an app detect heavy metals in food from a photo?
- No. Heavy metal content is measured in a laboratory and varies between batches of the same product. What software can do is recognize that a food category has a documented contamination history, protein powders, dark chocolate, rice, large predatory fish, and say so, with the reason attached.
- Which foods are commonly tested for heavy metals?
- Consumer testing has repeatedly found cadmium and lead in cocoa and dark chocolate, inorganic arsenic in rice and rice-based products, lead in some protein powders and spices, and methylmercury in swordfish, king mackerel, shark and bigeye tuna.
- Can I get alerts for ingredients I want to avoid?
- Yes. You can add your own watch terms, an additive, a sweetener, a category, and AIM flags a meal when one appears, marking it as your own term rather than a general advisory.
Keep reading
Seed oils: what the evidence actually shows
One of the loudest nutrition arguments online, and the research is far less dramatic than either side claims. Here is what is established and what is inference.
Alcohol: the calories that vanish from most food logs
Seven calories a gram, almost nobody logs it, and it suppresses fat oxidation while it is being processed. The arithmetic is less forgiving than the culture around it.
Calorie labels are legally allowed to be wrong
The FDA permits up to 20% variance on declared calories, and restaurant meals are routinely further off than that. Which changes what a tracking number is actually for.