The ledger

Every number, including the bad ones.

What the portfolio earned, where search found it, which forecasts were wrong and by how much, what broke and how long it ran broken before anyone noticed, and the costs nobody here is tracking yet. Generated daily from the systems themselves. No figure on this page was typed by a person.

The absences matter as much as the figures. A source that was never read renders as words, never as a zero, because a missing measurement dressed as a measured zero is the specific lie this page exists to not tell.

Ledger generated 2026-09-15 by barque/scripts/generate-ledger.py
§Onemeasured

Revenue and conversions

Reconciled revenue readings are shown where a source exists. Missing readings are labelled explicitly rather than reported as zero.

Affiliate payout
$6,050
30-day window
Conversions
42
30-day window
Clicks to a partner
3,830
30-day window
Reading taken
2026-09-15
the page shows the reading date, not the render date

GLP-1 Picks

measured
Affiliate payout
$6,050
30-day window
Conversions
42
30-day window
Affiliate clicks
3,830
30-day window
Conversion rate
1.10%
clicks to a partner that became a paid conversion
Pages sending clicks
38
of which 6 produced a conversion
Lifetime payout
$19,792
since the first conversion
Lifetime conversions
109
since the first conversion
Read 2026-09-15glp1picks/docs/seo-snapshot.json

HRT Picks

not yet connected

Katalys affiliate ID 12979 serves this property and the per-site split shipped 2026-08-01, but no Katalys reading for it is written to any committed file, so this ledger carries no revenue figure. Unmeasured, not zero.

Read 2026-09-15barque/registry.yml

Best Peptide For That

not yet connected

No Katalys tracking links exist in this product's data, per barque/registry.yml. Monetisation is unwired, so revenue here is unsized rather than zero.

Read 2026-09-15barque/registry.yml

GLP-1 Pets

not yet connected

No Katalys tracking links in this product's data. It is an authority site with no affiliate layer yet.

Read 2026-09-15barque/registry.yml

Titrate

not yet connected

Not an affiliate surface. Revenue is App Store subscription revenue, and no App Store Connect export is committed to any repo this generator can read.

Read 2026-09-15barque/registry.yml
·Every partner, every clickmeasured

Earnings per click, partner by partner. This is the single field a competitor could act on directly, and it is here because a ledger that publishes only the flattering half is an advertisement. The rows sorted to the bottom, with clicks and no conversions, are the ones that cost us money.

PartnerClicksConversionsPayoutPer click
Embody GLP159335$5,250$8.85
Sprout Health2371$250$1.05
Ro.co2453$150$0.61
Eden Health GLP-1631$150$2.38
SnagRX631$150$2.38
bmiMD Personalized Health RX1041$100$0.96
Fridays Health1390$0nothing back

Nothing back means the partner received clicks in this window and returned no conversion. It is not a zero we assumed, it is a zero we paid for.

§Threemeasured

Forecast accuracy, misses first

Barque publishes dated predictions with a stated probability, then scores itself against what happened. The scoring rule punishes confidence, which is the only way a track record means anything.

Brier score
0.252
mean of 3 scored resolutions. Zero is perfect, 0.25 is a coin flip, 1.0 is confidently wrong.
Called right
2
the side the forecast leaned on is the side that happened
Called wrong
1
written up below in as much detail as the wins
Still open
4
past horizons are resolved before new forecasts are made
Wrong

bpc157-pcac-2026

Stated probability
0.70
What happened
FALSE
Brier
0.4900
Resolved
2026-07-26

Resolved FALSE. On 2026-07-23 the PCAC voted 8 to 6 with 1 abstention to RECOMMEND BPC-157 for addition to the 503A bulks list, i.e. the Cat-1-equivalent outcome the forecast said would not happen. KPV and TB-500 carried the same 8-6-1 tally and MOTS-c passed 7-5-2, so all four nominated peptides were recommended. Ground truth verified against bestpeptideforthat/src/data/peptides.ts pcacVote fields, which were primary-sourced at publication. THE LESSON, and it is the expensive one: the forecast reasoned that 'Regulator agent dominates regulatory decisions' and that FDA default on unapproved peptides without a US safety dossier is not-Cat-1. FDA staff DID oppose all seven substances. But the PCAC is an ADVISORY COMMITTEE, not the regulator, and it overrode its own staff. The model conflated the advisory body with the decision-maker. Future regulatory forecasts must model the advisory vote and the agency decision as TWO separate events with different actors and different base rates. The binding FDA decision is still pending and is a separate, unforecast question worth opening.

Right

pcac-july-multi-peptide

Contrarian call
Stated probability
0.55
What happened
TRUE
Brier
0.2025
Resolved
2026-07-26

Resolved TRUE. All four peptides reviewed on 2026-07-23 (BPC-157, KPV, TB-500 at 8-6-1; MOTS-c at 7-5-2) were recommended for the 503A list, clearing the 'at least 2 of 4' bar with margin. This forecast was a deliberate upward revision made 2026-04-19 after the 12-peptide Category 2 removal wave, on the reasoning that the reclassification trajectory was more aggressive than first modelled. That revision was correct and it is the one that paid: the same session's BPC-157 forecast, which kept the conservative not-Cat-1 view, resolved FALSE at Brier 0.49. Lesson: when a trajectory signal contradicts a standing institutional prior, weight the trajectory. Resolved 3 days after horizon because the resolution loop had not run since 2026-06-10.

Right

compound-peptide-property-live

Stated probability
0.75
What happened
TRUE
Brier
0.0625
Resolved
2026-06-10

Resolved TRUE on the broader portfolio-ship interpretation per operator clarification 2026-05-15. Within the 103-day window (made 2026-04-19, horizon 2026-07-31): HRT Picks (hrtpicks.vercel.app, shipped 2026-05-12), glp1pets.com (shipped 2026-04-26), and Titrate all live, plus the public /numbers page on the mother site. Two-properties bar cleared with room to spare; functionally true ~51 days before horizon. Flagged for operator resolution 25 consecutive briefs (2026-05-16 through 2026-06-10) before this write. Validates the AI-speed-parallel-build thesis. Brier 0.0625 (forecast 0.75, outcome TRUE).

§Fourmeasured

Work-order throughput

The forecasting layer writes orders against the products. This is how many it wrote and what became of them. An order with no closing record counts as open, never as done.

Orders raised
172
done
139
still open
22
Median days to done
2
median of 139 closed orders that carry both a raised date and a done date.
ProductRaisedDoneStill open
glp1picks75635
bestpeptideforthat35302
glp1pets23211
hrtpicks23203
not yet announced15411
thecompound110
Read 2026-09-15barque/work-orders.tsv, barque/work-order-status.tsv
§Fivemeasured

What broke, and for how long

None of these crashed. Every one of them completed, reported success, and verified nothing, which is the failure mode that costs the most because it produces no alarm. Each row names the commit that fixed it, so the duration is checkable rather than asserted.

The longest of them ran green for 94 days.

The scoring gate could not fail

glp1picks, hrtpicks
Days broken
94
First broken
2026-04-29
Fixed
2026-08-01
Start date
DATED
What broke
recompute-scores --check only ever raises a FAIL on a provider carrying _score_status: verified. Not one record on either site carried that status, so the check had no path to a non-zero exit.
How it looked while broken
Exit 0 on every run since the gate shipped, read as no drift.
What it was hiding
17 of 25 scored records sat 2 to 5.9 points above what their own evidence computes, 64 points of drift in total.
How the start date was established
glp1picks commit 707da39 added scripts/recompute-scores.ts with the verified-only fail condition.
Evidence it is fixed
glp1picks commit 2142d6d. Verified both directions: inflating one displayed score pushes its drift from 3.3 to 5.9 and --check exits 1, restoring it exits 0.

The anchor audit was blind three ways at once

glp1picks
Days broken
84
First broken
2026-05-10
Fixed
2026-08-02
Start date
DATED
What broke
The price gate paired a name with a price by adjacency, so it could not see a price written inside a markdown link, which is how this repo writes almost every provider mention. It also scraped prices out of code comments, so a record explaining its own price history registered those old numbers as current and suppressed every stale quote of them. And it downgraded findings on the words compounded, tirzepatide and first month, the three most common words in the corpus.
How it looked while broken
Green runs, quoted at the time as evidence the portfolio was clean.
What it was hiding
Ten blog passages still sold one provider's expired first-month promotion as its current price, and the audit had suppressed all of them.
How the start date was established
glp1picks commit 81ed639 created the audit with the adjacency matcher.
Evidence it is fixed
glp1picks commits 5a36d1c (coverage: the parser was reading 46 of 53 records) and a0808da (link, comment and soft-context blindness). Proved by injecting a fake price into posts.ts: the old script exited 0 and found nothing, the new one exited 1 and named it.

The indexing job was submitting into a void

glp1picks
Days broken
77
First broken
2026-05-16
Fixed
2026-08-01
Start date
DATED
What broke
Google's Indexing API acts on JobPosting and BroadcastEvent only. For every other page type it returns HTTP 200 and does nothing. The daily job recorded that 200 as last_submit_ok true.
How it looked while broken
A daily green run and a log full of successful submissions.
What it was hiding
897 URLs carried a successful submission on record. 203 of them were NOT_INDEXED, and 165 of those were re-inspected after the submission and were still not indexed.
How the start date was established
glp1picks commit d015067 added the daily indexing cron. Two docs in the same repo, what-this-domain-can-rank.md L108-122 and site-atlas.md L114, had already written down that the API ignores these page types. The code kept calling it.
Evidence it is fixed
glp1picks commit a9230ae removed the call and purged the three false keys from the history file behind a dated marker.

Three of the five search reports the briefs demanded did not exist

portfolio
Days broken
10+
a floor, not a measurement. The true start is earlier and cannot be evidenced.
First broken
2026-07-22
Fixed
2026-08-01
Start date
EVIDENCED FLOOR, TRUE START UNDATED
What broke
The SEO Engine brief names strike-zone, new-queries and page-queries as its mandatory primary analysis. The data bridge produced pages and queries only. A report with no source read as a skip, so the brief's own primary phase could not complete on any run.
How it looked while broken
Every run completed and committed.
What it was hiding
The self-declared primary analysis of a weekday routine, on every run it made.
How the start date was established
glp1picks commit 7ab95ba created the snapshot bridge without those three reports. The brief demanded them before that, but the routine prompts were unversioned SaaS state until barque commit ea6bc94 on 2026-07-28, so no earlier evidence exists. The window below is a floor, not a measurement.
Evidence it is fixed
barque commit b1abedf added all nine reports across five properties with an explicit three-state field, and glp1picks commit cf99f36 added the missing three to its own bridge.

The portfolio anchor generator refused to write for nine days and nothing said so

thecompound, portfolio
Days broken
undated
First broken
2026-08-28
Fixed
open
Start date
DATED
What broke
generate-portfolio-anchors.py parses hrtpicks providers by matching the literal string `export const providers: Provider[] = [`. That declaration changed shape in hrtpicks src/data/providers.ts, the parser stopped finding it, and the generator correctly refused to write a partial anchor and exited 2. It has done so on every scheduled run since.
How it looked while broken
The mother-site anchor audit kept printing PASS, because the public site still agreed with the frozen anchor. A gate comparing a site to a stale source cannot tell fresh agreement from stale agreement, and the workflow's own step 8 anchor gate was SKIPPED by the exit 2 above it, so the daily runner-side check went dark at the same moment and by the same cause.
What it was hiding
Nine days of anchor drift on the only public repo in the portfolio, unmeasurable in either direction: the anchor could not be refreshed and the freshness of what it holds could not be checked. Work-order barque-fix-anchor-generator-heartbeat, filed 2026-08-30 against exactly this blind spot when the file was two days stale, was still open and at medium when the staleness reached nine days.
How the start date was established
lib/generated/anchors.ts in thecompoundgroup last changed 2026-08-28 (commit 8914666). portfolio-anchors.yml run_number 32, run id 33192119798, on 2026-08-28 is the first of ten consecutive scheduled failures through run_number 41 (34023005430) on 2026-09-06.
Evidence it is fixed
Not fixed. Filed this run as barque-fix-anchor-generator-hrtpicks-parser at priority high, with the failing step, exit code and generator message read from job 101458909593.
§Sixmeasured

What we published, and whether it ranked

Publishing is not the outcome. Thirty days after an article goes up, either search has found it or it has not, and both answers are on this page.

Articles past 30 days old
27
Found by search
23
Not in the measured set
4
published, and not earning impressions where we can see them

Every article on GLP-1 Picks published at least 30 days ago, checked against the 28-day pages report. Ranked means the article's own URL appears in that report, which stores the top 250 pages by clicks out of 1,572. An article missing from it may still have a handful of impressions in the tail; what this counts is whether it earned a place in the measured set.

ArticlePublishedImpressionsClicksFound
retatrutide-weight-loss-drug2026-08-05320yes
alcohol-and-glp12026-08-02230yes
berberine-natures-ozempic2026-08-02not in setnot in setno
glp1-storage-and-travel2026-08-02240yes
how-to-get-semaglutide-online2026-08-02130yes
ozempic-plateau2026-08-0280yes
semaglutide-before-and-after2026-07-1780yes
foundayo-vs-wegovy-pill2026-07-164143yes
semaglutide-vs-tirzepatide2026-07-15890yes
wegovy-vs-zepbound2026-07-07670yes
glp1-cost-guide-20262026-07-064161yes
medicare-part-d-glp1-coverage-2026-complete-guide2026-07-06not in setnot in setno
ozempic-vs-wegovy2026-07-02570yes
mounjaro-vs-ozempic2026-06-24470yes
compounded-semaglutide-crackdown2026-06-19140yes
cagrisema-weight-loss-drug2026-06-162131yes
fda-503b-permanent-compounding-ban-20262026-05-0870yes
next-weight-loss-drugs-pipeline-20262026-05-05440yes
foundayo-guide-20262026-04-29not in setnot in setno
zepbound-vs-mounjaro2026-04-22830yes
glp1-beginners-guide-20262026-04-131380yes
wegovy-pill-vs-injection2026-04-11950yes
foods-to-avoid-on-glp12026-04-11140yes
glp1-side-effects-management-guide2026-04-1120yes
tirzepatide-cost2026-04-11250yes
compounded-tirzepatide2026-04-111610yes
glp1-patches2026-04-08not in setnot in setno
Read 2026-09-14glp1picks/src/data/posts.ts, barque/data/gsc/glp1picks.json
§Sevenmeasured

AI citation share, engine by engine

Assistants cite different domains from one another, so a blended number tells you nothing about any of them. These are separated, and the measurement behind them has a defect that is stated rather than smoothed over.

Sessions from assistants
55
30-day window
Share of all sessions
1.64%
a floor, see below
All sessions
3,347
30-day window
Engines seen
3
counted separately, never summed into one number
chatgpt
45
sessions, 1.34% of all traffic
copilot
8
sessions, 0.24% of all traffic
gemini.google
2
sessions, 0.06% of all traffic
Known defect in this measurement

This is one measurement covering two sites. GLP-1 Picks and GLP-1 Pets fire the same analytics measurement ID and the read applies no hostname filter, so every figure in this section blends both properties. Recorded as a known defect in the dependency registry on 2026-08-01 and not yet fixed. Publishing it while it is wrong is the point: the alternative is publishing it as though it were clean.

Why this is a floor

Read this as a floor, not a total. Somewhere between a third and two thirds of sessions that begin inside an AI assistant arrive with no referrer at all, so they land in direct traffic and are invisible here.

Every other property

not yet connected

HRT Picks, Best Peptide For That and Titrate have no analytics property at all, so their AI citation share is unsized. Not zero.

Read 2026-09-15barque/registry.yml
§Eightmeasured

Spend

This is the thinnest section on the page, and it stays thin until there is a ledger behind it. One line is measured. The rest say what is not recorded and why, because an omitted cost reads as no cost.

Lines measured
1
Lines not tracked
4

DataForSEO prepaid balance remaining

measured
$30.65balance

registry.yml services.dataforseo.balance_usd, verified by GET https://api.dataforseo.com/v3/appendix/user_data returning HTTP 200.

As of 2026-08-01

DataForSEO spend to date

not tracked
no figure

Every DataForSEO response returns a cost field. Nothing logs it. barque/routines/ARCHITECTURE.md section 6 says it should be logged to a ledger and reconciled monthly against the balance, and that is not built yet. Only the remaining balance above is measured.

As of 2026-08-02

Hosting

not tracked
no figure

Six Vercel projects run the portfolio. No billing export is committed to any repo this generator can read, so no figure is stated.

As of 2026-08-02

Domains

not tracked
no figure

Registrar renewal costs are not recorded in any repo. No figure is stated.

As of 2026-08-02

Model and API usage

not tracked
no figure

The routines and the build sessions run against a paid model subscription and several metered APIs. None of it lands in a file, so the ledger carries no number for it.

As of 2026-08-02
The properties

What each one is for

The only part of this page a person writes. Everything above it is generated.

I

GLP-1 Picks

Live
glp1picks.com

Independent comparison of GLP-1 telehealth programs, ranked on what a year actually costs. Live since early 2026 and the only property in the portfolio earning money.

Conversion event · Affiliate sign-up at a partner provider

First conversion 23 April 2026, at Eden Health, for $300. The click economics work. What does not yet work is organic visibility on the queries where people are ready to buy, which is why the click count is the number to watch here rather than the payout.

II

HRT Picks

Live
hrtpicks.com

Approved affiliate partners compared through separate menopause HRT and men’s TRT journeys, with matching finders, comparison tools and transparency grades.

Conversion event · Affiliate sign-up at a partner provider

Relaunched on the purchased domain on 6 July 2026. Affiliate partners are live and the per-site revenue split shipped on 1 August, but nothing yet writes a revenue reading for this property into a file the ledger can read. The revenue row therefore says not connected rather than zero.

III

GLP-1 Pets

Live
glp1pets.com

Veterinary GLP-1 tracker, positioned ahead of the first approval in the category rather than after it.

Conversion event · Email sign-up for pipeline readout notifications

There is no veterinary GLP-1 anyone can buy yet. The entire site is a bet that being the reference before the readout is worth more than arriving after it.

IV

Best Peptide For That

Live
bestpeptideforthat.com

GLP-1 and peptide evidence directory with a separate product and provider price board, explicit source gaps and a plan-cost calculator.

Conversion event · Affiliate activation pending

The comparison experience links to official sources. BPFT-specific payable offers have not been verified for these destinations, so a provider visit is not evidence of earned commission. Revenue remains unmeasured here until a reconciled source exists.

V

Titrate

Live
titrate.health

Peptide and GLP-1 multi-compound tracker for iOS, built around the decisions a patient actually repeats: dose, reconstitution, stack, refill.

Conversion event · App Store install and subscription

Install and subscription figures come from App Store Connect, and no export of it is committed anywhere the ledger can read. Until that changes this property reports search performance only.

VI

Longevity Ranked

Live
longevityranked.com

Longevity-related provider and price comparisons, starting with NAD+ and sermorelin guides, payment terms and provider reviews.

Conversion event · Outbound visit to an official provider site

Provider coverage does not imply an affiliate partnership. Affiliate activation is pending; official-source visits are not evidence of commission. This property has no reconciled performance reading in the public ledger yet.

VII

Revolume

In development
revolume.app

Private on-device skin scan for the facial change that follows rapid weight loss. Web scan first, iOS after.

Conversion event · Waitlist sign-up

Marketing site live, product in build. It has no source-of-truth file yet, which is why nothing on this site states a number about it.

·How we count

Methodology, in the open.

Six states, so that a value nobody read can never look like a value that came back zero: measured, measured and genuinely nothing, not fetched, not yet connected, not tracked, withheld. Every reading on this page carries one of them and the file it came from.

  • Affiliate revenue, conversions, clicks and per-partner earnings come from the Katalys network reading committed daily into the GLP-1 Picks repository. The window is the 30 days ending on the date stamped on the section.
  • Search performance comes from Google Search Console, read straight from the API by a service account and committed as a dated snapshot per property. Click and impression totals are summed over the pages that report returns, and each row says how many pages that was out of how many exist, because the report stores the top pages rather than all of them.
  • Forecast accuracy is scored with the Brier score, where zero is perfect, 0.25 is what a coin flip earns, and 1.0 is confidently wrong. Every resolved forecast appears, including the one that cost the most to get wrong.
  • Work-order throughput counts the queue Barque writes into and the status rows that close it. An order with no status row is counted as still open, never as done.
  • The incident record is written by hand and every row names the commit that fixed it, so the duration is checkable rather than asserted. Where the start date cannot be evidenced, the row says the number is a floor and not a measurement.
  • AI citation share is read per engine and never blended, because the engines cite different domains. It is a floor rather than a total: a large share of sessions that begin in an assistant arrive with no referrer and land in direct traffic.
  • Product facts, meaning provider counts, prices, grades and readout windows, are generated from each product's own source-of-truth file and checked by an audit before this site can build. They are not typed into a page.
  • Nothing on this page is rounded to flatter it. Where a number would identify one individual reader, it is not published at all rather than fuzzed.
What is deliberately not here

The public log carries the daily briefs with their record and their reasoning. It does not carry the work-order queue or the strategic memo that sit in the same files, and those two sections are stripped before anything is published. Results in full was the decision. Broadcasting a plan that has not been executed yet is a different thing, and it was never chosen.