# Annotated Chromatograms: Eight Scenarios You'll See at a DIY HRT Lab

**Phase:** Deep-dive (Round 2)
**Audience:** operator sitting in front of a working HPLC-DAD, with a sample in the autosampler and a USP reference standard on the bench
**Last updated:** 2026-04-23

---

## Key takeaways

- **Retention time matches identity, peak area matches potency, DAD match confirms chromophore, impurity pattern tells you what went wrong.** All four questions get answered on every run — don't stop reading the trace after the main peak.
- **Illustrative numbers in this doc (Rt ~8.2 min, N ~8000, T ~1.1, area ~1.25 M counts) are realistic for a clean C18 150×4.6 mm 5 µm column run at 1.0 mL/min with MeOH/H₂O 80:20 at 30 °C** (matched to DD1 SOP; round-2 correction R2-M4 from an earlier 40 °C draft that was inconsistent with DD1's retention-time anchors) — but they will shift instrument-to-instrument and batch-to-batch. Treat absolute Rt values as C3 anchors, not literal specs. The *ratios* and *directions of change* are what transfer between systems.
- **A "pass" on identity and a "fail" on potency is the single most common finding in community HRT testing.** See Scenario 2. Nothing looks wrong on the chromatogram except the peak is shorter than expected.
- **A wrong-ester substitution (Scenario 3) will usually pass a naive DAD-match test** because sibling estradiol esters share a chromophore. RRT + LC-MS is the only robust discriminator.
- **Column health is part of the chromatogram too.** Scenario 8 — a dying column — shows up as creeping plate loss and tailing, not a sudden failure. Catch it via system-suitability tracking, not gut feel.

Cross-links: [`reading-chromatograms.md`](../08-interpretation-qc/reading-chromatograms.md) for the underlying definitions, [`purity-vs-potency.md`](../08-interpretation-qc/purity-vs-potency.md) for area-% vs label-claim, [`impurities-to-watch.md`](../08-interpretation-qc/impurities-to-watch.md) for the impurity catalog, [`identity-confirmation.md`](../08-interpretation-qc/identity-confirmation.md) for DAD and MS ID tiers, and [`sop-estradiol-valerate-hplc.md`](./sop-estradiol-valerate-hplc.md) (parallel deliverable — the actual SOP behind these runs).

---

## Method baseline used throughout

Unless noted, every scenario runs the same community-lab reference method: **C18 150 × 4.6 mm, 5 µm endcapped column** (Phenomenex Luna C18(2), Agilent ZORBAX Eclipse Plus C18, or Waters SunFire); isocratic **MeOH/H₂O 80:20 (v/v)**, degassed + 0.45 µm filtered; **1.0 mL/min**; **30 °C** (matched to the parallel DD1 SOP — round-2 correction R2-M4 from an earlier 40 °C draft that was inconsistent with DD1's retention anchors); **10 µL** injection; UV/VWD **280 nm** with DAD 200-400 nm for spectral confirmation; 20-min runs; oil injectable diluted 1:1000 in MeOH (40 mg/mL → 40 µg/mL on-column).

**Claim:** On this system (30 °C), EV elutes at ~7-9 min and free E2 at ~3-4 min. **Confidence:** C3 (inferred from RP-HPLC principles; exact Rt is system-specific, drifts with column age and mobile-phase lot). **Source:** [`../08-interpretation-qc/reading-chromatograms.md`](../08-interpretation-qc/reading-chromatograms.md); Snyder, Kirkland & Dolan, *Introduction to Modern Liquid Chromatography* (3rd ed., 2010); DD1 SOP §4 anchor. **Date checked:** 2026-04-23.

All Rt, area, N, T, and Rs values below are illustrative anchors on this method. Your column will produce different absolute numbers; the *relationships* transfer.

---

### Scenario 1 — Passing estradiol valerate (textbook case)

**Sample:** 40 mg/mL estradiol valerate in grapeseed oil, from a VERIFIED-tier vendor (one with a consistent prior testing.trans.diy track record). 1 mL amber vial, sealed, no visible particulates, clear pale-yellow liquid.

**Method:** Baseline method above. Standard curve (EV USP RS in methanol): 10, 20, 40, 60, 80 µg/mL, R² = 0.9998, intercept within 2% of zero. Sample prepared in triplicate: 10 µL of vial into 10 mL MeOH (1:1000). Three injections per replicate (n = 9 total).

**What you'd see on the screen:**

- **Retention times (main peak):** 8.19, 8.20, 8.21 min across the nine injections (RSD = 0.1%). RRT vs USP EV reference run immediately before = 1.000 ± 0.003.
- **Peak areas (main peak):** ~1,250,000 mAU·s (illustrative — on an Agilent 1260 DAD the magnitude depends on lamp age and flow cell path length). Inter-injection RSD = 0.8%.
- **Peak shape:** Gaussian, symmetric. USP tailing factor T = 1.10 ± 0.05. Plate count N (from 5.54·(Rt/W₀.₅)²) = 8,400 ± 200.
- **DAD spectrum at peak apex:** λmax at 280 nm with shoulder at 220 nm. Spectral match factor against USP EV RS = 0.9995 (1000-point scale: 999.5/1000).
- **Impurity peaks:** one at Rt 3.9 min (~0.08% area — free estradiol, below the 0.5% USP individual-impurity limit); nothing else above baseline noise.
- **Baseline:** flat, drift < 0.5 mAU over the 20 min run. No ghost peaks in the bracketing blank injections.
- **System suitability (from pre-run standard bracket):** Rs between EV and a spiked free-E2 probe = 12.4 (far above the USP ≥ 1.5 criterion); T = 1.08; N = 8,350; injection repeatability RSD = 0.6% (≤ 2.0%).

**Interpretation:**

Identity **PASS** (RT within 0.3% of standard; DAD match 0.9995; no shoulder). Purity (area-%) **PASS** — main peak 99.91% of integrated area above the 0.05% reporting threshold. Potency **99.2 ± 1.2%** of 40 mg/mL (back-calc from triplicate calibration; 3 preps × 3 injections), inside the 90-110% USP band. System suitability all criteria met.

**Report text (the actual line you'd write):**

> EV 40 mg/mL, vendor X lot 24Q3-117: PASS — identity confirmed by co-chromatography with USP RS (RRT 1.000) and DAD spectral match (similarity 0.9995); assay 99.2 ± 1.2% of label claim (n=3 preps × 3 inj); chromatographic purity 99.9% area; no impurity above 0.1%. Method: isocratic MeOH/H₂O 80:20 on C18 150×4.6×5 µm at 30 °C, 1.0 mL/min, UV 280 nm. System suitability: T=1.1, N=8,400, inj RSD=0.6%.

**Action:**

None. File the COA. This is what a clean run looks like.

**Key citation / anchor:**

- USP General Chapter <621> Chromatography — system suitability criteria (T ≤ 2.0, Rs ≥ 1.5, injection precision RSD ≤ 2.0%). [usp.org](https://www.usp.org/), accessed 2026-04-23.
- USP Estradiol Valerate Injection monograph — assay 90.0-110.0%, individual impurity ≤ 0.5%, total ≤ 2.0%. [usp.org](https://www.usp.org/), accessed 2026-04-23 (login-gated).
- Internal: [`../08-interpretation-qc/reading-chromatograms.md`](../08-interpretation-qc/reading-chromatograms.md) §4-7 for Rs/T/N/S-N definitions.

---

### Scenario 2 — Under-dosed vial (identity pass, potency fail)

**Sample:** 40 mg/mL estradiol valerate in grapeseed oil, from a new vendor with no prior testing history. Visually identical to Scenario 1: amber glass, clear liquid, no particulates.

**Method:** Identical to Scenario 1. Same calibration curve, same injection sequence, bracketed with USP RS standards.

**What you'd see on the screen:**

- **Retention time:** 8.21 min (n=9, RSD 0.1%). RRT vs USP EV RS = 1.001. **Same Rt as Scenario 1.**
- **Peak area:** ~850,000 mAU·s (vs ~1,250,000 expected for on-label 40 mg/mL). Inter-injection RSD = 0.7%.
- **Peak shape:** Gaussian, T = 1.12, N = 8,300. Nothing mechanically wrong.
- **DAD spectrum at peak apex:** λmax 280 nm, shoulder 220 nm. Match factor against USP EV RS = 0.9994. **Indistinguishable from a pass sample.**
- **Impurity peaks:** same low background as Scenario 1. ~0.1% free E2 at Rt 3.9 min; nothing else.
- **Baseline:** clean. No ghosts.
- **Back-calculation from calibration:** 27.2 µg/mL on-column → 27.2 mg/mL in the vial (after 1:1000 dilution) → **68.0% of the 40 mg/mL label claim**.

**Interpretation:**

Identity **PASS** — unambiguously EV; chromatogram clean, DAD match top-tier. Purity **PASS** by area-%. Potency **FAIL** — 68% of label is far below the 90% lower USP limit. Vial is under-dosed by 32%.

Three benign explanations to rule out before calling fraud:
1. **Precipitation / crystallization** — EV has limited solubility in some carriers at low temp; if refrigerated it can crystallize, and supernatant-drawn aliquots read low. Warm to 37 °C, shake, re-sample.
2. **Dilution error at prep.** Re-pipette the 1:1000 with fresh glassware in duplicate.
3. **Calibration drift.** Bracket with fresh RS standards.

If all three repeat, the vial is genuinely under-dosed.

**Report text (the actual line you'd write):**

> EV 40 mg/mL, vendor Y lot 2026-03-A: FAIL (under-dosed) — identity confirmed (RRT 1.001, DAD match 0.9994, no impurity above 0.1%), but assay 68.0 ± 0.9% of 40 mg/mL label claim (n=3 preps × 3 inj; repeated after vial warming and fresh calibration). Observed concentration ~27.2 mg/mL. Vial contains genuine estradiol valerate at roughly two-thirds labelled strength. Caution advised: dosing by labelled volume will under-deliver by ~32%.

**Action:**

Re-run the vial after warming and mixing (rule out precipitation). Re-prep the dilution with fresh glassware (rule out prep error). Re-calibrate with fresh RS (rule out curve drift). If all three confirm, flag the vendor and publish. See [`../08-interpretation-qc/purity-vs-potency.md`](../08-interpretation-qc/purity-vs-potency.md) for why this is the most common community-lab finding (vendor vial-fill QC is the weakest step in most homebrew supply chains).

**Key citation / anchor:**

- USP Estradiol Valerate Injection monograph — assay 90.0-110.0% acceptance band. [usp.org](https://www.usp.org/), accessed 2026-04-23 (login-gated). **Confidence C2** (pharmacopoeial spec, stable).
- Internal: [`../08-interpretation-qc/purity-vs-potency.md`](../08-interpretation-qc/purity-vs-potency.md) §"Worked example" for the parallel 99.5%-purity / 92%-potency case.

---

### Scenario 3 — Wrong ester substitution (EEn sold as EV)

**Sample:** Vial labelled "estradiol valerate 40 mg/mL in grapeseed oil." Vendor is newly appeared on the community lists. Visually: clear, pale yellow, no particulates — identical appearance to Scenarios 1 and 2. Nothing on the label betrays a substitution.

**Method:** Identical to Scenario 1.

**What you'd see on the screen:**

- **Retention time:** single dominant peak at **Rt 9.6 min**, not the expected ~8.2 min. (RRT vs USP EV RS = 1.17.) This is 1.4 min *later* than EV on this method.
- **Peak area:** ~1,180,000 mAU·s — close to the expected on-label response, which is a trap: potency by area alone *against the EV standard curve* would back-calc to ~37 mg/mL and superficially look fine.
- **Peak shape:** Gaussian, T = 1.14, N = 8,100. Mechanically a fine peak.
- **DAD spectrum at peak apex:** λmax 280 nm, shoulder 220 nm. Spectral match against USP EV RS = 0.996. **This is the gotcha** (round-2 correction R2-M13: earlier draft used 0.985, which would already fail DD1's identity threshold of ≥ 0.998 — 0.996 is the more honest value for sibling-ester match and still passes a loose DAD-alone check, so the lesson "DAD match cannot distinguish sibling esters" remains load-bearing; identity is caught on retention time in DD1). All estradiol esters share the A-ring aromatic chromophore. DAD cannot distinguish estradiol valerate from estradiol enanthate from estradiol cypionate — their UV spectra are essentially identical because the ester carbonyl is far from the chromophore and adds only a small perturbation. See [`../08-interpretation-qc/identity-confirmation.md`](../08-interpretation-qc/identity-confirmation.md) §"DAD spectral match."
- **Standard co-injection / bracket:** inject USP EV RS at 40 µg/mL — you see EV at 8.20 min. Inject sample — peak at 9.60 min. Inject a 50/50 mix (sample + RS) — **two separate peaks**, Rs ≈ 4.1. These are definitely different compounds.

**Interpretation:**

Identity — **FAIL for EV**. The sample is not estradiol valerate.

Candidate identification by C18 retention order (more lipophilic ester = later):

| Candidate | Ester chain | Order vs EV | Plausibility |
|---|---|---|---|
| Estradiol benzoate (EB) | aromatic C₆H₅CO | earlier, different DAD | LOW |
| Estradiol enanthate (EEn) | heptanoyl (C7) | slightly later | **HIGH** |
| Estradiol cypionate (EC) | cyclopentylpropanoyl | considerably later | possible |
| Estradiol undecylate (EUn) | undecanoyl (C11) | much later | unlikely at 1.4 min shift |

EEn is the community-favorite homebrew ester (see [`../01-existing-services/testing-trans-diy.md`](../01-existing-services/testing-trans-diy.md)), making mislabelled-EEn-as-EV the likeliest substitution. A 1.4-min shift is consistent with the C5→C7 chain extension.

**LC-MS confirmation (if you have it):**

- Expected [M+H]⁺ for EV (C₂₃H₃₂O₃) = **357.2**
- Expected [M+H]⁺ for EEn (C₂₅H₃₆O₃) = **385.3**
- Expected [M+H]⁺ for EC (C₂₆H₃₆O₃) = **397.3**
- Expected [M+H]⁺ for EB (C₂₅H₂₈O₃) = **377.2**

If the mystery peak gives [M+H]⁺ = 385.3, it's estradiol enanthate. See [`../08-interpretation-qc/identity-confirmation.md`](../08-interpretation-qc/identity-confirmation.md) §"LC-MS confirmation" for the full m/z table.

Without MS, you'd also want to run a known EEn reference standard (if you have one) and see if it co-elutes at 9.60 min. If yes: confirmed EEn. If no: unknown ester, hold.

**Report text (the actual line you'd write):**

> Sample labelled "estradiol valerate 40 mg/mL" (vendor Z lot 2026-04-17): IDENTITY FAIL — the main peak elutes at RRT 1.17 vs USP EV RS, not within the ±0.5% co-chromatography window for EV. DAD match 0.985 is consistent with an estradiol-class chromophore but does not confirm EV specifically (all estradiol esters share the A-ring UV profile). Co-injection with USP EV RS shows two resolved peaks (Rs ≈ 4.1). Most probable identity: estradiol enanthate, pending LC-MS ([M+H]⁺ expected 385.3) or co-chromatography with an EEn reference. This vial does **not** contain the labelled compound. Potency cannot be reported against EV calibration.

**Action:** LC-MS the main peak for [M+H]⁺. If MS unavailable, order USP EEn RS and re-run with co-injection. Do **not** report potency against the EV calibration (molar response at 280 nm is similar but not identical across esters). Flag vendor. Advise sample owner that labelled-EV dose delivers a different ester with distinct PK (EEn t½ ~6-8 d vs EV ~4 d).

**Key citation / anchor:**

- [M+H]⁺ table and rationale: [`../08-interpretation-qc/identity-confirmation.md`](../08-interpretation-qc/identity-confirmation.md) §"LC-MS confirmation."
- Retention-order discussion: [`../08-interpretation-qc/impurities-to-watch.md`](../08-interpretation-qc/impurities-to-watch.md) §"Estradiol cypionate," §"Estradiol enanthate."
- **Confidence C3** for the specific Rt shift magnitude (instrument-dependent); **C2** for the retention-order principle (more lipophilic ester = later elution on C18 RP); **C2** for the [M+H]⁺ values (from exact-mass calculation, not measurement).

---

### Scenario 4 — Contaminated vial: oxidation product + plasticizer leach

**Sample:** EV 40 mg/mL in grapeseed oil, from a vendor with an older production date (~18 months old) and a history of bulk batching. Stored at room temperature in the vendor's warehouse. No refrigeration, no nitrogen blanket. Visually: straw-yellow, slightly darker than fresh product. Faint rubber smell on opening.

**Method:** Identical to Scenario 1.

**What you'd see on the screen:**

- **Main peak:** EV at Rt 8.22 min, area ~1,170,000 mAU·s, T = 1.15, N = 8,000. **~95% of total integrated area.**
- **Early peak #1:** Rt 3.85 min, area ~25,000 mAU·s (~2.0% of total). DAD spectrum: λmax 280 nm, shoulder 220 nm, match against USP estradiol RS = 0.997. This is **free estradiol** (hydrolysis product).
- **Early peak #2:** Rt 4.35 min, area ~12,000 mAU·s (~1.0% of total). DAD spectrum: broad absorbance ~280 nm with secondary feature near 310 nm — a conjugated ketone. Match against estrone reference (if run) = 0.994. This is **estrone** (oxidation of the C17 hydroxyl of estradiol).
- **Late peak:** Rt 15.2 min, area ~37,000 mAU·s (~3.0% of total). DAD spectrum: flat absorbance 220-280 nm, no steroid-like chromophore at all. UV profile is plausibly **a phthalate plasticizer** (dibutyl phthalate or bis(2-ethylhexyl) phthalate; phthalates absorb around 225 nm with minor features to 275 nm).
- **Baseline:** clean between peaks, slight drift after 15 min from the phthalate tail.
- **System suitability:** still passes (T = 1.15, N = 8,000, Rs between main and estrone = 17.8).

**Total chromatographic composition:**

| Peak | Rt (min) | Area % | Identity (tentative) | DAD match | Source |
|---|---|---|---|---|---|
| 1 | 3.85 | 2.0 | Free estradiol | 0.997 vs E2 RS | EV hydrolysis |
| 2 | 4.35 | 1.0 | Estrone | 0.994 vs E1 RS | E2 oxidation at C17 |
| 3 | 8.22 | 94.0 | EV | 0.9995 vs EV RS | intact API |
| 4 | 15.2 | 3.0 | Phthalate (plasticizer) | N/A (no matching RS library) | stopper leach |

**Interpretation:**

Identity — **PASS**. Main peak is unambiguously EV by RT and DAD.

Purity (area-%) — **~94%**. That's below the USP 98% purity threshold that Finnrick uses as a hard cut (per [`../01-existing-services/finnrick.md`](../01-existing-services/finnrick.md)) but within the ~90% threshold that some community labs accept for bulk injectable material. **Caveat:** area-% purity at 280 nm underweights the phthalate, which absorbs less than steroids at 280 nm. The true mass fraction of phthalate in the vial is probably higher than 3%.

Potency — back-calculate the EV peak area (~1,170,000) against the EV calibration curve: ~37.4 mg/mL, or ~93.5% of 40 mg/mL label claim. Within the 90-110% USP band but marginal.

**The three findings and what they mean:**

1. **Estrone 1.0%** — oxidation of the C17-β-OH to the ketone. Driven by headspace O₂ + warm storage. Vendor should nitrogen-purge.
2. **Free E2 2.0%** — ester hydrolysis from water ingress or age. Not alarming alone, but combined with oxidation it signals poor storage.
3. **Phthalate ~3%** — stopper/closure leach. Rubber septum material transferring plasticizer into oil. Phthalates are endocrine disruptors; consensus is they should not be in injectables. **Clinically the most concerning finding.**

**Report text (the actual line you'd write):**

> EV 40 mg/mL, vendor W lot 2024-10-03: IDENTITY PASS, PURITY MARGINAL, CONTAMINATION FLAG. Main peak confirmed EV (RRT 1.000, DAD 0.9995, assay 93.5% of label). However, chromatographic purity is only 94% by area at 280 nm due to three co-eluting impurities: free estradiol (2.0%, hydrolysis), estrone (1.0%, oxidation of the C17 position), and a late-eluting peak at Rt 15.2 min (3.0% area, UV spectrum consistent with a phthalate plasticizer — likely stopper leach). The phthalate finding is the most significant: phthalates are not pharmacologically inert. Recommendation: do not use; storage/closure are compromised. Vendor should be notified about stopper compatibility and nitrogen-blanket headspace.

**Action:** Run a MeOH blank through the same HPLC vial to rule out lab-side plasticizer. If 15.2-min peak persists in blank, contamination is your lab, not the sample. If vial-origin confirmed: LC-MS the late peak ([M+H]⁺ DBP=279, DEHP=391). Advise sample owner: **do not inject**. Flag vendor for storage/closure issues.

**Key citation / anchor:**

- USP <661> Plastic Packaging Systems — extractables and leachables, including phthalates. [usp.org](https://www.usp.org/), accessed 2026-04-23.
- Estradiol C17 oxidation to estrone under aerobic conditions: documented in steroid-stability literature; Thevis & Schänzer, *J. Mass Spectrom.*, multiple reviews.
- Internal: [`../08-interpretation-qc/impurities-to-watch.md`](../08-interpretation-qc/impurities-to-watch.md) §"Oxidized EV," §"Oil-carrier interference."
- **Confidence C3** for the specific Rt 15.2 min of a phthalate on this method (highly lot-dependent); **C2** for the principle that phthalates leach from non-compatible rubber closures.

---

### Scenario 5 — Process-impurity profile (the realistic "good homebrew" case)

**Sample:** EV 40 mg/mL in MCT oil, from a community-respected homebrewer with a reputation for careful recrystallization. Fresh batch (<3 months old). Visually pristine: water-clear, no color cast.

**Method:** Identical to Scenario 1 but integration set to a lower reporting threshold of 0.05% area to pick up trace process impurities.

**What you'd see on the screen:**

- **Main peak:** EV at Rt 8.20 min, area ~1,240,000 mAU·s, T = 1.08, N = 8,500. **~99.3% of integrated area above 0.05%.**
- **Six small peaks, all in the 0.1-0.3% range:**

| # | Rt (min) | Area % | Plausible identity | DAD notes |
|---|---|---|---|---|
| 1 | 2.15 | 0.10 | valeric acid (pentanoic acid) | UV-transparent; this is on the edge of detection |
| 2 | 4.08 | 0.22 | free estradiol (E2) | λmax 280, matches E2 RS |
| 3 | 4.55 | 0.12 | estrone (E1) | λmax 280 with 310 shoulder |
| 4 | 5.90 | 0.08 | estriol-related (E3 or an E3 ester trace) | λmax 280 |
| 5 | 7.85 | 0.30 | **estradiol 3-valerate** (regioisomer — acyl on the A-ring phenolic hydroxyl rather than the C17 position) | λmax slightly shifted ~275 because the aromatic OH is esterified, breaking conjugation with the ring slightly |
| 6 | 8.55 | 0.15 | unknown, likely a process methylene impurity | λmax 280, match to EV 0.993 |

- **Total impurity:** ~1.0% (sum of peaks 1-6). Individual max = 0.30% (the 3-valerate regioisomer at 7.85 min).
- **Baseline:** flat, clean blanks bracketing.
- **System suitability:** T = 1.08, N = 8,500, Rs between peak 5 (regioisomer at 7.85) and main EV peak (8.20) = **1.6**. Just above the USP ≥ 1.5 cutoff — the integration of the 3-valerate regioisomer is reliable but close to the limit.

**Interpretation:**

Identity — **PASS** on the main peak.

Purity — **PASS**. 99.3% area purity, well above any community-lab threshold. Total impurities 1.0% is below the USP 2.0% total limit. All individual impurities ≤ 0.5% individual limit.

The *identities* of impurities are diagnostic of synthesis route:

- **Estradiol 3-valerate 0.30%** is the tell. Standard EV synthesis acylates C17β-OH selectively (aliphatic secondary OH is more nucleophilic than the A-ring phenol), but aggressive conditions (excess acyl chloride, heat, pyridine) yield some 3-valerate. 0.3% is normal process; >2% implies aggressive esterification without phenol protection.
- **Free E2 0.22%** — residual starting material.
- **Estrone 0.12%** — oxidation residue from workup.
- **Valeric acid 0.1%** — residual acyl reagent.
- **Peak 4 (estriol-related) 0.08%** — possible C16-hydroxylation or precursor stream carryover.
- **Peak 6 (unknown at 8.55)** — co-elutes near EV with DAD match 0.993 (above 0.99 but not 0.998). Could be 17α-epimer or 3,17-divalerate partial; LC-MS would resolve.

**Report text (the actual line you'd write):**

> EV 40 mg/mL, homebrewer H lot 2026-02-12: PASS. Identity confirmed (EV, RRT 1.000, DAD 0.9995). Chromatographic purity 99.3% area at 280 nm with the following trace impurities: free E2 0.22%, estrone 0.12%, estradiol 3-valerate regioisomer 0.30% (Rs=1.6 vs main peak), plus three peaks each ≤ 0.15%. All individual impurities < 0.5% and total impurities ~1.0%, meeting USP injection monograph limits. Assay 99.0 ± 1.1% of 40 mg/mL label. No action required. The impurity profile is consistent with careful homebrew synthesis; the 0.3% 3-valerate regioisomer is a normal process impurity that disappears only with orthogonal phenol protection.

**Action:**

None beyond filing the COA. This is a *good* result and typical of a careful synthesis. The unknown at peak 6 is worth LC-MS confirmation on a future run if the instrument is available, but the total impurity load is well within spec.

**Key citation / anchor:**

- USP injection monograph impurity limits: individual ≤ 0.5%, total ≤ 2.0%. [usp.org](https://www.usp.org/), accessed 2026-04-23.
- Regioselectivity of steroid esterification: discussed in Hendrickson et al., *Steroids* (various years) and standard practice in any steroid-chemistry text.
- Internal: [`../08-interpretation-qc/impurities-to-watch.md`](../08-interpretation-qc/impurities-to-watch.md) §"Clandestine-synthesis process impurities."
- **Confidence C3** for the specific Rt of the 3-valerate regioisomer (method-dependent); **C2** for its existence as a process impurity.

---

### Scenario 6 — Oxidized peptide (semaglutide, LC-MS)

**Sample:** Semaglutide 10 mg/mL reconstituted in bacteriostatic water, from a gray-market vendor new to the community. Peptides generally ship as lyophilized powder; this vial was reconstituted by the owner 14 days ago, stored at 4 °C. Visually: clear, no particulates.

**Method:** Peptide conditions — different from the EV method. C18 150 × 2.1 mm, 3.5 µm (narrow bore for better MS sensitivity); gradient 20-60% acetonitrile / water + 0.1% formic acid over 15 min; 0.3 mL/min; 40 °C; 5 µL injection; UV 214 nm (peptide backbone) and 280 nm (Trp/Tyr); MS coupled (ESI+) with scan range 500-2000 m/z.

**What you'd see on the screen:**

- **UV 214 nm trace:** two peaks in the analyte region.
  - Main peak: Rt 9.83 min, area 94.0% of total integrated area.
  - Minor peak: Rt 9.48 min, area 6.0%. Early shoulder-ish but baseline-resolved with Rs ≈ 1.8.
- **UV 280 nm trace:** both peaks visible because semaglutide contains Trp and Tyr. Ratio A280/A214 approximately 0.10 for the main peak; 0.12 for the minor peak — a slight increase that's consistent with a modified aromatic residue.
- **Total ion chromatogram (MS):** tracks the UV 214 trace.
- **MS extracted-ion chromatograms (EIC):**
  - **Main peak (Rt 9.83):** dominant charge state [M+3H]³⁺ at **m/z 1372.2**; secondary [M+4H]⁴⁺ at m/z 1029.4. Deconvoluted mass = 4113.6 Da. **This matches semaglutide** (theoretical monoisotopic mass 4111.1 Da; average mass 4113.6 Da — labels vary, but 4113 is the standard reported average MW).
  - **Minor peak (Rt 9.48):** dominant [M+3H]³⁺ at **m/z 1377.5**; secondary [M+4H]⁴⁺ at m/z 1033.4. Deconvoluted mass = 4129.6 Da. **Δmass = +16.0 Da vs main peak.**

**Interpretation of the +16 Da:**

+16 Da is the most common peptide-QC degradation shift. Semaglutide contains no methionine, so the naive "+16 = Met-O" assumption is wrong here. It does contain **Trp25, Tyr19, His7**. Trp oxidation (+16 hydroxytryptophan or +32 N-formylkynurenine) is the likeliest assignment. His→2-oxo-histidine (+16) and Tyr→DOPA (+16) are alternatives. The slight increase in A280/A214 ratio for the minor peak is consistent with altered aromatic chromophore (kynurenine absorbs further red than Trp). Definitive assignment needs MS/MS residue-localization.

**Quantification:**

- Main peak 94% area at 214 nm (the standard peptide wavelength; backbone amide bond, not residue-specific). Semaglutide mass concentration back-calculates to ~9.4 mg/mL against a pure reference — within 90-110% of the 10 mg/mL label.
- Oxidized impurity at 6% area is above the typical USP biologics limit of ≤ 2.0% individual unspecified impurity (USP General Chapter <1055> Biotechnology-Derived Articles and related monographs).

**Report text (the actual line you'd write):**

> Semaglutide 10 mg/mL, vendor P lot 26P-004: IDENTITY PASS, PURITY MARGINAL. Main peak at Rt 9.83 min confirmed as semaglutide by LC-MS: observed deconvoluted mass 4113.6 Da matching theoretical; [M+3H]³⁺ = 1372.2. Assay ~94% of 10 mg/mL label (based on 214 nm area against a semaglutide reference). A 6% oxidized impurity is present at Rt 9.48 min with deconvoluted mass 4129.6 Da (+16.0 Da), baseline-resolved from the main peak (Rs ≈ 1.8). Mass shift is consistent with side-chain oxidation — most probably tryptophan (Trp25) given that semaglutide contains no methionine. The 6% impurity level exceeds the typical USP ≤2% biologics single-impurity limit. Recommend: store at 2-8 °C, shield from light, use within 30 days of reconstitution. Fresh vial from same vendor should be tested to determine whether oxidation is vendor-side or user-side post-reconstitution.

**Action:** MS/MS to localize +16 if bandwidth permits. Recommend sample owner discard and reconstitute fresh. Test an unopened vial from the same lot to distinguish vendor-side (synthesis/storage) from user-side (post-reconstitution) oxidation; flag vendor only if the former.

**Key citation / anchor:**

- Semaglutide monoisotopic/average mass: Novo Nordisk product specifications; Wikipedia semaglutide entry, accessed 2026-04-23 (**C2** — widely cross-referenced).
- USP <1055> Biotechnology-Derived Articles and related monographs on peptide impurity limits: [usp.org](https://www.usp.org/), accessed 2026-04-23.
- Trp oxidation in peptide pharmaceuticals: Hipper et al., *Pharmaceutics* 2021 (and many similar reviews).
- Internal: [`../08-interpretation-qc/identity-confirmation.md`](../08-interpretation-qc/identity-confirmation.md) §"LC-MS confirmation"; [`../08-interpretation-qc/impurities-to-watch.md`](../08-interpretation-qc/impurities-to-watch.md) §"GnRH analogs — peptide impurities."
- **Confidence C2** for the Δmass = +16 = single-oxygen interpretation; **C3** for the specific residue assignment without MS/MS.

---

### Scenario 7 — Ghost peaks in a blank injection

**Sample:** Nothing. Blank injection of mobile phase only (no sample, no reference standard) run during a system-check at the start of a batch.

**Method:** Baseline method (Scenario 1 conditions). 10 µL of filtered mobile phase from the same reservoir feeding the pumps.

**What you'd see on the screen:**

- **Void-volume peak:** at Rt ~1.2 min, area 4,000-8,000 mAU·s. This is the unretained-volume marker — always present on any injection. Normal.
- **Peak at Rt 6.5 min:** area ~5,000 mAU·s, T = 1.4, N = 4,200. **Consistent: appears in every blank over the last 10 runs.** DAD spectrum: λmax ~230 nm, no steroid-like profile.
- **Peak at Rt 11.3 min:** area ~3,000 mAU·s, T = 1.6, N = 3,800. **Also consistent**. DAD spectrum: flat, featureless.
- **Baseline:** slight rising drift ~1 mAU/min between 8 and 14 min.

**Interpretation — where ghost peaks come from:**

A ghost peak is a peak in a *blank* — anything detected when the vial is supposedly empty. Canonical causes, descending frequency:

1. **Mobile-phase contamination.** Aged methanol (opened > 4–8 weeks, bench-stored) accumulates trace aldehydes and non-volatile residues from repeated air exposure. (Peroxide formation is an ether problem, not a methanol problem — earlier draft overstated the peroxide angle.) HPLC-grade water picks up organic leachables from plastic bottle liners and aged DI resin. **By far the most common cause.**
2. **Column bleed / carryover.** Heavy prior injection retained on column, slowly bleeds off. Extended MeOH/ACN flush between batches eliminates.
3. **Injector/autosampler carryover.** Needle, loop, or rotor-seal residue. Multi-solvent strong-wash fixes.
4. **In-line filter fouling.** Particulate accumulation. Replace routinely.
5. **Pump seal wear.** Rare; old pumps leak between channels.
6. **Plasticizer leach from tubing** — non-PEEK lab-plastic swaps cause this.
7. **Solvent-line cross-contamination** during priming. Rare.

**Differential diagnosis here:** The two ghosts reproduce in every blank and survive column-only flushes (rules out 3 and 4); they don't grow after heavy injections (rules out 2); they disappear when mobile phase is replaced with fresh MeOH + fresh water (confirms 1). Aged methanol is the culprit — the 6.5-min peak is typical of MeOH aldehyde byproducts.

**Impact on sample runs:** At 5,000 mAU·s, each ghost is ~0.4% of a typical 1,250,000 mAU·s main peak — **negligible for main-peak quant** but **possibly misassigned as an impurity** at the 0.1% reporting level. In Scenario 5 (impurity profile at 0.3%), the ghosts wouldn't collide with the 3-valerate regioisomer at 7.85 min, but chasing a 0.2% peak at 6.5 min would be a wasted day.

**Report text (the actual line you'd write):**

> System-suitability blank (MeOH/H₂O 80:20, 10 µL) run 2026-04-23 08:15: two consistent peaks at Rt 6.5 min (0.4% of typical main-peak response) and Rt 11.3 min (0.2%), reproducible across ten consecutive blanks. DAD spectra are not steroid-like. Source traced to aged methanol (opened > 10 weeks, stored at bench temperature). Mobile phase replaced with fresh HPLC-grade MeOH from a sealed bottle; repeat blanks clean. Runs from 2026-04-15 to 2026-04-22 should be reviewed for any sample impurity quant at Rt 6.5 or 11.3 that may have been mobile-phase ghosts.

**Action:** Replace mobile phase with fresh solvents; run 5-95% MeOH gradient over 30 min to reset the column; re-run blanks until clean. Review the last week's impurity-level data for any Rt 6.5 or 11.3 min peaks — flag for re-run. Institute mobile-phase shelf-life SOP (rule-of-thumb; not a pharmacopoeial spec): MeOH opened > 4–8 weeks discard (tighter for LC-MS work); water opened > 1 week discard. See [`./sop-estradiol-valerate-hplc.md`](./sop-estradiol-valerate-hplc.md) for handling.

**Key citation / anchor:**

- Dolan, "Ghost Peaks" column series in *LCGC North America* — canonical troubleshooting reference; ~2000-2020, multiple installments.
- USP General Chapter <1058> Analytical Instrument Qualification — mobile-phase handling best practices. [usp.org](https://www.usp.org/), accessed 2026-04-23.
- Internal: [`../08-interpretation-qc/reading-chromatograms.md`](../08-interpretation-qc/reading-chromatograms.md) §8 "Spotting fakes and bad runs."

---

### Scenario 8 — A dying column (tracked over 200 injections)

**Sample:** Not a single run — a trend across 250 injections of mixed samples (mostly EV and TEn oil injectables) run over six months on the same C18 150×4.6×5 µm column. What follows is what the system-suitability log shows as the column ages.

**Method:** Baseline method throughout. System suitability run at the start of each batch: a USP EV RS standard at 40 µg/mL, n=5 injections, with T, N, Rs (vs spiked E2), and RRT recorded.

**What you'd see on the screen (trend across 250 injections):**

| Injection # | Rt (min) | Tailing T | Plates N | Rs (EV vs E2) | RSD % of area |
|---|---|---|---|---|---|
| 1 (new column) | 8.20 | 1.08 | 8,400 | 12.5 | 0.6 |
| 50 | 8.20 | 1.10 | 8,300 | 12.3 | 0.7 |
| 100 | 8.15 | 1.25 | 7,200 | 10.8 | 0.9 |
| 150 | 8.05 | 1.55 | 5,800 | 8.2 | 1.3 |
| 200 | 7.95 | 1.85 | 4,400 | 5.9 | 1.8 |
| 250 | 7.80 | 2.30 | 3,500 | 4.1 | 2.5 |

Also progressively worse over the six months:

- **Peak shape:** from crisp Gaussian at injection 1 to visibly tailed (post-apex tail extending 1-2 min) at injection 250.
- **Peak at 0.3% impurity level:** Peak 5 in Scenario 5 (the 3-valerate regioisomer at Rt 7.85) had Rs = 1.6 vs main peak on a fresh column. By injection 200 the same sample shows Rs ≈ 1.2 — the regioisomer is now merging with the main EV peak and integration splits are unreliable.
- **Pressure:** creep upward from ~120 bar at new-column equilibration to ~155 bar at injection 250. That's a ~30% pressure rise, a classic sign of bed head fouling or frit clogging.
- **Baseline noise:** slight increase; not dramatic but visible.

**Interpretation:**

Columns don't fail instantly — they degrade along several axes at once:

- **N drop** (8,400 → 3,500, −58%): dominant early indicator. USP <621> ~2,000-plate floor is marginally met at injection 250.
- **T rise** (1.08 → 2.30): crosses USP ≤ 2.0 around injection 220 — **the first hard system-suitability failure.**
- **Rt drift** (8.20 → 7.80, −5%): large enough to bite a ±0.5% ID tolerance. Purity/potency at injection 250 isn't directly comparable to injection 1.
- **Rs drop** (12.5 → 4.1): for closely-eluting pairs like the Scenario 5 3-valerate regioisomer (Rs 1.6 → ~0.8 at injection 200), integration goes unreliable long before the headline Rs fails.
- **Pressure rise** (~30%): head-of-column fouling.

**Root causes:** (1) slow silica hydrolysis (stable at pH 2-8; this method is ~pH 7, slow erosion); (2) oil-matrix fouling — dilute-and-shoot from 40 mg/mL injectable drops ~40 ng MCT per 10 µL injection, which adsorbs progressively (**main culprit in HRT testing**); (3) particulate accumulation on the head frit; (4) cumulative mechanical wear from ~250 × 120 bar cycles.

**Which mechanism fingerprinted by the trend (round-2 clarification R2-M14):** the specific combination above — **Rt decrease + T increase + N collapse + ΔP rise** — points specifically to **bed-void formation + head-frit fouling** (oil-matrix particulates compacting/voiding the packed bed), not generic silanol-mediated aging. Silanol exposure typically leaves neutral-steroid Rt roughly flat or slightly increased (not decreased). This matters because remediation is different: for bed-voiding, a guard cartridge + 0.5 µm in-line filter + LLE prep prevent recurrence; for silanol-driven tailing, re-endcapping chemistry or a different column class is the fix.

**Life extension:** guard column (10-20 mm cartridge of matching phase, replaced every 50-100 injections — single biggest win, $150-250 holder + $30-50 per cartridge); in-line filter on autosampler side; **LLE sample prep instead of dilute-and-shoot** (see [`../08-interpretation-qc/oil-formulation-sample-prep.md`](../08-interpretation-qc/oil-formulation-sample-prep.md)); end-of-day wash (95% MeOH 20 min, 95% IPA 10 min, back to storage); proper storage (50:50 MeOH:water or 100% MeOH, never pure water).

**Typical lifetimes:** clean small-molecule in acidified buffer ~1,000-2,000 injections; **oil-matrix dilute-and-shoot without guard: ~200-300 injections** (Scenario 8's regime); oil-matrix with guard + LLE: ~600-1,000.

**When to replace:** hard trigger — any single SST parameter fails (T > 2.0, Rs < 1.5, N < 2,000, inj RSD > 2%). Soft trigger — N drops > 50% from new, Rt drift > 5%, or pressure > 50% above baseline. Replacement budget: **$150-400** for Luna C18(2) or ZORBAX Eclipse Plus 150×4.6×5 µm via Phenomenex, Agilent, or eBay/LabX lab-liquidation listings.

**Report text (the actual line you'd write):**

> Column retirement log 2026-04-23: Phenomenex Luna C18(2) 150×4.6×5 µm, serial XYZ, installed 2025-10-15. Retired at injection #250 after tailing factor of USP EV RS bracket standard exceeded 2.0 (T = 2.30). Plates reduced to 3,500 (58% loss from new; still > 2,000 minimum but minimal margin). Rt drift of main EV peak from 8.20 to 7.80 min (-5%). Rs between EV and 3-valerate regioisomer degraded from 1.6 to ~0.8 — impurity-level integration unreliable after injection ~180. Replacement installed 2026-04-23, re-qualified with USP EV RS at T=1.10, N=8,350. All data from runs between 2026-04-10 and 2026-04-22 flagged for review; impurity quant re-run as needed.

**Action:** Monthly SST trend review (plot T and N vs injection #); order a replacement when T > 1.5 or N < 5,000 (lead time 1-2 weeks). Replace guard cartridge every 50-100 injections or any time pressure rises > 20% above baseline. Re-qualify every new column with the RS bracket; document T, N, Rs, Rt. Retain retired columns until affected data is re-verified or audit-closed. **Don't trust impurity-level numbers from the last ~50 injections of a dying column** — re-run anything heading to a published COA on the fresh column.

**Key citation / anchor:**

- USP General Chapter <621> Chromatography — system suitability acceptance criteria (T ≤ 2.0, Rs ≥ 1.5, N ≥ 2,000 typical floor). [usp.org](https://www.usp.org/), accessed 2026-04-23.
- Agilent ZORBAX column product documentation — expected plate counts for 150 mm 5-µm columns (8,000-15,000 plates). [agilent.com](https://www.agilent.com/en/product/small-molecule-columns/reversed-phase-hplc-columns/zorbax), accessed 2026-04-23.
- Phenomenex Luna column user guide — recommended guard column use and expected lifetime for oil-matrix applications. [phenomenex.com](https://www.phenomenex.com/), accessed 2026-04-23.
- Dolan, "LC Troubleshooting" column, *LCGC North America* — multiple installments on column lifetime.
- Internal: [`../08-interpretation-qc/reading-chromatograms.md`](../08-interpretation-qc/reading-chromatograms.md) §5-6 for T and N definitions; [`./sop-estradiol-valerate-hplc.md`](./sop-estradiol-valerate-hplc.md) for the full SOP (parallel deliverable).
- **Confidence C2** for the principle that oil-matrix injection shortens column life; **C3** for the specific 200-300 injection number.

---

## Cross-reference map (which scenario teaches what)

| If you want to understand… | Scenario | Key finding |
|---|---|---|
| What a clean run looks like | 1 | Textbook EV pass |
| Why potency can fail with a clean chromatogram | 2 | Area shrinks, everything else looks normal |
| Why DAD match isn't enough for ester ID | 3 | EEn mimics EV on DAD; Rt + LC-MS is the discriminator |
| What storage/closure failures look like | 4 | Free E2 + estrone + phthalate late-eluter |
| What careful homebrew looks like | 5 | Sub-1% total impurity with a 3-valerate regioisomer signature |
| How to read +16 on an LC-MS trace | 6 | Trp oxidation in a non-Met peptide |
| Where ghost peaks come from | 7 | Aged mobile phase, traced by blank reproducibility |
| How to catch column aging | 8 | T and N creep before hard failure |

## What this document doesn't cover (known gaps)

- **GC-MS chromatograms** — Trans Harm Reduction and some other labs publish these (per [`../01-existing-services/overview.md`](../01-existing-services/overview.md)) but the traces read differently (electron-impact fragmentation, Kovats indices). Separate walkthrough needed.
- **Anabolic-testosterone-specific cases.** The r/steroids / Janoshik community has a larger dataset of unusual substitutions (trenbolone sold as testosterone, underground ester blends). Not covered here; focus is HRT-first.
- **Preparative / semi-prep purification chromatograms** for homebrew recrystallization monitoring. Different method, different goals.
- **Peptide-specific MS fragmentation workflows** (MS/MS for residue-specific oxidation localization). Beyond scope of the baseline community-lab HPLC-DAD setup.
- **Actual numerical USP monograph RT and impurity specs** for EV, EEn, EC, etc. — USP monographs are login-gated and I have not verified specific numeric values beyond the general 90-110% assay and ≤0.5%/≤2.0% impurity limits, which are standard USP injection-monograph conventions but not quoted from the specific monograph.
- **Community COAs for comparison.** Janoshik publishes raw chromatograms alongside every COA; cross-reading one of their real EV traces against these scenarios would be valuable for future work. See [`../01-existing-services/finnrick.md`](../01-existing-services/finnrick.md) and [`../01-existing-services/overview.md`](../01-existing-services/overview.md) for raw-trace publishing practices.

---

## Sources

- **USP General Chapter <621> Chromatography** — system suitability criteria (tailing, resolution, plates, injection repeatability). [usp.org](https://www.usp.org/), accessed 2026-04-23.
- **USP General Chapter <1058> Analytical Instrument Qualification** — mobile phase handling, instrument qualification. [usp.org](https://www.usp.org/), accessed 2026-04-23.
- **USP General Chapter <661> Plastic Packaging Systems** — extractables including phthalates. [usp.org](https://www.usp.org/), accessed 2026-04-23.
- **USP <1055> Biotechnology-Derived Articles** and related peptide monographs — peptide purity conventions. [usp.org](https://www.usp.org/), accessed 2026-04-23.
- **USP Estradiol Valerate Injection monograph** — assay (90-110%) and related substances (individual ≤ 0.5%, total ≤ 2.0%). [usp.org](https://www.usp.org/), login-gated, accessed 2026-04-23.
- **Snyder, Kirkland & Dolan**, *Introduction to Modern Liquid Chromatography*, 3rd ed., Wiley 2010 — canonical source for Rs/T/N definitions and RP-HPLC principles.
- **Dolan**, "LC Troubleshooting" column, *LCGC North America* — multi-decade series; canonical references for ghost peaks, column lifetime, and diagnostic trends. [chromatographyonline.com](https://www.chromatographyonline.com/), accessed 2026-04-23.
- **Agilent ZORBAX and InfinityLab columns** product documentation — typical plate counts and lifetime expectations. [agilent.com](https://www.agilent.com/en/product/small-molecule-columns/reversed-phase-hplc-columns/zorbax), accessed 2026-04-23.
- **Phenomenex Luna** column user guide — guard column use, lifetime for oil-matrix applications. [phenomenex.com](https://www.phenomenex.com/), accessed 2026-04-23.
- **Hipper, Lebendiker, Nachbaur et al.**, "Tryptophan-Mediated Side Reactions Induced by Light Exposure During the Manufacturing of Protein Therapeutics," and similar peptide-oxidation reviews in *Pharmaceutics*, *J. Pharm. Sci.*, and *mAbs*, 2018-2023.
- **Novo Nordisk product specifications for semaglutide** — 4113.6 Da average mass; sequence; composition. Also cross-referenced via Wikipedia semaglutide entry, accessed 2026-04-23.
- **Internal cross-links:**
  - [`../08-interpretation-qc/reading-chromatograms.md`](../08-interpretation-qc/reading-chromatograms.md)
  - [`../08-interpretation-qc/purity-vs-potency.md`](../08-interpretation-qc/purity-vs-potency.md)
  - [`../08-interpretation-qc/impurities-to-watch.md`](../08-interpretation-qc/impurities-to-watch.md)
  - [`../08-interpretation-qc/identity-confirmation.md`](../08-interpretation-qc/identity-confirmation.md)
  - [`../08-interpretation-qc/oil-formulation-sample-prep.md`](../08-interpretation-qc/oil-formulation-sample-prep.md)
  - [`./sop-estradiol-valerate-hplc.md`](./sop-estradiol-valerate-hplc.md) (parallel deliverable — the underlying SOP)
  - [`../01-existing-services/finnrick.md`](../01-existing-services/finnrick.md), [`../01-existing-services/testing-trans-diy.md`](../01-existing-services/testing-trans-diy.md), [`../01-existing-services/overview.md`](../01-existing-services/overview.md) — community-lab reporting conventions.
