KOPENI ONE — Peptide Half-Life Audit Report
Date: 2026-10-22 Scope: Read-only audit of all stored peptide half-life data and every app-wide consumer Status: No records, protocols, doses, logs, or calculations modified. Awaiting approval.
Executive Summary
The database contains 38 peptide records with a single half_life_hours field — no unit, source, evidence, species, route, or formulation metadata. The half-life value feeds four separate inline implementations of the same decay model (level = dose × 0.5^(hours/half_life)), plus display surfaces and two AI-prompt contexts.
Findings:
- 3 verified mismatches where the stored value contradicts available pharmacokinetic evidence (GHRP-6, BPC-157, AOD-9604)
- 1 duplicate compound with two separate records (Bremelanotide / PT-141)
- 12 evidence-limited values for research peptides with no human PK data, where the stored value is a community estimate presented without caveat
- 4 minor discrepancies where the value is close but not exact to the authoritative source
- 15 values verified as consistent with available evidence
- 3 values with ambiguous/conflicting evidence needing explicit caveats (MK-677, GHK-Cu, Epitalon)
Structural issues:
- Single numeric field with no metadata (unit, source, species, route, evidence status)
- Decay model duplicated across 4 files instead of a shared authoritative source
- No distinction between elimination vs. terminal half-life, or human vs. animal evidence
- Duplicate compound record risks divergent frequency and metadata
Consumer Inventory
Consumers that READ half_life_hours for computation
| File | Role | Implementation |
|---|---|---|
src/lib/peptideLevels.js | Shared decay estimate (used by LevelsPreview) | Exported estimatePeptideLevels() — authoritative shared function |
src/pages/PeptideDashboard.jsx | Active count badge | Inline duplicate of decay model (L32-39) |
src/components/dashboard/CurrentLevels.jsx | Current levels card + display | Inline duplicate of decay model (L60-70) + displays half_life_hoursh |
src/components/dashboard/PeptideLevelsChart.jsx | Interactive chart | Inline duplicate of decay model (L182-189) + uses min half-life for time axis + displays value |
src/components/supplement/CurrentSupplements.jsx | Supplement decay (separate entity) | Inline decay using Supplement.half_life_hours |
src/components/supplement/SupplementLevelsChart.jsx | Supplement chart | Inline decay using Supplement.half_life_hours |
Consumers that DISPLAY half_life_hours
| File | Surface |
|---|---|
src/pages/PeptideDictionary.jsx (L159) | Detail panel: "Half-life: {h}h" |
src/components/forms/PeptideSelector.jsx (L89) | Selection card: "{h}h" |
src/components/dashboard/CurrentLevels.jsx (L198) | Level card: "{h}h" |
src/components/dashboard/PeptideLevelsChart.jsx (L90) | Chart stat: "{hrs} hrs" |
src/pages/PeptideLevels.jsx (L28) | Disclaimer: "Estimate based on half-life decay" |
src/pages/ProtocolBuilder.jsx (L370) | Protocol card: "Half-life: {h}hrs" |
src/components/dashboard/CycleManagementModal.jsx (L45) | Cycle summary |
src/components/tour/TourProvider.jsx (L67) | Tour copy |
src/pages/Help.jsx (L247) | FAQ copy |
Consumers that FEED half_life_hours to AI
| File | Role |
|---|---|
src/pages/ProtocolBuilder.jsx (L76) | Passes half-life to AI protocol-generation prompt |
src/components/dashboard/CycleManagementModal.jsx (L45) | Passes half-life to AI cycle-summary prompt |
Coach Integration
base44/functions/kopeniCoach/entry.ts and base44/shared/coachProvider.ts contain no direct half-life references. The Coach does not independently compute clearance or activity from half-life. However, peptide protocols and levels flow into Coach context via the dashboard's context_payload, so half-life-derived level estimates can indirectly inform Coach responses.
Complete Audit Table
Tier 1 — FDA-Approved / Clinically Characterized (Human PK Data)
| # | Compound | DB Value | Verified Value | Species/Route | Evidence | Source | Confidence | Recommendation |
|---|---|---|---|---|---|---|---|---|
| 1 | Semaglutide | 168 h | ~1 week (165 h) | Human / SC | Elimination half-life | FDA Wegovy label | High | ✅ Match — no change |
| 2 | Tirzepatide | 120 h | ~5 days (120 h) | Human / SC | Elimination half-life | FDA Mounjaro label; StatPearls | High | ✅ Match — no change |
| 3 | Retatrutide | 144 h | ~6 days (144 h) | Human / SC (Phase 2) | Elimination half-life | Phase 2 trial PK data | Moderate | ✅ Match — note range 6-8 days; 144 h is the lower bound |
| 4 | Bremelanotide (PT-141) | 2.5 h | 2.7 h (range 1.9-4.0) | Human / SC | Terminal half-life | FDA Vyleesi label; Wikipedia | High | ⚠️ Minor — update to 2.7 h with range metadata |
| 5 | Tesamorelin | 0.6 h (36 min) | 26-38 min (SC steady state) | Human / SC | Elimination half-life | FDA Egrifta label | High | ✅ Match — SC steady-state (26-38 min); note: single-dose IV is 8 min |
| 6 | Tesofensine | 216 h | 220 h (~9 days) | Human / Oral | Elimination half-life | Wikipedia; clinical trials | Moderate | ⚠️ Minor — update to 220 h |
| 7 | Ipamorelin | 2 h | 2 h | Human / SC | Terminal half-life | Gobburu et al. 1999, PMID 10496658 | High | ✅ Match — no change |
| 8 | Sermorelin | 0.2 h (12 min) | ~10-20 min | Human / SC | Elimination half-life | Eden Health; RxList | Moderate | ✅ Match — within reported range |
Tier 2 — Research Peptides with Published Human/Animal PK Data
| # | Compound | DB Value | Verified Value | Species/Route | Evidence | Source | Confidence | Recommendation |
|---|---|---|---|---|---|---|---|---|
| 9 | CJC-1295 with DAC | 192 h (8 d) | 5.8-8.1 days (139-194 h) | Human / SC | Elimination half-life (albumin-bound) | Teichman et al. 2006, PMID 16352683 | Moderate | ⚠️ Minor — within range; recommend 168 h (midpoint) or store as range |
| 10 | CJC-1295 w/o DAC (MOD GRF 1-29) | 0.5 h (30 min) | ~30 min | Human (estimated from D-Ala2 analog) / SC | Estimated half-life | PeptideSchedule | Low | ⚠️ Evidence-limited — extrapolated from related compound; no Mod GRF 1-29-specific human trial |
| 11 | GHRP-2 | 0.5 h (30 min) | 25-41 min (IV) | Human / IV | Elimination half-life | RCM Wiley | Moderate | ✅ Match (IV range includes 30 min); note: SC half-life unknown |
| 12 | GHRP-6 | 0.5 h (30 min) | 2.5 ± 1.1 h | Human / IV | Elimination half-life | PMID 23099431 | Moderate | ❌ MISMATCH — DB appears to use distribution half-life (7.6 min) or community estimate; elimination half-life is 2.5 h. Recommend correction to 2.5 h |
| 13 | Hexarelin | 1 h (60 min) | 75-120 min | Human / IV | Terminal half-life | Creative Peptides | Moderate | ⚠️ Minor — IV half-life is 75-120 min; DB says 60 min. Recommend 1.5 h |
| 14 | BPC-157 | 4 h | <30 min | Rat / Dog (IV, IM) | Elimination half-life (animal only) | Frontiers Pharmacol 2022; PMC review | Low | ❌ MISMATCH — No human PK data; animal evidence shows <30 min, not 4 h. DB value contradicts available evidence. Recommend: flag as evidence-limited, set to unknown or annotate as animal-derived <30 min |
| 15 | AOD-9604 | 0.5 h (30 min) | ~3-4 min | Rat / IV | Elimination half-life (animal) | JoFEM 2024 | Low | ❌ MISMATCH — Animal IV half-life is 3-4 min; no human SC data. DB value of 30 min is unsupported. Recommend: flag as evidence-limited |
| 16 | HGH Fragment 176-191 | 0.5 h (30 min) | ~3 min (IV) | Human / IV (limited) | Elimination half-life | Peptides.org | Low | ⚠️ Evidence-limited — IV half-life ~3 min; SC half-life unknown. 30 min is community estimate |
| 17 | Melanotan II | 1.5 h | 1-2 h | Human (limited) / SC | Estimated half-life | Peptidepedia; PMID 9113347 | Low | ✅ Match — within range; evidence-limited (no direct MT-II human PK study) |
| 18 | IGF-1 LR3 | 24 h | 20-30 h | Preclinical / SC | Extended half-life (vs native IGF-1 6 h) | PeptIQ; PMID 8219484 (native IGF-1) | Low | ✅ Match — within 20-30 h range; evidence-limited (no LR3-specific human trial) |
| 19 | PEG-MGF | 72 h (3 d) | 24-72 h to ~5 d | Preclinical / SC | PEGylated half-life | Paragon Sports Medicine; PeptIQ | Low | ✅ Match — within range; evidence-limited |
| 20 | TB-500 (Thymosin Beta-4) | 72 h (3 d) | ~3 d | Animal (no human trials) | Estimated half-life | PeptIQ; Paragon | Low | ✅ Match — community estimate; evidence-limited (no human PK data) |
| 21 | Follistatin-344 | 24 h | ~35 h | Preclinical / SC | Estimated half-life | PeptIQ | Low | ⚠️ Minor — one source says ~35 h; DB says 24 h. No human PK data. Evidence-limited |
| 22 | SS-31 (Elamipretide) | 1 h | ~2 h | Rat/Dog/Monkey / IV | Elimination half-life (animal) | PMC; PeptIQ | Low | ⚠️ Minor — animal evidence says ~2 h; DB says 1 h. No human PK data |
| 23 | 5-Amino-1MQ | 7 h | 4-6 h | Preclinical (oral) | Estimated half-life | PeptideSchedule | Low | ⚠️ Minor — community estimate 4-6 h; DB says 7 h. No human PK data |
| 24 | Kisspeptin-10 | 0.5 h (30 min) | 4 min (IV) / ~28 min (SC) | Human / IV, SC | Plasma half-life | PMC 3232613 | Moderate | ⚠️ Minor — IV half-life 4 min; SC ~28 min. DB says 30 min ≈ SC estimate. Recommend: annotate as SC estimate, note IV is 4 min |
Tier 3 — Research Peptides with No Published PK Data
| # | Compound | DB Value | Evidence Status | Recommendation |
|---|---|---|---|---|
| 25 | MK-677 (Ibutamoren) | 24 h | Ambiguous — beagle elimination 4-6 h; human IGF-1 elevation 24 h. DB conflates IGF-1 effect duration with compound half-life | ⚠️ Flag as ambiguous. Compound elimination (beagle): 4-6 h. Human IGF-1 elevation: 24 h. Clarify which value is intended |
| 26 | GHK-Cu | 0.5 h (30 min) | Conflicting — plasma 30-60 min vs. one source says 2-4 h | ⚠️ Evidence-limited. Multiple conflicting community estimates. No definitive human PK study |
| 27 | Epitalon | 4 h | Conflicting — one source ~3 h (estimated), another 6-8 h | ⚠️ Evidence-limited. No formal human PK data. Conflicting community estimates |
| 28 | KPV | 0.5 h (30 min) | No published PK data | ⚠️ Evidence-limited — community estimate |
| 29 | LL-37 | 4 h | No published PK data | ⚠️ Evidence-limited — community estimate |
| 30 | DSIP | 0.2 h (12 min) | No definitive human PK data; brain tissue half-life ~15 min (in vitro) | ⚠️ Evidence-limited — in vitro tissue data only |
| 31 | Dihexa | 168 h (7 d) | Animal PK: 8-13 days depending on route | ⚠️ Evidence-limited — animal data only; no human PK |
| 32 | Pinealon | 4 h | No published PK data | ⚠️ Evidence-limited — community estimate |
| 33 | Thymalin | 4 h | No published PK data | ⚠️ Evidence-limited — community estimate |
| 34 | Selank | 1.5 h | No published human PK data; animal/intranasal inferred minutes | ⚠️ Evidence-limited — community estimate |
| 35 | Semax | 2 h | Plasma half-life ~3-5 min (animal/intranasal); "2-4 h" is downstream effect duration | ⚠️ Evidence-limited — community conflates effect duration with plasma half-life |
| 36 | MOTS-c | 1.5 h | No established half-life (endogenous mitochondrial peptide) | ⚠️ Evidence-limited — no PK data; ADDF lists "N/A" |
| 37 | NAD+ | 4 h | No single established half-life (endogenous, rapidly metabolized) | ⚠️ Evidence-limited — no definitive half-life; endogenous molecule |
| 38 | PT-141 (duplicate) | 2.5 h | Same as #4 Bremelanotide | ❌ DUPLICATE — merge with Bremelanotide record (different frequency_hours: 48 h vs 72 h) |
Issue Summary
❌ Critical — Mismatched Values (contradict available evidence)
- GHRP-6 — DB: 0.5 h. Evidence: 2.5 h (human elimination half-life, PMID 23099431). The DB value appears to be the distribution half-life (7.6 min) or a community estimate, not the elimination half-life.
- BPC-157 — DB: 4 h. Evidence: <30 min (animal only — rats, dogs). No human PK data exists; the DB value contradicts all available animal evidence.
- AOD-9604 — DB: 0.5 h. Evidence: ~3-4 min (animal IV). No human SC data; DB value is unsupported.
❌ Duplicate Record
- Bremelanotide (PT-141) vs. PT-141 — Two records for the same compound with divergent
frequency_hours(72 h vs 48 h) and slightly different descriptions. Must merge into one authoritative record.
⚠️ Ambiguous / Conflated Values
- MK-677 — DB: 24 h. This appears to be the IGF-1 elevation duration, not the compound elimination half-life (4-6 h in beagles). The value conflates pharmacodynamic effect duration with pharmacokinetic half-life.
- Semax — DB: 2 h. This is the downstream BDNF/neurotrophin effect duration, not the plasma half-life (~3-5 min).
- GHK-Cu — DB: 0.5 h. Conflicting sources (30-60 min vs. 2-4 h); no definitive study.
- Epitalon — DB: 4 h. Conflicting estimates (3 h vs. 6-8 h); no formal PK data.
⚠️ Minor Discrepancies (close but not exact)
- Bremelanotide — DB: 2.5 h vs. FDA label 2.7 h
- Tesofensine — DB: 216 h vs. 220 h
- CJC-1295 with DAC — DB: 192 h vs. range 139-194 h (192 h is top of range)
- Hexarelin — DB: 1 h vs. IV 75-120 min
- SS-31 — DB: 1 h vs. animal ~2 h
- 5-Amino-1MQ — DB: 7 h vs. community 4-6 h
- Follistatin-344 — DB: 24 h vs. one source ~35 h
⚠️ Evidence-Limited (no human PK data, community estimates)
KPV, LL-37, DSIP, Dihexa, Pinealon, Thymalin, Selank, MOTS-c, NAD+, HGH Fragment 176-191, CJC-1295 w/o DAC, TB-500, PEG-MGF, IGF-1 LR3, Melanotan II — all lack human pharmacokinetic studies. Stored values are community estimates presented as established facts without caveat.
Proposed Corrections & Alignment Plan
Phase 1 — Schema Enhancement (no data changes)
Add metadata fields to Peptide.jsonc so half-life values carry evidence provenance:
half_life_hours (existing — keep)
half_life_type (enum: "elimination", "terminal", "distribution", "effect_duration", "estimated", "unknown")
half_life_unit (string: "hours" — for future unit flexibility)
half_life_source (string: citation/DOI/label reference)
half_life_species (enum: "human", "animal", "in_vitro", "mixed", "unknown")
half_life_route (enum: "sc", "iv", "im", "oral", "intranasal", "topical", "unknown")
half_life_confidence (enum: "high", "moderate", "low", "evidence_limited", "unknown")
half_life_range_min (number, optional — for compounds with a reported range)
half_life_range_max (number, optional)
Phase 2 — Value Corrections (after approval)
| Compound | Current | Proposed | Rationale |
|---|---|---|---|
| GHRP-6 | 0.5 h | 2.5 h | Human elimination half-life (PMID 23099431) |
| BPC-157 | 4 h | unknown / evidence_limited | Animal evidence <30 min; no human data. Mark as unknown with animal metadata |
| AOD-9604 | 0.5 h | unknown / evidence_limited | Animal IV ~3-4 min; no human SC data. Mark as evidence-limited |
| MK-677 | 24 h | 4-6 h (animal elimination) + flag effect_duration 24 h | Distinguish compound half-life from IGF-1 elevation |
| Semax | 2 h | unknown / evidence_limited + flag effect_duration ~2 h | Plasma half-life is minutes; 2 h is downstream effect |
| Bremelanotide | 2.5 h | 2.7 h | FDA label value |
| Tesofensine | 216 h | 220 h | Published value |
| Hexarelin | 1 h | 1.5 h | IV terminal half-life 75-120 min |
| SS-31 | 1 h | 2 h | Animal elimination half-life |
| 5-Amino-1MQ | 7 h | 5 h | Community midpoint (4-6 h range) |
| CJC-1295 w/ DAC | 192 h | 168 h | Range midpoint (139-194 h) |
| Follistatin-344 | 24 h | 35 h | One available estimate |
| GHK-Cu | 0.5 h | unknown / evidence_limited | Conflicting sources; no definitive study |
| Epitalon | 4 h | unknown / evidence_limited | Conflicting estimates |
Phase 3 — Duplicate Resolution
Merge "PT-141" (id 68e3282c...) into "Bremelanotide (PT-141)" (id 68c9c382...2f). Reconcile frequency_hours (72 h vs 48 h) per the FDA label (doses ≥24 h apart → 24 h minimum; 48-72 h community). Redirect any Injection/PeptideCycle/PlannedInjection references.
Phase 4 — Consumer Alignment
-
Consolidate decay model — All four inline implementations (
PeptideDashboard.jsx,CurrentLevels.jsx,PeptideLevelsChart.jsx,peptideLevels.js) should import the sharedestimatePeptideLevels()fromsrc/lib/peptideLevels.js. The shared function becomes the single authoritative decay model. -
Display metadata — All display surfaces should show confidence/evidence status alongside the value, e.g., "Half-life: 2.5 h (human, elimination, moderate confidence)" or "Half-life: unknown (evidence-limited)".
-
AI prompt context —
ProtocolBuilder.jsxandCycleManagementModal.jsxshould pass evidence metadata to the AI prompt so the model knows which values are established vs. community estimates. -
Coach context — When peptide levels flow into Coach context, include confidence metadata so the Coach does not present evidence-limited estimates as established facts.
Evidence Sources
- FDA Prescribing Information (semaglutide, tirzepatide, tesamorelin, bremelanotide)
- Peer-reviewed PubMed (GHRP-6 PMID 23099431; ipamorelin PMID 10496658; CJC-1295 PMID 16352683; kisspeptin-10 PMC 3232613; IGF-1 PMID 8219484; DSIP PMID 6548966)
- Frontiers/PMC reviews (BPC-157 PMC 12313605; BPC-157 PK Frontiers Pharmacol 2022; SS-31 PMC 9192202)
- Clinical pharmacology (AOD-9604 JoFEM 2024; MK-677 Wikipedia/Chapman et al.)
- Evidence databases (Alzheimer's Drug Discovery Foundation for MOTS-c; PeptIQ, Peptidepedia, PeptideSchedule for research peptide community estimates)
All URLs verified as of 2026-10-22. Research peptide community sources are clearly distinguished from peer-reviewed evidence.
This audit is read-only. No peptide records, protocols, doses, logs, or calculations have been modified. Implementation awaits approval of the proposed corrections.