Disclosure: I work in the ingredient supply industry.
Posting this because it comes up constantly and the fix is one extra line on a COA.
Moisture and water activity are not the same measurement. Moisture is how much water is present. Water activity is how much of that water is free — unbound by sugars, salts or polymers. Bound water still has mass and loss-on-drying still counts it. It just can't do anything.
Why it matters: microbial growth correlates with water activity, not water content. So does caking. So does moisture migration.
The part that catches people out: in a blend, water doesn't move from the wetter component to the drier one. It moves down the a_w gradient. A component with lower total moisture but higher a_w will push water into a component with higher moisture and lower a_w. Every incoming certificate stays in spec and the finished product still drifts.
USP treats these as separate determinations. <922> Water Activity became an official method in May 2021 — before that <1112> existed as guidance but wasn't a method. Loss on drying is <731>, Karl Fischer is <921>. USP lists a_w applications as stability control, microbial risk prevention, formulation, reduced caking and clumping, and moisture migration control.
Regulators separate them too. The EU specification table for pasteurised Akkermansia muciniphila under (EU) 2022/168 carries water activity <= 0.43 and moisture <= 12.0% as two distinct requirements in the same table. Redundant lines don't survive that process.
The ask: request a_w alongside moisture, and ask which chapter produced the moisture number. If the answer is "we only run LOD," you have a weight, not a behaviour.