---
title: "Normal Hemoglobin, Empty Tank: How Common Is Hidden Iron Deficiency in US Women?"
description: "K-Dense Web analyzed CDC NHANES data and found that 3 in 4 iron-deficient US women have normal hemoglobin. Then an independent reviewer checked the report."
updatedAt: "2026-09-26"
author: "Yuhuan He"
authorTwitter: "yhhonx"
authorLinkedIn: "https://www.linkedin.com/in/yuhuanhe/"
tags: ["Use Case", "Public Health", "Epidemiology", "NHANES"]
canonical: "https://www.k-dense.ai/blog/hidden-iron-deficiency-us-women-nhanes"
---
**Among US women aged 15 to 49 who are not pregnant and not anemic, 29.6% have a serum ferritin below 30 µg/L, the common clinical threshold for iron deficiency. That is about 17.7 million women whose hemoglobin looks normal while their iron stores are low.** Seen from the other side, 74.4% of all nonpregnant women in this age group with ferritin below 30 µg/L have a normal hemoglobin. A screen that only checks hemoglobin would miss roughly three in four of them.

Hemoglobin is the number most people see on a routine blood test, and it only falls once iron stores are already exhausted. Ferritin, which reflects stored iron, usually has to be ordered separately. I asked K-Dense Web a simple question with a messy answer: how common are low iron stores in women whose hemoglobin is normal? The data came from the CDC's [National Health and Nutrition Examination Survey](https://wwwn.cdc.gov/nchs/nhanes/) (NHANES), which has a complex survey design that is easy to get wrong.

The session produced an 18-page illustrated report with 52 references. In this post I want to highlight what happened **after** the analysis was done: how the numbers got into the document, how the citations were checked, and what an independent reviewer agent found when it read the report. You can browse the full session, including every script and result file, [here](https://app.k-dense.ai/share/session_20260923_150101_cd66120b57eb).

## The Findings

The analytic cohort was 1,999 women from the 2017 to March 2020 NHANES cycle, representing 59.75 million US women. All estimates use the survey weights and design, with confidence intervals from the Korn-Graubard method recommended by the National Center for Health Statistics.

![Prevalence of low iron stores at four ferritin cutoffs](https://www.k-dense.ai/blog/hidden-iron-deficiency-us-women-nhanes/prevalence_by_cutoff.png)
*Share of nonpregnant, nonanemic US women aged 15 to 49 below each ferritin cutoff, with 95% confidence intervals. The cutoff matters: the estimate ranges from 8.2% at the strict WHO cutoff to 53.5% at 50 µg/L.*

There is no single agreed ferritin cutoff, so the agent reported four, each with its clinical meaning:

| Ferritin cutoff | Clinical meaning | Prevalence (95% CI) | US women |
|---|---|---|---|
| Below 15 µg/L | Severe depletion, WHO cutoff | 8.2% (7.0 to 9.5) | 4.9 million |
| Below 25 µg/L | Level where hemoglobin starts to fall ([Mei et al.](https://doi.org/10.1016/s2352-3026(21)00168-x)) | 21.7% (19.8 to 23.7) | 13.0 million |
| Below 30 µg/L | Common clinical treatment threshold | 29.6% (26.8 to 32.5) | 17.7 million |
| Below 50 µg/L | Depleted stores, often with symptoms | 53.5% (50.2 to 56.9) | 32.0 million |

The screening gap is the headline for a clinician. Of the 23.7 million women aged 15 to 49 with ferritin below 30 µg/L, 17.7 million have normal hemoglobin and only 6.1 million are anemic.

![Most iron-deficient women have normal hemoglobin](https://www.k-dense.ai/blog/hidden-iron-deficiency-us-women-nhanes/hemoglobin_blind_spot.png)
*Nonpregnant US women aged 15 to 49 with ferritin below 30 µg/L, split by hemoglobin status. 74.4% (95% CI 69.9 to 78.5) have hemoglobin of at least 12.0 g/dL, the WHO anemia threshold.*

Depletion is concentrated in the youngest women: 46.5% of nonanemic 15- to 19-year-olds are below 30 µg/L, compared with 24.2% of women in their forties. The agent also estimated the prevalence by race and ethnicity (from 26.9% to 39.2%) but noted that these differences were not formally tested and not adjusted for age or income.

## Inflammation Moves the Answer More Than Anything Else

Ferritin rises during inflammation, so inflammation can hide iron deficiency. In this cohort, 24.6% of women had high-sensitivity CRP above 5 mg/L, and those women had a higher median ferritin (58.8 vs 42.8 µg/L). The agent ran three treatments side by side: no adjustment, excluding inflamed women, and the [BRINDA](https://doi.org/10.3945/ajcn.116.141762) regression correction. The coefficient it fitted for the BRINDA correction (0.105) came out close to the published value for women of reproductive age (0.11).

![Prevalence under three inflammation treatments](https://www.k-dense.ai/blog/hidden-iron-deficiency-us-women-nhanes/inflammation_adjustment.png)
*The BRINDA correction raises every estimate. At the 30 µg/L cutoff it adds 11.3 percentage points, from 29.6% to 40.9%.*

Taken together, the choice of cutoff and inflammation handling moves a defensible estimate from about 8% to about 67%. The report leads with the unadjusted numbers because they are the most conservative and match clinical practice, and it says so explicitly. It also notes that NHANES does not measure AGP, the second inflammation marker in the full BRINDA protocol, so the CRP-only correction here slightly under-corrects.

## Getting the Survey Design Right

Most of the analysis effort went into details that do not show up in a headline but decide whether the headline is right. Three of them are worth describing.

**Choosing the cycle from the data.** Ferritin is not measured on the same people in every NHANES cycle. The agent checked each candidate cycle and found that 2017 to March 2020 measured ferritin across the whole examined population, while in 2021 to 2023 it was measured only on a blood-draw subsample with its own survey weight. Using the standard exam weight on that later cycle would have silently produced wrong national estimates. The primary analysis therefore uses the 2017 to 2020 cycle, and the 2021 to 2023 cycle, with the correct subsample weight, serves as a recency check (27.5% below 30 µg/L).

**Defining "not pregnant" carefully.** The NHANES exam pregnancy flag only covers ages 20 to 44. To cover women aged 15 to 19 and 45 to 49, the agent combined it with the urine pregnancy test and self-report.

**Estimating on the full design.** A common mistake is to cut the dataset down to the subgroup of interest and then compute standard errors, which breaks the survey's variance structure. The agent computed every estimate as a domain estimate on the full design frame, so the design degrees of freedom stayed at 25. It then re-derived all eight headline prevalences with **samplics**, a separate survey-statistics package. The two implementations agreed to 3 × 10⁻¹⁵ percentage points on the point estimates and exactly on the standard errors.

The agent also compared its results with six published NHANES benchmarks (five studies and the Healthy People 2030 objective), re-estimating each one on that benchmark's own cohort definition. Three published estimates fell inside the matched 95% confidence interval. For the others, it tested candidate explanations instead of asserting them. Switching the BRINDA reference value closed part of one gap, while the leading explanation for a 6.6-point gap against [Xiao et al.](https://doi.org/10.1097/aog.0000000000006277) was tested and rejected, so that gap is reported as unexplained.

## Feature Spotlight 1: No Typed Numbers in the Report

The report contains no statistics typed by hand. A build script read the analysis result files and turned each value into a LaTeX macro, 187 of them in total, and the prose cites the macros instead of digits. If the analysis were rerun, rebuilding the document would update every number in the text automatically.

A second script then checks this independently. It re-reads each headline value from its source file, compares it with the macro, and searches for the rendered value in the text of the compiled PDF. The final report passes all 43 checks. This design removes the most common way a report drifts from its data, which is a person or a model copying a number by hand.

## Feature Spotlight 2: Citations That Resolve to the Right Paper

Every reference was checked against the Crossref API in three passes, and the bibliography file was generated from the verification output instead of being typed.

The middle pass is the interesting one. Several plausible-looking DOIs resolved to real but wrong papers. One DOI intended for a paper on iron deficiency without anemia resolved to a study of boron supplementation in sheep. A reference like that would look fine in a bibliography, and it is exactly how fabricated citations slip into AI-written documents. The agent discarded those records, then found that its title-matching test was too loose (it accepted "Faculty Opinions recommendation of..." stubs) and tightened it to require both a title match and a first-author surname match. The final bibliography has 52 entries, all cited in the text. The five government and WHO documents that have no Crossref record were confirmed by web search.

The same habit applied to figures. The graphical abstract was drawn with the **scientific-schematics** skill, and the agent rejected the first version because its bars were not proportional to their labels (8.2% was drawn at about a quarter the length of 53.5%). It rebuilt the panel as number tiles, which cannot mislead through length.

## Feature Spotlight 3: An Independent Reviewer Read the Report

After the report was finished, K-Dense Web handed it to a separate reviewer agent together with the rendered pages, the analysis result files and the citation verification records. The reviewer returned a verdict of **major revision, narrow**. It spot-checked 26 quantities and found every headline number faithful to its source. The problems were concentrated in the passages where the report described its own rigor, which is where an overclaim does the most damage.

The writing agent re-verified every finding against the result files before acting on it. All six must-fix items and all twelve should-fix items were confirmed and fixed. A few examples:

| Reviewer finding | What was wrong | Fix |
|---|---|---|
| Citation claim overstated | The report said every reference was matched on title and first author. In fact 47 of 52 came from Crossref and only 17 had the strict match. | Claim restated with the exact counts |
| Missing-data share wrong | "Roughly 8%" of examined women lack a ferritin value. The real figure is 174 of 2,535, or 6.9%. | Corrected and turned into a macro |
| Closing sentence contradicted the report | It said every sensitivity analysis raised the estimate, but the 2021 to 2023 check lowered all four. | Rewritten to state the downward case |
| "Complete blood count" used loosely | The analysis defined a normal result as hemoglobin of at least 12.0 g/dL, but a CBC reports more than hemoglobin. | Definition stated explicitly |
| Self-congratulatory wording | Three phrases announced the report's own honesty. | Removed |

The writing agent also declined two suggestions and explained why. For example, the graphical abstract shows "ug/L" instead of "µg/L", but regenerating it risked disturbing a panel whose nine numbers were all verified, so the cosmetic error was accepted knowingly. Finally, because two of the must-fix items were claims about the document that had drifted out of date, it added four new automated checks to guard them, taking the number check from 39 to 43.

I find this step valuable because it catches a type of error that the analysis checks cannot. Every number in the draft was correct, and the draft still overstated how it had been verified. A second reader with access to the files found that in one pass.

## What the Analysis Does Not Claim

The report lists its limits in full, and they belong here too. The data are cross-sectional, so they support no causal or individual-level conclusions. There is no soluble transferrin receptor data in these NHANES cycles, so total body iron could not be modeled. No subgroup or between-cycle difference was formally tested, and hemoglobin was not adjusted for smoking or altitude. The four headline prevalences were independently re-derived, but the population counts, percentiles and inflammation-adjusted estimates come from a single implementation with structural checks. The reviewer checked the report against the result files, and it did not rerun the analysis. Finally, this is population-level research, not medical advice. Anyone concerned about their iron levels should talk to a clinician.

## Try It

A question like this one normally takes an epidemiologist days of reading NHANES documentation before the first estimate. In this session, K-Dense Web produced the cohort, the survey-weighted estimates, the comparison with six published benchmarks, a general-audience report and a documented review, along with the scripts needed to rerun any step.

Try it yourself at [app.k-dense.ai](https://app.k-dense.ai), or browse the full session [here](https://app.k-dense.ai/share/session_20260923_150101_cd66120b57eb).

Questions? Contact us at contact@k-dense.ai.
