California (AB 899) compelled 39 baby-food brands to publish their heavy-metal test results. Most of them tried to hide it as best they could, but the data was left in such a precarious place that without breaking any laws, I was able to get all of it. 18,124 records from 32 brands, every bit of it public record. Here's what it says.
Lots tested
18,124
Failures
2,381
Brands
32
Any-metal fail rate
13.1%
2,381 individual metal-lot tests exceeded an action level, one lot can fail multiple metals.
The list is the food they already shipped. FluoroSpec is for the jar in your hand.
A failed lot tells you 1 lot was bad. It does not test the food in your kitchen. One drop of FluoroSpec on a spoonful, 30 seconds, glows green if there is lead. Works on baby food, dishes, the painted plate from grandma, tap-water residue on a glass.
Why it works: the reagent forms perovskite quantum dots only where there is lead, locked to that spot. No glow, no detectable lead. No lab, no swab fade, no waiting.
FluoroSpec reagent (3,600 tests, about 18 months for a family)$129
UV penlight, so the glow reads in daylight$22
Color reference card for borderline reads$9
Pantry walkaround guide (jars, dishes, toys, the order)$0, included
Email me a photo of a result you cannot read, I read it$0, included
$160
If all this did was tell you the jar in your pantry is the clean one, would $50 be worth it? It does that, and 3,599 more tests after that.
Or the Full Kit for $75. Reagent is consumable so the guarantee is simple. Email me, full refund, no return.
🎰 Pantry Lottery
Check your pantry
2,381 lots exceeded an action level across 32 brands. Filter by brand, spin a random failing lot, or type in your lot code to check it directly.
Ready to spin
Hit spin to check a random failing lot
, ·, · ,
SPIN BONUS, %
Or type in your lot code:
Four ways to count.
Four ways to count. Only one is scientific.
A heavy-metal number only means something once you know the serving size. Watch what happens to a real lot when we switch units, this is a lead example:
Ppb (concentration).
The raw lab number. Not an exposure measurement. Only useful for comparing two items with the same serving size. This is the number Lead Safe Mama emphasizes. A 5 g cracker at 100 ppb gives 20× less lead than a 100 g pasta bowl at 100 ppb. Same number, very different exposure.
µg per serving.
The actual mass of metal in one serving. This is how much your child gets every time they eat this food. Real exposure, real units.
µg per day (2 servings).
Daily exposure assuming a typical 2-serving day. The number that actually predicts blood lead. The FDA Interim Reference Level (IRL) for lead is 2.2 µg/day for a child and 8.8 µg/day for an adult. Hitting the child IRL daily is modeled to raise blood lead by about 0.16 µg/dL; the adult IRL adds about 0.04 µg/dL.
% FDA IRL (child).
Same daily exposure expressed as a percentage of the child IRL. 100% does not mean “safe”. It means hitting the FDA child threshold for the day. And the same number is only ~25% of the adult IRL, so the percentage is age-specific.
Three of these measure exposure. One (ppb) measures concentration. That’s why the headline says only one is the right answer to the question “is this dangerous for my kid?”
Babylife Organics · Raspberry & Fig Oat Bar
Lot 112026 · 25 g bar
84.0
parts per billion lead. Sounds alarming, but concentration alone doesn't tell you how much your child is actually getting.
Brand summary
Publishing the data doesn't mean you passed.
The brands that disclosed the most also had some of the worst records. Transparency and safety are not the same thing.
Highest dose per serving
When measured in micrograms delivered per serving, these brands top the list. Dose, not concentration, is what maps to blood lead.
Loading…
Clean records
Every lot below every action level. These brands tested, published, and didn't fail. Transparency ≠ contamination.
Loading…
Key findings
It's not the brand. It's the ingredient.
The same five crops show up across every brand that failed. This is a supply chain problem, you can't fix it by switching brands.
The five categories below account for the bulk of exceedances across 32 brands, tracing back to soil, irrigation water, and agricultural inputs.
Lead specifically
But what about lead?
Arsenic dominates the counts because it's everywhere in grain crops. Lead is different, it shows up in concentrated pockets. Unlike arsenic and cadmium, which enter food almost entirely through soil and irrigation, lead exposure for most children comes primarily from the home environment: paint dust, tracked-in soil, cookware, glazed dishes, and renovation debris. That context matters enormously for risk prioritization. These are the ingredients where food-based lead shows up:
Most lead exposure doesn't come from food.
For children in the U.S., food is a minor source of total lead exposure. The dominant sources are paint dust and chips in homes built before 1978, contaminated soil tracked indoors, lead plumbing, old cookware, and ceramic glazes. The most impactful first step is an XRF scan of your home, not a dietary overhaul.
Find out what's exposing your kids.
Two quick audits scored against FDA reference levels. One for your home, one for your diet.
§ 01 · Home risk score
Pre-1978 home risk quiz
12 questions about your home's age, windows, paint, water, soil, and hobbies. Maps your answers to a µg/day exposure estimate compared to the FDA reference dose.
q.01 · year built1.0 µg
q.02 · windows1.0 µg
q.03 · paint condition0.5 µg
q.04 · water source0.5 µg
q.05 · soil / yard0.3 µg
lead risk score →3.3 µg/day
§ 02 · Dietary audit
Dietary lead audit
7 questions about what you and your child regularly eat. Estimates your daily dietary lead load from FDA Total Diet Study averages, in the same µg/day units.
baby food pouches0.44 µg
leafy vegetables0.18 µg
root vegetables0.22 µg
canned goods0.15 µg
spices / seasonings0.09 µg
dietary total →1.08 µg/day
About serving sizes
Serving sizes matched from product names: pouches 99–113 g, meals 170 g, teethers 4 g, puffs 7 g, rusks 11 g, cereals 15 g dry, bars 25 g, juices 120 g. Beech-Nut defaults to 113 g jar. Under 0.5% of records fall back to a 30 g generic.
Prefer the data in raw form? Switch to Researcher view at the top of the page.
📋 Request the raw dataset
The underlying normalized CSV (18,124 records) and per-brand JSON files are available to researchers, journalists, and public health professionals on request. I review each request individually.
My hope is that this data moves us closer to regulating the ingredients in baby foods, not just the finished product. If manufacturers can't source ingredients that test below action levels, those high-heavy-metal produce streams should flow into adult food markets where serving sizes and consumption patterns reduce dose exposure. Regulating precursor ingredients upstream is the tool AB 899 makes newly possible.
A big shoutout to Consumer Reports, their directory of brand disclosure pages is what made this project possible. Without it, I wouldn't have had the idea to do this.
The argument happening under the headlines is about units. A number like "15 ppb lead" means nothing in isolation. Dose is what maps to blood lead: ppb × serving mass → µg/day → blood-lead level. Concentration is the first term, not the last.
% of ppb threshold, practically useless
Treats 5 ppb lead as "100%." Comes from an early FDA proposed action level for infant rice cereals, never adopted as a final rule, only ever intended for that specific product category. Applying it to all baby food is a choice someone made. It has no regulatory force and ignores serving size entirely.
Worse: the standard lab LOD for heavy metals in food is 5 ppb. Every non-detect gets reported as 5 ppb by convention. You are literally computing a percentage of the detection floor. The numerator and the denominator are the same number. This metric is not a measurement, it's noise formatted as a fraction.
% of Prop 65 MADL, useful, but a little misleading
Prop 65's Maximum Allowable Dose Level for lead is 0.5 µg/day, a real number, but calibrated to reproductive and developmental toxicity, not to the blood-lead relationship. It's ~4× more conservative than the FDA IRL for the same reason: different endpoint, different math. It overstates risk framing for most parents.
The FDA Interim Reference Level of 2.2 µg/day for children is derived from a blood-lead target of ≤5 µg/dL.
Ppb × serving size → µg/day → blood-lead estimate
Roughly a 0.35 µg/dL increase in blood lead, the benchmark pediatricians have tracked since the 1990s and the basis for the CDC's reference value.
It's the only path that connects a product label to a pediatrician's chart.
Top lots by dose, lead first
The headline teether at 137 ppb delivers less absolute metal than a pouch at 29 ppb, because pouches are 28× heavier.
Brand
Product
Lot
Metal
Ppb
µg/serving
% FDA IRL child ref: Pb 2.2 / As 3.0 / Cd 3.6 / Hg 1.0 µg/day
Loading dose data…
All 32 brands, ranked by failures
Brand
Product types
Records
Failures
Per-100
Max As
Max Pb
Headline
Ingredient cross-cuts
These are actual food ingredients, rice, sweet potato, oats, apple. Arsenic dominates most; only a handful are lead-driven. One product can tag multiple ingredients (a rice teether with sweet potato flavoring tags as both).
Ingredient
Records
Brands
Fail/100
Primary metal
Worst offender
Product-format cross-cuts
The separate format question: teethers, puffs, bars, pouches, cereals. Formats carry ingredient-independent risk patterns, small-serving high-concentration formats (teethers, rusks) vs large-serving lower-concentration formats (pouches, meals).
Format
Records
Brands
Fail/100
Primary metal
Worst offender
Three things that kept showing up
The same lots failing more than once
Babylife Organics Raspberry & Fig Oat Bar failed lead tests in three different production lots, each hitting exactly 84.0 ppb: lot 112026, lot 021127, lot 021727. Three independent runs landing on an identical value isn't sampling noise; it's a single contaminated upstream ingredient (almost certainly oat flour) distributed across multiple product batches.
Lot codes pointing at the same production line
Amara's "CR25029.F4" convention encodes the production line in the trailing "F4". Their F4 lots drive most arsenic and lead failures; F1 has the mercury outlier. Aldi Little Journey's lots split into "A" and "D" series, two lines feeding Rice Rusks Apple, both failing arsenic on every one of 76 tested lots. Lot codes leak supply-chain structure the brands never intended to disclose.
The ingredient problem, not the brand problem
Sweet potato fails arsenic thresholds at 14 different brands. Apple-based at 17. Berry-based at 18. This isn't a brand problem, it's a raw-ingredient problem tracing upstream to soil, irrigation water, and post-harvest handling. Regulating the finished product is always late; regulating precursor ingredients at the supplier level is the tool AB 899 makes newly possible.
Methodology
Data collection
Every brand's AB 899 disclosure page was collected via publicly-accessible REST endpoints, inline JSON, or static HTML, the same requests a web browser makes when loading the page. No authentication was bypassed, no credentials were forged, and no session state was tampered with. AB 899 requires these disclosures to be public; collecting public data via standard HTTP requests is explicitly lawful. Four brands (Target Good & Gather, Walmart Parent's Choice, Albertsons O Organics, Love Child Organics) use Laravel Livewire with cryptographically-signed session state; generating a forged signed token would constitute unauthorized computer access under the CFAA, so those brands are excluded from this analysis pending crowdsourced QR scans or formal AB 899 public records requests.
Thresholds used
Lead: 10 ppb (FDA Closer to Zero draft guidance, fruits/vegetables & single-ingredient cereals). Arsenic: 10 ppb inorganic (FDA final guidance for infant rice cereals, August 2020). Cadmium: 40 ppb (EU Contaminants Regulation 2023/915; FDA hasn't published an infant-food cadmium action level). Mercury: 10 ppb (not federally set; matches Consumer Reports' published audits).
Dose calculation
µg per serving = ppb × serving grams ÷ 1000. Serving sizes are matched from product names (pouches 99–113 g, meals 170 g, teethers 4 g, puffs/snack bites 7 g, rusks 11 g, cereals 15 g dry, bars 25 g, juices 120 g) with brand-level defaults for API-only sources. Less than 0.5% of records fall back to a 30 g generic default.
Reference daily doses for a ~10 kg toddler: Lead 2.2 µg/day (FDA IRL); Arsenic 3.0 µg/day (ATSDR chronic oral MRL); Cadmium 3.6 µg/day (EFSA TWI); Mercury 1.0 µg/day (FDA RfD inorganic).
Exclusions and caveats
Values above 1000 ppb excluded as suspected unit mix-ups (e.g. A single Earth's Best mercury value of 3156 ppb was almost certainly ng/kg misreported as µg/kg). "
100 free FluoroSpec kits, yours if you qualify.
HUD Lead Hazard Control grantees, Public Housing Authorities, and CDC/EPA grant recipients can apply for 100 free Fluoro-Spec detection kits (~50,000 tests). If you're working in lead hazard control and want to add food and household surface screening to your program, this is free.
Love Eric's Flurospec kits!! I keep finding all of the lead in my late parents house. Thankfully I'm able to chuck most of the items! Highly recommend!!