In February I weighed 285 lbs and was running on fumes. Six months later I weigh 220, and I feel better than I have in a decade — after changing a great many things at once, of which peptides were one. This is that story, with all 81 blood markers I measured, including the ones that got worse. My own experience, not a result anyone should expect.
I'm not a bodybuilder or a gym rat. I ski 30-plus days a year, bike all summer, hike, paddleboard. Last January my labs weren't where I wanted them — GGT at 54 and LDL at 134, both flagged high, and a lipid panel drifting the wrong way. My fasting insulin was 18.4 and my ALT 52: both technically in range, and both the kind of in-range I had stopped being comfortable with. I wasn't broken; I was running at 60% and calling it normal. So I changed a lot at once: how I ate, how I trained, how I slept — and yes, a peptide protocol. Over the months that followed I started feeling like myself again — steadier energy, easier recovery, a clearer head. I can't tell you which change did what, and I won't pretend to.
But getting here wasn't easy. I pieced my first protocol together from five different vendors — one for this peptide, another for that, a third for bacteriostatic water, needles from somewhere else. My dosing came off random Reddit threads and half-remembered posts from people I had no reason to trust. Every vial was a coin flip on whether it matched the label. I kept at it because of how I felt — but I shouldn't have had to.
That's why I created goodtides.
The N=1
One person. 200 days. Every number.
Read this first
This is my own record, published in full because I think you should be able to check it. It is
one person — a sample of one proves nothing about what these compounds do, in either direction.
I changed several things at once over these 200 days: diet, training, sleep and a peptide protocol.
Nothing here can be attributed to any single input, and I have not tried to. The compounds
I used are research compounds, not approved to diagnose, treat, cure or prevent any disease.
None of this is medical advice. Talk to a licensed clinician before starting anything.
701doses taken
200days, Feb 14 to Sep 1
10compounds run
100day longest streak
81markers, all published
303lab results, 5 draws
121doses skipped, logged
What I ran, and when
KLOW144
Semax122
Selank103
Tesamorelin77
MOTS-C58
CJC-1295 (No DAC) + Ipamorelin52
Kisspeptin-1051
Retatrutide45
Melanotan-232
SS-3117
Bars span first to last dose of each compound; the number is doses taken. Two eras:
retatrutide alone from Feb 14, dosed every few days by design, then a daily stack from
Mar 23. Across that daily stretch I dosed on 161 of
163 days (98.8%). Across the whole 200 days it is
170 days — a lower number that mostly reflects the every-few-days titration at the start,
which is why both are here.
The doses I did not take
121 logged skips, kept in the record rather than deleted: Semax 58 · Selank 58 · Kisspeptin-10 2 · CJC-1295 (No DAC) + Ipamorelin 2 · Tesamorelin 1.
Adherence numbers that only count the doses you took are not adherence numbers.
Weight
285 lb220 lb
17 self-reported weigh-ins, 285 to 220 lb
(-65 lb). Dots sit at their real dates, so the gaps are real — the largest is 48 days
with no reading. No trend line is drawn, because 17 uneven points do not support one. A home scale
is not a controlled measurement, and diet and training changed alongside everything else.
Bloodwork
Mar 8 2454 resultspre-protocol
Jan 23 2674 resultsbaseline
Apr 13 2669 resultsinterim
May 13 2636 resultsinterim
Jul 7 2670 resultsendpoint
Read the denominator first. 303 results across 81 markers, but they are not equally comparable. 62 markers were measured at both Jan 23 26 and Jul 7 26, so those carry a real before-and-after. 19 do not: 10 were measured once, and the rest were added or dropped between panels. Every one of them is below anyway, with the reason it has no delta printed on the row. The Mar 8 24 draw predates the protocol by 22 months and is shown as a detached ring, never averaged in.
The six that actually changed category
Ranked by the band they moved between, not by percentage — a big percentage inside one band is noise, and ranking by it would have put a TSH wobble above a liver enzyme leaving the high range. 4 improved a category, 2 lost one.
GGTU/L
54→19−35−65%optimal
Jan 23 26 → Jul 7 26 · 3 draws
LDLmg/dL
134→97−37−28%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Total Cholesterolmg/dL
197→159−38−19%optimal
Jan 23 26 → Jul 7 26 · 5 draws
BUNmg/dL
16→14−2−13%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Hematocrit%
50.4→51.5+1.1high
Jan 23 26 → Jul 7 26 · 5 draws
Ferritinng/mL
62→39−23−37%in range
Jan 23 26 → Jul 7 26 · 4 draws
All 81 markers
Nine panels, every marker measured, nothing withheld. Open a panel to read it.
Metabolic4all in range
Glucosemg/dL
108→99−9−8%in range
Jan 23 26 → Jul 7 26 · 5 draws
HbA1c%
5.5→5.1−0.4−7%optimal
Jan 23 26 → Jul 7 26 · 5 draws
InsulinuIU/mL
18.4→9.2−9.2−50%in range
Jan 23 26 → Jul 7 26 · 4 draws
Uric Acidmg/dL
5.8→5−0.8−14%optimal
Jan 23 26 → Jul 7 26 · 3 draws
Lipids & Cardiovascular121 out of range at the Jul 7 26 draw · 4 out of range when last measured, before Jul 7 26
ApoBmg/dL
123→85−38−31%in range
Jan 23 26 → Jul 7 26 · 3 draws
HDLmg/dL
40→43+3+8%in range
Jan 23 26 → Jul 7 26 · 5 draws
HDL-Pumol/L
30—low
one draw, Jan 23 26 · not repeated on the July draw
hsCRPmg/L
1.3—in range
one draw, Jul 7 26 · added after the January baseline
Large VLDL-Pnmol/L
4.5—high
one draw, Jan 23 26 · not repeated on the July draw
LDLmg/dL
134→97−37−28%optimal
Jan 23 26 → Jul 7 26 · 5 draws
LDL-Pnmol/L
2368—high
one draw, Jan 23 26 · not repeated on the July draw
Lp(a)nmol/L
146→145−1high
Jan 23 26 → Jul 7 26 · 3 draws
Non-HDLmg/dL
157→116−41−26%in range
Jan 23 26 → Jul 7 26 · 5 draws
Small LDL-Pnmol/L
924—high
one draw, Jan 23 26 · not repeated on the July draw
Total Cholesterolmg/dL
197→159−38−19%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Triglyceridesmg/dL
122→95−27−22%in range
Jan 23 26 → Jul 7 26 · 5 draws
Liver9all in range
Albuming/dL
4.7→4.6−0.1optimal
Jan 23 26 → Jul 7 26 · 5 draws
ALPU/L
77→96+19+25%optimal
Jan 23 26 → Jul 7 26 · 5 draws
ALTU/L
52→27−25−48%in range
Jan 23 26 → Jul 7 26 · 5 draws
ASTU/L
25→22−3−12%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Bilirubinmg/dL
0.6→0.5−0.1−17%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Bilirubin Directmg/dL
0.1→0.1±0optimal
Jan 23 26 → Apr 13 26 (first to last; not the reference pair) · 2 draws · not repeated on the July draw
Bilirubin Indirectmg/dL
0.5→0.6+0.1+20%optimal
Jan 23 26 → Apr 13 26 (first to last; not the reference pair) · 2 draws · not repeated on the July draw
GGTU/L
54→19−35−65%optimal
Jan 23 26 → Jul 7 26 · 3 draws
Total Proteing/dL
7.2→7−0.2−3%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Kidney3all in range
BUNmg/dL
16→14−2−13%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Creatininemg/dL
1.02→0.98−0.04−4%optimal
Jan 23 26 → Jul 7 26 · 5 draws
eGFRmL/min
100→104+4+4%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Blood Counts151 out of range at the Jul 7 26 draw
Basophils (abs)cells/uL
33→20−13−39%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Eosinophils (abs)cells/uL
139→178+39+28%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Hematocrit%
50.4→51.5+1.1high
Jan 23 26 → Jul 7 26 · 5 draws
Hemoglobing/dL
17→17±0in range
Jan 23 26 → Jul 7 26 · 5 draws
Lymphocytes (abs)cells/uL
2587→2363−224−9%optimal
Jan 23 26 → Jul 7 26 · 5 draws
MCHpg
31→29.7−1.3−4%optimal
Jan 23 26 → Jul 7 26 · 5 draws
MCHCg/dL
33.7→33−0.7in range
Jan 23 26 → Jul 7 26 · 5 draws
MCVfL
92→89.9−2.1optimal
Jan 23 26 → Jul 7 26 · 5 draws
Monocytes (abs)cells/uL
568→422−146−26%in range
Jan 23 26 → Jul 7 26 · 5 draws
MPVfL
10.3→10.1−0.2in range
Jan 23 26 → Jul 7 26 · 5 draws
Neutrophils (abs)cells/uL
3274→3617+343+10%optimal
Jan 23 26 → Jul 7 26 · 5 draws
PlateletsK/uL
253→213−40−16%optimal
Jan 23 26 → Jul 7 26 · 5 draws
RBCM/uL
5.48→5.73+0.25+5%in range
Jan 23 26 → Jul 7 26 · 5 draws
RDW%
13→13.1+0.1in range
Jan 23 26 → Jul 7 26 · 5 draws
WBCK/uL
6.6→6.6±0optimal
Jan 23 26 → Jul 7 26 · 5 draws
Thyroid82 not scored
Free T3pg/mL
3.7→3.7±0optimal
Jan 23 26 → Jul 7 26 · 4 draws
Free T4ng/dL
1.3→1.3±0optimal
Mar 8 24 → Jul 7 26 (first to last; not the reference pair) · 2 draws · added after the January baseline
Reverse T3ng/dL
11—optimal
one draw, Jul 7 26 · added after the January baseline
T3 Uptake%
34→34±0optimal
Mar 8 24 → Apr 13 26 (first to last; not the reference pair) · 3 draws · not repeated on the July draw
T4 Totalmcg/dL
6.9→9+2.1+30%optimal
Mar 8 24 → Apr 13 26 (first to last; not the reference pair) · 3 draws · not repeated on the July draw
Thyroglobulin AbIU/mL
1→2+1not scored
Jan 23 26 → Jul 7 26 · 2 draws
TPO AbIU/mL
3→11+8not scored
Jan 23 26 → Jul 7 26 · 3 draws
TSHmIU/L
0.88→1.31+0.43+49%optimal
Jan 23 26 → Jul 7 26 · 4 draws
Hormones15all in range
Bioavailable Testosteroneng/dL
269→176−92.2−34%in range
Mar 8 24 → Apr 13 26 (first to last; not the reference pair) · 3 draws · not repeated on the July draw
Cortisolmcg/dL
11.2→12.3+1.1+10%optimal
Jan 23 26 → Jul 7 26 · 4 draws
DHEA-Smcg/dL
146→151+5+3%in range
Jan 23 26 → Jul 7 26 · 4 draws
DHTng/dL
21—optimal
one draw, Jul 7 26 · added after the January baseline
Estradiolpg/mL
30→24−6−20%optimal
Jan 23 26 → Jul 7 26 · 4 draws
Free Testosteronepg/mL
133→103−30.3−23%optimal
Jan 23 26 → Jul 7 26 · 4 draws
FSHmIU/mL
4.3→4−0.3−7%optimal
Jan 23 26 → Jul 7 26 · 3 draws
IGF-1ng/mL
255→261+6optimal
Jan 23 26 → Jul 7 26 · 3 draws
LHmIU/mL
4.4→3.7−0.7−16%optimal
Jan 23 26 → Jul 7 26 · 3 draws
Progesteroneng/mL
0.5—optimal
one draw, Jul 7 26 · added after the January baseline
Prolactinng/mL
6.7→6.4−0.3−4%optimal
Jan 23 26 → Jul 7 26 · 3 draws
PSA Freeng/mL
0.1→0.1±0optimal
Jan 23 26 → Apr 13 26 (first to last; not the reference pair) · 2 draws · not repeated on the July draw
PSA Totalng/mL
0.7→0.55−0.15−21%optimal
Jan 23 26 → Jul 7 26 · 4 draws
SHBGnmol/L
18→24+6+33%optimal
Jan 23 26 → Jul 7 26 · 4 draws
Total Testosteroneng/dL
614→520−94−15%in range
Jan 23 26 → Jul 7 26 · 3 draws
Vitamins & Nutrients9all in range
Ferritinng/mL
62→39−23−37%in range
Jan 23 26 → Jul 7 26 · 4 draws
Folateng/mL
14.9→12.7−2.2−15%optimal
Jan 23 26 → Jul 7 26 · 4 draws
Homocysteineumol/L
9.5→10.7+1.2+13%in range
Jan 23 26 → Jul 7 26 · 3 draws
Ironmcg/dL
91→76−15−16%optimal
Jan 23 26 → Jul 7 26 · 3 draws
Iron Saturation%
24→24±0in range
Jan 23 26 → Jul 7 26 · 3 draws
Magnesium, RBCmg/dL
5.8—optimal
one draw, Jul 7 26 · added after the January baseline
TIBCmcg/dL
383→313−70−18%optimal
Jan 23 26 → Jul 7 26 · 3 draws
Vitamin B12pg/mL
731→792+61+8%optimal
Jan 23 26 → Jul 7 26 · 4 draws
Vitamin Dng/mL
47→41−6−13%in range
Jan 23 26 → Jul 7 26 · 4 draws
Electrolytes6all in range
Calciummg/dL
9.5→9.3−0.2optimal
Jan 23 26 → Jul 7 26 · 5 draws
Chloridemmol/L
104→103−1optimal
Jan 23 26 → Jul 7 26 · 5 draws
CO2mmol/L
27→25−2−7%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Magnesium, Serummg/dL
2.3—optimal
one draw, Mar 8 24 · measured once, outside both reference draws
Potassiummmol/L
4.8→4.6−0.2−4%optimal
Jan 23 26 → Jul 7 26 · 5 draws
Sodiummmol/L
139→138−1optimal
Jan 23 26 → Jul 7 26 · 5 draws
The five findings I'd rather not have published
Of the 62 markers measured at both ends, 9 moved into the optimal band and
3 moved out of it. But a count is not a finding. These are the five results that
actually changed how I think about what I did, and four of them are unflattering. A page that
leads with its wins is marketing; the wins are in the register above and you can read them there.
Finding 01 · a safety signal
My hematocrit was high before I started, and I raised it anyway.
46.4% in 2024. 50.4% at baseline — already flagged high, three weeks before my
first dose. Then 51.6, then 48.3 on the partial May panel, then 51.5% at the endpoint.
It is the one marker on this page that was out of range when I started, stayed out of range
throughout, and finished higher than it began.
Rising haematocrit is a known effect of androgens and of growth-hormone secretagogues, and I
was running both. Thicker blood is not a cosmetic result; it is the mechanism behind the
cardiovascular risk that gets people taken off testosterone therapy. The honest reading is that
I ran a protocol with a known haematologic effect on top of a marker that was already elevated,
for six months, and only noticed the shape of it when I built the tool that draws this chart.
The 48.3 in May is almost certainly hydration, not improvement — it is
a single partial panel between two readings of 51.6 and 51.5. I have left it in rather than
smoothing it out, because that is the kind of point that makes a chart lie in your favour.
Finding 02 · the axis
My testosterone went down, not up.
Total testosterone 614 → 461 → 520 ng/dL: down 15% from baseline, and out of
the optimal band into merely-in-range. Free testosterone 133.3 → 74.7 → 103. LH dipped to 2.2 at
the April draw before recovering to 3.7. SHBG went the other way, 18 → 24, which is what a large
weight loss usually does and which by itself pushes free testosterone down.
I am publishing all four numbers together because publishing only SHBG — which moved into the
optimal band and looks like a win — would be a lie of composition. An axis has to be read as an
axis. The April trough is the part I cannot explain away: total T, free T and LH all bottomed on
the same draw, which is the shape of transient suppression rather than of noise in one assay.
Finding 03 · the null result
129 doses of growth-hormone secretagogues moved IGF-1 by 2%.
77 doses of Tesamorelin and 52 of CJC-1295 / Ipamorelin over the run. IGF-1 is the standard
downstream readout for that entire class — if the mechanism is doing what the category claims,
this is the marker where you see it.
255 → 228 → 261 ng/mL. Net +2%, with the middle draw lower than baseline. On my
own body, at the doses I ran, that is a null result, and it is the single most useful thing on this
page for anyone deciding whether to spend money on that category. I would not have found it without
drawing labs, and I would not have published it if this page were a sales asset.
Finding 04 · the immovable one
Lp(a) was 146 at the start and 145 at the end.
146 → 141 → 145 nmol/L against a cutoff of 75. Roughly double, at every draw,
for the whole run. Lp(a) is largely set by genotype and is famously indifferent to diet, training
and weight loss, so this is the number behaving exactly as the literature says it will.
I include it because it is the counterweight to everything above it. I lost 65 lbs and moved a
lot of markers; the marker that carries the most independent cardiovascular risk in my panel did not
move at all, and was never going to. Any page that shows you a wall of improving numbers without
showing you the one that is fixed is teaching you the wrong lesson about what these tools do.
Finding 05 · no verdict available
My thyroid antibodies tripled, and I am not going to score that for you.
TPO antibodies 3 → 10 → 11 IU/mL. Our catalog publishes no scoring band for
antibody titres, so the register above shows the values and the word not scored rather than
a colour and a verdict — and it deliberately shows no percentage, because "+267%" on a titre with
no published range reads as an emergency and means very little on its own.
What I can say is the direction and the size, which is why the numbers are printed. A rise like
that inside a reference range is the sort of thing a clinician wants to see the trend on, and it is
on my list for the next draw. Saying "we don't know" in public is the whole point of the exercise.
Why you should not attribute any of this to peptides
This is an N of 1, uncontrolled, unblinded, and confounded on purpose — I was not
running an experiment, I was trying to get healthy. Everything below changed inside the same 200 days:
I lost 65 lbs, 285 → 220. Weight loss of that size independently improves liver
enzymes, LDL, ApoB, triglycerides, fasting insulin and blood pressure. Most of the good numbers in the
register above have a complete explanation that involves no peptide at all.
One of the compounds was a GLP-1-class agonist. Retatrutide is a triple GIP/GLP-1/
glucagon agonist; 45 doses of it are in the log. Separating "the peptides worked" from "I ate far less
because of a drug whose entire mechanism is eating less" is not possible from this data.
Diet, training and sleep all changed at the same time, deliberately and
substantially.
Ten compounds ran concurrently, overlapping, never one at a time. Nothing here
isolates any single one.
Five draws is a small number, two of them 22 months apart, one of them a partial
36-marker re-check. Single measurements move on hydration, fasting state, time of day and assay.
So: I cannot tell you which change did what, and I will not pretend to. What this page
is good for is the method — measure first, log every dose, draw again, publish the whole panel including
the parts that argue against you. That is the thing I would want from someone else, and it is what the
app was built to make ordinary.
Who I am, and what I am not
I am not a physician, a pharmacist, a nurse, or a scientist. I hold no clinical
credential of any kind. I am one person who got tired of guessing, started measuring, and then built
software to make the measuring easier. Nothing on this page is medical advice, and nothing on it should
be read as a recommendation to run what I ran — several of these compounds are research chemicals with
no approved human indication, and I made decisions about them that a doctor would likely have argued
with. Talk to a clinician who knows your history. What I can offer you is my full record and an honest
account of its limits, which is more than I could find anywhere when I started.
Where the numbers come from
Exported from my own account with the app's export button, then computed by
tools/build-n1.mjs — nothing on this page is typed by hand. Three things you should know
about the raw file. The log held 1060 rows, but 238 were duplicates from
re-importing the same CSV twice, leaving 822 real entries and 701 doses actually
taken. Two rows carried a 2016 date, a transposition of 2026, corrected rather than dropped. And
per-vial tracking only began Jul 9, about five months in, so the 16 vials
here are the later part of the run, not all of it. Bloodwork is scored against the same
goodtides marker catalog the app uses.
The Companion app
So I built the tool, too.
The hardest part wasn't the compounds — it was running them right. So I built the app I wished I'd had. Free, installs in a tap, and it does the parts I used to get wrong.
Dose calculator
Vial mg + bac water becomes the exact units to draw, on a syringe you can read.
Smart reminders
A push before every scheduled dose — named by peptide, so you never double-up or forget.
Vial & supply tracking
What's open, what's left, and a heads-up before you run out.
Bloodwork over time
Upload a lab PDF and watch your markers trend against reference ranges — on your device.
A real compound library
Mechanism, safety, pharmacology and sourced references on every peptide — not a midnight Reddit thread.
On the App Store
A real iOS app — free, no subscription, and your data stays yours.
goodtides exists for the curious, active person who wants access without the midnight Reddit research, grey-market guesswork, or bodybuilder gatekeeping.
Peptides are a fast-moving, barely-charted space — equal parts real science and confident nonsense. goodtides is my attempt to cut a clean path through it: every dose measured, every vial counted, every batch checked against a published lab certificate, and sourced information instead of bro-science. The app sells nothing — it makes what you're already doing measurable, and hands your clinician the truth when you want one involved.
You don't need to be a biohacker. You just need to want to feel as good as your life demands.