sorry to jump in retention time shifts between runs are normal. relative retention time is the number to compare
#coa-reading 2026-03-29
- assay_not_purity — retyped your page 2 so we can talk about rows 19:40
- assay_not_purity — because it is unassigned and it is late-eluting. late-eluting usually means more hydrophobic than the parent, which for a lipidated peptide often means something… 19:43
- assay_not_purity — relative retention time, impurity RT divided by main peak RT. it travels between labs better than raw minutes because it cancels most of the column and flow differences 20:12
- assay_not_purity — yes. that is the sentence i wish everyone learned first 20:29
- still_here_2024 — yeah consistency beats accuracy for our purposes and that feels wrong but it is true 22:24
a supplier certificate on its own is a starting point, not evidence. that is the whole reason the verification channel exists
retention time shifts between runs are normal. relative retention time is the number to compare
whats the minimum a certificate has to have before you take it seriously
should a certificate say which instrument and method they used
for the archive net peptide is gross mass minus water minus counterion. that is why 11.4mg of powder can be a correct 10mg vial, ill dig out the number
does anyone keep a folder of certificates to compare over time
nobody can authenticate a certificate from a scan. you authenticate the material by testing it yourself, happy to be corrected
test it yourself
there is a second table on my COA under the purity line and i have no idea what any of it means
paste it or screenshot it, that is the interesting half of the document
ok that is a related substances table. it is the vendor telling you what the missing 1.1% is made of
and a table that says total impurities 1.1% with no breakdown is much weaker than one that names them, because named impurities can be argued about
retyped your page 2 so we can talk about rows
| RRT | Name / assignment | Area% | Reading |
|---|---|---|---|
| 0.87 | des-amino / deletion sequence | 0.21 | synthesis, expected, boring |
| 0.94 | deamidated form (+1 Da) | 0.34 | storage or process water exposure |
| 1.00 | semaglutide (main peak) | 98.72 | the product |
| 1.06 | oxidised form (+16 Da) | 0.11 | air or metal contact somewhere |
| 1.19 | unspecified single impurity | 0.42 | this is the one I would ask about |
| — | total related substances | 1.28 | sums close enough to 100 |
why is 1.19 the worrying one, its not even the biggest
because it is unassigned and it is late-eluting. late-eluting usually means more hydrophobic than the parent, which for a lipidated peptide often means something happened at the fatty acid chain
could also be a dimer. could be a process reagent. we do not know, which is the point
0.42 of an unknown is more interesting to me than 0.34 of a thing we can name and predict
so a COA with a big unnamed impurity is worse than one with lots of small named ones
usually yes. known degradants behave predictably. unknowns are unknowns
does the RRT column mean anything on its own
relative retention time, impurity RT divided by main peak RT. it travels between labs better than raw minutes because it cancels most of the column and flow differences
not perfectly. different gradient, different selectivity, RRT shifts too
the SSA sheets i have use RRT and the WuXi ones use absolute minutes plus a gradient table. the second is more work to read and more useful
agreed, give me the gradient every time
whats a gradient table
this, roughly
typical RP-HPLC programme you will see on a peptide COA
column C18, 4.6 x 250 mm, 5 um, 40 C
mobile A 0.1 % TFA in water
mobile B 0.1 % TFA in acetonitrile
flow 1.0 mL/min detection 214 nm
time (min) % B
0 25
30 50
32 80
36 80
37 25
45 25
shallow 25->50 over 30 min is what pulls the close-eluting
related substances off the main peak. a steep 10-minute
ramp will hide them under it.so the method itself decides how many impurities you can even see
yes. that is the sentence i wish everyone learned first
and a vendor who wants a big number picks a fast gradient. nobody has to lie
hm. so two honest labs can report 98.7 and 99.6 on the same vial
easily. and neither of them is wrong
then what do i do with the number
treat it as a floor with error bars, not a score. and compare like with like, same lab same method, which is why people keep going back to the same testing service
*to the same service, not because they are perfect, because they are consistent
yeah consistency beats accuracy for our purposes and that feels wrong but it is true
saving all of this