Beginner perfumer · 105
14 records' molecular weight field holds the mass of the carbon atoms only, and I found it because the errors repeated
· 12 min read
Last time I caught one error by reading logP against molecular weight. This article finishes that method: compute the molecular weight from the formula and compare it with the field. Across the 20,626 records where both exist and the formula parses, only 22 disagree by more than 1% — 99.89% agreement, the cleanest field pair I have measured. And those 22 have a pattern: 180.16 appears three times, 228.21 twice, 252.23 twice, 276.25 twice, on molecules with completely different formulas. What they share is a carbon count. All three 180.16 records are C15; both 228.21 records are C19. And C15 × 12.011 = 180.165, C19 × 12.011 = 228.209. In these 14 records the molecular weight field holds the total mass of the carbon atoms in the formula. The hydrogens and oxygens were dropped.
About a 4 minute read.
Last time I caught one error by reading logP against molecular weight, and called it a cross-field check. This article takes that method all the way.
Computing molecular weight from the formula
Molecular weight is not a number you have to trust — it can be computed from the formula. Each element's atomic weight is a constant; add them up.
Across the 20,626 records with both a formula and a molecular weight where the formula parses, only 22 disagree by more than 1% — 0.11%.
99.89% agreement. The cleanest field pair I have measured.
(For contrast: 83.7% of assay values are one default, and 794 flash points say the opposite of the truth. This pair has none of that.)
But those 22 have a pattern
I was about to read them one by one when I noticed the wrong values repeat:
| Stated molecular weight | Times | Those records' formulas |
|---|---|---|
| 180.16 | 3 | C15vH18vO3, C15H26O, C15H 24 |
| 228.21 | 2 | C19H28O2, C19H31NO3 |
| 252.23 | 2 | C21H32O2, C21H22O12 |
| 276.25 | 2 | C23H42O4, C23bH48bO6 |
Every group has completely different formulas and the same carbon count.
And carbon's atomic weight is 12.011.
| Carbons | × 12.011 | Field says |
|---|---|---|
| C15 | 180.165 | 180.16 |
| C19 | 228.209 | 228.21 |
| C21 | 252.231 | 252.23 |
| C23 | 276.253 | 276.25 |
The field holds the total mass of the carbon atoms in the formula. The hydrogens, oxygens and nitrogens were all dropped.
Checking each one, 14 of the 22 fit this signature exactly — including C54 at 648.59, C30 at 360.33, C22 at 264.24, C20 at 240.22 and C7 at 84.08.
Why it happens
The clue is in the formula field itself. Look at several of them:
C15vH18vO3C23bH48bO6C15H 24C1 8H25 N O8
A stray character after the carbon count. C15v, C23b, a space after C15H.
The likeliest explanation is that whatever parses the formula stopped at that stray character, finished computing only the first element, and wrote the result into the molecular weight field.
But that explanation is incomplete — 6-epi-beta-bisabolol's formula is a clean C15H26O, and its molecular weight is still 180.16. Stray characters are one cause, not the whole cause.
The other 8 do not fit the signature
They are wrong in unrelated ways (iodopropynyl butylcarbamate reads 154.19 where 281.09 is right; harmalol reads 170.23 where 200.24 is right) — scattered individual errors rather than one bug.
That contrast is the point.
What this article is really about
A repeated wrong value and a pile of unique wrong values are two different things.
- Scattered unique errors = typos. Fix them one at a time.
- The same wrong value repeating = a program doing one wrong thing. Fix the program and all of them go at once.
I went looking for a cause only because I saw "180.16 three times." Had those 14 each been wrong differently, I would probably have noted "22 mismatches" and moved on.
So when checking data, do not only count the errors. Look at how they are distributed.
And this bug affects nobody
I checked the supplier counts of those 14.
All zero.
This bug occurs only on records nobody sells — which is the same pattern I measured in the assay field and the flash point field: this database's handling of "products" and of "entries" are two different things.
(The best-supplied of the 22 is iodopropynyl butylcarbamate at 6, and it is not in the carbon-mass class.)
In practice
- Molecular weight is verifiable, and should be verified. A
GROUP BYand a table of atomic weights is enough. - When a wrong value repeats, first work out what it equals. 180.16 is not a random number.
- This field pair can be trusted. 99.89%, and the remaining 0.11% sits on records nobody buys.
- 42 formula records contain non-alphanumeric characters (like
Al Ca Na O4 Si +2); those do not parse but are not necessarily wrong.
What this doesn't establish
- My atomic weight table covers 32 common elements. Formulas containing others were skipped (95 records).
- The 1% threshold is mine. Isotopes, hydrates and salts can produce legitimate sub-1% differences in how a weight is computed, and I did not handle those.
- "The parser stopped at a stray character" is inference; I have not seen the program that generated this database. And it does not explain the records with clean formulas.
- I did not work out how the other 8 are wrong, only that they do not fit the carbon-mass signature.
- 99.89% means "the two fields agree", not "both fields are right." If the formula itself is wrong, this check cannot see it.
- This is a September 2026 snapshot.