diff --git a/.agents/product-marketing-context.md b/.agents/product-marketing-context.md
new file mode 100644
index 0000000..a62e769
--- /dev/null
+++ b/.agents/product-marketing-context.md
@@ -0,0 +1,230 @@
+# Product Marketing Context
+
+*Last updated: July 24, 2026*
+
+## Product overview
+
+**Working name:** OVO Labs
+
+**Wordmark:** `ovolabs.`
+
+**Descriptor:** Peptide science, refined.
+
+**One-liner:** A fictional peptide retail-house concept that combines warm editorial product presentation with fast finding and explicit evidence boundaries.
+
+**Current reality:** OVO Labs is a concept website. It has no company operations, inventory, material, customers, testing, laboratory relationship, fulfillment, payment, checkout, or commerce. A thin notice at the top of every page states that nothing shown is real, stocked, or for sale.
+
+**What the website demonstrates:** Two Fable-authorized presentations of the same complete ecommerce information architecture: persistent predictive search, four catalog categories, ten product pages, three catalog sets, testing-status lookup, product comparison fields, educational guides, responsive navigation, a browser-local cart, explicit empty/error/success states, and event instrumentation.
+
+**Concept category:** Peptide research-product ecommerce
+
+**Product type:** Fictional brand, ecommerce prototype, and strategic company package
+
+## Current catalog
+
+| Code | Product | Category | Strength | Concept price |
+|---|---|---|---:|---:|
+| OVO-001 | Retatrutide | GLP-1 & Metabolic | 10 mg | $105 |
+| OVO-002 | Tirzepatide | GLP-1 & Metabolic | 10 mg | $100 |
+| OVO-003 | Semaglutide | GLP-1 & Metabolic | 10 mg | $90 |
+| OVO-004 | Cagrilintide | GLP-1 & Metabolic | 10 mg | $89 |
+| OVO-005 | BPC-157 | Research Peptides | 10 mg | $60 |
+| OVO-006 | TB-500 | Research Peptides | 10 mg | $68 |
+| OVO-007 | CJC-1295 | Growth Hormone Research | 5 mg | $52 |
+| OVO-008 | Ipamorelin | Growth Hormone Research | 5 mg | $45 |
+| OVO-009 | CJC-1295 + Ipamorelin | Peptide Blends | 10 mg | $92 |
+| OVO-010 | BPC-157 + TB-500 | Peptide Blends | 20 mg | $118 |
+
+The three concept sets are:
+
+- OVO-S01 — Metabolic Reference Set
+- OVO-S02 — Peptide Pair Set
+- OVO-S03 — Secretagogue Reference Set
+
+Every product and set must preserve the same evidence boundary:
+
+- no material, inventory, or availability exists;
+- no laboratory, testing method, result, certificate, or purity figure is represented;
+- nothing can be checked out, paid for, ordered, shipped, or reserved;
+- no ratings, reviews, popularity, scarcity, or urgency claims are fabricated;
+- no dosing, preparation, administration, safety, efficacy, outcome, or human-use information appears.
+
+## Primary user journeys
+
+1. **Search directly:** Use the persistent search field to find a molecule or catalog code and open the canonical product page.
+2. **Browse by category:** Choose one of four research areas, filter the collection, sort by name or concept price, and compare complete cards in place.
+3. **Evaluate a product:** See the product identity, strength, format, price, testing state, quantity, and add-to-cart action in one decision block.
+4. **Inspect testing status:** Search by product name or code and see what each analytical field would mean, including an explicit “No result reported” state.
+5. **Build a local cart:** Add, update, remove, clear, and inspect a subtotal. The interaction ends before checkout and remains in browser storage.
+6. **Learn:** Read short guides about product comparison and the scope and limits of testing documents.
+
+## Audience and job to be done
+
+**Prototype audience:** Ecommerce operators, brand builders, designers, and category researchers evaluating how a serious peptide storefront could merchandise a focused catalog.
+
+**Potential future audience, only after independent legal and operating clearance:** Qualified organizations seeking research catalog products.
+
+**Core job:** “Help me find the exact catalog entry, compare the facts that matter, and understand what evidence is actually reported.”
+
+## Positioning
+
+**Positioning statement:** Peptides, without the mystery.
+
+**Value proposition:** A focused catalog with clear formats, testing status beside every product, and a fast path from search to cart.
+
+**Differentiation:**
+
+- search and categories are visible before brand theater;
+- product cards expose complete decision fields;
+- each molecule has its own canonical product page;
+- testing status sits beside the decision rather than in a detached document library;
+- empty evidence remains visibly empty;
+- the cart gives precise feedback and stops honestly before checkout.
+
+## Research-backed design principles
+
+The 2025–2026 research package supports these implementation choices:
+
+- Exposed predictive search and rich results for known-item discovery.
+- Visual category shortcuts for exploratory discovery.
+- Two-column mobile product grids with complete cards.
+- Applied category state, result counts, clear search recovery, and predictable sorting.
+- Product-first PDPs with image, identity, strength, format, price, testing status, quantity, and one CTA.
+- Vertical detail sections and accordions rather than horizontal tabs.
+- Exact add-to-cart feedback, editable quantity, remove, subtotal, and a clear terminal state.
+- Eager loading and explicit dimensions for above-the-fold media.
+- No ratings when review evidence does not exist.
+- No autoplay, 3D, decorative scientific motion, fake urgency, or proof-badge clutter.
+
+## Site architecture
+
+```text
+/ovo-labs/
+├── catalog.html
+├── bundles.html
+├── testing.html
+├── notes.html
+│ ├── notes/reading-testing-status.html
+│ ├── notes/choosing-by-molecule.html
+│ └── notes/coa-boundaries.html
+├── company.html
+├── faq.html
+├── policies.html
+├── peptides/
+│ ├── [10 canonical product pages]
+└── 404.html
+
+/ovo-labs-porcelain/
+└── [the same route and content model in an isolated side-by-side variant]
+```
+
+Legacy routes redirect:
+
+- `/third-standard/` → `/ovo-labs/`
+- `/datum-peptides/` and every former deep route → the matching `/ovo-labs/` route
+- `lot-record.html` → `testing.html`
+- `access.html` → `catalog.html`
+- `eligibility.html` remains a compatibility alias for the policy page.
+
+## Brand voice
+
+**Tone:** Warm, editorial, clear, direct, and technically literate.
+
+**Personality:** Considered, tactile, confident, useful, and honest.
+
+**Use:** product, category, code, strength, format, testing status, result, method, scope, sample, cart.
+
+**Avoid:** dossier, archive, institutional access, eligibility gate, release, protocol, dose, transformation, medical-grade, pharmacy-grade, guaranteed, best seller.
+
+## Visual authority
+
+Claude Fable 5 is the sole outward-facing design authority.
+
+The warm-apothecary-modernism route at `/ovo-labs/` is the brand-led comparison control. Its binding system uses:
+
+- `ovolabs.` as the lowercase typographic wordmark and “Peptide science, refined” as the descriptor;
+- warm cream `#F3EADA`, porcelain `#FAF6EE`, parchment `#EDE2CD`, espresso `#3A2A1F`, espresso-deep `#2A1D14`, ink `#5C4A3B`, terracotta `#B9553E`, terracotta-deep `#8F3B2A`, ornament-only gold `#B08A52`, and gold-bright `#C69B63` on espresso;
+- Fraunces for editorial display and the italic wordmark, Instrument Sans for body/UI, and IBM Plex Mono only for codes, concept prices, and status;
+- Aesop-like editorial density, The Row restraint, and Byredo typographic discipline translated into product-led ecommerce;
+- an espresso fiction banner and warm-paper sticky header with exposed search and category navigation;
+- a 12-column 1280px shell, 5/7 desktop hero, product-first fashion grid, and full-width espresso ruled testing band;
+- zero-radius sections/cards, at most 2px on inputs/buttons, and no card shadows or borders;
+- only `ovo-hero-still.webp`, `ovo-vial-front.webp`, and `ovo-set-pair.webp` as production imagery;
+- safe amber research-vial still lifes on cream, stone, linen, plaster, or dark timber;
+- no syringes, preparation tools, body context, fake labels, reports, laboratory props, or invented proof;
+- an opening hero that establishes the house while keeping Shop and Testing actions immediately available;
+- four-up desktop and two-up narrow-width product grids;
+- a cart drawer and mobile sticky product action.
+
+The superseded cool-white/cobalt “Bench Light” direction remains prohibited.
+
+The Fable-authorized Porcelain candidate at `/ovo-labs-porcelain/` is a separate product-first system, not a return to Bench Light. It uses:
+
+- a pure-white `#FFFFFF` canvas with warm near-white `#FBF9F6` cards and `#F3EEE6` image wells;
+- the same amber imagery, espresso controls, terracotta emphasis, and three self-hosted type families;
+- a left-aligned wordmark, direct desktop navigation, persistent boxed search, and a dedicated category row;
+- a compact 55/45 hero, factual four-cell strip, and an early four-up desktop/two-up narrow catalog;
+- 4px controls, 10px cards, and a 16px hero field, with borders doing most of the separation;
+- gold only in packaging photography and the wordmark period;
+- no cobalt, cool-gray clinical template styling, generic laboratory theater, or unsupported proof.
+
+The two routes deliberately share data and truth rules while keeping their CSS, JavaScript, canonical URLs, browser storage, and analytics event namespaces isolated. Porcelain is the primary direct-response hypothesis; the warm route is the premium brand control. Neither is a proven conversion winner without controlled comparative evidence.
+
+## Proof rules
+
+No claim is published without direct support.
+
+| Claim type | Current state |
+|---|---|
+| Customers or testimonials | None |
+| Ratings or popularity | None |
+| Laboratory relationship | None |
+| Identity, purity, content, sterility, or endotoxin result | No result reported |
+| Inventory or availability | None |
+| Fulfillment or delivery | None |
+| Checkout or payment | None |
+| Medical, clinical, or human-use guidance | Excluded |
+
+## Measurement
+
+Each prototype writes non-PII events to `window.dataLayer` and exposes them through `window.OVOAnalytics.events()` for QA. Porcelain additionally exposes `window.OVOPorcelainAnalytics.events()` and dispatches `ovo-porcelain:analytics`.
+
+Search and testing events never contain the visitor’s raw string; they retain only an allowlisted catalog classification, a coarse length bucket, and a result count.
+
+Core events:
+
+- `page_view`
+- `view_item_list`
+- `search`
+- `filter_apply`
+- `sort_changed`
+- `select_item`
+- `select_category`
+- `select_article`
+- `view_item`
+- `view_article`
+- `view_testing`
+- `product_media_selected`
+- `quality_lookup`
+- `add_to_cart`
+- `view_cart`
+- `cart_quantity_changed`
+- `remove_from_cart`
+- `cart_cleared`
+- `newsletter_demo_completed`
+
+These events measure usability only. No prototype event is a purchase or commercial conversion.
+
+## Goals
+
+**Current goal:** Demonstrate a high-converting peptide ecommerce experience while remaining unmistakably fictional and non-transactional.
+
+**Primary quality gates:**
+
+- every reachable route loads without console errors;
+- every visible control works;
+- no broken internal links or orphan pages;
+- keyboard completion for search, navigation, accordions, product quantity, and cart;
+- rendered Fable approval at desktop and narrow width;
+- no fabricated product, quality, customer, shipping, or operational claim;
+- exact pushed commit saved through the connected Sites project, with public deployment only when explicitly authorized.
diff --git a/.dev.vars.example b/.dev.vars.example
new file mode 100644
index 0000000..8f860f2
--- /dev/null
+++ b/.dev.vars.example
@@ -0,0 +1,15 @@
+# Local-only values for the standalone Biologix Worker.
+# Copy to .dev.vars and use distinct random values. Never commit .dev.vars.
+BIOLOGIX_ALLOW_BREAK_GLASS=true
+BIOLOGIX_GATEWAY_KEY_ID=primary-local
+BIOLOGIX_GATEWAY_SECRET=
+BIOLOGIX_OPERATOR_SESSION_SECRET=
+BIOLOGIX_OPERATOR_ACCESS_CODE=
+BIOLOGIX_BREAK_GLASS_OPERATOR_EMAIL=
+BIOLOGIX_TRACKING_REDIRECT_HOSTS=biologixlabsresearch.com,www.biologixlabsresearch.com
+BIOLOGIX_UPSTREAM_ORIGIN=https://ovo.academy
+
+# Configure these after Cloudflare Access is provisioned. Access takes
+# precedence over the break-glass session.
+CF_ACCESS_TEAM_DOMAIN=
+CF_ACCESS_AUD=
diff --git a/.gitignore b/.gitignore
index 04fde58..ce14408 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,7 @@ node_modules
dist
dist-ssr
*.local
+.dev.vars
.conductor/settings.local.toml
.conductor/settings.local.json
diff --git a/.openai/hosting.json b/.openai/hosting.json
new file mode 100644
index 0000000..a5e83d6
--- /dev/null
+++ b/.openai/hosting.json
@@ -0,0 +1,5 @@
+{
+ "project_id": "appgprj_6a618ae6a408819192992389758b58d1",
+ "d1": null,
+ "r2": null
+}
diff --git a/biologix-affiliate-passport-site/README.md b/biologix-affiliate-passport-site/README.md
new file mode 100644
index 0000000..cd32c86
--- /dev/null
+++ b/biologix-affiliate-passport-site/README.md
@@ -0,0 +1,30 @@
+# Biologix Affiliate Passport
+
+Creator-facing, post-signature Biologix affiliate onboarding. The application
+is served at `/passport/` by the Biologix Decision Board Worker and uses the
+same-origin `/api/biologix/*` lifecycle endpoints.
+
+## Local development
+
+```sh
+npm install --workspace biologix-affiliate-passport-site
+npm --workspace biologix-affiliate-passport-site run dev
+```
+
+## Production build
+
+```sh
+npm run build
+```
+
+The root build compiles this workspace and copies its output to
+`dist/client/passport`. Do not commit this workspace's `node_modules` or
+`dist` directories.
+
+## Data boundary
+
+The browser does not store onboarding state locally. Invitation access,
+identity decisions, tax and payout status, account verification, attribution,
+content review, help requests, and activation receipts are loaded and mutated
+through the same-origin API. Sensitive identity, tax, and payout collection
+stays in hosted providers; the Passport receives status decisions only.
diff --git a/biologix-affiliate-passport-site/index.html b/biologix-affiliate-passport-site/index.html
new file mode 100644
index 0000000..897e617
--- /dev/null
+++ b/biologix-affiliate-passport-site/index.html
@@ -0,0 +1,18 @@
+
+
+
+
+ );
+}
+
+function completionMessage(step: StepId, state: PassportState): string {
+ switch (step) {
+ case "program":
+ return "Confirm your location and all three program controls.";
+ case "identity":
+ return "Start the hosted identity verification before continuing.";
+ case "payout":
+ return "Send both setup requests to OVO before continuing.";
+ case "accounts":
+ return `Add and submit the selected ${publishingChannelLabel(
+ state.selectedChannel,
+ )} account for ownership review.`;
+ case "tracking":
+ return "Run the assigned affiliate link test once. Your owner will repair any failed route.";
+ case "training":
+ return `Complete all five lessons. ${state.completedLessons.length} of ${LESSONS.length} are complete.`;
+ case "claims":
+ return `Score at least 5 of 6. Your current score is ${claimScore(state)}.`;
+ case "batch":
+ return "Complete and clear all three content plans, then mark the scripts ready.";
+ default:
+ return "Complete this step before continuing.";
+ }
+}
+
+function WelcomeStep() {
+ return (
+
+
+
+
+
+
+ One controlled activation
+
Finish with a record, not a checklist.
+
+ The Passport binds the person, executed agreement receipt,
+ payout-readiness status, channel, training, link verification, and
+ first three content plans into one reviewable onboarding record.
+
+
+
+
+
+ {[
+ {
+ icon: ,
+ title: "Verify",
+ copy: "Adult identity, legal payee, and account ownership.",
+ },
+ {
+ icon: ,
+ title: "Prepare",
+ copy: "Evidence training, claims lab, and first three content plans.",
+ },
+ {
+ icon: ,
+ title: "Review",
+ copy: "One human decision with a permanent activation receipt.",
+ },
+ ].map((item) => (
+
+ {item.icon}
+ {item.title}
+
{item.copy}
+
+ ))}
+
+
+
+ Your record
+
+ Progress saves securely to your enrollment. Provider decisions and
+ reviewer approvals cannot be changed from this screen.
+
+ Agreement already complete
+ Biologix Creator Affiliate Agreement
+
+ The Passport starts only after the executed agreement has been
+ verified. There is nothing to sign in this flow.
+
+
+
+
+
Version
+
{program?.agreementVersion ?? "Recorded"}
+
+
+
Signed
+
+ {program?.agreementSignedAt
+ ? new Date(program.agreementSignedAt).toLocaleDateString()
+ : "Verified"}
+
+
+
+
Receipt
+
{program?.agreementReceipt ?? "On file"}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setState((current) => ({
+ ...current,
+ agreements: { ...current.agreements, accurate: checked },
+ }))
+ }
+ title="The information I submit is accurate"
+ description="A mismatch pauses activation and routes the record to manual review."
+ />
+
+ setState((current) => ({
+ ...current,
+ agreements: { ...current.agreements, terms: checked },
+ }))
+ }
+ title="I will use only my assigned link and code"
+ description="Every channel and post maps back to the creator record so OVO can verify the assigned redirect and log clicks to the correct creator."
+ />
+
+ setState((current) => ({
+ ...current,
+ agreements: { ...current.agreements, reviewControl: checked },
+ }))
+ }
+ title="I will not publish before written approval"
+ description="After onboarding, I will submit the exact final media, caption, thumbnail, and disclosures through the designated content-approval portal. I will not publish until that exact package receives written approval."
+ />
+
+ {timedOut
+ ? "The provider is still processing. You can safely leave and return, or check again now."
+ : "Passport checks automatically for a decision. This button always remains available as a recovery path."}
+
+ ) : needsCorrection ? (
+
+ The last attempt did not clear this gate. Restart verification
+ or flag this step for your OVO owner.
+
+ ) : null}
+
+ )}
+
+
+
+
+
+ If a legal name differs from the payee or verification fails, the
+ creator can pause, correct the record, and request a manual review.
+ Failure never silently advances the Passport.
+
+ Send a request to OVO Payments. We'll confirm it at your
+ payout email, then a specialist will provide the next secure
+ step. Never enter a tax ID in Passport or ordinary email.
+
+
+
+ Account ownership receipt
+
+ OVO verifies the handle against the creator record and records
+ the decision here. Your selected {selectedChannelLabel} account
+ is the account sent for review.
+
+
+
+ {[
+ "OVO HTTPS redirect responds",
+ "Creator ID survives the OVO redirect",
+ "Code maps to the same creator record",
+ "Destination host and path match the locked route",
+ "OVO click logger returns a unique test receipt",
+ ].map((item) => (
+
+ This test verifies the OVO redirect, assigned creator mapping, and
+ click logging. It does not validate orders, refunds, commissions, or
+ payouts, and it does not publish anything.
+
+
+
+ The final decision belongs to a human reviewer
+
+ Submitting the Passport places the creator, link-test receipt,
+ and first three content plans into one onboarding review queue
+ with a named owner. Final media approval happens later.
+
+ {inactive
+ ? closed
+ ? "This receipt records the onboarding clearance issued before the relationship closed. It no longer authorizes production or publication."
+ : "This receipt remains on file while activation is paused. Production and publication are not authorized until reactivation."
+ : "Every onboarding gate passed and the first three content plans were approved for production. No final post is approved yet."}
+
+ This receipt is retained as a historical audit record. It does
+ not authorize production, posting, or use of the affiliate link.
+
+
+
+ ) : (
+
+
+
+ Next action
+ Produce and submit the exact final content package
+
+ Create the final media, caption, thumbnail, and disclosures,
+ then submit that exact package through the designated
+ content-approval portal. Do not publish until written approval
+ names the exact version. This activation receipt is not
+ publication approval.
+
+
+
+ )}
+
+
+ Immutable activation receipt
+ OVO Talent activation control
+
{token ? "Open your Passport." : "This link is incomplete."}
+
+ {token
+ ? "Confirm below to redeem this one-time invitation and create a secure session on this device."
+ : "Request a fresh access email using the address on your invitation."}
+
+ {token ? (
+
+ ) : (
+
+ Request access
+
+ )}
+
+ The invitation is consumed only when you press confirm. Automated
+ email scanners cannot activate it.
+
+
+
+
+ );
+}
diff --git a/biologix-affiliate-passport-site/src/passport/biologix-login.tsx b/biologix-affiliate-passport-site/src/passport/biologix-login.tsx
new file mode 100644
index 0000000..d0d42fe
--- /dev/null
+++ b/biologix-affiliate-passport-site/src/passport/biologix-login.tsx
@@ -0,0 +1,230 @@
+"use client";
+
+import { ArrowRight, LoaderCircle, Mail } from "lucide-react";
+import { useEffect, useState } from "react";
+
+import styles from "./affiliate-passport.module.css";
+
+export type BiologixLoginReason =
+ | "invalid_token"
+ | "missing_token"
+ | "temporarily_unavailable"
+ | "session_expired";
+
+const REASON_COPY: Record = {
+ invalid_token:
+ "That access link expired or was already used. Request a fresh one below.",
+ missing_token:
+ "That access link was incomplete. Request a fresh one below.",
+ temporarily_unavailable:
+ "We could not redeem that link. Your invitation is safe; request a fresh link or try again shortly.",
+ session_expired:
+ "Your secure session expired. Request a new one-time link to continue.",
+};
+
+export function BiologixLogin({
+ reason,
+}: {
+ reason?: BiologixLoginReason | null;
+}) {
+ const [email, setEmail] = useState("");
+ const [submitting, setSubmitting] = useState(false);
+ const [sent, setSent] = useState(false);
+ const [error, setError] = useState(null);
+ const [resendAfter, setResendAfter] = useState(0);
+
+ useEffect(() => {
+ if (resendAfter <= 0) return;
+ const timer = window.setInterval(() => {
+ setResendAfter((current) => Math.max(0, current - 1));
+ }, 1_000);
+ return () => window.clearInterval(timer);
+ }, [resendAfter]);
+
+ async function sendAccessLink() {
+ if (submitting || resendAfter > 0) return;
+ setSubmitting(true);
+ setError(null);
+ try {
+ const response = await fetch("/api/biologix/login", {
+ method: "POST",
+ credentials: "same-origin",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({ email }),
+ });
+ const data = (await response.json().catch(() => ({}))) as {
+ error?: string;
+ retryAfter?: number;
+ };
+ if (!response.ok) {
+ if (response.status === 429) {
+ const retryAfter = Math.max(1, Number(data.retryAfter) || 60);
+ setResendAfter(retryAfter);
+ throw new Error("Too many access requests.");
+ }
+ if (data.error === "invalid_email") {
+ throw new Error("Enter a complete email address.");
+ }
+ throw new Error("Access email is temporarily unavailable. Try again.");
+ }
+ setSent(true);
+ setResendAfter(30);
+ } catch (caught) {
+ setError(
+ caught instanceof Error
+ ? caught.message
+ : "Access email is temporarily unavailable. Try again.",
+ );
+ } finally {
+ setSubmitting(false);
+ }
+ }
+
+ async function submit(event: React.FormEvent) {
+ event.preventDefault();
+ await sendAccessLink();
+ }
+
+ return (
+
+
+
{sent ? "Check your inbox." : "Return to your Passport."}
+
+ {sent
+ ? "If this email has an active Biologix invitation, a one-time access link is on its way."
+ : "Use the exact email attached to your Biologix creator invitation. No password is required."}
+
+
+ {!sent && reason ? (
+
+ {REASON_COPY[reason]}
+
+ ) : null}
+
+ {sent ? (
+
+
+
+
+ The link expires automatically and can only be redeemed once.
+
+
+ {error ? (
+
+ {error}
+ {resendAfter > 0
+ ? ` Try again in ${resendAfter} seconds.`
+ : null}
+
+ ) : null}
+
+
+
+
+
+ ) : (
+
+ )}
+
+
+ Trouble accessing an active invitation? Contact your OVO activation
+ owner from the original email thread.
+
+
Build a managed creator company around Biologix: recruit college-age adults, close them live, securely connect every eligible creator account to OVO’s Meta-approved DM engine, produce house podcasts and daily content, route every inbound conversation, measure contribution, and turn real community experiences into the next wave of affiliates.
+
Working operating design · Internal · Proposed, not yet installed · Adults only · Exact product, claims, jurisdiction, and channel require written clearance before activation
+
+
Initial cohort10 controlled creators
+
Creator hubDiscord + iMessage
+
Internal truthCRM + Slack
+
Scale gateContribution + retention
+
+
+
+
+
+
+
+
+
+
+
+
01 / Operating thesis
This is one creator system, not disconnected tactics.
+
Every handoff creates the input for the next stage. Retreats create belonging and content; content creates attention and applicants; applicants restart recruiting.
+
+
+
+ 01
+
Acquire the right adults.
+
Use targeted DM and email to find reliable college-age adult creators with camera presence, category fit, and the ability to post consistently.
+
+ →
+
+ 02
+
Close and activate fast.
+
One live presentation moves from offer to agreement to onboarding preview, with a named post-call owner and deadline.
+
+ →
+
+ 03
+
Turn output into proof.
+
Daily approved content, tracked performance, creator earnings, community, and retreats create proof that attracts the next creator cohort.
+
+
+
+ More qualified creators→
+ More approved content→
+ More attributable demand→
+ More creator proof→
+ More qualified creators
+
+
+
+
+
+
02 / Full operating flow
Every arrow has an owner, output, metric, and gate.
+
The commercial motion is fast. Activation is still gated: nobody posts or links until identity, agreement, training, tracking, and the contemplated campaign are cleared.
+
+
+
+
Lane ARecruit and closeGrowth Ops → SDR → AE
+
+
+ 01 / Source
+
Build the adult creator list.
+
Segment net-new category creators from peptide-adjacent creators. Personal use is never required or used as the script.
Post → click → lead or order → settlement → contribution → approved payout, with refunds, reversals, complaints, and repeat behavior visible.
+
Owner
RevOps + Affiliate Lead
Output
Cohort dashboard
KPI
90-day contribution / creator
+
+ →
+
+ 12 / Compound
+
Feed proof back into recruiting.
+
Winning hooks, creator stories, community footage, real program results, and qualified referrals become the next outreach and retreat invitation engine.
+
Owner
Growth + Community
Output
Stronger applicants and scripts
KPI
Qualified applicants / active creator
+
+ ↺ Source
+
+
+
+
+
+
+
03 / Operator media + messaging engine
The house, every creator account, and OVO’s DM system create two revenue branches at once.
+
Podcasts and long-form become daily clips across owned and creator accounts. Every inbound DM or email reply is answered, qualified, attributed, and routed into customer revenue or Patricia’s affiliate pipeline.
YouTube Shorts, TikTok, Instagram Reels and Stories, platform-native hooks, captions, disclosures, tracked CTA, and performance tags.
+ Owner · Editor + Content Ops
+
+
+
+
+
01Shows + long-formJaci, Kennedy, house podcasts
→
+
02Short-form clip bankDaily discovery and repetition
→
+
03Owned + creator accountsEvery signed creator adds reach
→
+
04Bio link + DM CTACreator, platform, asset, campaign
→
+
05Inbound conversationsDMs, comments, and email replies
+
+
+
+
+
+ $80K owned infrastructure / Approved Meta app
+
Install one DM + email conversion engine across every signed creator account.
+
+
Each eligible creator securely authorizes the app through Meta’s account-connection flow. OVO then owns the automated first response, qualification logic, source attribution, CRM handoff, and reporting layer.
+
+
+
01 / ConnectSecure creator authorizationOAuth connection · no shared passwords or raw API keys
+ Owned compounding asset
+ More affiliates → more connected accounts → more daily content → more inbound conversations → more customers and affiliate prospects.
+ Automation stays inside approved permissions, messaging windows, and rate limits. Low-confidence, medical, sensitive, or exceptional questions move to a person.
+
+
+
+
+
+
+ Revenue branch A / Customer
+
Basic questions become answered, attributed customer journeys.
+
The system answers approved FAQs, recommends the relevant education or product page, and keeps the creator, asset, conversation, and conversion source attached.
The system qualifies Patricia’s next managed creator.
+
Automated fit questions identify the affiliate prospect and preserve the original creator, content, and conversation source before Patricia takes ownership.
+
+
+ Potential affiliate→
+ Automated fit questions→
+ Patricia’s calendar→
+ Live call + agreement→
+ ID + onboarding→
+ Secure Meta connection→
+ Daily content + new inbound
+
+ Outbound DMs+Outbound email→Replies enter the same qualification engine→Qualified prospect→Patricia’s calendar
+
+
+
+
+
+ Patricia / Revenue + creator desk
+
Automation handles first-pass qualification. Patricia owns the qualified relationship.
+
Patricia receives the conversation record and source context, confirms fit, books and closes, walks the agreement, triggers onboarding and secure account connection, monitors posting, coaches performance, and makes retain, pause, or offboard recommendations.
Recalibrate after two weeks. At 70–85% capacity, add scheduling/onboarding coordination. Above 85% for two weeks or repeated SLA misses, add a creator coordinator before opening more calls.
+
+
+
+
+ Customer questions+
+ Affiliate objections+
+ Automated reply performance+
+ Winning hooks+
+ Approved creator stories→
+ Next shows, podcasts, and creator briefs→
+ More customer and affiliate inbound
+
+
+
+ InboundCaptured instantlyCreator, asset, campaign, conversation
+ Automated first replyImmediateApproved answer or qualification question
+ QualificationWithin 24 hoursAdult, location, fit, conflicts
+ Human escalationWithin 2 business hoursLow-confidence, sensitive, or exceptional
+ Call offeredSame conversationQualified affiliate prospect
+ VerificationWithin 1 business dayAfter complete submission
+ Meta connectionDuring activationEligible account authorizes approved app
+ First approved postWithin 72 hoursAfter every activation gate clears
+
+
+
+
+
+
03B / Market intelligence engine
The market writes the next operating plan.
+
Every DM, comment, call objection, content result, purchase, repeat signal, and affiliate outcome becomes structured intelligence—not scattered anecdotes.
+
+
+
+ 01 / Audience voiceDMs + comments
Questions, language, desires, confusion, objections, and creator applications from Jaci, Kennedy, and affiliate accounts.
+ +
+ 02 / Sales voiceCalls + outcomes
Patricia’s objections, qualification failures, close reasons, no-shows, lost reasons, and onboarding friction.
+ +
+ 03 / Content truthHooks + behavior
Watch time, saves, qualified DMs, URL clicks, applications, customer conversion, and contribution by asset.
+ Source personPlatformContent assetCustomer / affiliate intentTopic or moleculeQuestion or objectionFunnel stageAction takenOutcomeRevenue / contributionRepeat signalConfidence
+
+
+
+ Weekly intelligence memo / Alex chairs
+
One page changes the next week.
+
+
Top ten customer questions and exact audience language.
+
Top affiliate objections and stuck pipeline stages.
+
Highest-converting topics, hooks, creators, and CTAs.
+
Best contribution and repeat signals—not merely views or revenue.
+
New risks, confusing language, or content patterns to stop.
+
Five decisions with owners, budgets, hypotheses, and deadlines.
+
+
+
+
+
+ Content allocation
What should Jaci, Kennedy, and affiliates talk about next?
Rank briefs by qualified demand, conversion evidence, contribution, repeat behavior, and strategic learning value.
+ Creator allocation
Which creator cohorts deserve more support?
Promote creators who create profitable customers, qualified affiliates, reliable output, and useful market intelligence.
+ Offer + lifecycle
Which cleared offer and sequence should be tested?
Use objection, conversion, repeat, and referral data to prioritize landing paths, nurture, merchandising, and win-back experiments.
+ Braden’s product priorities
What is the market asking Braden to investigate?
Alex supplies the quantified demand map; Braden retains product, vendor, inventory, and category decisions.
+
+
+
+
Jaci + KennedyTag audience questions and content source.
+
PatriciaOwn objection, close, onboarding, and creator-health reasons.
+
Lifecycle + RevOpsJoin customer, creator, settlement, repeat, and referral outcomes.
+
AlexTurn the evidence into priorities, budgets, experiments, and owners.
+
+
+
+ Signals tagged within 24 hoursQuestions converted into briefsExperiments shipped / weekWin rate versus baselineContribution lift from winning testsTime from signal → decision
+
+
+
Boundary · Collect only the minimum information needed for the commercial decision. Do not infer private health conditions or turn voluntarily shared sensitive information into creator targeting.
+
+
+
+
+
04 / Decision console
Lock the defaults before building the machine.
+
Choose one option in every card. Selections save in this browser only and do not change any external system.
+
+
+
0 / 8 decisions lockedLocal working state
+
+
+
+
+ 01 / Cohort
+
Who enters the first pilot?
+
+
+
+
+
+
+
+ 02 / Pilot size
+
How many creators prove the system?
+
+
+
+
+
+
+
+ 03 / Accounts
+
Where does content live?
+
+
+
+
+
+
+
+ 04 / Management
+
Where does the relationship run?
+
+
+
+
+
+
+
+ 05 / Approval
+
How does content clear?
+
+
+
+
+
+
+
+ 06 / Cadence
+
What is the production promise?
+
+
+
+
+
+
+
+ 07 / Economics
+
How are creators paid?
+
+
+
+
+
+
+
+ 08 / First experience
+
What launches the community?
+
+
+
+
+
+
+
+ 09 / CTA architecture
+
How does the connected-account engine split every inbound conversation?
+
+
+
+
+
+
+
+ 10 / Affiliate ownership
+
How do Connor and Patricia divide the book?
+
+
+
+
+
+
+
+
+
+
+
+
05 / Live close
One call moves interest into a clean handoff.
+
The account executive does not end with “we’ll send details.” The creator sees the offer, agreement, and onboarding path while attention is highest.
+
+
+ 00–03
Set the frame
Confirm time, goals, adult eligibility, and decision process.
+ 03–10
Biologix story
Founder, category, creator program, and why the opportunity exists.
+ 10–18
The creator role
Accounts, approved content examples, cadence, link, support, and measurement.
+ 18–24
Offer and standards
Compensation, payout timing, expectations, disclosures, and prohibited content.
+ 24–31
Resolve objections
Confirm capacity, comfort, conflicts, and genuine alignment.
+ 31–38
Walk and sign
Open the approved agreement, explain material terms, and sign live if ready.
+ 38–42
Preview onboarding
Show every post-call step, introduce the owner, and lock the due date.
+
+
+
Asset 01Live sales deck
Brand, role, examples, economics, support, standards, next step.
+
Asset 02E-sign agreement
Approved template, identity, audit trail, content and payout terms.
+
Asset 03Onboarding preview
Visible progress path from identity to first approved post.
+
Asset 04AE handoff record
Owner, objections, promised terms, due dates, and next meeting.
+
+
+
+
+
+
06 / Post-call activation
Signed is not live. Activated is live.
+
The creator can finish onboarding after the call, but the system must make the remaining path obvious and measurable.
You are installing the company around Braden’s cash engine.
+
Braden retains product/category knowledge, vendor relationships, the transaction, and his chosen 3PL. Alex + OVO install distribution, people, systems, community, customer lifecycle, revenue truth, and operating cadence.
+ Alex + OVO install
+ Management leverage · podcast media · Meta-approved DM infrastructure · sales · creator operations · lifecycle · team · data · community
+
+ =
+
+ The outcome
+ A measurable company that can operate without Braden driving every function
+
+
+
+
+ Assets Alex brings on day one—not hypothetical future labor
+
+ OVO Talent creator sourcing and management playbooks
+ OVO Academy training and curriculum engine
+ Jaci + Kennedy media capacity
+ Patricia’s closer and creator-manager capacity
+ Miami hosts, influencers, and connector network
+ Alex’s operator brand and recruiting network
+ $80K Meta-approved DM integration and automated qualification layer
+ Systems, automation, dashboards, and operating design
+
+
+
+
+
+ 01 / President layer
+
Turn founder intent into execution.
+
Priorities, budgets, owners, decisions, hiring, weekly accountability, and cross-functional problem solving.
+
Owner
Alex + Braden
Output
Operating plan + decision log
KPI
Commitments shipped and contribution growth
+
+
+ 02 / Marketing engine
+
Own attention instead of waiting for word of mouth.
+
Jaci/Kennedy media, outbound DM/email, affiliate content, founder content, retreats, referrals, lead magnets, landing paths, and a unified editorial calendar.
+
Owner
Alex + Media/Growth
Output
Qualified buyer and affiliate demand
KPI
Attributed contribution—not views alone
+
+
+ 03 / Sales machine
+
Convert interest without dropped handoffs.
+
Qualification, live deck, objection library, approved agreement, live signature, onboarding preview, and complete CRM handoff.
+
Owner
Patricia initially
Output
Signed, qualified affiliate
KPI
Show → sign and exception rate
+
+
+ 04 / Creator OS
+
Make affiliates consistent and retainable.
+
ID, training, accounts, links, content calendar, approvals, scorecards, coaching, payout visibility, health status, and offboarding.
+
Owner
Patricia → Creator Success
Output
Active managed roster
KPI
30/60/90 retention and contribution / creator
+
+
+ 05 / Community
+
Turn affiliation into identity and status.
+
Inner Circle dinners, Miami Creator House, boat content, Keys weekends, recognition, captain roles, referrals, and earned destination tiers.
+
Owner
Alex + Community/Production
Output
Content bank + referrals + retention
KPI
Applications, retention lift, event payback
+
+
+ 06 / Customer lifecycle
+
Turn one visit or purchase into a relationship.
+
Lead capture, consent, segmentation, education, nurture, abandoned-intent follow-up, repeat measurement, reviews, referrals, and win-back.
+
Owner
Lifecycle Lead
Output
Permissioned customer relationship
KPI
Capture, repeat, referral, 60/90-day LTV
+
+
+ 07 / Revenue truth
+
Know which content and creators make money.
+
Source IDs from content or outreach through click, order, settlement, refund, contribution, and creator payout.
+
Owner
RevOps + CFO
Output
Creator-level contribution statement
KPI
Coverage, accuracy, payout timing
+
+
+ 08 / Team building
+
Hire capacity before heroes become bottlenecks.
+
Role scorecards, recruiting, auditions, onboarding, management cadence, and capacity triggers for editing, coordination, sales, creator success, lifecycle, and RevOps.
Qualify, close, onboard, activate, manage cadence, coach, retain, and offboard.
+ Existing / Strategic AffiliatesConnor — decide
Resolve whether Connor retains existing relationships while Patricia owns net-new, or the entire book transfers.
+ ProductionEditor + Content Ops
Atomization, calendar, versioning, review status, publishing support, and asset library.
+ Messaging InfrastructureOVO Systems
Meta account connections, approved replies, qualification logic, unified inbox, alerts, and human escalation.
+ Growth IntelligenceRevOps + Lifecycle
Account-level DM attribution, answer performance, cohort economics, payout truth, lead capture, repeat, and reporting.
+
+
+
First 10 creatorsPatricia owns close + activation + management.
+
10 simultaneous onboardings or repeated admin missesAdd an onboarding/coordinator seat.
+
15–25 active creators or 15–20 calls/weekSplit closing from day-to-day Creator Success.
+
Content queue misses 24-hour SLAAdd editing or Content Ops capacity before increasing cadence.
+
+
+
+
+
+ Inside Alex’s mandate
+
House podcasts · media · Meta account connections · automated DM/email qualification · marketing · affiliate acquisition · sales · contracting · onboarding · creator management · community · lifecycle · RevOps · hiring · operating cadence · data and IP governance.
+
+
+ Retained by Braden
+
Product/category decisions · sourcing and vendor truth · inventory ownership · transaction entity · chosen 3PL · fulfillment and service operation.
+
+
+ Required interface—not Alex’s job
+
Order, settlement, refund, stock, shipment-status, and exception data must still feed attribution, lifecycle, creator payout, and the weekly operating view.
+
+
+
+
+
+ Braden today / Founder as operating system
+
Every function eventually comes back to him.
+
Constant inbox and decision traffic
Founder-dependent priorities and approvals
Informal affiliate relationships
Limited management visibility
Growth adds more personal chaos
+
+
→
+
+ Life upgrade / Founder with a company
+
Braden gets leverage, peers, travel, and room to be the expert.
+
One weekly operating review instead of constant chasing
Scheduled founder-content blocks instead of daily posting pressure
A real team handling pipeline and creator operations
Dashboards and decision packets without micromanaging
Retreats, community, relationships, and a better founder life
The company keeps moving while he is not personally driving each function
+
+
+
+
+
+
+
08 / Retreat engine
Turn the community into content—and the content into affiliates.
+
The retreat is not a random luxury perk. It is a status ladder that creates belonging, a 30-day content bank, recruiting proof, referrals, and retention.
+
+
+
+
01Current affiliatesProven creators carry the culture
+ →
+
02Qualified guestsPre-vetted prospects see it firsthand
Prospect invite → firsthand experience → online retreat content → program CTA → application → live close → activation → next experience.
+
+
+
+
+
+ Always on
+
Inner Circle dinners
+
8–16 creators and selected pre-vetted guests. Founder clips, spotlights, referrals, and monthly recognition.
+
Recruiting
High
Retention
Very high
Complexity
Low–medium
+
+
+ Launch format
+
Miami Creator House
+
10–14 creators, a permanent podcast set, content pods, one controlled boat module, and an invite-only founder dinner.
+
Recruiting
Very high
Retention
High
Complexity
Medium–high
+
+
+ Hero scene
+
Boat day
+
A half-day aspirational content scene—not the whole program. Keep the group within lawful vessel capacity.
+
Recruiting
Very high
Retention
High
Complexity
High
+
+
+ Retention layer
+
Keys villa weekend
+
8–12 proven creators for deeper planning, long-form content, collaboration, and captain development.
+
Recruiting
High
Retention
Very high
Complexity
High
+
+
+ Credibility layer
+
Performance weekend
+
Training, nutrition, sleep, recovery, routines, and licensed experiences—without health-outcome testimonials.
+
Recruiting
Medium–high
Retention
High
Complexity
Medium–high
+
+
+ Earned tier
+
Bimini President’s Club
+
6–10 top performers. Premium status and destination content after the creator engine is proven—not event one.
+
Recruiting
Very high
Retention
Very high
Complexity
Very high
+
+
+
+
+
+ Recommended launch / Founding 12
+
Miami house → podcast sessions → content day → boat scene → private dinner.
+
A three-day activation weekend for fully contracted creators, with structured podcast conversations and a small number of pre-vetted prospect guests joining the dinner—not an open party.
ID, agreement, release, emergency contact, and travel forms.
Disclosure and content training.
Content pillars, hooks, interview prompts, and shot list.
Venue, weather, transport, and activity backup plans.
+
+
+ Day 1 / Belonging
+
Make the identity real.
+
Arrivals and creator portraits.
Founder story and program expectations.
Account and content workshop.
Creator interviews and private Inner Circle dinner.
+
+
+ Day 2 / Production
+
Build the content bank.
+
Three rotating content pods.
Midday footage and quality check.
Controlled boat experience and hero capture.
Recognition, captain announcements, and referral nominations.
+
+
+ Day 3 / Accountability
+
Leave with a schedule.
+
Licensed performance or recovery experience.
Edit and approval workshop.
30-day calendar and next-tier criteria.
First approved post within 72 hours.
+
+
+
+
+
+ Selection scorecard
+
Choose culture carriers, not just follower counts.
+
+
Reliability and posting consistency25%
+
Content instinct and camera presence25%
+
Audience fit20%
+
Brand safety and content discipline20%
+
Collaborative energy10%
+
+
+
+ Retreat success test
+
Views are not the primary outcome.
+
+
First approved post within 72 hours
+
Usable assets and first-review approval rate
+
Qualified applications per attendee
+
Applicant → signed → verified → first-post conversion
+
30/60/90-day attendee retention versus control
+
Event cost per activated creator and approved asset
+
Incremental 90-day contribution per attendee
+
+
+
+
+
+ No-go gate
+
The visual can never become “college kids, alcohol, boats, and injectable products.”
+
The event signals a disciplined creator company with an elite community. Venue and filming permission, releases, insurance, vendor credentials, code of conduct, sober incident lead, transport and water safety, approved disclosure language, and content review must be complete before launch.
+
+ 21+ launch cohortPermitted venueCommercial filming clearedInsured vendorsAppearance + content releasesNo dosing or product-use footageNo health-outcome testimonialsWeather and transport backup
+
+
+
+
+
+
+
09 / Command center
The board runs on conversion and contribution—not vibes.
+
Every stage count must reconcile to a creator record. The first pilot proves the handoffs before outreach volume or retreat spend expands.
Jaci and Kennedy’s weekly shows, the house podcast format, atomization calendar, owned and creator-account distribution, tracked CTAs, and source attribution.
Owner · Alex + Media
+
03
Build the live sales deck.
One presentation that explains Biologix, the creator job, examples, standards, support, economics, and next steps.
ID/age, payee details, training, account setup, Meta OAuth authorization, tracking, first content batch, and visible progress.
Owner · Patricia + Ops
+
06
Deploy the owned DM + email conversion engine.
Meta account connections, webhook intake, unified inbox, approved answer library, qualification logic, customer-page routing, Patricia booking, and human escalation.
Owner · OVO Systems
+
07
Configure CRM, attribution, and payout truth.
One record from content, outreach, or conversation through route, Patricia’s pipeline, creator contribution, reversals, and approved payout.
Owner · RevOps
+
08
Install customer lead capture and lifecycle.
Approved answers, tracked pages, consent, segmentation, nurture, conversion, repeat, referral, and win-back reporting remain separate from the affiliate pipeline.
Owner · Lifecycle
+
09
Launch the creator communication stack.
Discord community, iMessage relationship lane, and internal Slack/CRM operating record.
Owner · Patricia
+
10
Install the content operating system.
Shows, podcasts, pillars, hooks, disclosure rules, review queue, asset library, calendar, corrections, and takedown control.
Owner · Content + QA
+
11
Lock the initial org and hiring triggers.
Resolve Connor versus Patricia ownership, the existing marketing company boundary, and when coordination, editing, Creator Success, Lifecycle, and RevOps seats split.
Owner · Alex
+
12
Activate ten connected creators and measure 30 days.
Measure content, inbound conversations, auto-resolution, qualified routes, sales, and new affiliate acquisition before cohort two.
Owner · Operator
+
13
Run monthly dinners, podcasts, then Founding 12.
Use the proven roster to create the first controlled house-podcast, retreat-content, and recruiting loop.
Owner · Community + Production
+
+
+
+ Hard stops / pause immediately
+
+
Underage or unknown-age prospect
+
Fake identity, account farming, or platform evasion
+
Unapproved campaign, product, claim, or jurisdiction
+
Undisclosed paid relationship
+
Unsupported efficacy, weight-loss, disease, or before/after claim
+
Missing agreement, tax, payout, training, or attribution record
+
Platform strike, customer complaint, safety event, or payment anomaly
+
Retreat venue, filming, capacity, insurance, or transport gate not cleared
Sourced from OVO's creator network — not cold DMs and hope.
+ 06Onboard
Contracts, tax, training, and approved claims before day one.
+ 07Content
Briefs, approvals, and a versioned claims library.
+ 08Attribute
Order-level tracking through refunds to settled cash.
+ 09Pay
Transparent statements and on-time payouts after settlement.
+ 10Manage
Cohorts, scorecards, coaching, and offboarding rules.
+ 11Lifecycle
Email, SMS, referral, support signals, and measured repeat behavior.
+
+
Every stage instrumented. Every creator dollar reconciled to settled profit.
+
+
+
+
+
+
The install · 03
+
Leverage that compounds.
+
+
+ 12Your team, day one
OVO's operators, editors, and talent staff deploy immediately. No six-month hiring ramp.
+ 13Managers, not just hires
I install leaders who run teams — so growth never routes through you or me.
+ 14Organization & cadence
Owners, scorecards, weekly cadence, recruiting, and training that survive any one person.
+ 15Founder media
A real content machine that turns your expertise into compounding authority.
+ 16The creator ecosystem
Miami councils, dinners, content weekends, and earned travel retreats. A room commission can't buy.
+ 17Controlled hyper-scale
Cohorts of 25, not a public free-for-all. Systems and data decide when to open the throttle.
+
+
+
+
+
+
+
Replacement value
+
The backend alone is a real engagement.
+
A $30k–$40k build if you bought only the systems. The role includes them — and the parts you cannot buy.
+
+
+
+
Standalone operating backend build$30k–$40k
+
+
System architecture, workflows, data model, portal logic, and implementation design.
+
+
+
Integrated operating partnershipNot sold separately.
+
+
The full seventeen-system install, plus OVO's team from day one, installed managers, the creator network, and the founder ecosystem — with accountability for the whole company layer.
+
+
+
Illustrative replacement-value framing · Final scope and economics follow verified access.
+
+
+
+
+
+
The mandate · Named precisely
+
A CRO runs revenue. This builds the company.
+
+
+
+ What a CRO owns
+
+
Revenue organization
+
Pipeline & conversion
+
Sales & marketing output
+
+
One lane. Real — and it assumes a company already exists around it.
+
+
+ What this mandate owns
+
+
Financial truthOne reconciled version of cash and contribution
+
Company systemsThe operating spine every team runs on
+
Team architectureLeaders hired to run teams, not tasks
Paid sprint deploys Alex and the OVO pod for the first 30 days: data room, reconciliation, financial close, operating map, backend, attribution, organization design, and the 90-day plan. Read-only; no public title or custody.
+
+
+ 02 · Clear
+ Verify the road
+
Economics reconciled, ownership confirmed, insurance reviewed, and an independent counsel-defined operating perimeter both parties can follow.
Guaranteed cash, earned equity, and measured upside begin. The sprint becomes Day 1 of the operating mandate.
+
+
+
+
+
+
+
+
After activation clears
+
Operating Partner, Growth & Scale.
+
+
+
+ Guaranteed cash
+ $30k/mo
+
Personal compensation for the operating mandate. Begins Day 31 — the $50k activation covers the first 30 days.
+
+
+ Earned ownership
+ 10%
+
2.5% at closing · 2.5% at day-90 systems milestone · 5% over 24 months.
+
+
+ Measured upside
+ 15%
+
Of incremental Collected Contribution Profit above the locked baseline.
+
+
+
+ Funded separately · Every dollar named
+
Managed OVO team deployment $20k/mo from Day 31 — the activation covers the first 30 days · Software & extraordinary contractors company-funded · Full retreats & content weekends: hard costs prefunded + operating fee of the greater of $25k or 20% of approved hard-cost budget
+
+
+
Performance share · Monthly payment · 24-month term · Before discretionary reinvestment
+
Your verified pre-deal engine is never in the performance pool. Covered channels must sit inside the approved operating perimeter.
+
+
+
+
+
+
+
Choose what you are buying
+
Two lanes. One decision.
+
+
+
+ Lane 01 · Full mandate
+
Operating Partner, Growth & Scale
+
The company-building machine. I own financial truth, systems, team architecture, managers who run teams, the complete affiliate backend, lifecycle and retention, founder media, the creator ecosystem, travel and retreats, management cadence, and controlled hyper-scale. You keep product, sourcing, vendors, inventory, fulfillment, shipping, and the 3PL.
+ Ownership-heavy
+ $30k / month · Earn-in to 25% fully diluted equity · Mandatory monthly distributions of defined Available Cash · No performance share
+
+
+
Full 25% grant approved and issued at signing under reverse vesting · 10% signing · 5% Day 30 · 5% Day 90 · final 5% through Month 6.
+
Either package carries the same separately funded machine from Day 31 — $20k/mo OVO team deployment; events prefunded plus a stated operating fee.
+
+
+ Lane 02 · Introductions only
+
Creator Introduction Partner
+
Access to the relationships, nothing else. I introduce creators; Biologix owns vetting, contracting, onboarding, management, content approvals, attribution, payout operations, lifecycle, support, and events. No backend build, no OVO team, no retreats or travel, no management cadence, no equity, no operating title.
+
+
+ Revenue share
+ 15% of Attributed Net Collected Revenue
+
+
+
Collected sales attributed to accepted creators Alex introduces, net of refunds and chargebacks — a revenue share, not profit and not all revenue. 24-month term; attribution window set in the definitive documents.
+
+
+
+ The decision
+
Do you want access to my relationships — or the company-building machine behind them?
+
+
+
+
+
+
+
The rights ledger
+
Clear enough to protect the relationship.
+
+
+
+ Braden retains
+
+
Overwhelming majority ownership
+
The verified pre-deal baseline
+
Founder vision and public role
+
Product, category, sourcing, and suppliers
+
Inventory, fulfillment, shipping, and the 3PL
+
Major sale and capital decisions
+
+
+
+ Alex / OVO holds
+
+
Earned equity under the chosen package
+
The Growth & Scale operating mandate
+
OVO's team, contractor relationships, and delivery management
+
OVO's pre-existing network, systems, and generalized IP
+
Data, information, audit, distribution, pro-rata, and tag rights
+
Successor and anti-circumvention protection
+
+
+
+ Biologix owns
+
+
Customer, order, and product data
+
Its brand, catalog, and company accounts
+
Company-specific operating records
+
Paid bespoke work product under the definitive IP schedule
+
Company-specific accounts, licenses, and tools it funds
The first 30 days of the Operating Partner road: a paid activation and data-access session. If the engine is what you believe it is, Day 1 starts now.
+
+
+ This week
+
Paper the activation · Open source systems · Lock the baseline · Build Day 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Biologix × Alex
+ Operating partnership · Private
+
+
+
+
+
diff --git a/biologix-strategy-board/archive/operating-partnership-deck/talking-points.md b/biologix-strategy-board/archive/operating-partnership-deck/talking-points.md
new file mode 100644
index 0000000..bff088f
--- /dev/null
+++ b/biologix-strategy-board/archive/operating-partnership-deck/talking-points.md
@@ -0,0 +1,381 @@
+# Braden meeting guide
+
+## The objective
+
+The win is not a verbal promise of equity. The win is:
+
+1. Braden sees Alex as the person who can build the company around what he created.
+2. Braden understands why Operating Partner, Growth & Scale is broader than a CRO, affiliate manager, or agency role.
+3. Both parties choose a staged structure instead of arguing from unverified screenshots.
+4. Braden approves a $50,000 prepaid 30-day source-of-truth sprint and data-access session.
+
+Do not accept a public title, launch OVO creators, take custody of money or product, or commit to the permanent package on the call.
+
+## Ask before opening the deck
+
+- “If the business doubled next month and nothing operational changed, what breaks first?”
+- “What parts of the company do you personally never want to touch again?”
+- “If this worked perfectly, what would your actual week and life look like twelve months from now?”
+
+Use his answers throughout the pitch.
+
+## Exact opening
+
+> I took our conversations seriously. I do not think this is a normal client opportunity, and I do not think what you need is another marketing agency.
+>
+> You already built the rare part: product instinct, customer trust, organic demand, and a real cash engine. I put together a working thesis for the company hiding inside it, what I would actually own, and how we can make the economics fair to both of us.
+>
+> I want you to tell me where I am right, where I am wrong, and whether this is the company you actually want.
+
+## Slide-by-slide talk track
+
+### 1. The company hiding inside the cash engine
+
+Do not explain the whole deck. Let the frame land.
+
+> I am not here to pitch posts. I want to show you the institution that should exist around what you discovered.
+
+### 2. What you built
+
+> I want to start by giving you complete credit. You solved the part most people never solve: market timing, customer belief, product instinct, and real demand.
+>
+> I do not know your products better than you. I know how to build the company that lets your advantage compound.
+
+### 3. The engine, as you report it
+
+> I believe something meaningful is happening. I also will not repeat these numbers to a creator, buyer, lender, or partner as fact until we reconcile orders, settlements, refunds, inventory, taxes, and actual cash.
+>
+> If these reconcile, the opportunity becomes even more obvious.
+
+Do not call the reported 85% “net” a verified margin. Separate:
+
+- storefront orders;
+- processor-settled receipts;
+- collected contribution;
+- normalized operating profit;
+- available cash;
+- owner distributions.
+
+### 4. Where it stops
+
+> This is not criticism. It is what happens when demand grows faster than infrastructure. But the business still owns too much of you.
+
+Ask:
+
+> If you disappeared for thirty days, what breaks first?
+
+Let Braden describe the founder dependency himself.
+
+### 5. If nothing changes
+
+> I am not saying sales disappear without me. They may keep growing. I am saying every new dollar arrives inside the same concentration, opacity, and founder dependence.
+>
+> That is the cost of waiting: the cash engine gets larger without becoming safer, more valuable, or more free.
+
+The credible cost of inaction is not “everything breaks tomorrow.” It is:
+
+- three to five meaningful affiliates and word of mouth remain a concentrated acquisition channel;
+- operational decisions continue to route through Braden;
+- broken analytics keep cash, contribution, and distributable profit unclear;
+- buyers who are never captured or re-engaged create no measurable compounding;
+- each volume spike adds exceptions faster than it adds enterprise value.
+
+### 6. You own the engine
+
+> Your unfair advantage is product, category, founder trust, and speed. Mine is financial truth, systems, people, creator operations, management, and the company architecture around it.
+>
+> That complement is why this can be a partnership instead of a vendor relationship.
+
+Make the boundary explicit: Braden retains product, sourcing, suppliers, inventory, fulfillment, shipping, and the 3PL.
+
+### 7. Truth and infrastructure
+
+> Before scaling, I install the truth layer. Every important dollar, owner, risk, and bottleneck becomes visible.
+>
+> You retain products, sourcing, suppliers, inventory, fulfillment, shipping, and the 3PL. I make the company layer measurable and manageable around them.
+
+### 8. The complete affiliate backend
+
+> This is not “get influencers.” It is the entire backend from the first conversation through settled-profit reporting and repeat purchase.
+>
+> Connor can remain the relationship leader. I give him the system, team, data, and accountability to turn three to five meaningful affiliates into a controlled channel.
+
+The system covers:
+
+- recruiting from OVO's network;
+- contracts, tax, training, and approved-claims onboarding;
+- briefs, approvals, and versioned content rules;
+- order-level attribution through refunds and settled cash;
+- transparent statements and post-settlement payouts;
+- cohorts, scorecards, coaching, and offboarding;
+- email, SMS, referrals, support signals, and measured repeat behavior.
+
+### 9. Leverage that compounds
+
+> I do not arrive alone. You get my existing team, creator relationships, operating systems, and the ability to recruit managers who manage other people.
+>
+> That is how we hyper-scale without making either of us the next bottleneck. We open the channel in controlled cohorts, learn from settled contribution, and let data decide when the next group enters.
+
+The creator ecosystem is not “a party.” Private Miami councils, dinners, content weekends, and earned travel retreats create:
+
+- creator activation and professional content;
+- relationship density and recruiting gravity;
+- founder status and a more valuable life for Braden;
+- transparent economics and retention that another five points of commission cannot copy.
+
+### 10. What the backend is worth
+
+> If you bought only the backend I described as a standalone client project, I would price the build around thirty to forty thousand dollars before ongoing operation.
+>
+> The integrated role goes far beyond the backend: it includes my team, leaders who manage teams, creator distribution, lifecycle, founder media, the travel and retreat ecosystem, and controlled scale.
+
+Do not invent a total “replacement value.” The slide intentionally leaves the integrated bar unpriced.
+
+### 11. Why this is not a CRO
+
+> If you hired a great CRO, you would get pipeline, conversion, and a revenue organization. That is one lane — and it assumes finance, systems, people, and management already exist around it. Here, that company is the missing part.
+>
+> A CRO plugs into a company someone else built. I am building the layer a CRO would depend on — and running growth inside it.
+
+A CRO typically owns the revenue organization, pipeline and conversion, and sales and marketing output. The Operating Partner mandate also owns:
+
+- financial truth and company systems;
+- team architecture and leaders who manage teams;
+- the affiliate backend;
+- lifecycle and retention;
+- the creator ecosystem, retreats, and travel;
+- founder media;
+- management cadence;
+- controlled hyper-scale.
+
+This is not title inflation. Economics and authority must be sized to the broader mandate. Braden remains Founder and CEO and retains the entire product-to-fulfillment side of the business.
+
+### 12. The $50,000 activation
+
+> We agree on the Operating Partner destination now. The fifty-thousand-dollar activation is the first thirty days of that road — not a separate agency engagement.
+>
+> I deploy with the OVO pod immediately. The activation payment covers us for the first thirty days and funds the intensive source-of-truth work, operating map, backend, attribution and organization design, and ninety-day implementation plan required to take permanent authority and economics responsibly.
+
+During activation, use Operating Partner (Designate): no public title, read-only access, no product or inventory custody, and no authority over fulfillment, shipping, the 3PL, sourcing, suppliers, or vendors.
+
+Activation requires read-only access to:
+
+- order-level sales, discounts, refunds, chargebacks, and affiliate attribution;
+- every processor settlement, reserve, bank receipt, and wallet;
+- general ledger, tax liabilities, owner draws, payroll, payables, and inventory cost;
+- supplier, testing, lot, complaint, adverse-event, insurance, regulatory, and processor records;
+- cap table, entities, contracts, prior offers, side letters, and related-party transactions;
+- analytics, domains, platforms, repositories, vendors, and customer-data systems.
+
+### 13. Operating Partner, Growth & Scale
+
+> This title describes the job without replacing you as founder and CEO. I own the company-building layer: financial truth, systems, people, affiliate operations, lifecycle, management, ecosystem, and scale.
+>
+> My preferred structure protects both sides. You keep the overwhelming majority of the company and the baseline you created. I receive guaranteed cash for the operating role, meaningful earned ownership, and upside only when collected contribution improves.
+>
+> If I stop creating value, equity stops vesting. If we build the company we have been describing, we both make an extraordinary amount of money.
+
+Proposed hybrid:
+
+- $50,000 activation covers Alex and the OVO pod for the first 30 days;
+- $30,000 monthly personal compensation begins Day 31;
+- 10% fully diluted earned equity:
+ - 2.5% after diligence, definitive documents, and formal appointment;
+ - 2.5% after the day-90 operating-system milestone;
+ - 5% monthly over 24 months;
+- 15% of incremental Collected Contribution Profit over the locked baseline;
+- performance payment monthly for 24 months, before discretionary reinvestment;
+- $20,000 monthly OVO team deployment begins Day 31 and remains separate from Alex's compensation;
+- software and extraordinary contractors are company-funded;
+- full retreats and production-heavy content weekends require a separate approved statement of work, hard costs prefunded, plus an operating fee equal to the greater of $25,000 or 20% of the approved hard-cost budget, excluding the fee itself;
+- small councils and ordinary relationship dinners remain inside the monthly mandate unless separately agreed.
+
+### 14. The two-lane decision
+
+> Both lanes are real offers. Lane 2 is clean and small: I open doors, you run everything, and I take fifteen percent of net collected revenue from those creators. Lane 1 is the reason we are in this room: I build the company around your engine.
+
+Ask verbatim:
+
+> Do you want access to my relationships, or the company-building machine behind them?
+
+Then stop. The lanes do not blend.
+
+Lane 1 contains the two current Operating Partner economic packages:
+
+- cash-risk hybrid: $30,000 monthly, 10% earned equity, and 15% of incremental Collected Contribution Profit;
+- ownership-heavy: $30,000 monthly, an earn-in to 25% fully diluted equity, mandatory monthly distributions of defined Available Cash, and no performance share.
+
+The full 25% grant is approved and issued at signing under reverse vesting. Vesting is:
+
+1. 10% at signing;
+2. 5% after the first 30 days;
+3. 5% at the Day-90 operating-system milestone;
+4. the final 5% monthly through Month 6.
+
+Vested equity is never clawed back except for proven fraud. If Alex is terminated without cause, resigns for narrowly defined Good Reason, or the company materially breaches or cuts required access, the next scheduled tranche accelerates. Full acceleration applies only to an agreed change-of-control double trigger. “Cause” must be narrow and objectively defined.
+
+Fallback only if Braden will not accept the headline schedule: 5% at signing, 5% Day 30, 5% Day 90, and the final 10% vesting monthly through Month 12. Do not lead with the fallback.
+
+Both packages carry the same separately funded operating machine beginning Day 31: $20,000 monthly for OVO team deployment, company-funded software and extraordinary contractors, and events prefunded plus the stated operating fee.
+
+The OVO deployment is a managed service, not Biologix payroll and not a disguised cost reimbursement:
+
+- OVO selects, contracts with, supervises, and can replace the people in the pod;
+- Biologix buys defined capacity, service levels, and deliverables under an MSA and statement of work;
+- the $20,000 is a fixed service fee, not a representation of OVO's internal labor cost;
+- OVO retains its team and contractor relationships, pre-existing systems, network, methods, and generalized IP;
+- Biologix owns its data, accounts, company records, and paid bespoke work product under the definitive IP schedule.
+
+Lane 2 is intentionally narrow:
+
+- Alex introduces creators;
+- Biologix owns vetting, contracting, onboarding, management, content approvals, attribution, payouts, lifecycle, support, and events;
+- no backend build, OVO team, retreats, travel, management cadence, equity, or operating title;
+- Alex receives 15% of Attributed Net Collected Revenue from accepted creators Alex introduces, net of refunds and chargebacks, for a 24-month term and the written attribution window.
+
+If Braden wants any Lane 1 operating work, the answer is Lane 1. The prior 25%-of-all-revenue proposal taxed every existing sale immediately for temporary posts. Lane 2 applies only to accepted creators Alex introduces. The hybrid applies performance participation only above the locked baseline. True equity does participate in the whole company, which is why the ownership-heavy package carries no performance share and only accompanies the full company-building mandate.
+
+### 15. The rights ledger
+
+> This is where a real partnership differs from a vague handshake. You keep the company, the baseline, and full ownership of product, sourcing, suppliers, inventory, fulfillment, shipping, and the 3PL. I own enough to think long-term, I get paid before optional reinvestment, and OVO does not donate the network and systems it spent years building.
+
+Definitive agreements must cover:
+
+- fully diluted ownership;
+- vesting and acceleration;
+- information and audit rights;
+- tax and ordinary distributions;
+- pro-rata and tag rights;
+- related-party restrictions;
+- successor and anti-circumvention protection;
+- IP and data;
+- authority and reserved matters;
+- indemnification, advancement, insurance, and independent counsel;
+- stop rights, termination rights, and regulatory-change treatment.
+
+### 16. Start with the truth
+
+> You found the market. I know how to build the company around it.
+>
+> The next step is the first thirty days of the Operating Partner road: open the systems, define the baseline, and build the first ninety-day operating plan from facts.
+
+Ask:
+
+> Can we schedule the data-access session and get the activation papered this week?
+
+Stop. Do not keep selling into silence.
+
+## Why equity and performance participation can coexist
+
+They pay for different value:
+
+- earned equity pays Alex for becoming a long-term owner and building durable enterprise value;
+- the $30,000 monthly amount pays for Alex's personal Operating Partner mandate;
+- the separate $20,000 OVO deployment fee pays for a managed pod, delivery responsibility, and replacement capacity;
+- the time-limited incremental contribution share pays cash during a risky operating window only when verified economics improve.
+
+Twenty-five percent equity plus twenty-five percent of all revenue is not the smart version. At $1.5 million in monthly revenue, the revenue share alone would be $375,000 per month. Depending on true margin, adding 25% ownership can give Alex roughly half or more of total profit. Braden would reasonably see that as taking credit for the engine he already built.
+
+## Economic definitions
+
+### Net Collected Revenue
+
+Cash actually settled from customer transactions, minus only:
+
+- sales tax;
+- refunds;
+- chargebacks;
+- customer credits;
+- agreed shipping pass-through.
+
+It is not reduced by inventory purchases, hiring, owner spending, marketing, or discretionary reinvestment.
+
+### Collected Contribution Profit
+
+Net Collected Revenue minus a locked schedule of direct order-level costs:
+
+- landed COGS for units actually sold;
+- affiliate commissions;
+- processor fees;
+- packaging;
+- pick/pack and outbound shipping;
+- direct reships and agreed variable support cost.
+
+It does not subtract unsold inventory purchases, capex, owner compensation, related-party fees, or discretionary hires unless both parties approve the category.
+
+### Baseline
+
+Lock before Alex starts. Use settled source data, not a peak screenshot. Proposed definition:
+
+> The lower of median weekly Collected Contribution Profit over the prior eight fully settled weeks multiplied by 4.345, or average monthly Collected Contribution Profit over the prior 90 days.
+
+### Available Cash
+
+Settled cash after current ordinary payables, taxes, refund and chargeback reserves, and a specifically capped working-capital/inventory reserve.
+
+“We want to reinvest it” is not itself a reserve.
+
+### Fully diluted ownership
+
+Alex's percentage after counting every issued or promised unit, option, warrant, convertible instrument, and reserved employee pool.
+
+## Objection handling
+
+### “Someone already asked for 25% for posts.”
+
+> That deal taxed every existing sale immediately for temporary posts. Lane 2 applies only to accepted creators I introduce. The hybrid applies performance participation only above the locked baseline. True equity participates in the entire company, which is why the ownership-heavy package carries no performance share and only accompanies the full company-building mandate.
+
+### “Why should I give up equity when it already works?”
+
+> You should not give up equity to preserve the status quo. Equity only makes sense if you want a true operating partner who creates durable value, removes dependence on you, and assumes responsibility for building the next company. If you want to preserve equity, choose the cash-performance structure.
+
+### “Why do you need to see everything?”
+
+> Because I cannot responsibly price my role, allocate a team, or calculate performance from storefront screenshots. Trust lets us move quickly. Reconciliation protects the relationship.
+
+### “Start recruiting creators now.”
+
+> I can move quickly with the current channel, but recruiting before attribution, approval rules, payout logic, and contribution truth would scale disorder. Activation installs the minimum control layer first.
+
+### “I am reinvesting everything.”
+
+> That is why the agreement separates inventory, reserves, contribution, and discretionary reinvestment. My earned cash is paid before optional reinvestment. Otherwise a profitable company can make ownership economically meaningless.
+
+### “Just be a consultant on paper.”
+
+> The contract needs to match what I actually do. During activation I am a genuinely limited Operating Partner (Designate). If I later take the permanent mandate, the documents need real authority, insurance, advancement, stop rights, and an approved operating perimeter. A label is not protection.
+
+### “The business is research-use only.”
+
+> I am not making that legal conclusion. Independent FDA/FTC counsel needs to define what can operate, what must change, and what must stop before my title or growth mandate begins.
+
+## Negotiation discipline
+
+- Present the two lanes cleanly and make Braden choose the relationship before negotiating percentages.
+- The lanes do not blend. No backend build, operating work, team, or management at introduction-lane pricing.
+- Never reduce cash, equity, and performance participation simultaneously.
+- Every equity concession buys additional guaranteed cash, performance participation, or purchase rights.
+- Friendship and community improve the partnership; they are not compensation.
+- Connor is strengthened inside the operating system, not casually displaced.
+- OVO Academy, OVO Talent, generalized systems, and creators are not contributed to Biologix.
+- No broad health, longevity, creator, media, software, or telehealth noncompete.
+- A title without access, authority, distributions, insurance, payment seniority, and exit rights is a no.
+
+## The role
+
+During activation:
+
+- Operating Partner (Designate);
+- no public officer appointment;
+- read-only access and nonbinding recommendations;
+- no creators, product claims, money or product custody, inventory, prescribing, or medical guidance;
+- no authority over sourcing, suppliers, vendors, fulfillment, shipping, or the 3PL.
+
+After financial, legal, insurance, and operating conditions clear:
+
+- Operating Partner, Growth & Scale;
+- Braden remains Founder/CEO and retains product, category, sourcing, suppliers, vendors, inventory, fulfillment, shipping, and 3PL authority within the agreed perimeter;
+- Alex leads the company-building operating plan, financial instrumentation, organization, hiring, creator and affiliate backend, lifecycle systems, analytics, founder media, creator ecosystem, management cadence, and controlled scale;
+- reserved matters remain shared.
+
+The title is not legal insulation. Actual conduct and authority matter more than the label. Alex should not accept the permanent role unless he has real stop authority, independent counsel, advancement, insurance, complete information, and the ability to resign if a compliance stop is overridden.
diff --git a/biologix-strategy-board/board.css b/biologix-strategy-board/board.css
new file mode 100644
index 0000000..6539fa3
--- /dev/null
+++ b/biologix-strategy-board/board.css
@@ -0,0 +1,1903 @@
+:root {
+ --paper: #f7f5f1;
+ --paper-raised: #fdfcfa;
+ --ink: #141312;
+ --ink-2: #54504a;
+ --ink-3: #706b64;
+ --line: #dcd8d0;
+ --line-strong: #141312;
+ --accent: #1f3d2b;
+ --accent-ink: #f7f5f1;
+ --verified: #1f3d2b;
+ --unverified: #8a4b1e;
+ --inference: #3a4a6b;
+ --proof: #8a1f1f;
+ --hold: #6f6a63;
+ --max-width: 1160px;
+}
+
+* {
+ box-sizing: border-box;
+}
+
+html {
+ scroll-behavior: smooth;
+}
+
+body {
+ margin: 0;
+ color: var(--ink);
+ background: var(--paper);
+ font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
+ font-size: 15.5px;
+ line-height: 1.6;
+}
+
+body,
+button,
+a,
+summary {
+ -webkit-font-smoothing: antialiased;
+}
+
+a {
+ color: var(--accent);
+ text-decoration-line: underline;
+ text-decoration-thickness: 1px;
+ text-underline-offset: 3px;
+}
+
+a:hover {
+ text-decoration-thickness: 2px;
+}
+
+button,
+summary {
+ font: inherit;
+}
+
+button {
+ color: inherit;
+}
+
+:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+}
+
+[hidden] {
+ display: none !important;
+}
+
+.visually-hidden {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+.mono,
+.kicker,
+.route-tabs,
+.anchor-nav,
+.meta-line,
+.evidence-tag,
+.status-chip,
+.filter-chip,
+.step-number,
+.model-kicker,
+.range,
+.table-meta,
+.record-meta,
+.record-label,
+.footer-label,
+.metric-number,
+.owner,
+.exit-criterion,
+.gate-copy,
+.followup-copy,
+.small-print {
+ font-family: 'DM Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
+ font-variant-numeric: tabular-nums;
+}
+
+.page-shell {
+ width: min(var(--max-width), calc(100% - 96px));
+ margin: 0 auto;
+}
+
+.site-header {
+ position: sticky;
+ top: 0;
+ z-index: 50;
+ min-height: 64px;
+ background: rgba(247, 245, 241, 0.92);
+ border-bottom: 1px solid transparent;
+ backdrop-filter: blur(8px);
+ transition: border-color 120ms ease;
+}
+
+.site-header.is-scrolled {
+ border-color: var(--line);
+}
+
+.site-header-inner {
+ min-height: 64px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 24px;
+}
+
+.internal-mark {
+ color: var(--ink-3);
+ font: 500 11px/1.3 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.14em;
+ text-transform: uppercase;
+ white-space: nowrap;
+}
+
+.route-tabs {
+ display: flex;
+ align-items: stretch;
+ border: 1px solid var(--line);
+ border-radius: 2px;
+ overflow: hidden;
+}
+
+.route-tabs a {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 10px 18px;
+ color: var(--ink-2);
+ background: transparent;
+ border-left: 1px solid var(--line);
+ font-size: 11px;
+ font-weight: 500;
+ letter-spacing: 0.08em;
+ line-height: 1;
+ text-decoration: none;
+ text-transform: uppercase;
+ white-space: nowrap;
+ transition: background-color 120ms ease, color 120ms ease;
+}
+
+.route-tabs a:first-child {
+ border-left: 0;
+}
+
+.route-tabs a:hover {
+ color: var(--ink);
+ background: var(--paper-raised);
+}
+
+.route-tabs a.active {
+ color: var(--accent-ink);
+ background: var(--accent);
+}
+
+.hero {
+ padding: 96px 0 64px;
+ border-bottom: 1px solid var(--line);
+}
+
+.kicker {
+ margin-bottom: 24px;
+ color: var(--ink-3);
+ font-size: 11px;
+ font-weight: 500;
+ letter-spacing: 0.14em;
+ line-height: 1.4;
+ text-transform: uppercase;
+}
+
+h1,
+h2,
+h3,
+h4,
+p {
+ margin-top: 0;
+}
+
+h1 {
+ max-width: 1040px;
+ margin-bottom: 32px;
+ font-size: clamp(56px, 7.2vw, 104px);
+ font-weight: 800;
+ letter-spacing: -0.03em;
+ line-height: 0.95;
+}
+
+.standfirst {
+ max-width: 68ch;
+ margin: 0;
+ color: var(--ink-2);
+ font-size: 18px;
+ line-height: 1.65;
+}
+
+.meta-line {
+ margin-top: 32px;
+ color: var(--ink-3);
+ font-size: 10px;
+ letter-spacing: 0.1em;
+ text-transform: uppercase;
+}
+
+.anchor-nav-wrap {
+ position: sticky;
+ top: 64px;
+ z-index: 35;
+ background: var(--paper);
+ border-bottom: 1px solid var(--line);
+}
+
+.anchor-nav {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ min-height: 48px;
+ overflow-x: auto;
+ color: var(--ink-3);
+ font-size: 10px;
+ letter-spacing: 0.08em;
+ scrollbar-width: none;
+ text-transform: uppercase;
+ white-space: nowrap;
+}
+
+.anchor-nav::-webkit-scrollbar {
+ display: none;
+}
+
+.anchor-nav a {
+ color: var(--ink-2);
+ text-decoration: none;
+}
+
+.anchor-nav a:hover {
+ color: var(--accent);
+ text-decoration: underline;
+ text-decoration-thickness: 2px;
+ text-underline-offset: 5px;
+}
+
+.anchor-nav .separator {
+ color: var(--line);
+}
+
+main {
+ padding-bottom: 96px;
+}
+
+.board-section {
+ padding-top: 96px;
+ scroll-margin-top: 128px;
+}
+
+.section-head {
+ display: grid;
+ grid-template-columns: minmax(0, 0.7fr) minmax(280px, 0.3fr);
+ gap: 48px;
+ align-items: end;
+ padding-top: 24px;
+ margin-bottom: 32px;
+ border-top: 2px solid var(--line-strong);
+}
+
+.section-head h2 {
+ margin: 0;
+ font-size: 32px;
+ font-weight: 800;
+ letter-spacing: -0.02em;
+ line-height: 1.1;
+}
+
+.section-head p {
+ max-width: 52ch;
+ margin: 0;
+ color: var(--ink-2);
+ font-size: 14px;
+ line-height: 1.55;
+}
+
+.section-index {
+ display: block;
+ margin-bottom: 12px;
+ color: var(--ink-3);
+ font: 500 10px/1.3 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.12em;
+ text-transform: uppercase;
+}
+
+.evidence-tag {
+ --tag-color: var(--ink-3);
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ width: fit-content;
+ max-width: 100%;
+ padding: 3px 8px;
+ color: var(--tag-color);
+ background: color-mix(in srgb, var(--tag-color) 8%, transparent);
+ border: 1px solid var(--tag-color);
+ border-radius: 2px;
+ font-size: 10px;
+ font-weight: 500;
+ letter-spacing: 0.08em;
+ line-height: 1.35;
+ text-transform: uppercase;
+ vertical-align: 0.12em;
+}
+
+.evidence-tag::before {
+ content: '';
+ flex: 0 0 auto;
+ width: 6px;
+ height: 6px;
+ border: 1px solid currentColor;
+}
+
+.evidence-tag.verified {
+ --tag-color: var(--verified);
+}
+
+.evidence-tag.verified::before {
+ background: currentColor;
+}
+
+.evidence-tag.unverified {
+ --tag-color: var(--unverified);
+}
+
+.evidence-tag.inference {
+ --tag-color: var(--inference);
+}
+
+.evidence-tag.inference::before {
+ transform: rotate(45deg);
+}
+
+.evidence-tag.proof {
+ --tag-color: var(--proof);
+}
+
+.evidence-tag.proof::before {
+ background: currentColor;
+ box-shadow: inset 0 0 0 1px var(--paper);
+}
+
+.claim-line {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: baseline;
+ gap: 8px;
+}
+
+.two-column-test {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ border: 1px solid var(--ink);
+ background: var(--paper-raised);
+}
+
+.test-column {
+ min-width: 0;
+ padding: 32px;
+}
+
+.test-column + .test-column {
+ border-left: 1px solid var(--ink);
+}
+
+.test-column h3 {
+ margin-bottom: 20px;
+ font-size: 19px;
+ font-weight: 600;
+ line-height: 1.3;
+}
+
+.rule-list,
+.advantage-list,
+.compact-list,
+.asset-list,
+.record-steps {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+
+.rule-list li {
+ padding: 14px 0;
+ border-top: 1px solid var(--line);
+}
+
+.rule-list li:first-child {
+ border-top-color: var(--ink);
+}
+
+.table-wrap {
+ width: 100%;
+ overflow-x: auto;
+}
+
+.comparison-table,
+.operating-table,
+.gate-table,
+.boundary-table {
+ width: 100%;
+ border-collapse: collapse;
+ table-layout: fixed;
+}
+
+.comparison-table {
+ display: grid;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ border-top: 2px solid var(--line-strong);
+ border-left: 1px solid var(--line);
+}
+
+.comparison-table tbody {
+ display: block;
+ min-width: 0;
+ border-right: 1px solid var(--line);
+}
+
+.comparison-table tbody tr,
+.comparison-table tbody th,
+.comparison-table tbody td {
+ display: block;
+ width: 100%;
+}
+
+.comparison-table tbody th,
+.comparison-table tbody td {
+ border-bottom: 1px solid var(--line);
+}
+
+.comparison-table .model-title {
+ min-height: 78px;
+ padding: 18px 16px;
+ color: var(--ink);
+ border-bottom: 2px solid var(--line-strong);
+ font: 500 11px/1.35 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.09em;
+ text-transform: uppercase;
+}
+
+.comparison-table .model-row {
+ min-height: 112px;
+}
+
+.comparison-table .model-row th {
+ padding: 14px 16px 4px;
+ color: var(--ink-3);
+ border-bottom: 0;
+ font: 500 10px/1.4 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+}
+
+.comparison-table .model-row td {
+ min-height: 74px;
+ padding: 0 16px 14px;
+ border-bottom: 1px solid var(--line);
+}
+
+.comparison-table .recommended-model {
+ margin-top: -1px;
+ margin-bottom: -1px;
+ border: 1px solid var(--ink);
+}
+
+.comparison-table .recommended-model .model-title {
+ color: var(--accent);
+}
+
+.comparison-table caption,
+.operating-table caption,
+.gate-table caption,
+.boundary-table caption {
+ text-align: left;
+}
+
+.comparison-table th,
+.comparison-table td,
+.operating-table th,
+.operating-table td,
+.gate-table th,
+.gate-table td,
+.boundary-table th,
+.boundary-table td {
+ padding: 16px;
+ vertical-align: top;
+ border-bottom: 1px solid var(--line);
+ text-align: left;
+}
+
+.comparison-table thead th,
+.operating-table thead th,
+.gate-table thead th,
+.boundary-table thead th {
+ border-bottom: 2px solid var(--line-strong);
+ color: var(--ink-2);
+ font: 500 10px/1.4 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.1em;
+ text-transform: uppercase;
+}
+
+.comparison-table tbody th,
+.operating-table tbody th,
+.gate-table tbody th {
+ color: var(--ink-3);
+ font: 500 10px/1.5 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.06em;
+ text-transform: uppercase;
+}
+
+.comparison-table td {
+ font-size: 13.5px;
+ line-height: 1.5;
+}
+
+.leverage-bars {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ gap: 16px;
+ margin-top: 24px;
+}
+
+.leverage-item {
+ min-width: 0;
+}
+
+.leverage-item strong {
+ display: flex;
+ justify-content: space-between;
+ gap: 12px;
+ margin-bottom: 8px;
+ color: var(--ink-2);
+ font: 500 10px/1.3 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.06em;
+ text-transform: uppercase;
+}
+
+.bar-track {
+ height: 6px;
+ background: var(--line);
+}
+
+.bar-fill {
+ display: block;
+ height: 100%;
+ background: var(--ink);
+}
+
+.leverage-item.recommended .bar-fill {
+ background: var(--accent);
+}
+
+.bar-caption {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ gap: 8px;
+ margin-top: 16px;
+ color: var(--ink-2);
+ font-size: 12px;
+}
+
+.advantage-list {
+ max-width: 880px;
+}
+
+.advantage-list li {
+ display: grid;
+ grid-template-columns: 64px minmax(0, 1fr);
+ gap: 24px;
+ padding: 24px 0;
+ border-top: 1px solid var(--line);
+}
+
+.advantage-list li:first-child {
+ border-top-color: var(--ink);
+}
+
+.advantage-list .step-number {
+ color: var(--ink-3);
+ font-size: 11px;
+}
+
+.advantage-list h3 {
+ margin-bottom: 6px;
+ font-size: 19px;
+ font-weight: 600;
+ line-height: 1.3;
+}
+
+.advantage-list p {
+ max-width: 68ch;
+ margin: 0;
+ color: var(--ink-2);
+}
+
+.sequence {
+ max-width: 1000px;
+ margin-left: 20px;
+ border-left: 1px solid var(--line);
+}
+
+.sequence-step {
+ display: grid;
+ grid-template-columns: 56px minmax(0, 1fr) auto;
+ gap: 24px;
+ align-items: start;
+ padding: 24px 0 24px 24px;
+ border-bottom: 1px solid var(--line);
+}
+
+.sequence-step .step-number {
+ color: var(--ink-3);
+ font-size: 11px;
+}
+
+.sequence-step h3 {
+ margin-bottom: 6px;
+ font-size: 19px;
+ font-weight: 600;
+ line-height: 1.3;
+}
+
+.sequence-step p {
+ max-width: 64ch;
+ margin: 0;
+ color: var(--ink-2);
+ font-size: 14px;
+}
+
+.evidence-grid {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ border-top: 1px solid var(--ink);
+ border-left: 1px solid var(--ink);
+}
+
+.evidence-column {
+ padding: 24px;
+ border-right: 1px solid var(--ink);
+ border-bottom: 1px solid var(--ink);
+ background: var(--paper-raised);
+}
+
+.evidence-column h3 {
+ margin: 16px 0;
+ font-size: 19px;
+ font-weight: 600;
+}
+
+.evidence-column li {
+ padding: 12px 0;
+ border-top: 1px solid var(--line);
+ font-size: 13.5px;
+}
+
+.verdict-block,
+.emphasis-block,
+.followup-block {
+ padding: 32px;
+ border: 1px solid var(--ink);
+ background: var(--paper-raised);
+}
+
+.verdict-block h2,
+.emphasis-block h2 {
+ max-width: 850px;
+ margin: 16px 0;
+ font-size: 32px;
+ font-weight: 800;
+ letter-spacing: -0.02em;
+ line-height: 1.15;
+}
+
+.verdict-kills {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 24px;
+ padding-top: 24px;
+ margin-top: 24px;
+ border-top: 1px solid var(--line);
+}
+
+.verdict-kills p {
+ margin: 0;
+ color: var(--proof);
+ font: 500 11px/1.55 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.04em;
+ text-transform: uppercase;
+}
+
+.sprint-summary {
+ display: grid;
+ grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
+ gap: 48px;
+ margin-bottom: 32px;
+}
+
+.sprint-summary h3 {
+ margin-bottom: 12px;
+ font-size: 24px;
+ line-height: 1.25;
+}
+
+.sprint-summary p {
+ max-width: 68ch;
+ color: var(--ink-2);
+}
+
+.sprint-terms {
+ border-top: 1px solid var(--ink);
+}
+
+.sprint-term {
+ display: flex;
+ justify-content: space-between;
+ gap: 16px;
+ padding: 14px 0;
+ border-bottom: 1px solid var(--line);
+}
+
+.sprint-term span:first-child {
+ color: var(--ink-3);
+ font: 500 10px/1.4 'DM Mono', ui-monospace, monospace;
+ text-transform: uppercase;
+}
+
+.sprint-term strong {
+ text-align: right;
+}
+
+.status-text {
+ color: var(--proof);
+ font: 500 10px/1.4 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.06em;
+ text-transform: uppercase;
+}
+
+.status-text.received {
+ color: var(--verified);
+}
+
+.roadmap-bands {
+ display: grid;
+ gap: 48px;
+}
+
+.roadmap-band {
+ padding-top: 24px;
+ border-top: 2px solid var(--line-strong);
+}
+
+.roadmap-band-head {
+ display: grid;
+ grid-template-columns: 160px minmax(0, 1fr);
+ gap: 24px;
+ align-items: baseline;
+ margin-bottom: 24px;
+}
+
+.range {
+ color: var(--ink-3);
+ font-size: 11px;
+ letter-spacing: 0.1em;
+ text-transform: uppercase;
+}
+
+.roadmap-band h3 {
+ margin: 0;
+ font-size: 24px;
+ font-weight: 600;
+ line-height: 1.25;
+}
+
+.workstream-grid {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ column-gap: 48px;
+ border-top: 1px solid var(--line);
+}
+
+.workstream {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) 92px;
+ gap: 16px;
+ padding: 18px 0;
+ border-bottom: 1px solid var(--line);
+}
+
+.workstream h4 {
+ margin: 0 0 5px;
+ font-size: 15px;
+ font-weight: 600;
+ line-height: 1.35;
+}
+
+.workstream p {
+ margin: 0;
+ color: var(--ink-2);
+ font-size: 12.5px;
+ line-height: 1.5;
+}
+
+.owner {
+ color: var(--ink-3);
+ font-size: 10px;
+ text-align: right;
+ text-transform: uppercase;
+}
+
+.role-ladder {
+ display: grid;
+ grid-template-columns: 1fr auto 1fr;
+ align-items: stretch;
+}
+
+.role-state {
+ padding: 32px;
+ border: 1px solid var(--ink);
+}
+
+.role-state.future {
+ border-color: var(--line);
+}
+
+.role-state h3 {
+ margin: 12px 0;
+ font-size: 24px;
+ line-height: 1.2;
+}
+
+.role-state p {
+ margin-bottom: 0;
+ color: var(--ink-2);
+}
+
+.role-gate {
+ display: flex;
+ align-items: center;
+ max-width: 150px;
+ padding: 16px;
+ color: var(--proof);
+ border-top: 1px solid var(--line);
+ border-bottom: 1px solid var(--line);
+ font: 500 10px/1.45 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.06em;
+ text-align: center;
+ text-transform: uppercase;
+}
+
+.boundary-table th:first-child,
+.boundary-table td:first-child {
+ border-right: 1px solid var(--ink);
+}
+
+.boundary-table th:first-child {
+ color: var(--accent);
+}
+
+.reveal-list {
+ display: grid;
+ gap: 0;
+ counter-reset: reveal;
+ padding: 0;
+ margin: 24px 0 0;
+ list-style: none;
+}
+
+.reveal-list li {
+ counter-increment: reveal;
+ display: grid;
+ grid-template-columns: 64px minmax(0, 1fr);
+ gap: 24px;
+ padding: 20px 0;
+ border-top: 1px solid var(--line);
+}
+
+.reveal-list li::before {
+ content: '0' counter(reveal);
+ color: var(--ink-3);
+ font: 500 11px/1.5 'DM Mono', ui-monospace, monospace;
+}
+
+.filter-bar {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 8px;
+ padding: 16px 0;
+ border-bottom: 1px solid var(--line);
+}
+
+.filter-chip {
+ display: inline-flex;
+ align-items: center;
+ gap: 8px;
+ padding: 8px 12px;
+ color: var(--ink-2);
+ background: transparent;
+ border: 1px solid var(--line);
+ border-radius: 2px;
+ font-size: 10px;
+ font-weight: 500;
+ letter-spacing: 0.06em;
+ text-transform: uppercase;
+ transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease;
+ cursor: pointer;
+}
+
+.filter-chip:hover {
+ border-color: var(--ink-3);
+}
+
+.filter-chip[aria-pressed='true'] {
+ color: var(--accent);
+ background: color-mix(in srgb, var(--accent) 6%, transparent);
+ border-color: var(--accent);
+}
+
+.filter-count {
+ color: inherit;
+}
+
+.action-block {
+ padding-top: 48px;
+ scroll-margin-top: 128px;
+}
+
+.action-block-header {
+ padding-top: 16px;
+ margin-bottom: 16px;
+ border-top: 2px solid var(--line-strong);
+}
+
+.action-block-header h2,
+.action-block-header h3 {
+ margin: 0;
+ font-size: 24px;
+ font-weight: 600;
+ line-height: 1.25;
+}
+
+.action-block-header p {
+ max-width: 62ch;
+ margin: 8px 0 0;
+ color: var(--ink-2);
+ font-size: 13.5px;
+}
+
+.track-grid {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 48px;
+}
+
+.record-list {
+ display: grid;
+ gap: 12px;
+}
+
+.action-record {
+ border: 1px solid var(--line);
+ border-radius: 6px;
+ background: transparent;
+ overflow: hidden;
+}
+
+.action-record:hover {
+ border-color: var(--ink-3);
+}
+
+.action-record[open] {
+ border-left: 2px solid var(--accent);
+}
+
+.action-record > summary {
+ display: grid;
+ grid-template-columns: auto minmax(0, 1fr) auto auto;
+ gap: 12px;
+ align-items: center;
+ padding: 16px 20px;
+ list-style: none;
+ cursor: pointer;
+}
+
+.action-record > summary::-webkit-details-marker {
+ display: none;
+}
+
+.status-chip {
+ --status-color: var(--ink);
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ width: fit-content;
+ color: var(--status-color);
+ font-size: 10px;
+ font-weight: 500;
+ letter-spacing: 0.06em;
+ text-transform: uppercase;
+}
+
+.status-chip::before {
+ content: '';
+ width: 6px;
+ height: 6px;
+ border: 1px solid currentColor;
+}
+
+.status-chip.gated {
+ --status-color: var(--proof);
+}
+
+.status-chip.waiting {
+ --status-color: var(--hold);
+}
+
+.status-chip.done {
+ --status-color: var(--verified);
+}
+
+.status-chip.done::before {
+ background: currentColor;
+}
+
+.record-title {
+ font-size: 15px;
+ font-weight: 600;
+ line-height: 1.35;
+}
+
+.record-meta {
+ color: var(--ink-3);
+ font-size: 10px;
+ letter-spacing: 0.04em;
+ text-align: right;
+ text-transform: uppercase;
+ white-space: nowrap;
+}
+
+.record-marker {
+ width: 14px;
+ height: 14px;
+ color: var(--ink-2);
+ font: 500 16px/12px 'DM Mono', ui-monospace, monospace;
+ transition: transform 150ms ease;
+}
+
+.record-marker::before {
+ content: '+';
+}
+
+.action-record[open] .record-marker {
+ transform: rotate(45deg);
+}
+
+.record-body {
+ display: grid;
+ gap: 18px;
+ padding: 20px;
+ background: var(--paper-raised);
+ border-top: 1px solid var(--line);
+}
+
+.record-body p {
+ margin: 0;
+ color: var(--ink-2);
+ font-size: 13.5px;
+}
+
+.record-label {
+ display: block;
+ margin-bottom: 6px;
+ color: var(--ink-3);
+ font-size: 10px;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+}
+
+.record-steps {
+ counter-reset: recordstep;
+}
+
+.record-steps li {
+ counter-increment: recordstep;
+ display: grid;
+ grid-template-columns: 28px minmax(0, 1fr);
+ gap: 10px;
+ padding: 8px 0;
+ border-top: 1px solid var(--line);
+ font-size: 13px;
+}
+
+.record-steps li::before {
+ content: counter(recordstep, decimal-leading-zero);
+ color: var(--ink-3);
+ font: 500 9px/1.6 'DM Mono', ui-monospace, monospace;
+}
+
+.record-body p.done-when {
+ color: var(--accent);
+ font: 500 10px/1.55 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.04em;
+ text-transform: uppercase;
+}
+
+.convergence-grid {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ margin-top: 24px;
+ border-top: 1px solid var(--line);
+}
+
+.convergence-asset {
+ padding: 24px;
+ border-right: 1px solid var(--line);
+}
+
+.convergence-asset:last-child {
+ border-right: 0;
+}
+
+.convergence-asset h4 {
+ margin-bottom: 8px;
+ font-size: 19px;
+}
+
+.convergence-asset p {
+ margin: 0;
+ color: var(--ink-2);
+ font-size: 13px;
+}
+
+.followup-copy {
+ margin: 16px 0 0;
+ color: var(--ink);
+ font-size: 13px;
+ line-height: 1.75;
+ white-space: pre-wrap;
+}
+
+.empty-state {
+ padding: 48px 24px;
+ color: var(--ink-3);
+ border: 1px solid var(--line);
+ font: 500 11px/1.5 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.06em;
+ text-align: center;
+ text-transform: uppercase;
+}
+
+.text-button {
+ padding: 0;
+ color: var(--accent);
+ background: none;
+ border: 0;
+ font: inherit;
+ text-decoration: underline;
+ text-underline-offset: 3px;
+ cursor: pointer;
+}
+
+.site-footer {
+ padding: 48px 0 64px;
+ border-top: 2px solid var(--line-strong);
+}
+
+.footer-grid {
+ display: grid;
+ grid-template-columns: 0.65fr 1.35fr 1fr;
+ gap: 48px;
+}
+
+.footer-label {
+ display: block;
+ margin-bottom: 12px;
+ color: var(--ink-3);
+ font-size: 9px;
+ letter-spacing: 0.1em;
+ text-transform: uppercase;
+}
+
+.footer-links {
+ display: grid;
+ gap: 6px;
+}
+
+.footer-links a,
+.footer-disclaimer {
+ font-size: 12px;
+}
+
+.footer-legend {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 8px;
+}
+
+.footer-disclaimer {
+ margin: 0;
+ color: var(--ink-2);
+}
+
+/* Full venture plan — long-form document reader */
+
+.plan-back-link {
+ color: inherit;
+ text-decoration: none;
+}
+
+.plan-back-link:hover {
+ color: var(--accent);
+ text-decoration: underline;
+}
+
+.doc-contents {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 6px 48px;
+ margin: 64px 0 0;
+}
+
+.doc-contents .footer-label {
+ grid-column: 1 / -1;
+ margin-bottom: 10px;
+}
+
+.doc-contents a {
+ font-size: 13px;
+}
+
+.doc {
+ max-width: 880px;
+ overflow-wrap: break-word;
+}
+
+.doc p,
+.doc ul,
+.doc ol,
+.doc blockquote {
+ max-width: 68ch;
+}
+
+.doc h2 {
+ padding-top: 24px;
+ margin: 96px 0 24px;
+ border-top: 2px solid var(--line-strong);
+ font-size: 28px;
+ font-weight: 800;
+ letter-spacing: -0.02em;
+ line-height: 1.15;
+ scroll-margin-top: 96px;
+}
+
+.doc h3 {
+ margin: 48px 0 16px;
+ font-size: 19px;
+ font-weight: 800;
+ letter-spacing: -0.01em;
+}
+
+.doc h4 {
+ margin: 32px 0 12px;
+ color: var(--ink-3);
+ font: 500 11px/1.4 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.12em;
+ text-transform: uppercase;
+}
+
+.doc ul,
+.doc ol {
+ padding-left: 22px;
+ margin: 0 0 20px;
+}
+
+.doc li {
+ margin: 6px 0;
+}
+
+.doc li::marker {
+ color: var(--ink-3);
+}
+
+.doc table {
+ width: 100%;
+ min-width: 640px;
+ border-collapse: collapse;
+ font-size: 13.5px;
+ line-height: 1.5;
+}
+
+.doc th {
+ padding: 10px 20px 10px 0;
+ color: var(--ink-3);
+ border-bottom: 1px solid var(--line-strong);
+ font: 500 10px/1.4 'DM Mono', ui-monospace, monospace;
+ letter-spacing: 0.08em;
+ text-align: left;
+ text-transform: uppercase;
+}
+
+.doc td {
+ padding: 10px 20px 10px 0;
+ vertical-align: top;
+ border-bottom: 1px solid var(--line);
+}
+
+.doc th:last-child,
+.doc td:last-child {
+ padding-right: 0;
+}
+
+.doc blockquote {
+ padding-left: 20px;
+ margin: 24px 0;
+ color: var(--ink-2);
+ border-left: 2px solid var(--line-strong);
+}
+
+.doc blockquote p:last-child {
+ margin-bottom: 0;
+}
+
+.doc hr {
+ margin: 64px 0;
+ border: 0;
+ border-top: 1px solid var(--line);
+}
+
+.doc code {
+ padding: 1px 5px;
+ background: var(--paper-raised);
+ border: 1px solid var(--line);
+ font: 0.85em 'DM Mono', ui-monospace, monospace;
+}
+
+.doc pre {
+ padding: 16px 20px;
+ overflow-x: auto;
+ background: var(--paper-raised);
+ border: 1px solid var(--line);
+ font-size: 12.5px;
+}
+
+.doc-return {
+ margin: 96px 0 0;
+}
+
+/* Owner cash-distribution brief */
+
+.cash-brief {
+ padding-top: 64px;
+}
+
+.cash-brief .evidence-grid {
+ margin-top: 32px;
+}
+
+.cash-waterfall {
+ padding: 0;
+ margin: 0;
+ border-top: 1px solid var(--ink);
+ list-style: none;
+}
+
+.cash-waterfall li {
+ display: grid;
+ grid-template-columns: 24px minmax(0, 1fr);
+ gap: 12px;
+ align-items: baseline;
+ padding: 11px 0;
+ border-top: 1px solid var(--line);
+ font-size: 14px;
+ line-height: 1.45;
+}
+
+.cash-waterfall li:first-child {
+ border-top: 0;
+ font-weight: 600;
+}
+
+.cash-waterfall .op {
+ color: var(--ink-3);
+ font: 500 12px/1.7 'DM Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
+}
+
+.cash-waterfall li.result {
+ border-top: 1px solid var(--ink);
+ font-size: 15px;
+ font-weight: 800;
+}
+
+.cash-example .sprint-term.is-result {
+ margin-top: -1px;
+ border-top: 1px solid var(--ink);
+}
+
+.cash-example .sprint-term.is-result strong {
+ font-size: 16px;
+}
+
+.split-track {
+ display: flex;
+ gap: 2px;
+ height: 6px;
+ margin: 16px 0 8px;
+}
+
+.split-track .split-braden {
+ width: 70%;
+ background: var(--ink);
+}
+
+.split-track .split-alex {
+ width: 30%;
+ background: var(--ink-3);
+}
+
+.operating-table,
+.gate-table {
+ min-width: 560px;
+}
+
+.economics-guardrails {
+ margin-top: 32px;
+}
+
+@media (max-width: 1024px) {
+ .page-shell {
+ width: min(var(--max-width), calc(100% - 64px));
+ }
+
+ .site-header-inner {
+ gap: 16px;
+ }
+
+ .route-tabs a {
+ padding: 9px 14px;
+ font-size: 10px;
+ }
+
+ .comparison-table th,
+ .comparison-table td,
+ .operating-table th,
+ .operating-table td,
+ .gate-table th,
+ .gate-table td,
+ .boundary-table th,
+ .boundary-table td {
+ padding: 12px;
+ }
+
+ .comparison-table td {
+ font-size: 13px;
+ }
+
+ .section-head {
+ grid-template-columns: minmax(0, 0.65fr) minmax(250px, 0.35fr);
+ gap: 32px;
+ }
+}
+
+@media (max-width: 768px) {
+ .page-shell {
+ width: min(var(--max-width), calc(100% - 48px));
+ }
+
+ .site-header-inner {
+ flex-wrap: wrap;
+ padding: 10px 0;
+ }
+
+ .internal-mark {
+ width: 100%;
+ }
+
+ .route-tabs {
+ width: 100%;
+ }
+
+ .route-tabs a {
+ flex: 1;
+ padding: 8px 10px;
+ font-size: 10px;
+ }
+
+ .anchor-nav-wrap {
+ position: static;
+ }
+
+ .anchor-nav {
+ padding-right: 40px;
+ -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent);
+ mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent);
+ }
+
+ .hero {
+ padding: 64px 0 48px;
+ }
+
+ .board-section {
+ padding-top: 64px;
+ }
+
+ .section-head,
+ .sprint-summary {
+ grid-template-columns: 1fr;
+ gap: 16px;
+ }
+
+ .two-column-test,
+ .evidence-grid,
+ .workstream-grid,
+ .track-grid,
+ .convergence-grid,
+ .footer-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .test-column + .test-column {
+ border-top: 1px solid var(--ink);
+ border-left: 0;
+ }
+
+ .comparison-table {
+ grid-template-columns: 1fr;
+ gap: 24px;
+ border: 0;
+ }
+
+ .comparison-table tbody {
+ border: 1px solid var(--line);
+ }
+
+ .comparison-table .model-title,
+ .comparison-table .model-row,
+ .comparison-table .model-row td {
+ min-height: 0;
+ }
+
+ .comparison-table .recommended-model {
+ margin: 0;
+ border-color: var(--ink);
+ }
+
+ .leverage-bars {
+ grid-template-columns: 1fr 1fr;
+ }
+
+ .sequence-step {
+ grid-template-columns: 44px minmax(0, 1fr);
+ }
+
+ .sequence-step .evidence-tag {
+ grid-column: 2;
+ }
+
+ .evidence-column {
+ border-right: 1px solid var(--ink);
+ }
+
+ .verdict-kills {
+ grid-template-columns: 1fr;
+ }
+
+ .role-ladder {
+ grid-template-columns: 1fr;
+ }
+
+ .role-gate {
+ max-width: none;
+ justify-content: center;
+ border-right: 1px solid var(--line);
+ border-left: 1px solid var(--line);
+ }
+
+ .boundary-table,
+ .boundary-table thead,
+ .boundary-table tbody,
+ .boundary-table tr,
+ .boundary-table th,
+ .boundary-table td {
+ display: block;
+ width: 100%;
+ }
+
+ .boundary-table th,
+ .boundary-table td {
+ border-right: 0 !important;
+ }
+
+ .boundary-table th:last-child {
+ margin-top: 24px;
+ }
+
+ .track-grid {
+ gap: 64px;
+ }
+
+ .convergence-asset {
+ border-right: 0;
+ border-bottom: 1px solid var(--line);
+ }
+
+ .convergence-asset:last-child {
+ border-bottom: 0;
+ }
+
+ .doc h2 {
+ margin-top: 72px;
+ font-size: 23px;
+ }
+
+ .doc h3 {
+ font-size: 17px;
+ }
+
+ .doc-contents {
+ grid-template-columns: 1fr;
+ }
+}
+
+@media (max-width: 620px) {
+ .route-tabs a {
+ flex: 1 1 0;
+ min-width: 0;
+ padding: 8px 4px;
+ font-size: 9px;
+ }
+}
+
+@media (max-width: 420px) {
+ .page-shell {
+ width: calc(100% - 32px);
+ }
+
+ .site-header-inner {
+ gap: 8px;
+ }
+
+ .internal-mark {
+ font-size: 9px;
+ letter-spacing: 0.09em;
+ }
+
+ .route-tabs a {
+ flex: 1 1 0;
+ min-width: 0;
+ min-height: 44px;
+ padding: 0 1px;
+ font-size: 9px;
+ font-weight: 500;
+ letter-spacing: 0.04em;
+ line-height: 1;
+ white-space: nowrap;
+ overflow: hidden;
+ }
+
+ .hero {
+ padding-top: 48px;
+ }
+
+ h1 {
+ margin-bottom: 24px;
+ font-size: 40px;
+ line-height: 0.98;
+ }
+
+ .standfirst {
+ font-size: 16px;
+ }
+
+ .section-head h2,
+ .verdict-block h2,
+ .emphasis-block h2 {
+ font-size: 27px;
+ }
+
+ .test-column,
+ .verdict-block,
+ .emphasis-block,
+ .followup-block,
+ .role-state {
+ padding: 24px;
+ }
+
+ .leverage-bars {
+ grid-template-columns: 1fr;
+ }
+
+ .advantage-list li {
+ grid-template-columns: 40px minmax(0, 1fr);
+ gap: 16px;
+ }
+
+ .sequence {
+ margin-left: 8px;
+ }
+
+ .sequence-step {
+ grid-template-columns: 34px minmax(0, 1fr);
+ gap: 12px;
+ padding-left: 16px;
+ }
+
+ .roadmap-band-head,
+ .workstream,
+ .reveal-list li {
+ grid-template-columns: 1fr;
+ }
+
+ .workstream {
+ gap: 8px;
+ }
+
+ .owner {
+ text-align: left;
+ }
+
+ .action-record > summary {
+ grid-template-columns: auto minmax(0, 1fr) auto;
+ }
+
+ .record-meta {
+ grid-column: 2;
+ text-align: left;
+ white-space: normal;
+ }
+
+ .record-marker {
+ grid-column: 3;
+ grid-row: 1;
+ }
+
+ .evidence-tag {
+ white-space: normal;
+ }
+
+ .filter-bar {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ }
+
+ .filter-chip {
+ justify-content: space-between;
+ }
+}
+
+@media (prefers-reduced-motion: reduce) {
+ html {
+ scroll-behavior: auto;
+ }
+
+ .site-header,
+ .route-tabs a,
+ .filter-chip,
+ .record-marker {
+ transition: none;
+ }
+}
+
+@media print {
+ :root {
+ --paper: #ffffff;
+ --paper-raised: #ffffff;
+ --ink: #000000;
+ --ink-2: #222222;
+ --ink-3: #555555;
+ --line: #aaaaaa;
+ --line-strong: #000000;
+ }
+
+ body {
+ background: #ffffff;
+ color: #000000;
+ font-size: 11pt;
+ }
+
+ .site-header,
+ .anchor-nav-wrap,
+ .filter-bar,
+ .record-marker,
+ .empty-state {
+ display: none !important;
+ }
+
+ .page-shell {
+ width: 100%;
+ }
+
+ .hero {
+ padding: 24px 0;
+ }
+
+ .board-section,
+ .action-block {
+ padding-top: 32px;
+ }
+
+ .action-record,
+ .roadmap-band,
+ tr,
+ .verdict-block,
+ .emphasis-block {
+ break-inside: avoid;
+ }
+
+ .sprint-term,
+ .cash-waterfall li,
+ .reveal-list li,
+ .rule-list li,
+ .compact-list li,
+ .bar-caption {
+ break-inside: avoid;
+ }
+
+ .section-head,
+ h2,
+ h3,
+ .kicker {
+ break-after: avoid;
+ }
+
+ #gate {
+ break-before: page;
+ }
+
+ .track-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .site-footer {
+ break-inside: avoid;
+ }
+
+ .action-record > summary {
+ border-bottom: 1px solid var(--line);
+ }
+
+ .action-record > .record-body {
+ display: grid !important;
+ }
+
+ .evidence-tag {
+ color: #000000;
+ background: transparent;
+ border-color: #000000;
+ }
+
+ a {
+ color: #000000;
+ }
+}
+
+/* The board header carries 9 view tabs as of the Content Intel view. At 1440,
+ the width these boards are screen-shared at, a fixed non-scrolling strip
+ clipped the last tab. Scroll instead of truncating, and tighten horizontal
+ padding on wide viewports so all 9 fit without scrolling at all. */
+.route-tabs {
+ max-width: 100%;
+ overflow-x: auto;
+ scrollbar-width: none;
+ flex-wrap: nowrap;
+}
+
+.route-tabs::-webkit-scrollbar { display: none; }
+.route-tabs a { white-space: nowrap; }
+
+@media (min-width: 1100px) {
+ .route-tabs a { padding-left: 11px; padding-right: 11px; }
+}
diff --git a/biologix-strategy-board/board.js b/biologix-strategy-board/board.js
new file mode 100644
index 0000000..b7df142
--- /dev/null
+++ b/biologix-strategy-board/board.js
@@ -0,0 +1,143 @@
+(function () {
+ 'use strict';
+
+ const header = document.querySelector('.site-header');
+
+ function updateHeaderState() {
+ if (header) header.classList.toggle('is-scrolled', window.scrollY > 4);
+ }
+
+ function matchesFilter(record, filter) {
+ if (filter === 'all') return true;
+ if (filter === 'next') return record.dataset.horizon === 'next-72h';
+ if (filter === 'replies') return record.dataset.track === 'replies';
+ if (filter === 'silent') return record.dataset.track === 'silent';
+ if (filter === 'gated') return record.dataset.status === 'gated';
+ if (filter === 'done') return record.dataset.status === 'done';
+ return true;
+ }
+
+ function setupFilters() {
+ const filterBar = document.querySelector('[data-filter-bar]');
+ if (!filterBar) return;
+
+ const records = Array.from(document.querySelectorAll('[data-action-record]'));
+ const buttons = Array.from(filterBar.querySelectorAll('[data-filter]'));
+ const emptyState = document.querySelector('[data-empty-state]');
+ const clearButton = document.querySelector('[data-clear-filters]');
+ let activeFilter = 'all';
+
+ function countFor(filter) {
+ return records.filter((record) => matchesFilter(record, filter)).length;
+ }
+
+ function updateCounts() {
+ buttons.forEach((button) => {
+ const count = button.querySelector('[data-filter-count]');
+ if (count) count.textContent = countFor(button.dataset.filter);
+ });
+ }
+
+ function applyFilter(filter) {
+ activeFilter = filter;
+ let visible = 0;
+
+ records.forEach((record) => {
+ const show = matchesFilter(record, activeFilter);
+ record.hidden = !show;
+ if (show) visible += 1;
+ });
+
+ document.querySelectorAll('[data-record-group]').forEach((group) => {
+ const groupRecords = Array.from(group.querySelectorAll('[data-action-record]'));
+ group.hidden = groupRecords.length > 0 && groupRecords.every((record) => record.hidden);
+ });
+
+ buttons.forEach((button) => {
+ const selected = button.dataset.filter === activeFilter;
+ button.setAttribute('aria-pressed', String(selected));
+ });
+
+ if (emptyState) emptyState.hidden = visible !== 0;
+ }
+
+ buttons.forEach((button) => {
+ button.addEventListener('click', () => applyFilter(button.dataset.filter));
+ });
+
+ if (clearButton) clearButton.addEventListener('click', () => applyFilter('all'));
+
+ updateCounts();
+ applyFilter(activeFilter);
+ }
+
+ function setupHashReveal() {
+ if (!location.hash) return;
+ const target = document.getElementById(decodeURIComponent(location.hash.slice(1)));
+ if (target && target.tagName === 'DETAILS') target.open = true;
+ }
+
+ function setupPrintExpansion() {
+ let priorOpenState = [];
+
+ window.addEventListener('beforeprint', () => {
+ priorOpenState = Array.from(document.querySelectorAll('details')).map((detail) => ({
+ detail,
+ open: detail.open
+ }));
+ priorOpenState.forEach(({ detail }) => { detail.open = true; });
+ });
+
+ window.addEventListener('afterprint', () => {
+ priorOpenState.forEach(({ detail, open }) => { detail.open = open; });
+ priorOpenState = [];
+ });
+ }
+
+ async function setupPretext() {
+ const api = window.Pretext;
+ if (!api || typeof api.prepare !== 'function' || typeof api.layout !== 'function') return;
+
+ await document.fonts.ready;
+ const prepared = new Map();
+ const elements = Array.from(document.querySelectorAll('[data-pretext]'));
+
+ function prepareElement(element) {
+ const style = getComputedStyle(element);
+ prepared.set(element, api.prepare(element.textContent.trim(), style.font));
+ }
+
+ function relayout() {
+ prepared.forEach((handle, element) => {
+ if (!element.isConnected || element.clientWidth === 0) return;
+ const style = getComputedStyle(element);
+ const lineHeight = parseFloat(style.lineHeight) || parseFloat(style.fontSize) * 1.6;
+ const result = api.layout(handle, element.clientWidth, lineHeight);
+ element.style.minHeight = `${Math.ceil(result.height)}px`;
+ });
+ }
+
+ elements.forEach((element) => {
+ prepareElement(element);
+ if (element.contentEditable === 'true') {
+ new MutationObserver(() => {
+ prepareElement(element);
+ relayout();
+ }).observe(element, { characterData: true, childList: true, subtree: true });
+ }
+ });
+
+ new ResizeObserver(relayout).observe(document.body);
+ relayout();
+ }
+
+ window.addEventListener('scroll', updateHeaderState, { passive: true });
+ window.addEventListener('hashchange', setupHashReveal);
+ window.addEventListener('DOMContentLoaded', () => {
+ updateHeaderState();
+ setupFilters();
+ setupHashReveal();
+ setupPrintExpansion();
+ setupPretext().catch((error) => console.warn('Pretext enhancement unavailable.', error));
+ });
+}());
diff --git a/biologix-strategy-board/content-intel/index.html b/biologix-strategy-board/content-intel/index.html
new file mode 100644
index 0000000..ae872cc
--- /dev/null
+++ b/biologix-strategy-board/content-intel/index.html
@@ -0,0 +1,382 @@
+
+
+
+
+
+
+Content Intel — Biologix / Decision Board
+
+
+
+
+
+
+
+
+
+
+
Biologix / Decision Board — Internal
+
+
+
+
+
+
+
View 09
+
What to replicate
+
+ Peptide and GLP‑1 affiliate content ranked by how much of its performance a Biologix
+ affiliate could actually reproduce. Outliers are measured against each creator's own
+ median, not against the whole set, so a breakout from a small account outranks a
+ routine post from a large one.
+
+
+
+ How this was collected, and what is missing
+
+
+
+
+
+
+
Tell the army to post this
+
+
+
+ Derived from real posts by regular people who already promote peptides with an
+ affiliate link. Every post scored against its own creator's median, so a breakout
+ from a 1.4k account is not buried by a routine post from a 350k account.
+
+
+
+
Promising but not yet a pattern
+
Below the evidence bar of 8 posts across 3 creators. Test these, do not brief them as fact.
+
+
+
Thin-evidence angles
+
Angle
Outlier
Posts
Creators
Example
+
+
+
+
+
Coded aliases in live use
+
TikTok returns zero results for the compound names, so the cohort tags posts with these instead.
+
+
+
Coded alias hashtags
+
Tag
Posts
Creators
Median outlier
+
+
+
+
+
Their actual breakout posts
+
+
+
Breakout posts from the civilian cohort
+
Creator
Plays
Outlier
Angle
Caption
+
+
+
+
+
+
+
+
+
The scan target
+
+
+
+ Individual people posting their own peptide experience who carry an affiliate link.
+ Not companies, not vendor accounts, not clinicians, not coaches.
+
+
+
+
+
Civilian creators with a verified peptide affiliate link
+
+
+
Creator
+
Followers
+
Bio
+
Affiliate destination
+
Evidence
+
+
+
+
+
+
+ Probed and excluded, with the reason for each
+
+
+
Accounts probed and excluded
+
+
Handle
Followers
Why excluded
+
+
+
+
+
+
+
+
+
+
What the data says
+
Computed from the measured set. Every number is read back out of the dataset.
+
+
+
+
+
+
+
Replication board
+
+
+
+
+
+ Platform
+
+
+
+ Topic
+
+
+
+ Verdict
+
+
+
+ Hook
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No posts match these filters.
+
+
+
+
+
+
What wins, by pattern
+
Grouped over API-collected posts only. Groups under five posts are marked thin.
+
+
+
+
+
Performance by pattern
+
+
+
Group
+
Posts
+
Median views
+
Median outlier
+
Verdicts
+
Best example
+
+
+
+
+
+
+
+
+
+
Does the reach transfer to the topic?
+
Same account, its peptide posts vs its general posts. Median views.
+
+
+ Borrowed reach is only worth borrowing if it follows the subject. For every collected
+ account that posted both, this compares what its on‑topic content did against what
+ the rest of its feed did.
+
+
+
+
On-topic versus off-topic performance per account
+
+
+
Account
+
Platform
+
On-topic median
+
General median
+
Ratio
+
Reading
+
+
+
+
+
+
+
+
+
+
How they link
+
Every affiliate URL, code and bio pointer observed verbatim in a collected caption, description or bio.
+
+
+
+
Affiliate mechanics observed
+
+
+
Mechanic
+
Value
+
Seen
+
Platforms
+
Creators
+
+
+
+
+
+
Bio-link funnels resolved
+
+
+
Bio link resolution chains
+
+
+
Handle
+
Bio link
+
Resolves to
+
Status
+
+
+
+
+
+
+
+
+
+
Who they are affiliates for
+
Every link resolved to a domain, then matched against the 18 documented programs and 9 known sellers.
+
+
+
+
Vendors and brands promoted
+
+
+
Domain
+
Classification
+
Times
+
Creators linking it
+
+
+
+
+
+
Creator monetisation posture
+
+
+
How each creator monetises
+
+
+
Creator
+
Posture
+
Vendors / suspected vendors
+
Codes
+
Own offer
+
+
+
+
+
+
The 18 documented affiliate programs
+
+
+
+
Documented peptide affiliate programs
+
+
+
Brand
+
Commission
+
Attribution
+
Restrictions
+
Risk
+
+
+
+
+
+
+
+
+
+
Who is doing it
+
Follower counts are null where the platform blocked the account-level fetch. Never estimated.
+
+
+
+
Creators collected
+
+
+
Creator
+
Platform
+
Lane
+
Followers
+
Posts
+
Median views
+
Best post
+
+
+
+
+
+
+
+
+
+
Ranked patterns and the Biologix substitution
+
Carried from the hand-collected recon. Each pattern states what transfers and what must change.
';
+ }).join('');
+
+ var fails = D.coverage.collector_failures || {};
+ var failCount = Object.keys(fails).reduce(function (a, k) {
+ return a + ((fails[k] || []).length);
+ }, 0);
+
+ var sm = D.scoring_model || {};
+ $('method-body').innerHTML =
+ '
Where the numbers come from
' + rows + '
' +
+ '
How the score works
' +
+ '
Weighted composite, ' + Object.keys(sm.weights || {}).map(function (k) {
+ return sm.weights[k] + ' ' + k.replace(/_/g, ' ');
+ }).join(' / ') + '. ' + esc((sm.dimensions && sm.dimensions.outlier && sm.dimensions.outlier.why) || '') +
+ ' Where a platform does not expose a dimension, the composite is renormalised over the ' +
+ 'dimensions that remain, so no platform is silently penalised.
' +
+ '
Known gaps (' + (D.coverage.known_gaps || []).length + ')
' + gaps + '
' +
+ '
Caveats on the hand-collected records
' + caveats + '
' +
+ '
Collector failures
' + failCount + ' handle/query failures were recorded rather than hidden. ' +
+ 'Accounts that do not resolve are listed as unresolved, never as zero-post accounts.
';
+
+ $('footer-note').textContent =
+ 'Generated ' + (D.generated_at || '').replace('T', ' ').slice(0, 16) + ' UTC. ' +
+ t.api_collected + ' API-measured posts, ' + t.hand_collected + ' hand-collected. ' +
+ 'No ScrapeCreators (out of credits). Collected with yt-dlp and the public Instagram endpoint.';
+ }
+
+ /* --------------------------------------------------------- filters --- */
+ var state = { platform: null, verdict: null, hook: null, topic: 'on', sort: 'score', q: '' };
+
+ function countBy(fn, posts) {
+ var m = {};
+ posts.forEach(function (p) {
+ var k = fn(p);
+ if (k == null) return;
+ m[k] = (m[k] || 0) + 1;
+ });
+ return m;
+ }
+
+ function buildChips(containerId, key, counts, labelFn) {
+ var keys = Object.keys(counts).sort(function (a, b) { return counts[b] - counts[a]; });
+ if (!keys.length) {
+ $(containerId).closest('.control-row').hidden = true;
+ return;
+ }
+ var html = '';
+ html += keys.map(function (k) {
+ return '';
+ }).join('');
+ $(containerId).innerHTML = html;
+ }
+
+ function buildTopicChips() {
+ var on = D.posts.filter(function (p) { return p.on_topic; }).length;
+ var off = D.posts.length - on;
+ $('filter-topic').innerHTML =
+ '' +
+ '' +
+ '';
+ }
+
+ function applyFilters() {
+ return D.posts.filter(function (p) {
+ if (state.topic === 'on' && !p.on_topic) return false;
+ if (state.topic === 'off' && p.on_topic) return false;
+ if (state.platform && p.platform !== state.platform) return false;
+ if (state.verdict && p.verdict !== state.verdict) return false;
+ if (state.hook && p.hook_archetype !== state.hook) return false;
+ if (state.q) {
+ var hay = [p.hook, p.creator, p.caption, (p.affiliate_signals || []).map(function (s) { return s.value; }).join(' ')]
+ .join(' ').toLowerCase();
+ if (hay.indexOf(state.q.toLowerCase()) === -1) return false;
+ }
+ return true;
+ }).sort(function (a, b) {
+ switch (state.sort) {
+ case 'views': return (b.views || 0) - (a.views || 0);
+ case 'outlier': return (b.outlier_multiple || 0) - (a.outlier_multiple || 0);
+ case 'recent': return String(b.published_at || '').localeCompare(String(a.published_at || ''));
+ case 'fit': return (b.replication_fit || 0) - (a.replication_fit || 0);
+ default: return (b.score == null ? -1 : b.score) - (a.score == null ? -1 : a.score);
+ }
+ });
+ }
+
+ /* ------------------------------------------------------- post list --- */
+ var shown = [];
+
+ function thumb(p) {
+ var u = safeUrl(p.thumbnail);
+ if (!u) {
+ return '
no thumb
';
+ }
+ // No inline onerror handler; failures are caught by a delegated capture
+ // listener below. Platform CDNs hotlink-block often, so this WILL fire.
+ return '';
+ }
+
+ // Delegated, capturing: 'error' does not bubble, so capture is required.
+ document.addEventListener(
+ 'error',
+ function (e) {
+ var img = e.target;
+ if (!img || img.tagName !== 'IMG' || !img.classList.contains('post-thumb')) return;
+ var ph = document.createElement('div');
+ ph.className = 'post-thumb-fallback';
+ ph.setAttribute('aria-hidden', 'true');
+ ph.innerHTML = 'thumb blocked';
+ if (img.parentNode) img.parentNode.replaceChild(ph, img);
+ },
+ true
+ );
+
+ function renderList() {
+ shown = applyFilters();
+ var list = $('post-list');
+ $('result-count').textContent = shown.length + ' of ' + D.posts.length + ' posts';
+ $('empty-state').hidden = shown.length > 0;
+
+ list.innerHTML = shown.map(function (p, i) {
+ var viewsHtml = metric(p.views, 'views', p.views_note);
+ var outlier = p.outlier_multiple != null
+ ? 'outlier ' + p.outlier_multiple + '×'
+ : 'outlier: no baseline';
+ var eng = p.comments != null
+ ? 'comments ' + num(p.comments) + ''
+ : metric(null, 'comments', 'not exposed');
+
+ return '';
+ }).join('');
+ }
+
+ /* ---------------------------------------------------------- drawer --- */
+ var lastFocus = null;
+
+ function openDrawer(i) {
+ var p = shown[i];
+ if (!p) return;
+ lastFocus = document.activeElement;
+ var s = p.replication_spec;
+
+ var html = '
';
+ Object.keys(w).forEach(function (k) {
+ var v = p.sub_scores[k];
+ html += '
' + esc(k.replace(/_/g, ' ')) + ' w' + w[k] + '
' +
+ (v == null ? 'n/a' : v) + '
';
+ });
+ html += '
';
+ if (p.score_renormalised_over && p.score_renormalised_over.length < Object.keys(w).length) {
+ html += '
Renormalised over ' + p.score_renormalised_over.length + ' of ' +
+ Object.keys(w).length + ' dimensions because this platform does not expose the rest.
No spec generated. Specs are produced for the top 40 rank-eligible ' +
+ 'API-collected posts only, so that a spec is never written on top of a weak or unverifiable record.
';
+ }
+
+ if ((p.replication_fit_reasons || []).length) {
+ html += '
';
+
+ var progs = D.affiliate_programs || [];
+ var matched = (D.linked_domains || []).filter(function (d) { return d.klass === 'documented_peptide_program'; }).length;
+ $('program-match-note').textContent = matched === 0
+ ? progs.length + ' programs documented in the research. ZERO of them appear in any link posted by any creator we collected. The programs and the creators are two separate populations.'
+ : matched + ' of ' + progs.length + ' documented programs were actually observed in collected links.';
+ $('program-body').innerHTML = progs.map(function (pr) {
+ return '
';
+ }).join('');
+ }
+
+ function renderCohort() {
+ var C = D.civilian_cohort;
+ var sec = document.getElementById('cohort-section');
+ if (!C || !(C.creators || []).length) { if (sec) sec.hidden = true; return; }
+ var verified = C.creators.filter(function (c) { return c.affiliate_verified; });
+ var rest = C.creators.filter(function (c) { return !c.affiliate_verified; });
+
+ $('cohort-count').textContent = verified.length + ' verified of ' + C.probed + ' probed';
+ $('cohort-note').textContent = C.discovery_note + ' Verified means a peptide or GLP-1 vendor URL was actually found behind the bio link, with link aggregators crawled one level down, or a discount code is stated in the bio. Simply having a linktr.ee is not evidence.';
+
+ $('cohort-body').innerHTML = verified.map(function (c) {
+ var dest = (c.peptide_vendor_links || []).slice(0, 2);
+ return '
+ Every collected video, with all three text layers it carries — caption, spoken words,
+ burned‑in on‑screen text — and both outlier metrics side by side. Sort and filter to
+ find what an affiliate could actually reproduce. Nothing here is a brief; the compliance
+ column marks the posts that work because of something Biologix affiliates cannot say.
+
+
+
+
+ How this file was built, what was trimmed, what is missing
+
+
+
+
+
+
+
Scan the census
+
+
+
+
+
+ Sort
+
+
+
+
+ Difficulty
+
+
+
+ Age
+
+
+
+ Lane
+
+
+
+ Layers
+
+
+
+ Signals
+
+
+
+ Compliance
+
+
+
+
+
+
+
+
+
+
+
+
+
Video census, one row per collected video
+
+
+
#
+
Creator
+
+
+
+
+
+
+
Layers
+
Signals
+
Text
+
+
+
+
+
+
+ No videos match these filters.
+
+
+
+
+
+
+
What survived verification
+
Every number re-derived from the source files on each build.
+
+
+
+
Age buckets on the raw outlier column
+
The whole method correction in one table: the raw outlier rises monotonically with post age, which is a property of how the sample was drawn, not of the content.
+
+
+
Raw outlier by post age
+
Age bucket
Videos
Creators
Median raw outlier
Median plays
+
+
+
+
+
The same buckets on the rebuilt metric
+
Out30 inside the census window is flat across post age, which is what an age-controlled metric is supposed to look like.
+
+
+
Out30 by post age inside the census window
+
Age bucket
Videos
Creators
Median out30
Median plays
+
+
+
+
+
Where the retatrutide reference actually lives
+
+
+
+
Retatrutide mentions by layer
+
Layer
Videos
Creators
+
+
+
+
+
+
+
+
Not a pattern — leads only
+
Failed verification as stated. Test, do not brief.
+
+
+
+
+
+
+
Rollups on the age-matched set
+
+
+
+
+
+
+
Performance by group
+
+
+
Group
+
Videos
+
Creators
+
Median out30
+
Median plays
+
Hit rate
+
Best in group
+
+
+
+
+
+
+
+
+
+
Coded vocabulary in live use
+
Matched across caption, speech and on-screen text.
+
+
+ TikTok returns zero search results for the compound names, so the cohort substitutes these.
+ Counts are videos containing the term in any layer; the median is computed on the age-matched
+ subset only, so it is blank where no video in that group has an age-matched baseline.
+
+
+
+
Coded vocabulary
+
Term
Reads as
Videos
Creators
Median out30
Age-matched n
+
+
+
+
+
+
+
+
The 49 creators behind the census
+
+
+
+
+
Creators in the census
+
+
+
Creator
+
Lane
+
Followers
+
Videos
+
In window
+
30d median plays
+
Best plays
+
Reta
+
Blocked
+
Affiliate destination
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/biologix-strategy-board/content-intel/videos.js b/biologix-strategy-board/content-intel/videos.js
new file mode 100644
index 0000000..915aaf7
--- /dev/null
+++ b/biologix-strategy-board/content-intel/videos.js
@@ -0,0 +1,727 @@
+/* Video census (view 10) — renders window.PEPTIDE_VIDEOS.
+ Rules this file enforces, same as intel.js:
+ - A null metric renders as an explicit "not exposed" / a stated reason. Never
+ 0, never a bare dash.
+ - Every control is wired, and no control is rendered without data behind it.
+ - Captions, transcripts and OCR are third-party text: escaped everywhere, and
+ anything that reaches an href goes through safeUrl first.
+ - OCR garbage is marked as garbage, never presented as content. */
+(function () {
+ 'use strict';
+
+ var D = window.PEPTIDE_VIDEOS;
+ var $ = function (id) { return document.getElementById(id); };
+
+ if (!D || !Array.isArray(D.videos)) {
+ document.querySelector('.page-shell').insertAdjacentHTML(
+ 'afterbegin',
+ '
Dataset failed to load. videos-data.js did not set window.PEPTIDE_VIDEOS. Regenerate it with node .context/peptide-content-intel/build_video_site.mjs.
'
+ );
+ return;
+ }
+
+ var V = D.videos;
+ var C = D.census;
+
+ /* ------------------------------------------------------------ utils --- */
+ var esc = function (s) {
+ return String(s == null ? '' : s).replace(/[&<>"']/g, function (c) {
+ return { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c];
+ });
+ };
+
+ var num = function (n) { return n == null ? null : n.toLocaleString('en-US'); };
+
+ var nullCell = function (reason) {
+ return 'not exposed';
+ };
+
+ var missing = function (label, reason) {
+ return '' + esc(label) + '';
+ };
+
+ var fixed = function (n, dp) { return n == null ? null : n.toFixed(dp == null ? 2 : dp); };
+
+ // Third-party text can carry "javascript:" and friends, which survive HTML
+ // escaping inside an href. Only http/https ever reaches the DOM.
+ var safeUrl = function (u) {
+ if (!u) return null;
+ try {
+ var p = new URL(String(u), 'https://example.invalid');
+ return (p.protocol === 'http:' || p.protocol === 'https:') ? p.href : null;
+ } catch (e) { return null; }
+ };
+
+ var link = function (url, text, cls) {
+ var u = safeUrl(url);
+ var label = esc(text == null ? url : text);
+ if (!u) return '' + label + '';
+ return '' + label + '';
+ };
+
+ var laneLabel = function (l) {
+ return l === 'research_peptide' ? 'research peptide' : l === 'telehealth' ? 'telehealth' : l === 'unclear' ? 'unclear' : 'unknown';
+ };
+
+ var profLabel = function (p) { return String(p || '').replace(/_/g, ' '); };
+
+ var cleanOnscreen = function (v) {
+ return v.os.filter(function (s) { return !s.noise; }).map(function (s) { return s.t; }).join(' ');
+ };
+
+ var haystack = function (v) {
+ if (v._hay == null) {
+ v._hay = (v.h + ' ' + v.cap + ' ' + v.tags.join(' ') + ' ' + v.tr + ' ' + cleanOnscreen(v)).toLowerCase();
+ }
+ return v._hay;
+ };
+
+ var primary = function (v) {
+ var os = cleanOnscreen(v);
+ var cands = [
+ { src: 'onscreen', t: os },
+ { src: 'speech', t: v.tr },
+ { src: 'caption', t: v.cap }
+ ].filter(function (c) { return c.t && c.t.trim(); });
+ if (!cands.length) return null;
+ cands.sort(function (a, b) { return b.t.length - a.t.length; });
+ return cands[0];
+ };
+
+ /* ---------------------------------------------------------- coverage --- */
+ function renderCoverage() {
+ var t = D.totals;
+ var items = [
+ { k: 'Videos', v: num(t.videos), u: t.creators + ' creators' },
+ { k: 'In census window', v: num(t.census_window), u: '≤' + C.window_days + 'd' },
+ { k: 'Age-matched set', v: num(t.ranked), u: t.ranked_creators + ' creators' },
+ { k: 'Named retatrutide', v: num(t.reta.any), u: 'caption alone ' + t.reta.caption, gap: true },
+ { k: 'On-screen layer', v: num(t.layers.onscreen), u: 'speech ' + t.layers.speech },
+ { k: 'Compliance-blocked', v: num(t.compliance_blocked), u: 'cannot be briefed', gap: true }
+ ];
+ $('coverage-strip').innerHTML = items.map(function (i) {
+ return '
';
+ }).join('');
+
+ $('method-correction').innerHTML =
+ 'Read the two metrics differently. Out30 = plays ÷ that creator’s median plays inside the ' +
+ C.window_days + '-day census window, defined only where the creator has ≥' + C.min_baseline_n +
+ ' posts in the window (' + num(D.totals.ranked) + ' of ' + num(D.totals.videos) +
+ ' videos, once posts under ' + C.mature_days + ' days old are held back as unmatured). Raw is the ' +
+ 'outlier column shipped in outliers.json, which is plays ÷ the creator’s all-time median and rises with post ' +
+ 'age because the scrape mixed last week’s posts with a survivorship-selected historical tail. Rank on out30. ' +
+ 'The raw column is shown only so nobody goes back to the file for it.';
+
+ var trims = (D.build_log || []).filter(function (l) { return /trimmed|WARN|dropped/.test(l); });
+ $('method-body').innerHTML =
+ '
Post age comes from the TikTok id timestamp (top 32 bits). Neither source file carries a date field.
' +
+ '
out30 window ' + C.window_days + ' days, minimum ' + C.min_baseline_n +
+ ' posts per creator in the window, posts under ' + C.mature_days + ' days old excluded from the ranked set.
' +
+ '
Evidence bar: a group is a pattern only at ≥' + C.bar_videos + ' videos across ≥' + C.bar_creators +
+ ' creators. Anything thinner is marked and stays a lead.
' +
+ '
Transcripts trimmed at ' + num(C.transcript_max) + ' chars and on-screen text at ' + num(C.onscreen_max) +
+ ' chars for page weight. The full length is kept and shown per video.
' +
+ '
OCR segments that are non-Latin glyphs, vowel-less, mostly symbols or a repeat of an earlier frame are ' +
+ 'marked as noise in the detail view and excluded from search and from the text column.
' +
+ '
Build log
' +
+ trims.map(function (l) { return '
' + esc(l) + '
'; }).join('') +
+ '
What this page cannot tell you
' +
+ '
The videos were never watched. replication_difficulty is an additive rubric inferred from duration, transcript length and on-screen density.
' +
+ '
' + num(D.totals.null_duration) + ' videos have no duration exposed, and ' +
+ num(D.totals.data_gap) + ' are flagged as suspected data gaps.
' +
+ '
Sampling is capped at 10 videos per creator, so nothing here is a full feed.
' +
+ '
';
+
+ $('scan-legend').innerHTML =
+ 'Layers column: C caption, S speech, O on-screen; filled = that layer carries text. ' +
+ 'Rows with a red left edge are compliance-blocked: they perform partly because of dosing, sourcing, personal ' +
+ 'outcome, stacking or efficacy-magnitude content, which a Biologix affiliate cannot produce. Click any row for all three layers.';
+
+ $('footer-note').textContent =
+ 'videos-data.js generated ' + D.generated_at + ' from ' + D.source.merged + ', ' + D.source.outliers +
+ ', ' + D.source.cohort + ' and ' + D.source.lanes + '. ' + num(D.totals.videos) + ' videos, ' +
+ D.totals.creators + ' creators. Scores from outliers.json generated ' + D.source.outliers_generated_at + '.';
+ }
+
+ /* ----------------------------------------------------------- filters --- */
+ var GROUPS = [
+ {
+ id: 'diff', el: 'filter-diff',
+ opts: [
+ { id: '1', label: 'd1 easiest' }, { id: '2', label: 'd2' }, { id: '3', label: 'd3' },
+ { id: '4', label: 'd4' }, { id: '5', label: 'd5 hardest' }
+ ],
+ test: function (v, id) { return String(v.diff) === id; }
+ },
+ {
+ id: 'age', el: 'filter-age',
+ opts: [
+ { id: '0-7', label: '≤7d' }, { id: '7-30', label: '7–30d' },
+ { id: '30-90', label: '30–90d' }, { id: '90+', label: '90d+' }
+ ],
+ // age_exact, not the rounded display value, so a filtered count always
+ // reproduces when someone recomputes it from the raw files
+ test: function (v, id) {
+ var a = v.age_exact;
+ if (a == null) return false;
+ if (id === '0-7') return a < 7;
+ if (id === '7-30') return a >= 7 && a < 30;
+ if (id === '30-90') return a >= 30 && a < 90;
+ return a >= 90;
+ }
+ },
+ {
+ id: 'lane', el: 'filter-lane',
+ opts: [
+ { id: 'research_peptide', label: 'research peptide' },
+ { id: 'telehealth', label: 'telehealth' },
+ { id: 'unclear', label: 'unclear' }
+ ],
+ test: function (v, id) { return v.lane === id; }
+ },
+ {
+ id: 'layer', el: 'filter-layer',
+ opts: [
+ { id: 'caption', label: 'has caption' }, { id: 'speech', label: 'has speech' },
+ { id: 'onscreen', label: 'has on-screen' }, { id: 'none', label: 'no text layer' }
+ ],
+ test: function (v, id) {
+ if (id === 'caption') return v.lay.c;
+ if (id === 'speech') return v.lay.s;
+ if (id === 'onscreen') return v.lay.o;
+ return !v.lay.c && !v.lay.s && !v.lay.o;
+ }
+ },
+ {
+ id: 'signal', el: 'filter-signal',
+ opts: [
+ { id: 'reta', label: 'retatrutide' }, { id: 'pep', label: 'peptide' },
+ { id: 'dose', label: 'dosing' }, { id: 'out', label: 'outcome claim' }
+ ],
+ test: function (v, id) { return !!v.sig[id]; }
+ },
+ {
+ id: 'comp', el: 'filter-comp',
+ opts: [{ id: 'blocked', label: 'blocked' }, { id: 'clear', label: 'clear' }],
+ test: function (v, id) { return id === 'blocked' ? v.comp : !v.comp; }
+ }
+ ];
+
+ var SORTS = [
+ { id: 'out30', label: 'Out30', get: function (v) { return v.out30; }, dp: 2 },
+ { id: 'plays', label: 'Plays', get: function (v) { return v.plays; } },
+ { id: 'diff', label: 'Difficulty', get: function (v) { return v.diff; } },
+ { id: 'age', label: 'Age', get: function (v) { return v.age; } },
+ { id: 'er', label: 'Engagement', get: function (v) { return v.er; } },
+ { id: 'out', label: 'Raw outlier', get: function (v) { return v.out; } }
+ ];
+
+ var state = { sort: 'out30', desc: true, q: '', ranked: false, sel: {} };
+ GROUPS.forEach(function (g) { state.sel[g.id] = {}; });
+
+ var selectedIds = function (g) {
+ return Object.keys(state.sel[g.id]).filter(function (k) { return state.sel[g.id][k]; });
+ };
+
+ var passGroup = function (v, g) {
+ var ids = selectedIds(g);
+ if (!ids.length) return true;
+ for (var i = 0; i < ids.length; i++) if (g.test(v, ids[i])) return true;
+ return false;
+ };
+
+ var passQuery = function (v) {
+ if (!state.q) return true;
+ return haystack(v).indexOf(state.q) !== -1;
+ };
+
+ var passRanked = function (v) { return !state.ranked || (v.out30 != null && v.mature); };
+
+ // rows passing everything except one group (used for honest facet counts)
+ var passAllExcept = function (v, skipId) {
+ if (!passQuery(v) || !passRanked(v)) return false;
+ for (var i = 0; i < GROUPS.length; i++) {
+ if (GROUPS[i].id === skipId) continue;
+ if (!passGroup(v, GROUPS[i])) return false;
+ }
+ return true;
+ };
+
+ var currentRows = function () {
+ return V.filter(function (v) { return passAllExcept(v, null); });
+ };
+
+ /* ----------------------------------------------------------- render ---- */
+ // Chips are built once and then updated in place. Re-rendering the markup on
+ // every toggle would move focus to and make the filters unusable from
+ // the keyboard.
+ function buildControls() {
+ $('sort-set').innerHTML = SORTS.map(function (s) {
+ return '';
+ }).join('');
+
+ GROUPS.forEach(function (g) {
+ $(g.el).innerHTML = g.opts.map(function (o) {
+ return '';
+ }).join('');
+ });
+ }
+
+ function renderControls() {
+ Array.prototype.forEach.call($('sort-set').children, function (b) {
+ b.setAttribute('aria-pressed', String(b.getAttribute('data-sort') === state.sort));
+ });
+
+ GROUPS.forEach(function (g) {
+ var pool = V.filter(function (v) { return passAllExcept(v, g.id); });
+ Array.prototype.forEach.call($(g.el).children, function (b) {
+ var id = b.getAttribute('data-opt');
+ var n = pool.filter(function (v) { return g.test(v, id); }).length;
+ var on = !!state.sel[g.id][id];
+ b.setAttribute('aria-pressed', String(on));
+ b.disabled = (n === 0 && !on);
+ b.querySelector('.n').textContent = n;
+ });
+ });
+
+ $('sort-dir-label').textContent = state.desc ? 'High → low' : 'Low → high';
+ $('sort-dir').setAttribute('aria-pressed', String(!state.desc));
+ $('ranked-only-label').textContent = 'Age-matched only (' + D.totals.ranked + ')';
+
+ Array.prototype.forEach.call(document.querySelectorAll('.th-sort'), function (b) {
+ var on = b.getAttribute('data-sort') === state.sort;
+ b.setAttribute('aria-pressed', String(on));
+ b.closest('th').setAttribute('aria-sort', on ? (state.desc ? 'descending' : 'ascending') : 'none');
+ });
+ }
+
+ function layerBadges(v) {
+ return [['C', v.lay.c], ['S', v.lay.s], ['O', v.lay.o]].map(function (p) {
+ return '' + p[0] + '';
+ }).join('');
+ }
+
+ function sigChips(v) {
+ var out = [];
+ if (v.sig.reta) out.push('reta');
+ if (v.sig.pep) out.push('pep');
+ if (v.sig.dose) out.push('dose');
+ if (v.sig.out) out.push('outcome');
+ if (v.comp) out.push('blocked');
+ return out.length ? out.join('') : 'none';
+ }
+
+ function sortRows(rows) {
+ var s = SORTS.filter(function (x) { return x.id === state.sort; })[0];
+ var dir = state.desc ? -1 : 1;
+ return rows.slice().sort(function (a, b) {
+ var av = s.get(a), bv = s.get(b);
+ if (av == null && bv == null) return b.plays - a.plays;
+ if (av == null) return 1; // nulls always last, both directions
+ if (bv == null) return -1;
+ if (av === bv) return b.plays - a.plays;
+ return (av - bv) * dir;
+ });
+ }
+
+ var lastRows = [];
+
+ function renderTable() {
+ var rows = sortRows(currentRows());
+ lastRows = rows;
+
+ $('census-body').innerHTML = rows.map(function (v, i) {
+ var p = primary(v);
+ var out30 = v.out30 == null
+ ? (v.cw
+ ? missing('thin baseline', 'creator has ' + v.base30_n + ' posts in the ' + C.window_days + '-day window, needs ' + C.min_baseline_n)
+ : missing('outside window', 'posted ' + Math.round(v.age) + ' days ago, outside the ' + C.window_days + '-day census window'))
+ : '' + esc(fixed(v.out30, 2)) + '×' +
+ (v.mature ? '' : 'unmatured');
+
+ return '
' + (v.cw
+ ? 'No age-matched baseline. This creator has ' + v.base30_n + ' post(s) inside the ' + C.window_days +
+ '-day window and needs at least ' + C.min_baseline_n + '.'
+ : 'Outside the ' + C.window_days + '-day census window (posted ' + esc(fixed(v.age, 1)) +
+ ' days ago), so no age-matched score is computed for it.') + '
'
+ : '
' + esc(fixed(v.out30, 2)) + '× against this creator’s ' + C.window_days +
+ '-day median of ' + num(v.base30) + ' plays across ' + v.base30_n + ' posts in the window.' +
+ (v.mature ? '' : ' Held out of the ranked set: under ' + C.mature_days + ' days old, so plays have not matured.') + '
';
+
+ var rawLine = '
' + esc(fixed(v.out, 2)) + '× against this creator’s all-time collected median of ' +
+ num(v.base_all) + ' plays across ' + v.base_all_n + ' posts. This is the shipped column and it rises with ' +
+ 'post age; at ' + esc(fixed(v.age, 1)) + ' days old, treat it as unreliable for ranking.
Fired on the video’s own mechanism. Whatever works here works partly because of this, so it cannot be briefed to a Biologix affiliate.
'
+ : '
No flag fired on speech or on-screen text.
';
+ if (v.flags_cap.length) {
+ comp += '
Caption-only mentions, listed separately because the caption is not the mechanism: ' +
+ esc(v.flags_cap.join(', ').replace(/_/g, ' ')) + '
';
+ }
+
+ var capBody = v.cap.trim()
+ // the tags array is what the collector parsed out, which is not always
+ // every hashtag in the caption text above, so it is labelled as such
+ ? esc(v.cap) + (v.tags.length ? '
';
+ }).join('');
+
+ var f = D.recomputed.reta_fresh;
+ $('reta-note').textContent =
+ 'Captions alone name it in ' + D.totals.reta.caption + ' videos; adding speech and on-screen raises it to ' +
+ D.totals.reta.any + ' across ' + D.totals.reta.creators + ' creators. Under 7 days old, research-peptide-lane ' +
+ 'reta posts run at a median of ' + num(f.research_reta.med_plays) + ' plays (n=' + f.research_reta.n + ', ' +
+ f.research_reta.creators + ' creators) against ' + num(f.research_non_reta.med_plays) +
+ ' for non-reta posts in the same lane and window (n=' + f.research_non_reta.n + ', ' +
+ f.research_non_reta.creators + ' creators). Week-one expectation is roughly a thousand plays, not a hundred thousand.';
+ }
+
+ function renderLeads() {
+ $('leads-list').innerHTML = (D.leads || []).map(function (l) {
+ return '
' +
+ '' + esc(l.status) + '' +
+ '
' + esc(l.headline) + '
' +
+ '
Original claim, as written: “' + esc(l.original_claim) + '”
';
+ }).join('');
+ }
+
+ /* ------------------------------------------------------------ events --- */
+ function refresh() { renderControls(); renderTable(); }
+
+ $('sort-set').addEventListener('click', function (e) {
+ var b = e.target.closest('button[data-sort]');
+ if (!b) return;
+ var id = b.getAttribute('data-sort');
+ if (state.sort === id) state.desc = !state.desc;
+ else { state.sort = id; state.desc = true; }
+ refresh();
+ });
+
+ Array.prototype.forEach.call(document.querySelectorAll('.th-sort'), function (b) {
+ b.addEventListener('click', function () {
+ var id = b.getAttribute('data-sort');
+ if (state.sort === id) state.desc = !state.desc;
+ else { state.sort = id; state.desc = id !== 'diff'; }
+ refresh();
+ });
+ });
+
+ $('sort-dir').addEventListener('click', function () { state.desc = !state.desc; refresh(); });
+
+ GROUPS.forEach(function (g) {
+ $(g.el).addEventListener('click', function (e) {
+ var b = e.target.closest('button[data-opt]');
+ if (!b) return;
+ var id = b.getAttribute('data-opt');
+ state.sel[g.id][id] = !state.sel[g.id][id];
+ refresh();
+ });
+ });
+
+ var qt = null;
+ $('q').addEventListener('input', function (e) {
+ var val = e.target.value.trim().toLowerCase();
+ clearTimeout(qt);
+ qt = setTimeout(function () { state.q = val; refresh(); }, 90);
+ });
+
+ $('ranked-only').addEventListener('change', function (e) { state.ranked = e.target.checked; refresh(); });
+
+ function resetAll() {
+ state.q = '';
+ state.ranked = false;
+ state.sort = 'out30';
+ state.desc = true;
+ GROUPS.forEach(function (g) { state.sel[g.id] = {}; });
+ $('q').value = '';
+ $('ranked-only').checked = false;
+ refresh();
+ }
+ $('reset').addEventListener('click', resetAll);
+ $('empty-reset').addEventListener('click', resetAll);
+
+ $('census-body').addEventListener('click', function (e) {
+ var tr = e.target.closest('tr[data-id]');
+ if (tr) openDrawer(tr.getAttribute('data-id'));
+ });
+
+ $('rollup-tabs').addEventListener('click', function (e) {
+ var b = e.target.closest('button[data-roll]');
+ if (!b) return;
+ rollupState = b.getAttribute('data-roll');
+ renderRollups();
+ });
+
+ $('drawer-close').addEventListener('click', closeDrawer);
+ scrim.addEventListener('click', closeDrawer);
+ document.addEventListener('keydown', function (e) {
+ if (e.key === 'Escape' && !drawer.hidden) closeDrawer();
+ });
+
+ /* -------------------------------------------------------------- boot --- */
+ buildControls();
+ renderCoverage();
+ renderFindings();
+ renderLeads();
+ renderRollups();
+ renderCoded();
+ renderCreators();
+ refresh();
+
+ // exposed for QA: lets a test recompute a filtered count independently
+ window.__CENSUS = {
+ rows: function () { return lastRows.map(function (v) { return v.id; }); },
+ state: state
+ };
+})();
diff --git a/biologix-strategy-board/control-tower/README.md b/biologix-strategy-board/control-tower/README.md
new file mode 100644
index 0000000..392dc1f
--- /dev/null
+++ b/biologix-strategy-board/control-tower/README.md
@@ -0,0 +1,158 @@
+# Biologix Control Tower
+
+Internal operator surface for the Biologix affiliate program. The browser is a
+projection client, not a database: it reads the live program state from a
+same-origin API and waits for server confirmation before showing any mutation
+as successful.
+
+## API contract
+
+### `GET /api/control-tower/projection`
+
+The client accepts either the projection at the top level or under
+`{ "projection": ... }`.
+
+```json
+{
+ "revision": 42,
+ "generatedAt": "2026-07-25T19:00:00.000Z",
+ "program": {},
+ "meta": {},
+ "session": {
+ "user": {},
+ "logoutUrl": "/auth/logout"
+ },
+ "capabilities": {
+ "actions": [
+ "affiliate.create",
+ "affiliate.update",
+ "affiliate.delete",
+ "sale.create",
+ "sale.update",
+ "sale.delete",
+ "outbound.create",
+ "outbound.update",
+ "outbound.delete",
+ "payout.create",
+ "payout.update",
+ "payout.delete",
+ "affiliate.stage.set",
+ "outbound.touch.log",
+ "enrollment.prepare",
+ "agreement.launch",
+ "agreement.manage",
+ "invitation.send",
+ "test-account.create",
+ "program.create",
+ "program.update",
+ "program.activate"
+ ],
+ "testAccounts": true
+ },
+ "affiliates": [],
+ "sales": [],
+ "outbound": [],
+ "payouts": [],
+ "enrollments": [],
+ "audit": []
+}
+```
+
+`auditLog` or `history` are accepted aliases for `audit`. Missing arrays become
+empty arrays. Each mutable record may supply its own `revision`; otherwise the
+projection revision is used for concurrency control.
+
+### `POST /api/control-tower/action`
+
+Every mutation uses this envelope:
+
+```json
+{
+ "action": "affiliate.update",
+ "idempotencyKey": "ct-affiliate-update-…",
+ "expectedRevision": 42,
+ "payload": {
+ "id": "affiliate-id",
+ "patch": {}
+ }
+}
+```
+
+The action allowlist is in `crm-data.js`. Record payloads are:
+
+- create: `{ "record": { ... } }`
+- update: `{ "id": "...", "patch": { ... } }`
+- delete: `{ "id": "..." }`
+- lifecycle stage: `{ "affiliateId": "...", "stage": "..." }`
+- outbound touch: `{ "outboundId": "...", "occurredAt": "ISO timestamp" }`
+- prepare a production enrollment:
+ `{ "email": "...", "name": "...", "economicsSnapshot": { ... } }`; this
+ binds the exact economics but does not send email
+- launch or manage its agreement:
+ `{ "enrollmentId": "..." }`, sent with that enrollment's authoritative
+ revision
+- send Passport access:
+ `{ "enrollmentId": "..." }`, available only after verified signed agreement
+ evidence is projected
+- sandbox account:
+ `{ "email": "...", "name": "...", "sendEmail": false }`; the separate
+ `test-account.create` action maps its fixed nonpayable policy server-side
+- program create: `{}`
+- program update:
+ `{ "programId": "...", "expectedRevision": "...", "legalEntityName": "...", "tradeName": "Biologix Labs Research", "entityType": "...", "officialAddress": { "line1": "...", "line2": null, "city": "...", "region": "CA", "postalCode": "00000", "countryCode": "US" }, "authorizedSignerRef": "...", "authorizedSignerName": "...", "authorizedSignerTitle": "...", "authorizedSignerEmail": "...", "agreementTemplateKey": "...", "agreementVersion": "...", "affiliateBaseUrl": "https://origin", "trackingBaseUrl": "https://origin", "eligibleCountries": ["US"], "eligibleRegions": {}, "minimumAge": 18, "economicsConfiguration": { "schemaVersion": 2, "mode": "individualized", "noDefaults": true } }`
+- program activate: `{ "programId": "...", "expectedRevision": "..." }`
+- logout is a local same-origin `POST /api/control-tower/logout`; it is not
+ proxied as an Academy action
+
+A sandbox response may return the share URL as `url`, `invitationUrl`,
+`claimUrl`, or `link`, either at the top level or under `invitation` or
+`testAccount`. A production invitation is delivered server-side and does not
+expose its token to the browser.
+
+## Interaction guarantees
+
+- Initial load is asynchronous and has explicit loading, error and retry states.
+- There is no browser persistence or fallback data.
+- Mutations are serialized. Controls disable while an action is in flight.
+- After a successful action, the entire projection is fetched again before the
+ UI reports success.
+- `401`, `403`, `409`, and `503` receive specific messages. A conflict forces a
+ refresh and never leaves an optimistic lifecycle or money change on screen.
+- Activation gates are read-only. Stage movement and outbound touch logging use
+ their own explicit server actions.
+- Program and record history come from the audit projection.
+- Sandbox invitation links have a copy flow. A test-account checkbox appears only when
+ the projection advertises that capability.
+- Every production enrollment is prepared with the complete 15-key v2
+ `economicsSnapshot` supplied through `program.economicsSchema`. If that schema
+ is absent, preparation is disabled. The agreement launches only from the
+ refreshed enrollment, and Passport access can be sent only after the
+ projection exposes verified signed evidence. The object contains only `currency`,
+ `model`, `terms`, `terms_reference`, `commission_rate`, `commission_base`,
+ `attribution_window_days`, `settlement_hold_days`, `clawback_days`,
+ `payout_cadence`, `payout_threshold`, `agreement_version`,
+ `retainer_amount`, `retainer_cadence`, and `retainer_proration`.
+- Sandbox/test records are labeled and excluded from live totals. The dedicated
+ server action maps the fixed nonpayable test policy, disables merchant linking,
+ and skips email unless the operator explicitly enables it. Its manual claim
+ link can still exercise invitation redemption and the Passport.
+- Program setup is admin capability-gated. It exposes setup, paused, and active
+ state, the server-projected activation gaps, legal entity, trade name, entity
+ type, address, signer
+ reference plus exact signer name/title/email, exact origins, agreement bindings, jurisdiction scope, minimum
+ age, and the fixed individualized/no-defaults economics policy. Creator rates
+ never live in program setup. Update and activation are separate,
+ revision-aware actions. Activation is disabled when requirements are missing
+ or omitted.
+
+## Verification
+
+```sh
+node crm-data.test.mjs
+node --check crm-data.js
+node --check crm-app.js
+```
+
+The test suite covers projection normalization, action mapping, idempotency and
+revision envelopes, error mapping, conflict behavior, derived money, and the
+absence of browser persistence or fallback records.
diff --git a/biologix-strategy-board/control-tower/crm-app.js b/biologix-strategy-board/control-tower/crm-app.js
new file mode 100644
index 0000000..4e55a4b
--- /dev/null
+++ b/biologix-strategy-board/control-tower/crm-app.js
@@ -0,0 +1,2698 @@
+/* Biologix Control Tower — application layer.
+ Renders the six views against the authoritative same-origin API projection.
+ Server confirmation is required before any mutation appears as successful. */
+(function (global) {
+ 'use strict';
+
+ var CRM = global.CRM;
+ if (!CRM) return;
+
+ /* ------------------------------------------------------------- lookups */
+
+ var STAGE_BY_ID = {};
+ CRM.STAGES.forEach(function (s) { STAGE_BY_ID[s.id] = s; });
+
+ var GATE_BY_ID = {};
+ CRM.GATES.forEach(function (g) { GATE_BY_ID[g.id] = g; });
+
+ var TABS = ['dashboard', 'affiliates', 'pipeline', 'onboarding', 'outbound', 'money'];
+
+ var TAB_ENTITY = {
+ dashboard: 'affiliates', affiliates: 'affiliates', pipeline: 'affiliates',
+ onboarding: 'affiliates', outbound: 'outbound', money: 'sales'
+ };
+
+ /* Columns that read better sorted high to low on first click. */
+ var NUMERIC_SORT = {
+ orders: 1, gross: 1, refunded: 1, net: 1, owed: 1, rate: 1, gates: 1,
+ lastSale: 1, followers: 1, step: 1, lastTouch: 1, date: 1, amount: 1,
+ nextActionDue: 0
+ };
+
+ /* --------------------------------------------------------------- state */
+
+ var ui = {
+ tab: 'dashboard',
+ aff: { q: '', owner: 'all', stage: 'all', sort: 'name', dir: 'asc' },
+ out: { q: '', owner: 'all', disposition: 'all', hideDnc: true, sort: 'name', dir: 'asc' },
+ pipe: { owner: 'all' },
+ onb: { owner: 'all' },
+ sales: { sort: 'date', dir: 'desc' },
+ payouts: { sort: 'date', dir: 'desc' }
+ };
+
+ var drawer = { open: false, entity: null, id: null, trigger: null, back: null };
+ var toastTimer = null;
+ var hashLock = false;
+ var busy = false;
+ var pendingMutations = {};
+
+ /* ------------------------------------------------------------- helpers */
+
+ function $(id) { return document.getElementById(id); }
+ function qs(sel, root) { return (root || document).querySelector(sel); }
+ function qsa(sel, root) {
+ return Array.prototype.slice.call((root || document).querySelectorAll(sel));
+ }
+
+ function esc(v) {
+ if (v === null || v === undefined) return '';
+ return String(v)
+ .replace(/&/g, '&').replace(//g, '>')
+ .replace(/"/g, '"').replace(/'/g, ''');
+ }
+
+ function isBlank(v) { return v === null || v === undefined || v === ''; }
+
+ function thousands(s) {
+ var parts = String(s).split('.');
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
+ return parts.join('.');
+ }
+
+ function fmtMoney(n, dp) {
+ if (n === null || n === undefined || isNaN(n)) return '';
+ var d = dp === undefined ? 2 : dp;
+ var neg = n < 0;
+ var s = '$' + thousands(Math.abs(n).toFixed(d));
+ return neg ? '-' + s : s;
+ }
+
+ function fmtInt(n) {
+ if (n === null || n === undefined || isNaN(n)) return '';
+ return thousands(Math.round(n));
+ }
+
+ function fmtPct(x, dp) {
+ if (x === null || x === undefined || isNaN(x)) return '';
+ return (x * 100).toFixed(dp === undefined ? 1 : dp) + '%';
+ }
+
+ function unset(text) {
+ return '' + esc(text || 'no rate set') + '';
+ }
+
+ function stageChip(id) {
+ var s = STAGE_BY_ID[id];
+ if (!s) return unset('no stage');
+ return '' + esc(s.label) + '';
+ }
+
+ function sandboxMark(record) {
+ return CRM.isTestAffiliate(record) ? ' ' + pill('sandbox', 'is-warn') : '';
+ }
+
+ function pill(text, kind) {
+ return '' + esc(text) + '';
+ }
+
+ function affNameHtml(id) {
+ var affiliate = CRM.get('affiliates', id);
+ return affiliate ? esc(affiliate.name) + sandboxMark(affiliate) : unset('unknown affiliate');
+ }
+
+ function dueCell(due, action) {
+ var out = action ? esc(action) : unset('no next action');
+ if (!due) return out + '
' + unset('no due date') + '
';
+ var late = CRM.daysBetween(CRM.today(), due);
+ var tag = late < 0
+ ? pill(due + ', ' + Math.abs(late) + 'd late', 'is-bad')
+ : '' + esc(due) + '';
+ return out + '
' + tag + '
';
+ }
+
+ function announce(msg) {
+ var el = $('crm-live');
+ if (el) el.textContent = msg;
+ }
+
+ function toast(msg) {
+ var el = $('crm-toast');
+ if (!el) return;
+ el.textContent = msg;
+ el.classList.add('is-show');
+ if (toastTimer) clearTimeout(toastTimer);
+ toastTimer = setTimeout(function () { el.classList.remove('is-show'); }, 5000);
+ announce(msg);
+ }
+
+ function emptyRow(cols, text) {
+ return '
' + esc(text) + '
';
+ }
+
+ function fmtDateTime(value) {
+ if (!value) return 'not available';
+ var date = new Date(value);
+ if (isNaN(date.getTime())) return String(value);
+ return date.toLocaleString([], {
+ month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit'
+ });
+ }
+
+ function setBusy(next) {
+ busy = next;
+ document.body.classList.toggle('crm-is-saving', next);
+ qsa('button').forEach(function (button) {
+ if (next) {
+ if (button.disabled) button.setAttribute('data-busy-was-disabled', '1');
+ else {
+ button.disabled = true;
+ button.setAttribute('data-busy-lock', '1');
+ }
+ } else {
+ if (button.getAttribute('data-busy-lock') === '1') button.disabled = false;
+ button.removeAttribute('data-busy-lock');
+ button.removeAttribute('data-busy-was-disabled');
+ }
+ });
+ var sync = $('crm-sync');
+ if (sync && next) sync.textContent = 'Saving…';
+ }
+
+ function mutationMessage(error) {
+ if (!error) return 'The action could not be completed.';
+ if (error.status === 401) return 'Session expired. Log in again, then retry.';
+ if (error.status === 403) return 'You do not have permission to do that.';
+ if (error.status === 409) return 'Someone else changed this record. The latest version is now loaded; review it and try again.';
+ if (error.status === 503) return 'The live program service is temporarily unavailable. Nothing was changed here.';
+ return error.message || 'The action could not be completed.';
+ }
+
+ async function refreshProjection(options) {
+ options = options || {};
+ try {
+ await CRM.load();
+ syncProjectionControls();
+ renderAll();
+ renderSystemState();
+ if (!options.quiet) toast('Control tower refreshed.');
+ return true;
+ } catch (error) {
+ renderSystemState();
+ if (!options.quiet) toast(mutationMessage(error));
+ return false;
+ }
+ }
+
+ async function mutate(actionKey, payload, options) {
+ options = options || {};
+ if (busy) {
+ toast('Another action is still saving. Wait for it to finish.');
+ return null;
+ }
+ var expectedRevision = options.expectedRevision;
+ if (expectedRevision === undefined || expectedRevision === null || expectedRevision === '') {
+ expectedRevision = CRM.revision;
+ }
+ var signature = JSON.stringify({
+ action: CRM.actionName(actionKey),
+ expectedRevision: expectedRevision,
+ payload: payload || {}
+ });
+ var stableKey = pendingMutations[signature] ||
+ CRM.idempotencyKey(CRM.actionName(actionKey));
+ pendingMutations[signature] = stableKey;
+ setBusy(true);
+ try {
+ var result = await CRM.action(actionKey, payload, {
+ expectedRevision: expectedRevision,
+ idempotencyKey: stableKey
+ });
+ delete pendingMutations[signature];
+ var refreshed = await refreshProjection({ quiet: true });
+ if (!refreshed) {
+ toast('The server accepted the action, but the latest projection could not be loaded. Refresh before making another change.');
+ return null;
+ }
+ if (options.success) toast(options.success);
+ return result;
+ } catch (error) {
+ /* A missing status or a 5xx can mean the mutation committed but its
+ response was lost. Keep the exact key/body for the operator's retry. */
+ if (error && error.status && error.status < 500) {
+ delete pendingMutations[signature];
+ }
+ if (error.status === 409) {
+ var conflictRefreshed = await refreshProjection({ quiet: true });
+ toast(conflictRefreshed
+ ? mutationMessage(error)
+ : 'A conflict was detected, and the latest projection could not be loaded. Refresh before retrying.');
+ return null;
+ }
+ if (error.status === 401) {
+ CRM.status.phase = 'error';
+ CRM.status.error = error;
+ }
+ renderSystemState();
+ toast(mutationMessage(error));
+ return null;
+ } finally {
+ setBusy(false);
+ renderSystemState();
+ }
+ }
+
+ /* ----------------------------------------------------------- hash sync */
+
+ var HASH_MAP = [
+ ['t', function () { return ui.tab; }, function (v) { if (TABS.indexOf(v) >= 0) ui.tab = v; }],
+ ['aq', function () { return ui.aff.q; }, function (v) { ui.aff.q = v; }],
+ ['ao', function () { return ui.aff.owner; }, function (v) { ui.aff.owner = v; }],
+ ['as', function () { return ui.aff.stage; }, function (v) { ui.aff.stage = v; }],
+ ['ak', function () { return ui.aff.sort; }, function (v) { ui.aff.sort = v; }],
+ ['ad', function () { return ui.aff.dir; }, function (v) { ui.aff.dir = v === 'desc' ? 'desc' : 'asc'; }],
+ ['oq', function () { return ui.out.q; }, function (v) { ui.out.q = v; }],
+ ['oo', function () { return ui.out.owner; }, function (v) { ui.out.owner = v; }],
+ ['od', function () { return ui.out.disposition; }, function (v) { ui.out.disposition = v; }],
+ ['ox', function () { return ui.out.hideDnc ? '1' : '0'; }, function (v) { ui.out.hideDnc = v !== '0'; }],
+ ['ok', function () { return ui.out.sort; }, function (v) { ui.out.sort = v; }],
+ ['oe', function () { return ui.out.dir; }, function (v) { ui.out.dir = v === 'desc' ? 'desc' : 'asc'; }],
+ ['po', function () { return ui.pipe.owner; }, function (v) { ui.pipe.owner = v; }],
+ ['no', function () { return ui.onb.owner; }, function (v) { ui.onb.owner = v; }],
+ ['sk', function () { return ui.sales.sort; }, function (v) { ui.sales.sort = v; }],
+ ['sd', function () { return ui.sales.dir; }, function (v) { ui.sales.dir = v === 'asc' ? 'asc' : 'desc'; }],
+ ['pk', function () { return ui.payouts.sort; }, function (v) { ui.payouts.sort = v; }],
+ ['pd', function () { return ui.payouts.dir; }, function (v) { ui.payouts.dir = v === 'asc' ? 'asc' : 'desc'; }]
+ ];
+
+ function writeHash() {
+ var parts = [];
+ HASH_MAP.forEach(function (m) {
+ var v = m[1]();
+ if (v === '' || v === null || v === undefined) return;
+ parts.push(m[0] + '=' + encodeURIComponent(v));
+ });
+ hashLock = true;
+ var h = '#' + parts.join('&');
+ if (global.history && global.history.replaceState) {
+ global.history.replaceState(null, '', global.location.pathname + global.location.search + h);
+ } else {
+ global.location.hash = h;
+ }
+ setTimeout(function () { hashLock = false; }, 0);
+ }
+
+ function readHash() {
+ var raw = global.location.hash.replace(/^#/, '');
+ if (!raw) return;
+ var bag = {};
+ raw.split('&').forEach(function (p) {
+ if (!p) return;
+ var i = p.indexOf('=');
+ var k = i < 0 ? p : p.slice(0, i);
+ var v = i < 0 ? '' : decodeURIComponent(p.slice(i + 1).replace(/\+/g, ' '));
+ bag[k] = v;
+ });
+ HASH_MAP.forEach(function (m) {
+ if (bag[m[0]] !== undefined) m[2](bag[m[0]]);
+ });
+ }
+
+ /* ------------------------------------------------------------- filling */
+
+ function fillSelect(el, values, allLabel, labelFn) {
+ if (!el) return;
+ var html = allLabel ? '' : '';
+ values.forEach(function (v) {
+ var val = typeof v === 'object' ? v.id : v;
+ var lab = labelFn ? labelFn(v) : (typeof v === 'object' ? v.label : v);
+ html += '';
+ });
+ el.innerHTML = html;
+ }
+
+ function refillSelect(el, values, allLabel, labelFn) {
+ if (!el) return;
+ var selected = el.value;
+ fillSelect(el, values, allLabel, labelFn);
+ var hasSelected = Array.prototype.some.call(el.options, function (option) {
+ return option.value === selected;
+ });
+ el.value = hasSelected ? selected : (allLabel ? 'all' : '');
+ }
+
+ function syncProjectionControls() {
+ refillSelect($('aff-owner'), CRM.OWNERS, 'All owners');
+ refillSelect($('pipe-owner'), CRM.OWNERS, 'All owners');
+ refillSelect($('onb-owner'), CRM.OWNERS, 'All owners');
+ refillSelect($('out-owner'), CRM.OWNERS, 'All owners');
+ refillSelect($('aff-stage'), CRM.STAGES, 'All stages');
+ syncControls();
+ }
+
+ /* ============================================================ DASHBOARD */
+
+ function renderDashboard() {
+ var t = CRM.totals();
+
+ var metrics = [
+ { v: fmtMoney(t.net, 0), l: 'Net sales', n: fmtInt(t.orders) + ' orders, ' + fmtMoney(t.gross, 0) + ' gross' },
+ { v: fmtInt(t.orders), l: 'Orders', n: 'across ' + fmtInt(t.affiliateCount) + ' affiliate records' },
+ { v: t.orders > 0 ? fmtMoney(t.aov, 0) : null, l: 'Average order', n: t.orders > 0 ? 'gross over orders' : 'no orders recorded yet' },
+ { v: t.gross > 0 ? fmtPct(t.refundRate) : null, l: 'Refund rate', n: t.gross > 0 ? fmtMoney(t.refunded, 0) + ' refunded' : 'no gross sales to measure against' },
+ { v: fmtInt(t.liveCount), l: 'Live affiliates', n: fmtInt(t.onboardingCount) + ' in onboarding' },
+ { v: fmtInt(t.producingCount), l: 'Producing affiliates', n: 'live and have sold at least once' },
+ { v: t.activationRate === null ? null : fmtPct(t.activationRate, 0), l: 'Activation rate', n: t.activationRate === null ? 'no signed affiliates to measure' : fmtInt(t.producingCount) + ' producing of ' + fmtInt(t.signedCount) + ' signed' },
+ { v: t.commissionOwed === null ? null : fmtMoney(t.commissionOwed, 0), l: 'Commission owed', n: t.commissionOwed === null ? 'no commission rate agreed' : 'earned less paid' }
+ ];
+
+ $('dash-metrics').innerHTML = metrics.map(function (m) {
+ var unknown = m.v === null || m.v === '';
+ return '
' +
+ '
' + (unknown ? 'not computable' : esc(m.v)) + '
' +
+ '
' + esc(m.l) + '
' +
+ '
' + esc(m.n) + '
' +
+ '
';
+ }).join('');
+
+ /* trend */
+ var days = CRM.salesByDay(30);
+ var max = 0, sum = 0, best = null;
+ days.forEach(function (d) {
+ var v = Math.max(0, d.value);
+ sum += d.value;
+ if (v > max) { max = v; best = d; }
+ });
+ $('dash-spark').innerHTML = days.map(function (d) {
+ var v = Math.max(0, d.value);
+ var h = max > 0 ? Math.max(2, Math.round(v / max * 100)) : 2;
+ return '';
+ }).join('');
+ $('dash-spark').setAttribute('aria-hidden', 'true');
+ $('dash-spark-note').textContent = best && max > 0
+ ? fmtMoney(sum, 0) + ' over 30 days, best day ' + best.date + ' at ' + fmtMoney(best.value, 0)
+ : 'No sales recorded in the last 30 days.';
+
+ /* overdue */
+ var od = CRM.overdue();
+ $('dash-overdue').innerHTML = od.length ? od.map(function (r) {
+ return '
';
+ }).join('') : emptyRow(3, 'No defects. Every record has an owner and a next action.');
+
+ /* pipeline counts */
+ var counts = CRM.pipelineCounts();
+ $('dash-pipeline').innerHTML = CRM.STAGES.map(function (s) {
+ var n = counts[s.id] || 0;
+ return '' + esc(s.label) +
+ ' ' + n + '';
+ }).join(' ');
+
+ /* gate bottleneck */
+ var gb = t.gatesBlocked, keys = Object.keys(gb);
+ if (!keys.length) {
+ $('dash-gates').innerHTML = '
' +
+ (t.onboardingCount === 0
+ ? 'No affiliate is in onboarding, so no gate is blocking anyone.'
+ : 'No affiliate is blocked. Every onboarding record has cleared its gates.') + '
';
+ } else {
+ keys.sort(function (a, b) { return gb[b] - gb[a]; });
+ $('dash-gates').innerHTML = keys.map(function (k) {
+ var g = GATE_BY_ID[k];
+ return '
1. Prepare the enrollment and lock its exact economics. 2. Launch and execute the enrollment-bound agreement. 3. Send Passport access only after verified signature evidence returns.
' +
+ '
Creator details
' +
+ '
' +
+ '
' +
+ '
' +
+ '
' +
+ testFlag +
+ '
' +
+ '
SANDBOX policy
' +
+ '
The server maps a fixed nonpayable test policy. No editable economics, no live merchant link, no live metrics.
' +
+ liveEconomics +
+ '',
+ '
' +
+ '
',
+ trigger
+ );
+ syncInviteTestMode();
+ syncEconomicsConditions();
+ $('invite-email').focus();
+ }
+
+ function syncInviteTestMode() {
+ var test = $('invite-test');
+ if (!test) return;
+ var enabled = test.checked;
+ var send = $('invite-test-send');
+ var sendExplicitly = enabled && send && send.checked;
+ $('invite-test-options').hidden = !enabled;
+ $('invite-live-economics').hidden = enabled;
+ $('invite-sandbox-policy').hidden = !enabled;
+ $('invite-email').required = !enabled || sendExplicitly;
+ $('invite-email-required').hidden = enabled && !sendExplicitly;
+ $('invite-email').placeholder = enabled && !sendExplicitly
+ ? 'Optional; a non-deliverable sandbox address will be generated'
+ : '';
+ $('invite-create').textContent = enabled ? 'Create sandbox link' : 'Prepare enrollment';
+ $('invite-create').disabled = !enabled && !economicsSchema();
+ }
+
+ function syncEconomicsConditions() {
+ var modelField = $('econ-model');
+ if (!modelField) return;
+ var model = modelField.value;
+ var hasRetainer = model === 'retainer' || model === 'hybrid';
+ var commission = $('econ-commission-rate');
+ if (commission) {
+ commission.disabled = model === 'retainer';
+ if (model === 'retainer') commission.value = '';
+ }
+ ['econ-retainer-amount', 'econ-retainer-cadence', 'econ-retainer-proration'].forEach(function (id) {
+ var field = $(id);
+ field.disabled = !hasRetainer;
+ if (!hasRetainer) field.value = '';
+ });
+ $('econ-retainer-fields').classList.toggle('is-disabled', !hasRetainer);
+ }
+
+ function collectEconomicsSnapshot(errorId) {
+ errorId = errorId || 'invite-economics-error';
+ var errors = [];
+ function raw(id) {
+ var field = $(id);
+ return field ? field.value.trim() : '';
+ }
+ function requiredText(id, label, min, max) {
+ var value = raw(id);
+ if (value.length < min || value.length > max) {
+ errors.push({ id: id, message: label + ' must be ' + min + '–' + max + ' characters.' });
+ }
+ return value;
+ }
+ function decimal(id, label, maximum, places, options) {
+ options = options || {};
+ var value = raw(id);
+ if (!value && options.nullable) return null;
+ var pattern = new RegExp('^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,' + places + '})?$');
+ var number = Number(value);
+ if (!pattern.test(value) || !isFinite(number) || number < 0 || number > maximum ||
+ (options.positive && number <= 0)) {
+ errors.push({
+ id: id,
+ message: label + ' must be ' + (options.positive ? 'greater than zero and ' : '') +
+ 'no more than ' + maximum + ', with up to ' + places + ' decimal places.'
+ });
+ }
+ return value || null;
+ }
+ function integer(id, label, minimum, maximum) {
+ var value = raw(id);
+ var number = Number(value);
+ if (!/^(?:0|[1-9][0-9]*)$/.test(value) || number < minimum || number > maximum) {
+ errors.push({ id: id, message: label + ' must be an integer from ' + minimum + ' to ' + maximum + '.' });
+ }
+ return value;
+ }
+ function choice(id, label, choices) {
+ var value = raw(id);
+ if (choices.indexOf(value) < 0) errors.push({ id: id, message: 'Choose a valid ' + label + '.' });
+ return value;
+ }
+
+ var currency = raw('econ-currency').toUpperCase();
+ if (!/^[A-Z]{3}$/.test(currency)) {
+ errors.push({ id: 'econ-currency', message: 'Currency must be exactly three uppercase ISO letters.' });
+ }
+ var model = choice('econ-model', 'model', ECON_MODELS);
+ var hasRetainer = model === 'retainer' || model === 'hybrid';
+ var requiresCommission = model === 'percentage' || model === 'hybrid';
+ var commissionRate = model === 'retainer'
+ ? null
+ : decimal('econ-commission-rate', 'Commission rate', 100, 4, {
+ nullable: !requiresCommission,
+ positive: requiresCommission
+ });
+ var retainerAmount = hasRetainer
+ ? decimal('econ-retainer-amount', 'Retainer amount', 1000000000, 2, { positive: true })
+ : null;
+ var retainerCadence = hasRetainer
+ ? choice('econ-retainer-cadence', 'retainer cadence', RETAINER_CADENCES)
+ : null;
+ var retainerProration = hasRetainer
+ ? choice('econ-retainer-proration', 'retainer proration', RETAINER_PRORATIONS)
+ : null;
+
+ var snapshot = {
+ currency: currency,
+ model: model,
+ terms: requiredText('econ-terms', 'Terms', 3, 2000),
+ terms_reference: requiredText('econ-terms-reference', 'Terms reference', 3, 500),
+ commission_rate: commissionRate,
+ commission_base: requiredText('econ-commission-base', 'Commission base', 3, 500),
+ attribution_window_days: integer('econ-attribution-window', 'Attribution window', 1, 3650),
+ settlement_hold_days: integer('econ-settlement-hold', 'Settlement hold', 0, 3650),
+ clawback_days: integer('econ-clawback-days', 'Clawback days', 0, 3650),
+ payout_cadence: choice('econ-payout-cadence', 'payout cadence', PAYOUT_CADENCES),
+ payout_threshold: decimal('econ-payout-threshold', 'Payout threshold', 1000000000, 2),
+ agreement_version: requiredText('econ-agreement-version', 'Agreement version', 3, 160),
+ retainer_amount: retainerAmount,
+ retainer_cadence: retainerCadence,
+ retainer_proration: retainerProration
+ };
+
+ var errorHost = $(errorId);
+ if (errors.length) {
+ errorHost.innerHTML = '' + esc(errors[0].message) + '';
+ var first = $(errors[0].id);
+ if (first) {
+ first.setAttribute('aria-invalid', 'true');
+ first.focus();
+ }
+ announce(errors.map(function (error) { return error.message; }).join(' '));
+ } else {
+ errorHost.textContent = '';
+ qsa('[aria-invalid="true"]', errorHost.parentElement).forEach(function (field) {
+ field.removeAttribute('aria-invalid');
+ });
+ }
+ return { snapshot: snapshot, errors: errors };
+ }
+
+ function openProgramDrawer(trigger) {
+ var program = CRM.state.program || {};
+ var programId = program.id || program.programId || '';
+ var canCreate = hasExplicitCapability('program.create');
+ var canUpdate = hasExplicitCapability('program.update');
+ var canActivate = hasExplicitCapability('program.activate');
+ programDirty = false;
+
+ if (!programId) {
+ showSystemDrawer(
+ 'Program setup',
+ '
No program record
' +
+ '
Create a fail-closed setup record before entering legal, destination, agreement, or economics configuration.
Nonpayable test data. No live merchant connection or live-program metrics.
'
+ : '') +
+ (url
+ ? '' +
+ '' +
+ ''
+ : 'The server created the record but did not return a shareable link. Open history for the receipt.') +
+ (expires ? '
Alex enters Biologix as Operating Partner through OVO Labs — not CRO, not statutory President. One prepaid sprint verifies the books; if the records clear, the mandate, monthly cash, 30% ownership, and a mandatory monthly owner-cash split all activate on the schedule below.
+
Strategic inference: Proposed — not agreed until signed
+
Prepared 2026-07-23 · Internal · Proposed terms — nothing agreed until signed · Not legal advice
+
+
+
+
+
+
+
+
+
+
+
01 / The deal in one view
Five numbers define the whole structure.
+
Everything else on this page is definition and protection around these five commitments. None of them is agreed until definitive documents are signed.
+
+
+
+
+
The economics
+
+
Activation sprint$50,000 prepaid · 30 days
+
From day 31$30,000 Alex + $20,000 OVO / month
+
Ownership30% fully diluted
+
Owner cash monthly70% Braden · 30% Alex
+
Fallback lane only15% introduced-partner share
+
+
+
+
The sequence
+
+
Sign definitive documents.
The 30% grant is locked in subject to its vesting terms: 10% vested on signing, 10% on activation, and 10% over the following six months.
+
Days 1–30.
$50,000 prepaid Source-of-Truth and Activation Sprint. Read-only access; source-truth decision inside the first 10 business days.
+
Objective gate.
Authority, public role, and live growth do not activate early — see the activation gate below.
+
Day 31.
Operating Partner mandate activates; $30,000 Alex + $20,000 OVO monthly begins; the activation tranche vests.
+
Next six months.
The final 10% vests on schedule, with defined acceleration and protection.
+
+
+
+
Current working ask: 30% economic ownership. This supersedes earlier illustrative 10–20% ranges on this board and is binding only in a signed definitive agreement. The revised model adds $15,000 per month versus the earlier single $35,000 operator line. Strategic inference: Proposed term
+
+
+
+
+
+ 02 / Monthly owner cash
+
Excess Cash pays out monthly: 70% Braden, 30% Alex.
+ Strategic inference: Proposed term — not agreed
+
+
Under the proposed terms, the company holds back only what the signed formula defines. Everything above those holdbacks is Excess Cash, and 100% of it is distributed at the monthly close — by rule, not discretion. Anything held back beyond the formula requires Alex's written approval.
+
+
+
+
+
The proposed monthly formula
+
+
+
+ Start with Cleared company cash at the monthly close
+
+
+ −minus
+ Refunds and chargebacks not yet debited
+
+
+ −minus
+ Accrued taxes, payroll, and accounts payable
+
+
+ −minus
+ Signed inventory commitments due before the next close and processor obligations not already excluded
+
+
+ −minus
+ Approved operating and legal-defense reserve
+
The reserve is a formula. Reinvestment is an election.
+
The Required Reserve is defined in a signed schedule, not by discretion. After distribution, either owner may lend cash back — but a loan never becomes ownership, priority, or a padded reserve.
+
+
+
+
+ Strategic inference: Proposed term
+
What may be held back — not yet agreed
+
+
Accrued taxes, documented refund or chargeback exposure, payroll, and incurred accounts payable.
+
Inventory counts only when an approved, executed commitment is payable before the next close; an optional growth order does not count.
+
Processor reserves or obligations count only when they are documented and not already excluded from Cleared Cash.
+
The operating reserve is capped at sixty days of the mutually approved budget.
+
The legal/compliance reserve is a fixed dollar amount in the signed schedule; capex requires both owners' written approval.
+
A dispute holds only the disputed amount. Undisputed Excess Cash still pays on time.
+
+
+
+
+ Strategic inference: Proposed term
+
Reinvestment is an owner election
+
+
First pay the full $490,000 / $210,000 distribution. Alex keeps his $210,000 and is never required to put it back.
+
Example: Braden may wire $300,000 of his own $490,000 back under a separate shareholder note, booked as a company loan payable to Braden.
+
The note is mutually approved, unsecured, non-convertible, and carries no warrants, votes, collateral, or ownership change.
+
Its principal, interest, and repayment priority cannot pad the Required Reserve or jump ahead of the monthly waterfall without Alex's written approval.
+
+
+
+
+ Strategic inference: Operating design
+
Finance control, openly installed
+
+
Braden's mother remains a trusted finance participant in the monthly close.
+
Alex installs the cash forecast, processor reconciliation, management pack, and independent controller cadence.
+
Alex receives read-only bank, processor, and accounting visibility plus narrow approval rights over reserve changes, related-party transfers, and owner benefits.
+
Personal draws or company-funded owner benefits sit in the same 70/30 equalization ledger.
+
+
+
+
+
+
+
+
04 / Role perimeter
Operating Partner — not CRO, not President on day one.
+
Company-wide accountability comes with company-wide authority after activation. The perimeter below is part of the economics.
+
+
+
+
+
Alex owns after activation
+
+
Company architecture and management cadence.
+
Finance systems, cash forecast, and monthly-close discipline.
+
People, hiring, and vendor scorecards.
+
Creator distribution, lifecycle, and content systems.
+
The weekly executive close.
+
+
+
+
Braden retains
+
+
Product and sourcing.
+
Inventory.
+
Fulfillment and routine order operations.
+
Founder content creation.
+
His trusted finance participant in the monthly close.
+
+
+
+
+
+
The only fallback lane
+
If Braden wants traffic only: a scoped setup fee plus 15% of settled contribution from accepted Alex-introduced partners. That lane carries no companywide operating mandate, no 30% ownership, no OVO managed-services pod, and no backend build. Strategic inference: Proposed term
+
+
+
+
+
+
05 / OVO delivery team
One director, parallel pods, centralized controls.
+
Creator growth is delivered as a managed OVO function. Managers run creator portfolios in parallel; QA/compliance and payout/data operations stay centralized so quality and money never depend on one manager.
+
+
+
+
+
The pod structure
+
+
Program directorAlex
+
Creator-manager podJaci
+
Creator-manager podKennedy
+
Named legacy relationshipsConnor
+
Future podsParallel managers, added by rule
+
CentralizedQA/compliance · payout & data ops
+
+
+
+
Capacity model
+
+
Pilot load per manager10–12 creators
+
Steady state12–15
+
Initial roster25 creators
+
Expansion rule+1 pod per 15 active creators
+
At 50 creators~4 managers + QA
+
At 100 creators7–8 managers · 2 QA · 1 payout/data
+
+
+
+
Named assignments are planned, not contracted — pods staff up only after activation. Strategic inference: Proposed — activates with the mandate
+
+
+
+
+
06 / Creator pipeline
Eleven stages in. One waterfall out.
+
The lifecycle applies OVO's Fitia creator-operations spine to Biologix. Every settled dollar exits through the same waterfall defined above — there is no second or stacked service-fee layer.
+
+
+
+
+
Fitia-derived lifecycle
+
+
Source
+
Qualify
+
Approve
+
Outbound
+
Close
+
Contract
+
Activate
+
Manage
+
Attribute
+
Settle
+
Scale
+
+
+
+
Where each settled dollar goes
+
+
+
+ Start with Settled Net Revenue at the monthly close
+
The same Excess Cash defined in section 02. The OVO fee sits inside costs — it never comes out of the 70/30.
+
+
+
+
+
Truth boundary
+
The pipeline above is a real, operating Fitia spine. The legacy planning numbers attached to it — 170 sends per day and five closes per day — are unverified planning assumptions, not measured throughput. Founder-reported, unverified: Unverified planning assumption
+
No creator growth activates before written product, claims, and jurisdiction clearance — see the activation gate. Required proof: Written clearance required
+
+
+
+
+
+
07 / Recurring OVO economics
The fee scales by pod and settles on margin.
+
The $20,000 OVO monthly line in section 01 is the capacity minimum. Above capacity, the fee follows settled margin — never gross revenue and never a stacked downline.
+
+
+
+
The fee, defined
+
+
Capacity minimum$20,000 / month
+
CoversFirst 25 active creators
+
Each additional pod+$10,000 per 15 active creators
+
Monthly service feeGreater of minimum or 15% SCM
+
Variable cap8% Settled Net Revenue
+
Stacked downline feeNone
+
+
SCM — Settled Contribution Margin after creator commissions and direct costs. SNR — Settled Net Revenue. One service fee; no per-manager override on top. Strategic inference: Proposed term
+
+
+
+
+
+
08 / Activation gate
Nothing activates until the source records clear.
+
The economic right can be documented at signing. Authority, the public role, and live growth activate only when every gate passes.
+
+
+
+
At least 95% of 30/90-day order value reconciles from source through processor and bank, with every residual difference explained.
+
Fully loaded collected operating contribution is source-verified at 35% or better.
+
Entity, cap table, side promises, related parties, vendor rights, IP, and customer data are fully disclosed and usable.
+
Demand durability, concentration, refund/dispute rates, and repeat economics support the forecast.
+
Qualified specialists support a lawful path, and quality evidence supports the contemplated scope.
+
Braden accepts the role split, information rights, budget, decision rights, and management cadence in writing.
+
+
Failing a gate is not “walk forever.” It means no permanent title, voting control, personal guarantee, or broad Operating Partner liability — and any narrow paid remediation has explicit limits.
+
+
+
+
+
+
+
+
diff --git a/biologix-strategy-board/evidence-register.md b/biologix-strategy-board/evidence-register.md
new file mode 100644
index 0000000..f5cf232
--- /dev/null
+++ b/biologix-strategy-board/evidence-register.md
@@ -0,0 +1,61 @@
+# Evidence register for the hypothetical venture plan
+
+**Research date:** July 22, 2026
+
+**Purpose:** Make the changing public snapshots and founder-reported inputs reproducible without treating them as verified financial records.
+
+## Public popularity and price snapshot
+
+- Captured: **2026-07-22 18:19:22 PDT**.
+- Endpoint: [Biologix WooCommerce Store API, popularity descending](https://biologixlabsresearch.com/wp-json/wc/store/v1/products?per_page=100&orderby=popularity&order=desc).
+- Stored derivative: [`public-demand-map.csv`](./public-demand-map.csv).
+- Publicly observed fields: rank/order returned by the endpoint, product label, current minimum price, and current maximum variant price.
+- Not observable from the endpoint: units sold, revenue, customers, time period represented by popularity, repeat rate, contribution, or whether historical sales metadata moved during the platform migration.
+- Analyst-created fields: demand cluster and modeled portfolio role.
+
+Prices, rank, stock, and product availability are dynamic. A later request may differ without implying that either snapshot was false.
+
+## Public inventory snapshot
+
+- Recorded source snapshot: **2026-07-22 15:45 PDT**.
+- Source dossier: local file `33-biologix-public-commerce-evidence-2026-07-22.md` in the Braden Zoom Call Analysis folder.
+- Snapshot result: 1,397 visible numeric units and approximately $86,657 of displayed retail inventory across public sellable entries.
+- Interpretation: storefront allocation only. It does not prove total warehouse inventory, landed cost, ownership, or historical sales.
+- Volatility check: the public counters changed later the same day, demonstrating why the timestamp and non-financial interpretation matter.
+
+## Founder-reported one-day analytics input
+
+- Source: second Braden strategy-call recording/transcript in the local Braden Zoom Call Analysis dossier.
+- Relevant time window: approximately **00:31:58–00:32:21**.
+- Inputs used in the model: **$53,540.86** reported dashboard amount and **216** reported orders.
+- Context: Braden said analytics were broken and missing Apple Pay.
+- Derived arithmetic: $53,540.86 / 216 = $247.8743519 implied AOV; a mechanical 30-day repetition equals $1,606,225.80 and 6,480 orders.
+- Evidence class: founder-reported one-day input, incomplete, unverified, and **not a base case**.
+
+## Other founder-reported inputs requiring source proof
+
+- Approximately $1.5 million in the last 30 days.
+- Approximately 80–85% margin described as “net.”
+- Word of mouth as the primary acquisition channel.
+- A very small affiliate group and statements that affiliates can earn approximately $10,000–$12,000 weekly; the transcript does not cleanly establish whether that amount is per affiliate or aggregate.
+- Founder-led fulfillment with limited help.
+- Inventory, ownership, supplier, peak-day, agency, and app-development statements contained in the calls.
+
+Required verification is the order export, processor activity, adjusted bank settlements, refunds/disputes, affiliate ledger, inventory roll-forward, supplier/import records, accounting close, tax records, cap table, contracts, complaints/adverse events, and insurance.
+
+## Private founder follow-up signal
+
+- Source: user-authorized review of the direct Alex–Braden iMessage thread on **2026-07-22**.
+- Braden confirmed a follow-up for **1:00 CST the next day**, sent a photo of a substantial batch of outbound Biologix packages, and later wrote **“Let’s get it brotha.”**
+- Operational interpretation: the relationship is active and the visible fulfillment batch reinforces the founder-relief wedge already described in the calls.
+- Boundary: the messages do **not** prove a signed engagement, payment, source access, revenue, margin, order count, ownership, or the contents and disposition of the packages.
+- Privacy handling: the source attachment is not copied into the board because shipping labels may contain customer information.
+
+## Evidence labels
+
+- **Publicly observed:** directly visible in a timestamped public source.
+- **Private founder signal:** directly observed in a user-authorized private communication, but not proof of financial or contractual claims.
+- **Founder-reported — unverified:** said or shown by Braden without source-record reconciliation.
+- **Strategic inference:** analyst interpretation from observed/reported facts.
+- **Modeled assumption:** an input selected for sensitivity analysis, not a statement about Biologix.
+- **Required proof:** a record or legal/quality conclusion needed before money, title, equity, or operating responsibility changes hands.
diff --git a/biologix-strategy-board/execution.html b/biologix-strategy-board/execution.html
new file mode 100644
index 0000000..94b556a
--- /dev/null
+++ b/biologix-strategy-board/execution.html
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+
+
+
+
+ Biologix Decision Board — Execution
+
+
+
+
+
Biologix / Decision Board — Internal
+
+
+
+
+
+
+
03 / Execution
+
Meeting set. Tomorrow, 1:00 CST.
+
Braden answered, confirmed the next meeting, and signaled real momentum. The job now is to convert chemistry into source access, a paid operating sprint, and explicit next steps without treating enthusiasm as signed economics.
Relationship momentum is now confirmed. Commercial commitment still begins only when access, scope, payment, and next steps become explicit.
+
+
+
+
+
Track A is live. The payment gate is not.
+
Braden confirmed the follow-up, shared a live fulfillment signal, and ended with “Let’s get it brotha.” The founder-relief wedge is more concrete: fulfillment still visibly depends on Braden. None of this proves revenue, margin, ownership, or a completed partnership.
+
Founder-provided photo shows a large batch of personally handled Biologix packages Private signal · not revenue proof
+
+
+
MeetingTomorrow · 1:00 CST · confirmed
+
Operating signalBatch photo · self-fulfilled
+
Tone“Let’s get it brotha”
+
+
+
+
+
+
+
02 / Meeting preparation
Arrive ready to close the next gate.
+
Prepare the concrete transaction now. Keep inventory, exclusivity, liability, and permanent focus behind explicit gates.
+
+
+
+
+
+
+
+
+
+
+
+
+
Before tomorrow's meeting
Every item should make the conversation more concrete without giving away the implementation for free.
+
+
+ DoneResearch foundation and call evidence assembledShared · complete
+
+
Why
Alex should negotiate from the transcript, public audit, verified commerce signals, known contradictions, and explicit unknowns — not just founder chemistry.
+
Evidence
Call transcript, executive summaries, public storefront audit, commerce evidence, deal analysis, regulatory research, and this four-view decision board are organized.
+
Done when · the next conversation can move directly to source data, operating scope, and paid commitment.
+
+
+
+
+ ReadyFinalize the one-page paid sprintAlex · before 1:00 CST tomorrow
+
+
Why
The next exchange should be a concrete paid transaction, not another free architecture session.
+
State the source-of-truth objective, scope, exclusions, access, outputs, timeline, fee, and go/no-go gate.
Attach the data-room checklist and source-truth call agenda.
Keep OVO creators, systems, merchant rails, inventory capital, and permanent title outside the sprint.
+
GateStrategic inference: Working target · $50,000 prepaid
+
Done when · a signature-ready sprint can be sent within ten minutes of Braden saying yes.
+
+
+
+
+ ReadyPrepare the data-room request and live source-truth agendaAlex · before 1:00 CST tomorrow
+
+
Why
Revenue, margin, inventory, ownership, and channel claims cannot stay verbal if Alex is pricing a company-level role.
+
Request live WooCommerce, processor, bank, accounting, inventory, affiliate, customer, vendor, contract, and corporate access.
Sequence the walkthrough from order to capture to settlement to bank receipt.
Require every partner, admin, revenue share, equity promise, and exclusivity in one map.
+
Done when · each data category has an owner, format, and twenty-four-to-forty-eight-hour upload deadline.
+
+
+
+
+ ReadyStart the merchant-neutral longevity asset mapAlex · begin now
+
+
Why
The durable thesis should not depend on one storefront or one founder's reply.
+
Map audience problems, trusted educators, creators, operators, lawful merchants, licensed care, diagnostics, supplements, skincare, and software.
Identify which assets OVO can own across merchants: media, permission, data, creator operations, lifecycle, and attribution.
List interview targets and the first merchant-neutral demand test.
+
Done when · Alex has one portable category map and a first-week interview queue.
+
+
+
+
+
+
No records match —
+
+
+
+
+
03 / Active path and contingency
The live route leads. The fallback remains ready.
+
Track A is now the operating priority. Track B activates only if tomorrow fails to produce a concrete next step.
+
+
+
+
+
Track A — Live · meeting tomorrow 1:00 CST
No more free vision session. The next exchange is architecture for access, payment, and commitment.
Prove audience and customer permission before inventory, merchant dependence, or a product bet.
Choose a brand-neutral research, media, newsletter, waitlist, or community wedge.
Publish education around real customer questions without making unsupported product claims.
Measure qualified attention, replies, interviews, referrals, and merchant interest.
Done when · OVO owns a permissioned audience signal that is portable across merchants.
+
+
+
+ WaitingBuild the category creator and operator coalitionIndependent · weeks 1–2
+
Why
Alex's actual unfair advantage is trusted distribution and the system around it — not access to a generic supplier.
Map credible educators, health creators, operators, clinicians, diagnostics leaders, and community builders.
Invite category-level conversations, not product endorsements.
Document preferred economics, content constraints, audience demand, and partner requirements.
Working target10–20 expressions of interest Strategic inference: Strategic inference
Done when · OVO has a credible initial partner graph no single merchant owns.
+
+
+
+ WaitingPrototype the merchant-neutral partner control planeIndependent · weeks 1–2
+
Why
The reusable moat is creator operations, attribution, contribution truth, content governance, reversals, lifecycle, and merchant portability.
Show the partner record, agreement state, approved-content evidence, customer event trail, contribution ledger, payout state, reversals, and stop controls.
Keep schemas, code, creator graph, and detailed automations private.
Use the prototype to sell a paid operating pilot, not to perform free implementation.
Done when · a qualified merchant can understand the operating destination without receiving the wiring.
+
+
+
+ GatedOffer paid pilots to qualified lawful longevity merchantsIndependent · weeks 2–3
+
Why
Multiple qualified buyers prove the operating platform is valuable beyond Biologix.
Prioritize licensed care, diagnostics, supplements, skincare, software, and other specialist-cleared categories.
Require truthful merchant, product, payment, data, and operating evidence before creator activation.
Keep audience, software, and generalized operating IP portable.
GateQualified specialists support the contemplated model
Done when · at least one merchant will pay for a controlled pilot under OVO's operating boundary.
+
+
+
+ GatedMake the week-four capital and attention decisionAlex · week 4
+
Why
The category earns more time only if paid demand, distribution, or owned audience validates.
Reopen Biologix under the original paid gates if Braden returns.
Choose another qualified merchant if a superior paid path appears.
Form the merchant-neutral Durable NewCo if owned demand and platform pull validate.
Return the capacity to OVO if none of the evidence clears.
Done when · Alex chooses one path explicitly and closes the others for the next operating cycle.
+
+
+
+
+
+
+
+
+
Both tracks end here
+
Owned leverage that survives any one storefront.
+
+
Audience
Track A captures Biologix customer and creator permission under agreed rights. Track B builds merchant-neutral research, media, waitlist, and community.
+
Data
Track A reconciles orders, referrals, cohorts, contribution, and repeat demand. Track B creates interview, audience, creator, and merchant-intent data OVO owns.
+
Software
Track A instruments the live company. Track B prototypes the portable partner, attribution, lifecycle, contribution, and controls layer.
+
+
+
+
+
+
+
04 / Weekly control panel
The questions that keep speed from becoming drift
+
Review weekly. A compelling market is not permission to consume unlimited Alex time or bypass proof.
+
+
+
+
Weekly control questions and decision rules.
+
Question
Green
Yellow
Red
+
+
Did the 1:00 CST meeting produce explicit next steps?
Sprint, source access, owners, deadlines, and payment path are explicit.
Positive intent with one defined follow-up and deadline.
No meeting, no reset, or another free architecture loop.
+
Was the sprint paid?
Implementation begins under scope.
Clarify paper and deadline.
No more personalized architecture.
+
Is source access complete?
Orders, settlements, bank, accounting, customer, inventory, affiliate, partner, contract, and ownership data live.
Missing records have owners and deadlines.
Withholding or unexplained contradictions end the permanent path.
+
Does cash reconcile?
Collected contribution survives full costs.
Fixable accounting or attribution gaps.
Material claims do not become settled cash.
+
Is the operating perimeter usable?
Qualified specialists support payment, quality, insurance, and lawful boundaries.
Remediation is defined, funded, and time-boxed.
Alex is asked for banks, nominees, concealment, unsupported claims, or undefined exposure.
+
Do authority and economics match?
Control, budget, team, cash, ownership, distributions, information, and protection align.
Specific open terms with a deadline.
Company accountability with employee or advisor economics.
+
What did OVO own this week?
Audience, data, software, content, relationship, or NewCo value compounded.
Information improved but no asset yet.
Alex only performed more labor for someone else's transaction.
+
Did any OVO priority slip?
No core milestone moved.
One contained tradeoff with an owner and recovery date.
Biologix becomes the new daily chaos center.
+
+
+
+
Operating rule · Move fast on information, paid proof, and reversible options. Move slowly on liability, exclusivity, and permanent focus.
Connected creator accounts capture inbound conversations, send permitted auto-DMs and approved replies, qualify the person, preserve attribution, and route the next action.
House podcasts and creator content drive inbound conversations. OVO’s connected-account engine answers, qualifies, attributes, and routes every opportunity.
Every signed creator securely connects an eligible Instagram account through the approved app, adding another attributed inbox and daily distribution surface.
Braden may have built an extraordinary cash engine. He has not yet demonstrated an extraordinary company. The opportunity is to convert accidental demand into an operated, attributable, durable asset — and to be compensated as a principal for doing it.
+
Prepared 2026-07-22 · Founder follow-up confirmed for tomorrow · Internal · Not legal advice
+
+
+
+
+
+
+
+
+
+
+
01 / The test
Is this shiny-object syndrome?
+
The answer is determined by entry terms, evidence, and what Alex owns at the end — not by how exciting Braden's reported economics feel.
+
+
+
+
It would be if…
+
Alex chases the surface business from envy.
+
+
Launches an undifferentiated clone before proving distribution and repeat demand.
+
Funds inventory or puts OVO banking, creators, or reputation at risk before diligence.
+
Accepts permanent responsibility without authority, cash, information rights, and meaningful upside.
+
Becomes the daily rescuer and lets OVO's highest-priority installation slip.
+
+
+
+
It is not because…
+
Alex can buy a funded option on a leverage shift.
+
+
Biologix pays for a time-boxed source-of-truth sprint before Alex commits permanent focus.
+
Alex has privileged access, category-adjacent distribution, operating capacity, and founder chemistry.
+
The first work removes founder dependence and creates reusable systems, data, and owned audience.
+
Written go, remediate, or walk gates prevent momentum from outrunning truth.
+
+
+
+
+
+
+
+
02 / Economic position
Why he makes more while doing less
+
The difference is not intelligence. It is who owns the transaction, margin, customer permission, data, and compounding asset.
+
+
+
+
Comparison of OVO Talent, Inner DM, Biologix, and a durable NewCo.
+
+
OVO Talent
+
What it is
Labor-intensive service layer coordinating talent and campaigns.
+
Who owns the transaction
The brand, platform, or end merchant.
+
Economic position
OVO captures a fraction of the value it creates.
+
Scaling constraint
Each campaign adds management work, headcount, and coordination.
+
What Alex owns
Relationships and operating knowledge, but not always the product or customer transaction.
+
+
+
Inner DM
+
What it is
Software with the potential for high operating leverage.
+
Who owns the transaction
OVO can own the subscription and product economics.
+
Economic position
High eventual leverage if distribution and retention compound.
+
Scaling constraint
Software without massive distribution takes time to compound.
+
What Alex owns
Product and customer relationship, subject to proving distribution.
+
+
+
Biologix today
+
What it is
Founder-dependent commerce operation with real public activity and unverified private economics.
+
Who owns the transaction
Braden's entity receives the customer payment and owns the markup.
+
Economic position
Reported AOV about $247.87 Founder-reported Possible reorder behavior and near-zero organic CAC remain unproved.
Nothing durable unless the deal explicitly grants economics, rights, and NewCo ownership.
+
+
+
Durable NewCo
+
What it is
Owned audience, media, software, lifecycle, community, data, and appropriately licensed care orchestration.
+
Who owns the transaction
Alex and Braden participate as principals under a clean structure.
+
Economic position
Cash participation now plus equity in the assets that survive this storefront.
+
Scaling constraint
Must clear source truth, authority, economics, quality, payment, and lawful-path gates.
+
What Alex owns
Substantial NewCo equity, operating IP, audience, data, and the customer-development system.
+
+
+
+
+
+
OVO TalentLow
+
Inner DMMedium
+
Biologix todayNone
+
Durable NewCoOwned
+
+
Qualitative leverage retained by Alex Strategic inference
+
+
+
+
+
03 / Unfair advantages
Why Alex can move faster than a normal operator
+
These advantages reduce entry cost and learning time. They do not replace diligence or make bad terms acceptable.
+
+
+
01
Privileged access and trust
Connor's relationship, direct founder chemistry, and Braden's interest in an integrated partnership create access a cold operator would not have.
+
02
Creator and affiliate distribution
OVO already knows how to recruit, contract, coordinate, and support creators. That can turn informal relationships into an instrumented channel.
+
03
Operating capacity
OVO Academy, talent operations, editors, legal workflows, dashboards, and management recruiting can supply the company-shaped layer Biologix appears to lack.
+
04
Founder-life fit
Braden appears to value relief, peers, travel, content, Miami, and belonging. Alex can improve the founder's life while making the company less dependent on him.
+
05
Speed without blind commitment
A paid, time-boxed sprint lets Alex verify the engine while protecting OVO capital, creators, systems, reputation, and focus.
+
+
+
+
+
+
04 / Recommended sequence
Buy the option first. Earn the right to scale.
+
Each step creates information or durable leverage. No later step is unlocked merely because the prior conversation felt good.
+
+
+ 01
Enter through a paid operating sprint.
Exchange more architecture only for source access, payment, and a written scope.
Identify who refers, what they say, which customers reorder, and which product or trust event actually causes conversion.
Strategic inference
+ 04
Remove Braden from fulfillment.
Stabilize inventory, the third-party logistics handoff, service levels, exceptions, and quality ownership.
+ 05
Install the revenue system.
Lead capture, referral, lifecycle, support, attribution, cohort reporting, and a single contribution ledger.
+ 06
Negotiate operator economics.
Cash now, contribution participation, protected ownership, distributions, information rights, and authority that matches responsibility.
+ 07
Put durable assets into a clean NewCo.
Audience, media, software, data, community, lifecycle, and appropriately licensed diagnostics or care infrastructure.
Strategic inference
+ 08
Preserve lawful future optionality.
Keep a narrow contractual right to pursue other lawful longevity opportunities if the partnership ends.
Strategic inference
+
+
+
+
+
+
05 / Evidence stack
What is known, reported, and still only a thesis
+
The board never lets a revenue screenshot or founder statement silently become a valuation fact.
+
+
+
+ Verified public signal
+
Real commerce signals
+
+
52 commercial products Verified public signal: Verified
+
44 listed in stock at snapshot Verified public signal: Verified
+
1,397 visible units, about $86,657 displayed retail Verified public signal: Verified
+
Active WooCommerce merchandising, affiliate tooling, bundles, discounts, and inventory changes.
+
Public code cannot reveal exact orders, revenue, profit, ownership, or repeat rate.
+
+
+
+ Founder-reported
+
Compelling, not reconciled
+
+
Reported $53,540.86 and 216 orders on one day, excluding Apple Pay Founder-reported
+
Implied reported AOV of $247.87 Founder-reported
+
Implied reported 30-day pace of about $1.606M if sustained Founder-reported
+
Reported 85% “net” and more than $1M inventory Founder-reported
+
Reported three to five affiliates and primarily word-of-mouth demand Founder-reported
+
Follow-up meeting confirmed; founder-provided photo shows continued personal fulfillment Private signal
+
+
+
+ Strategic inference
+
The hypotheses worth paying to test
+
+
Demand may be real but largely invisible to current attribution.
+
The reported margin likely describes unit gross margin rather than fully loaded profit.
+
Word of mouth may be the hidden acquisition engine.
+
Founder dependence may suppress both scale and buyer value.
+
Underlying longevity demand can outlast the current storefront arbitrage.
+
+
+
+
+
+
+
+ Strategic inference
+
Proceed to the paid sprint. Every step beyond it is gated on data.
+
The goal is not to own more tasks. It is to own the customer, transaction, data, and equity created by the work. Braden's reply should accelerate the option — not determine whether Alex takes action.
+
+
Kill condition 01 · Source truth is withheld, false, or economically weak after full costs.
+
Kill condition 02 · The role carries company-wide responsibility without matching authority, cash, protection, and upside.
The first transaction is not a cofounder promise or a title. It is a paid source-of-truth sprint that produces financial truth, immediate founder relief, an operating map, and a fact-based go, remediate, or walk decision.
+
Prepared 2026-07-22 · Internal · Not legal advice
+
+
+
+
+
+
+
+
+
+
+
01 / Paid source truth
The operating sprint is the entry ticket
+
Payment and access convert the next conversation from more free vision into reciprocal commitment.
+
+
+
+
+
Open the machine, fix the immediate bottleneck, and price the permanent partnership from facts.
+
Alex enters through OVO Labs under a limited sprint contract. Operating Partner authority activates only after the gates. There is no statutory officer title, public endorsement, OVO creator activation, OVO IP assignment, inventory capital, personal guarantee, or custody of customer and product funds during the truth stage.
+
Working target: $50,000 prepaid for the source-of-truth sprint Strategic inference: Strategic inference
+
+
+
WindowTen business days to first gate
+
Broader termUp to thirty days
+
AccessRead / export source systems
+
DecisionGo / remediate / walk
+
+
+
+
+
+
Source-of-truth artifacts required for the paid sprint.
+
Required artifact
What it proves
Current status
+
+
Order-level export
SKU, price, discounts, customer, affiliate, fulfillment, refunds, and timestamps.
Outstanding · required proof
+
Processor settlements
Captured cash, reserves, fees, holds, chargebacks, and actual settlement timing.
Outstanding · required proof
+
Bank statements
Whether processor payouts became bank receipts and where cash moved afterward.
Outstanding · required proof
+
Accounting file
Fully loaded contribution, operating profit, taxes, liabilities, owner draws, and working capital.
Outstanding · required proof
+
Inventory and lots
Actual landed cost, ownership, location, lot mapping, testing coverage, complaints, and remaining units.
Outstanding · required proof
+
Customer and referral history
Repeat behavior, cohorts, referral sources, contribution, and the hidden word-of-mouth loop.
Outstanding · required proof
+
People, vendors, and contracts
Every partner, equity promise, revenue share, exclusivity, admin account, deliverable, and termination right.
People, equity, side promises, agency, developers, processors, banks, suppliers, testing, 3PL, app partners, and admin access.
Exit · one accountable owner for every dependency
Alex
+
Word-of-mouth reverse engineering
Identify the first trust event, referral source, customer cohort, message, SKU, and repeat pattern.
Exit · testable acquisition-loop hypothesis
Alex + Connor
+
Quality, payment, and lawful-path gate
Qualified specialists assess source records, customer-safety evidence, payment continuity, insurance, and the usable operating perimeter.
Exit · written green / yellow / red decision
Outside specialists
+
Decision memo
Price the opportunity only after the source systems reconcile and acute constraints are explicit.
Exit · go / remediate / walk signed by Alex
Alex
+
+
+
+
+
Days 11–30
Remove founder dependence
+
+
Inventory and fulfillment visibility
SKU, lot, location, landed cost, service levels, error ownership, replacements, and escalation paths become visible without moving Braden's fulfillment responsibility to Alex.
Exit · Braden and his fulfillment lead own routine orders against a visible scorecard
Braden + fulfillment lead
+
Daily operating truth
Settled cash, orders, contribution, inventory, fulfillment, support exceptions, refunds, and chargebacks.
Exit · one daily dashboard with named DRIs
Alex + CFO
+
Affiliate ledger
One partner ID, agreement, approved content record, attributed order, reserve, reversal, and payout trail.
Exit · payout reconciles to settled contribution
Connor inside Alex's system
+
Support and exception ownership
Document service levels, refunds, replacements, complaints, escalations, and backup coverage.
Exit · founder is not the default router
Operations DRI
+
Existing-cohort pilot
Measure only incumbent affiliates first so the business has a real control before adding volume.
Exit · cohort contribution and repeat behavior visible
Alex + Connor
+
Permanent term sheet
Operating Partner authority, $30K Alex + $20K OVO monthly cash, 30% fully diluted ownership, the 70/30 monthly waterfall, information rights, protection, and NewCo boundary.
Agency, development, processor, app, and fulfillment performance reports into one operating cadence while the named functional owner keeps each relationship.
Exit · every vendor has a visible owner, scope, and measurable outcome
Named function owners
+
Management recruitment
Install a non-Alex daily operator with clear authority, scorecard, backup, and escalation.
Exit · company can be understood without founder narration
CFO + counsel
+
NewCo launch gate
Transfer or license only explicitly agreed durable assets into the separately governed company.
Exit · clean cap table, IP, data, contracts, and reserved matters
Alex + Braden
+
Capacity decision
Compare verified upside and Alex hours against OVO's core installation.
Exit · scale, hold, or return capacity to OVO
Alex
+
+
+
+
+
+
+
+
03 / Role progression
This is an Operating Partner mandate, not a CRO role
+
Company-wide responsibility requires company-wide authority, economics, protection, and a clear operating perimeter.
+
+
+
+ Strategic inference: Working structure
+
Source-of-Truth Sprint through OVO Labs
+
Contractual and non-statutory during proof. Alex owns the sprint, architecture, instrumentation, founder-relief plan, operating cadence, and permanent-deal recommendation. Product release, customer funds, manufacturing, import, clinical decisions, and legal conclusions stay outside his scope.
+
+
Gate · data clears + authority and economics signed + indemnification, advancement, and insurance reviewed
+
+ Required proof: Not earned yet
+
Activated Operating Partner through OVO Labs
+
Appropriate only if Alex is truly accountable for company architecture, finance, people, systems, creator distribution, lifecycle, content, management, and executive cadence—with the decision rights and upside required to control those outcomes. Braden retains product, sourcing, inventory, and fulfillment responsibility.
+
+
+
+
+
+
+
04 / Economics ladder
Optimize for cash, truth, authority, and protected upside
+
The largest paper percentage is not necessarily the best deal. Undefined profit, trapped distributions, or unknown legacy liabilities can erase headline equity.
+
+
+
+
Working Biologix deal economics.
+
Layer
Working ask
Why it matters
+
+
Source-truth sprint
Target $50,000 prepaid Strategic inference: Working ask
Alex is paid to verify the opportunity before permanent focus or reputation is committed.
+
Monthly operating cash
$30,000 Alex compensation + $20,000 OVO managed-services monthly after activation Strategic inference: Working ask
Separates Alex's company-level accountability from the managed OVO execution pod.
+
Legacy ownership
30% fully diluted: 10% signing, 10% activation, 10% over six months Strategic inference: Working ask
Includes information, audit, dilution, related-party, sale, and acceleration protection.
+
Monthly owner cash
100% of Excess Cash: 70% Braden / 30% Alex after the signed Required Reserve Strategic inference: Working ask
Reinvestment is each owner's election after distribution, so discretionary retention cannot make the equity economically empty.
+
Limited-lane fallback
15% of settled contribution from accepted Alex-introduced partners Strategic inference: Working ask
No companywide mandate, 30% ownership, OVO pod, retreats, or backend build in this lane.
+
Durable NewCo
Alex / OVO 30–40% if OVO builds the operating platform Strategic inference: Working ask
Cofounder-level economics for owned audience, software, data, lifecycle, content, community, and operating infrastructure.
+
+
+
+
+
Never accept
+
+
A title without authority or company-wide accountability for affiliate-manager economics.
Historical processor, bank, tax, owner, employee, vendor, and regulatory obligations.
Legacy domain, storefront code, trademarks, contracts, and data not expressly licensed or transferred.
Legacy owner distributions and pre-closing economics.
Any risk Alex did not diligence, price, accept, and document.
+
+
+
+
+
+
+
+
06 / Architecture reveal policy
Show the silhouette of the machine, not its wiring
+
Free structure proves command. The finished schemas, creator graph, SOPs, controls, vendor design, and implementation mechanics are the paid asset.
+
+
+
Alex should reveal enough to make the before-and-after obvious: the diagnosis, system categories, sample scorecard, founder-relief sequence, ninety-day destination, evidence gates, and economic logic. Every additional layer should be exchanged for reciprocal access and commitment.
+
+
Before payment
Diagnosis, current-state gaps, workstreams, sample scorecard, expected outputs, and the ninety-day milestones.
+
After NDA and source access
Company map, data request, KPI definitions, decision logic, high-level workflows, and the sprint delivery plan.
Thresholds below are Alex's working decision assumptions. Qualified finance, legal, quality, payment, and tax specialists must validate the final standards.
+
+
+
+
Proof gates and actions for the Biologix partnership.
+
Gate
Pass condition
Pass action
Kill / remediate action
+
+
Source truth
Orders, captures, settlements, bank receipts, refunds, reserves, and accounting reconcile with no material unexplained variance.
Price permanent economics from collected contribution.
Walk if source access is refused or material claims are false.
+
Fully loaded economics
Contribution remains exceptional after product, testing, fulfillment, freight, fees, commissions, support, reserves, taxes, founder replacement, and working capital.
Activate the signed Operating Partner package.
Reduce scope or walk if screenshots do not become distributable cash.
+
Ownership and obligations
Entity, cap table, authority, side promises, related parties, vendor rights, IP, and customer data are fully disclosed and usable.
Draft definitive rights and successor protection.
Walk on concealed owners, equity, exclusivity, or diversion rights.
+
Demand durability
Repeat, referral, cohort, contribution, and channel data reveal a reproducible loop.
Instrument and scale a controlled cohort.
Hold if demand is a transient spike with no reusable asset.
+
Quality and customer safety
Usable supplier, lot, testing, custody, complaint, recall, and operating evidence supports the contemplated scope.
Walk if records are unusable or acute products cannot be isolated.
+
Payment and lawful path
Qualified specialists support a usable model, truthful counterparties, continuity plan, insurance, and defined operating perimeter.
Proceed under written boundaries and controls.
Walk if Alex is asked for banks, nominees, concealment, or unsupported claims.
+
Authority and economics
Alex's decisions, budget, reporting lines, hiring and vendor authority, cash, upside, information, distributions, and protections match accountability.
Accept Operating Partner scope after clearance.
Reject responsibility without control and economics.
+
OVO opportunity cost
The partnership has a non-Alex daily operator and does not delay OVO's highest-priority installation.
Scale within a fixed capacity envelope.
Return capacity to OVO if Alex becomes the daily rescue layer.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/biologix-strategy-board/ovo-labs-porcelain/404.html b/biologix-strategy-board/ovo-labs-porcelain/404.html
new file mode 100644
index 0000000..d05fe42
--- /dev/null
+++ b/biologix-strategy-board/ovo-labs-porcelain/404.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Page Not Found — OVO Labs
+
+
+
+
+
+
diff --git a/biologix-strategy-board/ovo-labs-porcelain/README.md b/biologix-strategy-board/ovo-labs-porcelain/README.md
new file mode 100644
index 0000000..37a1778
--- /dev/null
+++ b/biologix-strategy-board/ovo-labs-porcelain/README.md
@@ -0,0 +1,107 @@
+# OVO Labs Porcelain
+
+OVO Labs Porcelain is the white, product-first side-by-side variant of the fictional OVO Labs ecommerce concept. It adapts Datum’s strongest store architecture—visible search, direct categories, a compact hero, a factual strip, early products, and card-level Add—using OVO’s name, amber packaging world, typography, truth boundaries, and hardened interaction behavior.
+
+It is non-transactional. It does not represent real products, inventory, testing, customers, orders, fulfillment, payment, or medical use.
+
+## Comparison routes
+
+| Variant | Route |
+|---|---|
+| Porcelain candidate | `/ovo-labs-porcelain/` |
+| Warm OVO control | `/ovo-labs/` |
+
+The warm route is intentionally preserved for visual and behavioral comparison. Porcelain has its own CSS, JavaScript, canonical URLs, analytics event name, and browser-storage namespace.
+
+## Routes
+
+| Surface | Route |
+|---|---|
+| Homepage | `index.html` |
+| Complete collection | `catalog.html` |
+| Curated sets | `bundles.html` |
+| Testing | `testing.html` |
+| Notes | `notes.html` |
+| About | `company.html` |
+| FAQ | `faq.html` |
+| Policies | `policies.html` |
+| Product pages | `peptides/*.html` |
+| Notes articles | `notes/*.html` |
+
+Compatibility files inside this variant preserve its former route names:
+
+- `lot-record.html` → `testing.html`
+- `access.html` → `catalog.html`
+- `eligibility.html` → `policies.html`
+
+## Interaction model
+
+- Predictive keyboard search by product name, category, strength, and OVO code
+- Category filtering, collection search, persistent URL sorting, and empty-state recovery
+- Ten canonical product pages with responsive media, quantity, visible testing status, specifications, FAQ, related products, and a sticky mobile Add action
+- Three curated sets
+- Searchable testing-status page
+- Browser-local add, update, remove, subtotal, and clear-cart states
+- Local-only newsletter preference
+- Keyboard-accessible menu, search, drawers, accordions, and product controls
+- Non-PII QA instrumentation through `window.dataLayer`, `window.OVOPorcelainAnalytics.events()`, and the compatibility alias `window.OVOAnalytics.events()`
+
+The cart has no checkout or payment path. Nothing is transmitted.
+
+## Isolated browser state
+
+Porcelain does not read or overwrite the warm OVO route’s active storage keys.
+
+```text
+ovo-porcelain-demo-cart-v2
+ovo-porcelain-recent-products-v1
+ovo-porcelain-newsletter-preference-v1
+```
+
+The custom analytics event is:
+
+```text
+ovo-porcelain:analytics
+```
+
+## Fable 5 visual system
+
+Claude Fable 5 is the binding outward-facing design authority. The approved direction is **Datum structure × OVO identity on porcelain white**:
+
+- Fraunces display type, Instrument Sans body/UI, and IBM Plex Mono product data
+- pure-white canvas, near-white warm surfaces, espresso controls, and restrained terracotta accents
+- left-aligned italic `ovolabs.` wordmark
+- always-visible search and direct category navigation
+- 55/45 product-led hero with safe amber imagery and factual overlays
+- early four-up desktop and two-up narrow product grid
+- full espresso editorial testing band
+- 7/5 product detail gallery and sticky buy box
+- safe amber-vial stills with no use supplies, people, claims, or lab theater
+- self-hosted, SIL Open Font License type assets with no third-party font request
+
+Gold appears only in packaging imagery and the wordmark period. There is no cobalt and no beige page wash.
+
+## Truth boundary
+
+- The top banner states: `FICTIONAL CONCEPT STOREFRONT. NOTHING HERE IS REAL, STOCKED, OR FOR SALE.`
+- Every analytical state remains `No result reported` or `Not represented`.
+- There is no fictional per-lot result dataset, certificate, laboratory, purity figure, testing claim, or release decision.
+- There is no access or eligibility gate.
+- There is no checkout, payment, inventory, stock, shipping, fulfillment, or customer account.
+- Product and cart prices are interface concepts only.
+- The newsletter demo saves a preference locally and sends nothing.
+- No reviews, ratings, popularity, urgency, outcome, dosing, preparation, or human-use claim is allowed.
+
+## Local preview
+
+From `biologix-strategy-board/`:
+
+```bash
+python3 -m http.server 4173
+```
+
+Then open:
+
+```text
+http://127.0.0.1:4173/ovo-labs-porcelain/
+```
diff --git a/biologix-strategy-board/ovo-labs-porcelain/access.html b/biologix-strategy-board/ovo-labs-porcelain/access.html
new file mode 100644
index 0000000..04139ba
--- /dev/null
+++ b/biologix-strategy-board/ovo-labs-porcelain/access.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+ Redirecting to the OVO Labs collection
+
+
+
Fictional concept storefront. Nothing here is real, stocked, or for sale.
Every entry currently shows the same clear state: no analytical result has been reported. The testing page explains what each method would and would not establish.
+ ${accordion([
+ [
+ "Does a purity result prove identity?",
+ "Not by itself. Identity and relative purity answer different questions and may require different analytical methods.",
+ ],
+ [
+ "Does a reported result prove every vial is the same?",
+ "No. A result applies only to the identified sample and method scope. Sampling, chain of custody, and lot linkage remain separate questions.",
+ ],
+ [
+ "Does a COA establish suitability for human use?",
+ "No. OVO Labs does not present human-use, safety, efficacy, clinical, administration, or preparation information.",
+ ],
+ [
+ "Why show fields with no result?",
+ "Because a visible empty state is more informative than a badge that leaves the scope ambiguous. Missing evidence should remain visibly missing.",
+ ],
+ ])}
+
+ ${accordion([
+ ["Is OVO Labs a real company?", "No. It is a fictional, non-operational storefront concept. Nothing is stocked, sold, shipped, tested, or transacted."],
+ ["Why show concept prices?", "Prices make the ecommerce prototype complete enough to evaluate its hierarchy, cart states, sorting, and merchandising. They are not offers for sale."],
+ ["Why are there no ratings?", "No customers or reviews exist. Empty or invented social proof would make the interface less trustworthy, not more."],
+ ["Can I check out?", "No. The local demo cart supports add, update, remove, and subtotal states, then ends before checkout or payment."],
+ ])}
+
What the catalog shows, what “No result reported” means, how browser storage works, and exactly where this fictional store stops.
+
+
+
+
+
+
OVO Labs FAQ
+
The complete store boundary.
+
+
+ ${accordion([
+ ["Can I place an order?", "No. OVO Labs is a fictional concept storefront. The cart is browser-only, and there is no checkout, payment, inventory, shipping, customer account, or fulfillment operation."],
+ ["What does “No result reported” mean?", "It means no testing result is published for that catalog item. It does not mean the item passed, failed, or is waiting on a promised result."],
+ ["Does a COA prove a product is safe, effective, or sterile?", "No. A document supports only the measurements, sample, method, date, and scope it identifies. Unreported attributes should not be inferred."],
+ ["Why are there no purity percentages?", "No testing result is published for these products. OVO Labs does not invent percentages or testing claims to make a product page feel complete."],
+ ["Does this catalog provide human-use information?", "No dosing, preparation, administration, safety, efficacy, medical, or human-use guidance is provided."],
+ ["Are the product descriptions medical advice?", "No. They identify proposed catalog references and formats only."],
+ ["How does search work?", "Search by peptide name, category, blend name, or catalog code such as OVO-001. Keyboard users can move through predictive results with the arrow keys."],
+ ["Why are there no customer reviews?", "There are no customers or order history. OVO Labs does not fabricate ratings, testimonials, or purchase activity."],
+ ["What information does this site store?", "Cart contents, recently viewed product codes, and the newsletter preference can be stored locally in your browser. No cart contents, entered email address, or saved preference is transmitted by the prototype."],
+ ["How do I remove locally saved information?", "Use Clear cart in the cart drawer. You can also clear this site’s browser storage to remove all local state."],
+ ])}
+
+
+
+
+
+
Ready to browse?
Search all ten entries or inspect the testing framework first.
A peptide store designed around finding and deciding.
+
OVO Labs is designed around a simple idea: product information should be easy to scan, and missing evidence should be impossible to miss.
+
+
+
+
+
+
The premise
+
Retail clarity can do more work than scientific theater.
+
+
+
The strongest specialist stores help people find the right entry quickly, compare it in place, and understand the next action. OVO Labs applies that discipline without inventing operations or proof.
+
+
Catalog modelFocused selection, stable product codes, and flat product routes
+
Discovery modelPersistent search, visual category paths, filters, and related entries
+
Product modelIdentity, labeled amount, format, price, and testing status in one decision block
+
Proof modelOnly substantiated facts; no invented ratings, laboratories, results, or popularity
+
+
+
+
+
+
+
+
+
Operating principles
+
What the brand refuses to fake
+
+
+
+
No decorative proof
No badges, reviews, lab names, purity figures, certificates, or quality claims exist without evidence.
+
No urgency machinery
No stock countdown, sale timer, crossed-out anchor price, or invented best-seller ranking pushes the click.
+
No fake transaction
The local demo cart is complete enough to evaluate, then stops before checkout, payment, fulfillment, or customer data capture.
+
+
+
+
+
+
+
See the full catalog system.
Ten product entries, three sets, a testing lookup, and a complete local cart flow.
This storefront demonstrates an interface, not an operation.
+
OVO Labs has no company operations, products, inventory, customers, testing, fulfillment, payments, or ordering capability.
+
+
+
+
What the prototype does
+
It demonstrates ecommerce information architecture: product discovery, category filtering, predictive search, product pages, testing-status presentation, a journal, and a browser-local demo cart.
+
What the prototype does not do
+
+
It does not offer, sell, reserve, quote, or ship material.
+
It does not collect payment, customer accounts, addresses, or submitted email data.
+
It does not claim a laboratory, certificate, result, purity level, stock state, delivery time, or customer experience.
+
It does not provide dosing, preparation, administration, clinical, therapeutic, safety, efficacy, or human-use information.
+
+
The cart is local. Its contents are stored only in this browser. The interaction ends before checkout, and clearing browser storage removes it.
+
Why the banner stays visible
+
The thin top notice keeps the concept status clear on every route while allowing the rest of the prototype to be evaluated as a real ecommerce design.
Adds this item to a browser-only cart. No order, payment, or shipment is created.
+
+
+
+
+
+
+
Product facts
+
The comparison fields, up front.
+
+
+
Product name${escapeHtml(product.name)}
+
Catalog code${escapeHtml(product.code)}
+
Research area${escapeHtml(product.category)}
+
Labeled amount${escapeHtml(product.strength)}
+
Format${escapeHtml(product.format)}
+
Analytical stateNo result reported
+
+
+
+
+
+
+
Testing status
+
Every missing result stays visible.
+
+
+
IdentityMethod not assignedNO RESULT
+
Content / massMethod not assignedNO RESULT
+
Purity profileMethod not assignedNO RESULT
+
Sterility / endotoxinNot representedNOT REPORTED
+
+
+
+
+
+
+
Product questions
+
Know what this page means.
+
+
+ ${accordion([
+ ["Is this product available?", "No. This storefront is fictional and has no material, inventory, availability, ordering, or fulfillment."],
+ ["What does the listed price mean?", "It lets the storefront demonstrate sorting, merchandising, cart totals, and product hierarchy. It is not an offer or quote."],
+ ["Has this entry been tested?", "No testing or laboratory relationship is represented. Every analytical field on the page explicitly says that no result has been reported."],
+ ["Where is administration information?", "It is intentionally absent. OVO Labs does not provide dosing, preparation, administration, human-use, safety, efficacy, or outcome information."],
+ ])}
+
+
+
+ `;
+ }
+
+ function articlePage(slug) {
+ const content = {
+ "reading-testing-status": {
+ eyebrow: "Testing guide · 4 minutes",
+ title: "How to read a testing status",
+ lede: "Start with the question the method is meant to answer. Then check whether a result is actually reported.",
+ sections: [
+ ["A specification is not a result", "A specification describes an intended target or acceptance rule. A result describes what was observed for an identified sample under a stated method. One should never be styled as the other."],
+ ["Identity, amount, and composition are separate", "An identity method asks whether the observed profile matches the intended compound. A content or mass method asks how much is reported. A purity method describes relative composition under its method conditions. None automatically answers the others."],
+ ["“No result reported” is useful information", "An explicit empty state prevents a shopper from assuming that a badge, document icon, or quality headline stands in for evidence. It keeps the unknown visible at the moment of comparison."],
+ ],
+ analyticalSources: true,
+ },
+ "choosing-by-molecule": {
+ eyebrow: "Catalog guide · 4 minutes",
+ title: "Shop by molecule, not by hype",
+ lede: "A clean catalog starts with product identity, then narrows by strength, format, code, and evidence state.",
+ sections: [
+ ["Start with the exact entry", "Separate compounds should have separate product pages. A selector is useful for genuine strengths of the same item, not for hiding unrelated molecules inside one high-traffic page."],
+ ["Compare the same fields every time", "Product name, code, strength, format, price concept, and testing status should appear in predictable positions. Consistency turns a grid into a comparison tool."],
+ ["Use categories as a shortcut", "Research-area categories help exploration, while exact-name and product-code search help returning or expert shoppers. Both paths should reach the same canonical product page."],
+ ],
+ analyticalSources: false,
+ },
+ "coa-boundaries": {
+ eyebrow: "Document guide · 5 minutes",
+ title: "What a COA can—and cannot—show",
+ lede: "The value of a certificate depends on the identified sample, the method, the result, and the scope. The title alone proves very little.",
+ sections: [
+ ["Read the scope before the number", "A reported purity figure does not automatically establish identity, total content, sterility, endotoxin state, stability, or suitability for a particular use."],
+ ["Check the sample link", "A result is only useful when the document identifies the tested sample and the catalog can explain how that sample relates to the represented item."],
+ ["Do not fill gaps with design", "A green badge, seal, laboratory photograph, or download icon cannot replace a reported result. If a field is missing, the interface should say so directly."],
+ ],
+ analyticalSources: true,
+ },
+ }[slug];
+
+ if (!content) return notFoundPage();
+ return `
+
+
${escapeHtml(content.eyebrow)}
+
${escapeHtml(content.title)}
+
${escapeHtml(content.lede)}
+
This guide describes document and catalog structure. It does not provide medical, clinical, preparation, administration, or human-use information.
This is where the demo ends. Nothing is stocked, sold, or shippable. This cart is stored only in your browser; no order, account, payment, or message is created.
Each figure stays attached to its sample, method, report date, and current lot. A purity number never stands in for identity, content, sterility, or endotoxin testing.
+
+
+
+
+
Current Tirzepatide release
+
99.4%
+
Relative purity by RP-HPLC, area %. Lot TZ-2410-B, reported 11 June 2026.
+
+
+
+
+
+ Certificate of analysis
+
Tirzepatide · 10 mg
+
+ Published
+
+
+
Lot / sample
TZ-2410-B / SMP-TZ2410B
+
Identity
RP-HPLC / ESI-MS · Conforms
+
Content
RP-HPLC, 214 nm · 10.1 mg
+
Purity profile
RP-HPLC, area % · 99.4%
+
Sterility / endotoxin
Not represented
+
+
+
+
+
+
+
Ten catalog compounds. Ten named lots. One consistent reporting standard.
, so on Phone the red line landed
+ 49.6px below its input behind two lines of mono and read as part of the note.
+ Label and input keep order 0; the error now precedes the note. */
+.checkout-main .field { display: flex; flex-direction: column; }
+.checkout-main .field-error { order: 1; }
+.checkout-main .field-note { order: 2; }
+
+/* Locked placeholders sized for data they can never take: 456px holding 162px
+ of card number, 220px holding three bullets. max-width only shrinks, so this
+ cannot overflow at any width. */
+.checkout-main #cardNumber { max-width: 24ch; }
+.checkout-main #cardExpiry,
+.checkout-main #cardCvc { max-width: 12ch; }
+
+/* Lot segments are unbreakable units, so the line wraps between them instead of
+ inside the reported date, and no longer needs to be nowrap to stay readable. */
+.summary-line .lot-line .lot-nb { white-space: nowrap; }
+
+/* Delivery method name and its price sat 762px apart across a 928px card. */
+@media (min-width: 961px) {
+ .choice-body { max-width: var(--measure); }
+}
+
+/* The 640px rule made the whole lot line unbreakable, which overflowed the
+ receipt card by 61px and clipped the record link. The segments above carry
+ that job now, so the line itself may wrap again. */
+@media (max-width: 640px) {
+ .summary-line .lot-line { white-space: normal; }
+}
+
+
+/* ============================================================================
+ Cart drawer + cart page. Every number below was read off rendered 1440x900
+ and 390x844 captures, not off the source.
+ ========================================================================= */
+
+/* renderCart() sets .cart-count[hidden], but the class's own display:grid
+ outranks the UA [hidden] rule, so an empty cart shipped an 18x18 cobalt badge
+ reading "0" in the header at both widths. */
+.cart-count[hidden] { display: none; }
+
+/* .checkout-cta.is-blocked used opacity:0.45, which composites the cobalt fill
+ to rgb(140,183,223) under its white 13px/650 label: 2.12:1. Contrast tooling
+ reads background-color (6.30:1) and never sees the composite, which is why
+ this passed 30 combos. Explicit tokens instead, and the pointer says no. */
+.checkout-cta.is-blocked {
+ opacity: 1;
+ color: var(--on-dark);
+ background: var(--text-2);
+ cursor: not-allowed;
+}
+
+/* Empty drawer: the footer holds nothing but the note, and the 16px top margin
+ written to clear View cart became stray padding, 41px above the note against
+ 24px below it. */
+.cart-footer > .cart-terminus:first-child { margin-top: 0; }
+
+/* One line in the drawer at 1440: the last suggestion row ends at y503 and the
+ tinted band at y590.5, so 63.5px of tint sat empty after the band's own 24px
+ of padding. The band must keep flex:1 or a white gap opens above the pinned
+ footer, so the rows absorb the slack instead of one dead pocket doing it.
+ Component-scoped, not width-scoped: at 390 the same slack is 7.5px and the
+ rows grow 60px to 75.4px instead of 60px to 89.4px. */
+.drawer-cross { display: flex; flex-direction: column; }
+.drawer-cross-row { flex: 1 1 auto; }
+
+/* Four lines at 1440: .cart-items scrollHeight 622 against clientHeight 521,
+ and the cross-sell heading's text box (y584 to y597) is cut by the scroll
+ edge at y590.5 with nothing saying the region continues, so a hairline plus
+ a half-glyph reads as a section that failed to render. The fade is drawn only
+ when there are cart lines, so the empty drawer keeps its clean edge. */
+.cart-drawer .cart-footer { position: relative; }
+.cart-drawer .cart-items:has(.cart-item) + .cart-footer::before {
+ position: absolute;
+ right: 0;
+ bottom: 100%;
+ left: 0;
+ height: 20px;
+ content: "";
+ background: linear-gradient(rgba(12, 24, 38, 0), rgba(12, 24, 38, 0.09));
+ pointer-events: none;
+}
+
+/* Cart page closing actions at 1440. In a 928px space-between row Continue
+ shopping (144.6x38) sat at x60 and Clear cart (46.5x15, 10px underlined) at
+ x941.5, 736.9px apart, and Clear cart, which empties the whole cart, wore the
+ exact .remove-item treatment each line's own Remove wears. Pair them and give
+ the destructive one its own weight. Wrapped in its own min-width query: the
+ narrow layout already renders this row at 12px/44px and is untouched. */
+@media (min-width: 961px) {
+ .cart-actions { justify-content: flex-start; gap: var(--s-5); }
+ .cart-actions .remove-item { font-size: 12px; }
+}
+
+/* 390 cart page: .cart-row-image is a block link stretched by its grid row to
+ 84x157.3 around an 84x95 thumbnail, so 62.3px of the link, 40% of it, was
+ invisible clickable area under the image. Own max-width query. */
+@media (max-width: 960px) {
+ .cart-row-image { align-self: start; }
+}
+
+
+
+/* ============================================================================
+ Control states. Everything below is a state, a colour or a single scoped
+ component rule - nothing here changes page layout at any width.
+ ========================================================================= */
+
+/* Selected and hovered filters resolved to the identical computed value
+ (rgb(0,94,184), weight 400, transparent background on both), so hovering any
+ category made two rows read as selected at once. Selection now carries
+ weight; hover moves to --ink instead of borrowing the selection colour. */
+.filter-button[aria-pressed="true"] { color: var(--cobalt); font-weight: 650; }
+.filter-button:hover:not([aria-pressed="true"]) { color: var(--ink); }
+
+/* The card link is a stretched flex item: a 115px label in a 379px box, so its
+ focus ring drew a 385px rectangle with 264px of empty space inside it. */
+.education-card > .text-link { align-self: flex-start; }
+
+/* .empty-state is the full-width catalog empty state and carries 64px of block
+ padding. Reused inside the 320px suggestion popover it produced a 254px panel
+ holding 82.5px of text - 67.5% padding. */
+.search-results .empty-state { padding: var(--s-5) var(--s-4); }
+
+/* The Cmd-K hint is meaningless once the field holds a query, and it sat 11px
+ from the browser's own search-clear control. The clear control keeps working. */
+.search-input:not(:placeholder-shown) ~ .search-shortcut { display: none; }
+
+/* Stepper glyphs and the quantity input inherited the user-agent buttontext
+ black (#000000, off-palette) while the value beside them is --ink #101317. */
+.mini-quantity button,
+.quantity-control button,
+.quantity-control input { color: var(--ink); }
+
+/* .field input:focus sets outline:none and substitutes a 2px --cobalt-tint
+ ring that measures 1.14:1 against the white field. On a field in the error
+ state the border stays --danger, so that invisible ring is the only focus
+ signal there is. Restore the ring the rest of the site already uses. */
+.field input:focus-visible,
+.field select:focus-visible,
+.promo-input-row input:focus-visible,
+.collection-search:focus-visible,
+.search-input:focus-visible {
+ outline: 2px solid var(--cobalt);
+ outline-offset: 2px;
+}
+
+/* The stylesheet contained zero :active rules across 5,600 lines. Buttons lift
+ 1px on hover and then acknowledge the press with nothing at all. */
+.button:active,
+.add-button:active,
+.pdp-add:active,
+.drawer-cross-add:active,
+.checkout-cta:active,
+.icon-button:active { transform: translateY(1px); }
+
+
+
+/* ============================================================================
+ States you only reach by interacting. Each rule below was measured broken
+ before it was written; the layout rules are inside their own media query so
+ they land after the responsive blocks without touching desktop.
+ ========================================================================= */
+
+/* The header search reused the page-scale .empty-state, so the no-match panel
+ rendered 320x254 with only 120px of copy inside 128px of padding: taller than
+ the 320x155 two-result panel it replaces, centred against left-aligned rows,
+ and drawing a second border 1px inside the dropdown's own. */
+.search-results .empty-state {
+ padding: var(--s-4h) var(--s-4);
+ text-align: left;
+ border: 0;
+ border-radius: 0;
+}
+
+/* An empty cart stretched .cart-empty across the full 673px scroll region for
+ 122px of content (81.8% blank). With suggestions rendered underneath it, the
+ region sizes to its content instead of centring in a void. */
+.cart-items:has(.cart-empty) { align-content: start; }
+.cart-empty.is-compact { min-height: 0; padding-block: var(--s-6); }
+
+/* Two .field.is-half cells stretch to equal height, so the field carrying a
+ note pushed its error 41.6px below its neighbour's and put two lines of mono
+ copy between the input and its own error. Error sits under the control it
+ describes; the note follows it. */
+.field { display: flex; flex-direction: column; }
+.field > .field-error { order: 1; }
+.field > .field-note { order: 2; }
+
+@media (max-width: 640px) {
+ /* min-height:44px with margin-block:-12px put 49px menu rows on a 29px pitch:
+ each row overlapped the next by 20px, each row's bottom divider was drawn
+ inside the row below it, the last row hung 12px outside .mobile-nav, and
+ the bottom 41% of every row hit-tested to the next link. These rows already
+ clear 44px from their own padding, so they need no help. */
+ .mobile-nav a { min-height: 0; margin-block: 0; }
+
+ /* Same rule against 18px footer links: 44px boxes on a 32px pitch overlapped
+ by 12px, so the bottom of each link tapped the one beneath it. Keeping the
+ 44px target and dropping the negative margin gives a clean 44px pitch. */
+ .footer-column a { margin-block: 0; }
+
+ /* The simulated printed label is sized to 95% of the 96px card thumbnail at
+ this width, so the catalog code ran off the vial onto the countertop and
+ the name truncated mid-word. It is aria-hidden decoration and the card body
+ states name, strength and code 8px to its right. */
+ .product-grid > .product-card .product-image-label { display: none; }
+}
diff --git a/biologix-strategy-board/ovo-labs-warm/color-lab/cobalt/base.js b/biologix-strategy-board/ovo-labs-warm/color-lab/cobalt/base.js
new file mode 100644
index 0000000..f4cd6df
--- /dev/null
+++ b/biologix-strategy-board/ovo-labs-warm/color-lab/cobalt/base.js
@@ -0,0 +1,3742 @@
+(() => {
+ "use strict";
+
+ const body = document.body;
+ const root = document.querySelector("#site-root");
+ if (!root) return;
+
+ const BASE = body.dataset.base || ".";
+ const PAGE = body.dataset.page || "home";
+ const PRODUCT_SLUG = body.dataset.product || "";
+ const CART_KEY = "ovo-labs-demo-cart-v2";
+ const RECENT_KEY = "ovo-labs-recent-products-v1";
+ const ORDER_KEY = "ovo-labs-orders-v1";
+ const CHECKOUT_KEY = "ovo-labs-checkout-draft-v1";
+ const MAX_QUANTITY = 10;
+
+ const CHECKOUT_STEPS = [
+ { key: "contact", label: "Contact" },
+ { key: "shipping", label: "Shipping" },
+ { key: "delivery", label: "Delivery" },
+ { key: "payment", label: "Payment" },
+ { key: "review", label: "Review" },
+ ];
+
+ const SHIPPING_METHODS = [
+ { id: "standard", name: "Standard", detail: "3 to 5 business days", note: "Insulated mailer", price: 12 },
+ { id: "express", name: "Express", detail: "2 business days", note: "Insulated mailer, tracked", price: 18 },
+ { id: "cold", name: "Cold chain overnight", detail: "Next business day by 12:00", note: "Gel pack, temperature logger", price: 45 },
+ ];
+
+ const PROMO_CODES = {
+ "OVO-FIRST": { label: "First order", type: "percent", value: 10 },
+ "COLDCHAIN": { label: "Free cold chain", type: "shipping", value: 100 },
+ };
+
+ /* Analytical records per catalog entry.
+ The site's whole claim is "see what is reported, see what is not", but every
+ field was hardcoded to "not reported", which inverted the pitch into "we have
+ no data". These are the reported panels. Sterility and endotoxin are left
+ genuinely unreported on lyophilized research material, which is both accurate
+ and what makes the reported-vs-not distinction visible at all. */
+ const TESTING = {
+ "retatrutide": { lot: "RT-2411-A", date: "2026-06-18", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "10.2 mg"], purity: ["RP-HPLC, area %", "99.1%"] },
+ "semaglutide": { lot: "SG-2409-C", date: "2026-06-02", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "10.2 mg"], purity: ["RP-HPLC, area %", "98.7%"] },
+ "tirzepatide": { lot: "TZ-2410-B", date: "2026-06-11", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "10.1 mg"], purity: ["RP-HPLC, area %", "99.4%"] },
+ "cagrilintide": { lot: "CG-2408-A", date: "2026-05-27", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "9.8 mg"], purity: ["RP-HPLC, area %", "98.2%"] },
+ "bpc-157": { lot: "BP-2412-D", date: "2026-06-24", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "10.0 mg"], purity: ["RP-HPLC, area %", "99.0%"] },
+ "tb-500": { lot: "TB-2411-B", date: "2026-06-15", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "10.2 mg"], purity: ["RP-HPLC, area %", "98.9%"] },
+ "ipamorelin": { lot: "IP-2410-A", date: "2026-06-08", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "5.0 mg"], purity: ["RP-HPLC, area %", "99.2%"] },
+ "cjc-1295": { lot: "CJ-2409-E", date: "2026-06-04", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "5.0 mg"], purity: ["RP-HPLC, area %", "98.5%"] },
+ "bpc-tb-blend": { lot: "BX-2412-A", date: "2026-06-21", identity: ["RP-HPLC / ESI-MS", "Both components conform"], content: ["RP-HPLC, 214 nm", "10.0 + 10.0 mg"], purity: ["RP-HPLC, area %", "98.4%"] },
+ "cjc-ipamorelin-blend": { lot: "CX-2411-C", date: "2026-06-13", identity: ["RP-HPLC / ESI-MS", "Both components conform"], content: ["RP-HPLC, 214 nm", "5.0 + 5.0 mg"], purity: ["RP-HPLC, area %", "98.8%"] },
+ };
+
+ /* Sample references are derived from the lot so the analytical record can name
+ the tested sample without a second hand-maintained table drifting out of sync. */
+ function sampleReference(lot) {
+ return `SMP-${String(lot).replace(/-/g, "")}`;
+ }
+
+ /* The lot number is the only thing that ties the vial in the box to the
+ analytical record on the site, so it has to be addressable and it has to
+ travel with the purchase. These four helpers are the whole mechanism:
+ resolve a lot to its catalog entry, build the record URL, and expand any
+ cart line into its lots. A set carries one lot per component, not a single
+ blended one, because that is what would be printed on the two vials. */
+ function productForLot(lot) {
+ const key = String(lot || "").trim().toUpperCase();
+ if (!key) return null;
+ const slug = Object.keys(TESTING).find((entry) => TESTING[entry].lot.toUpperCase() === key);
+ return slug ? PRODUCTS.find((product) => product.slug === slug) || null : null;
+ }
+
+ function lotPath(lot) {
+ return path(`lot-record.html?lot=${encodeURIComponent(lot)}`);
+ }
+
+ function lotTrace(slug) {
+ const item = ALL_CART_ITEMS.find((entry) => entry.slug === slug);
+ if (!item) return [];
+ return (item.productSlugs || [slug])
+ .map((componentSlug) => {
+ const record = testingFor(componentSlug);
+ if (!record) return null;
+ const product = PRODUCTS.find((entry) => entry.slug === componentSlug);
+ return {
+ slug: componentSlug,
+ name: product ? product.name : componentSlug,
+ code: product ? product.code : "",
+ lot: record.lot,
+ date: record.date,
+ };
+ })
+ .filter(Boolean);
+ }
+
+ /* One "Lot X, reported Y" row per component, named per component only when a
+ line carries more than one, so a single vial is never labelled twice. */
+ function lotTraceRows(slug, options = {}) {
+ const { link = true } = options;
+ const entries = lotTrace(slug);
+ return entries.map((entry) => {
+ const label = `${entries.length > 1 ? `${escapeHtml(entry.name)} · ` : ""}Lot ${escapeHtml(entry.lot)} · reported ${escapeHtml(entry.date)}`;
+ return link
+ ? `${label}`
+ : `${label}`;
+ });
+ }
+
+ function testingFor(slug) {
+ return TESTING[slug] || null;
+ }
+
+ /* The reported mass and the "% of label" figure used to be one hand-typed
+ string, so seven of ten entries contradicted their own labeled amount. The
+ measured mass is the only stored value now; the percentage is derived from
+ it against the product's labeled amount, and if either side cannot be parsed
+ the percentage is omitted rather than guessed. */
+ function contentResult(slug) {
+ const record = testingFor(slug);
+ if (!record) return "Result not reported";
+ const measured = String(record.content[1]).replace(/\s*\([^)]*\)\s*$/, "").trim();
+ const product = PRODUCTS.find((entry) => entry.slug === slug);
+ const masses = (measured.match(/\d+(?:\.\d+)?/g) || []).map(Number);
+ const labeled = product ? Number.parseFloat(product.strength) : Number.NaN;
+ if (!masses.length || !Number.isFinite(labeled) || labeled <= 0) return measured;
+ const total = masses.reduce((sum, value) => sum + value, 0);
+ return `${measured} (${Math.round((total / labeled) * 100)}% of label)`;
+ }
+
+ /* One renderer for all three surfaces that used to hardcode these rows, so a
+ product can never show a reported result on one page and a blank on another. */
+ function testingFields(slug) {
+ const t = testingFor(slug);
+ return [
+ { label: "Identity", method: t ? t.identity[0] : "Method not assigned", result: t ? t.identity[1] : "Result not reported", reported: Boolean(t) },
+ { label: "Content / mass", method: t ? t.content[0] : "Method not assigned", result: t ? contentResult(slug) : "Result not reported", reported: Boolean(t) },
+ { label: "Purity profile", method: t ? t.purity[0] : "Method not assigned", result: t ? t.purity[1] : "Result not reported", reported: Boolean(t) },
+ { label: "Sterility / endotoxin", method: "Not represented", result: "Result not reported", reported: false },
+ ];
+ }
+
+ /* Inventory. Availability is data, not markup, so a single edit here moves a
+ product between states and every surface follows: catalog card, PDP buy box,
+ search result, cart, and the checkout gate.
+
+ unavailable = cannot be sold. Retatrutide and cagrilintide are not approved
+ compounds. If the operating position ever changes for a given entry, flip its
+ line here and nothing else needs to be touched.
+
+ LOW_STOCK_AT is the threshold where the remaining count is surfaced. Below it
+ the exact number shows; above it the page just says in stock, because a
+ precise count on a well-stocked item is noise. */
+ const LOW_STOCK_AT = 6;
+
+ /* Restricted is a reason, not just a zero. Two compounds are not offered as a
+ position rather than as a stock accident, and a shopper who sees the same
+ grey "Unavailable" pill on both cannot tell the difference. Stock stays 0
+ either way; this only carries the reason to the surfaces that show it. */
+ const RESTRICTED = {
+ "retatrutide":
+ "OVO Labs does not offer retatrutide. It has no approved reference product and no established compendial standard to test against, so we cannot state what conformance would mean. The entry stays listed so the catalog is complete and the position is on the record.",
+ "cagrilintide":
+ "OVO Labs does not offer cagrilintide. It has no approved reference product and no established compendial standard to test against, so we cannot state what conformance would mean. The entry stays listed so the catalog is complete and the position is on the record.",
+ };
+
+ function restrictionFor(slug) {
+ return RESTRICTED[slug] || "";
+ }
+
+ const STOCK = {
+ "retatrutide": 0,
+ "cagrilintide": 0,
+ "tirzepatide": 24,
+ "semaglutide": 31,
+ "bpc-157": 48,
+ "tb-500": 12,
+ "cjc-1295": 37,
+ "ipamorelin": 52,
+ "cjc-ipamorelin-blend": 4,
+ "bpc-tb-blend": 9,
+ "metabolic-reference-set": 0,
+ "peptide-pair-set": 6,
+ "secretagogue-reference-set": 15,
+ };
+
+ function stockFor(slug) {
+ const units = STOCK[slug];
+ return typeof units === "number" ? units : 0;
+ }
+
+ function availability(slug) {
+ const units = stockFor(slug);
+ if (restrictionFor(slug)) {
+ return { state: "unavailable", units: 0, label: "Not offered", sellable: false, restricted: true };
+ }
+ if (units <= 0) return { state: "unavailable", units: 0, label: "Unavailable", sellable: false, restricted: false };
+ if (units <= LOW_STOCK_AT) return { state: "low", units, label: `Only ${units} left`, sellable: true, restricted: false };
+ return { state: "in", units, label: "In stock", sellable: true, restricted: false };
+ }
+
+ /* A bundle can only be as available as its scarcest component. Without this a
+ set could be sold while one of the vials inside it is unavailable. */
+ function bundleAvailability(bundle) {
+ if (!bundle || !bundle.productSlugs) return availability(bundle ? bundle.slug : "");
+ /* A set that contains a compound we will not offer is itself not offered, and
+ must say so with the same reason rather than reading as a stock shortage. */
+ if (bundle.productSlugs.some((slug) => restrictionFor(slug))) {
+ return { state: "unavailable", units: 0, label: "Not offered", sellable: false, restricted: true };
+ }
+ const own = availability(bundle.slug);
+ if (!own.sellable) return own;
+ const componentUnits = bundle.productSlugs.map((slug) => stockFor(slug));
+ const scarcest = Math.min(...componentUnits, own.units);
+ if (scarcest <= 0) return { state: "unavailable", units: 0, label: "Unavailable", sellable: false, restricted: false };
+ if (scarcest <= LOW_STOCK_AT) return { state: "low", units: scarcest, label: `Only ${scarcest} left`, sellable: true, restricted: false };
+ return { state: "in", units: scarcest, label: "In stock", sellable: true, restricted: false };
+ }
+
+ function availabilityFor(slug) {
+ const bundle = (typeof BUNDLES !== "undefined" ? BUNDLES : []).find((b) => b.slug === slug);
+ return bundle ? bundleAvailability(bundle) : availability(slug);
+ }
+
+ /* Any line in the cart that can no longer be sold. Stock can change while a
+ cart sits in storage, so this is checked at render time on both the cart and
+ the checkout rather than trusted from when the item was added. */
+ /* Curated rails are recommendations, so leading them with something that
+ cannot be bought wastes the strongest slot on the page. Sort is stable, so
+ entries keep their editorial order inside each group. The full catalog grid
+ still lists every entry, including the two that are not offered, so the
+ position on them stays visible. There it only applies to the Featured order,
+ and never overrides an explicit name or price sort. */
+ const sellableFirst = (list) =>
+ [...list].sort(
+ (a, b) => (availabilityFor(b.slug).sellable === true) - (availabilityFor(a.slug).sellable === true),
+ );
+
+ /* A cart line can go bad two different ways while it sits in storage: the
+ entry stops being sellable, or stock drops below the saved quantity. They
+ need different wording, so they are classified rather than merged. */
+ function cartLineIssue(line) {
+ const stock = availabilityFor(line.slug);
+ const item = cartItemData(line.slug);
+ const name = item ? item.name : line.slug;
+ if (!stock.sellable) {
+ return { type: stock.restricted ? "restricted" : "unavailable", name, units: 0 };
+ }
+ if (line.quantity > stock.units) {
+ return { type: "partial", name, units: stock.units };
+ }
+ return null;
+ }
+
+ function blockedCartLines() {
+ return cart.filter((line) => cartLineIssue(line));
+ }
+
+ /* The per-order ceiling is whichever runs out first, the order cap or the
+ shelf. Every quantity control reads it from here so the drawer, the cart
+ page and the PDP cannot disagree about where the "+" stops. */
+ function cartLineCeiling(slug) {
+ const stock = availabilityFor(slug);
+ return stock.sellable ? Math.min(MAX_QUANTITY, stock.units) : 0;
+ }
+
+ function cartLineAtCap(line) {
+ const ceiling = cartLineCeiling(line.slug);
+ return ceiling > 0 && line.quantity >= ceiling;
+ }
+
+ function stockBadge(slug) {
+ const a = availabilityFor(slug);
+ return `${escapeHtml(a.label)}`;
+ }
+
+ const TAX_RATE = 0.0725;
+ const FREE_SHIPPING_THRESHOLD = 500;
+
+ const US_STATES = ["AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY","DC"];
+
+ const money = new Intl.NumberFormat("en-US", {
+ style: "currency",
+ currency: "USD",
+ maximumFractionDigits: 0,
+ });
+
+ const PRODUCTS = [
+ {
+ slug: "retatrutide",
+ code: "OVO-001",
+ name: "Retatrutide",
+ category: "GLP-1 & Metabolic",
+ categoryKey: "metabolic",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 105,
+ descriptor: "Synthetic triple-agonist incretin-class research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A focused catalog entry for retatrutide research reference work. Molecule, labeled amount, format, and testing status are presented together.",
+ },
+ {
+ slug: "tirzepatide",
+ code: "OVO-002",
+ name: "Tirzepatide",
+ category: "GLP-1 & Metabolic",
+ categoryKey: "metabolic",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 100,
+ descriptor: "Synthetic dual incretin-receptor agonist research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A clear catalog entry for tirzepatide reference research, with labeled amount, product identity, format, and testing status in one decision block.",
+ },
+ {
+ slug: "semaglutide",
+ code: "OVO-003",
+ name: "Semaglutide",
+ category: "GLP-1 & Metabolic",
+ categoryKey: "metabolic",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 90,
+ descriptor: "Synthetic GLP-1 receptor agonist research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A structured semaglutide catalog entry with direct access to the product’s testing status and comparison-ready product facts.",
+ },
+ {
+ slug: "cagrilintide",
+ code: "OVO-004",
+ name: "Cagrilintide",
+ category: "GLP-1 & Metabolic",
+ categoryKey: "metabolic",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 89,
+ descriptor: "Long-acting amylin-analogue research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A cagrilintide research catalog entry organized around identity, labeled amount, format, and testing status.",
+ },
+ {
+ slug: "bpc-157",
+ code: "OVO-005",
+ name: "BPC-157",
+ category: "Research Peptides",
+ categoryKey: "research",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 60,
+ descriptor: "Synthetic pentadecapeptide research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A BPC-157 catalog entry with a compact, neutral specification surface and visible testing status.",
+ },
+ {
+ slug: "tb-500",
+ code: "OVO-006",
+ name: "TB-500",
+ category: "Research Peptides",
+ categoryKey: "research",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 68,
+ descriptor: "Synthetic thymosin beta-4 fragment research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A TB-500 catalog entry that puts identity, labeled amount, format, price, and testing status in a single decision layout.",
+ },
+ {
+ slug: "cjc-1295",
+ code: "OVO-007",
+ name: "CJC-1295",
+ category: "Growth Hormone Research",
+ categoryKey: "growth",
+ strength: "5 mg",
+ format: "Lyophilized vial",
+ price: 52,
+ descriptor: "Synthetic GHRH-analogue research compound.",
+ facts: ["5 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A CJC-1295 catalog entry built to make the exact product easy to find, compare, and inspect.",
+ },
+ {
+ slug: "ipamorelin",
+ code: "OVO-008",
+ name: "Ipamorelin",
+ category: "Growth Hormone Research",
+ categoryKey: "growth",
+ strength: "5 mg",
+ format: "Lyophilized vial",
+ price: 45,
+ descriptor: "Synthetic growth-hormone secretagogue research compound.",
+ facts: ["5 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "An ipamorelin research catalog entry with simple product identification, comparable specifications, and visible testing status.",
+ },
+ {
+ slug: "cjc-ipamorelin-blend",
+ code: "OVO-009",
+ name: "CJC-1295 + Ipamorelin",
+ category: "Peptide Blends",
+ categoryKey: "blends",
+ strength: "10 mg",
+ format: "Dual-compound vial",
+ price: 92,
+ descriptor: "Equal-part GHRH analogue and secretagogue research blend.",
+ facts: ["5 mg + 5 mg labeled", "Single-vial blend format", "Identity, content, purity reported"],
+ overview:
+ "A two-compound blend shown as its own product, with each constituent and the testing status kept explicit.",
+ },
+ {
+ slug: "bpc-tb-blend",
+ code: "OVO-010",
+ name: "BPC-157 + TB-500",
+ category: "Peptide Blends",
+ categoryKey: "blends",
+ strength: "20 mg",
+ format: "Dual-compound vial",
+ price: 118,
+ descriptor: "Equal-part BPC-157 and TB-500 research blend.",
+ facts: ["10 mg + 10 mg labeled", "Single-vial blend format", "Identity, content, purity reported"],
+ overview:
+ "A two-compound blend with its own product identity, labeled composition, and testing status.",
+ },
+ ];
+
+ const BUNDLES = [
+ {
+ slug: "metabolic-reference-set",
+ code: "OVO-S01",
+ name: "Metabolic Reference Set",
+ category: "Curated Set",
+ strength: "2 vials",
+ format: "Retatrutide + Cagrilintide",
+ price: 169,
+ descriptor: "Two distinct incretin and amylin-class research references.",
+ productSlugs: ["retatrutide", "cagrilintide"],
+ },
+ {
+ slug: "peptide-pair-set",
+ code: "OVO-S02",
+ name: "Peptide Pair Set",
+ category: "Curated Set",
+ strength: "2 vials",
+ format: "BPC-157 + TB-500",
+ price: 108,
+ descriptor: "Two individually identified research peptide references.",
+ productSlugs: ["bpc-157", "tb-500"],
+ },
+ {
+ slug: "secretagogue-reference-set",
+ code: "OVO-S03",
+ name: "Secretagogue Reference Set",
+ category: "Curated Set",
+ strength: "2 vials",
+ format: "CJC-1295 + Ipamorelin",
+ price: 82,
+ descriptor: "Two separate growth-hormone research references.",
+ productSlugs: ["cjc-1295", "ipamorelin"],
+ },
+ ];
+
+ const CATEGORIES = [
+ { key: "all", name: "Shop All", note: `${PRODUCTS.length} catalog entries` },
+ { key: "metabolic", name: "GLP-1 & Metabolic", note: "4 individual compounds" },
+ { key: "research", name: "Research Peptides", note: "2 individual compounds" },
+ { key: "growth", name: "Growth Hormone Research", note: "2 individual compounds" },
+ { key: "blends", name: "Peptide Blends", note: "2 defined blends" },
+ ];
+
+ const ARTICLES = [
+ {
+ slug: "reading-testing-status",
+ kind: "Testing guide · 4 minutes",
+ title: "How to read a testing status",
+ summary: "A result, a specification, and an unreported field are three different things.",
+ },
+ {
+ slug: "choosing-by-molecule",
+ kind: "Catalog guide · 4 minutes",
+ title: "Shop by molecule, not by hype",
+ summary: "A practical catalog framework for comparing identity, strength, format, and evidence state.",
+ },
+ {
+ slug: "coa-boundaries",
+ kind: "Document guide · 5 minutes",
+ title: "What a COA can and cannot show",
+ summary: "Why a document’s method and scope matter more than the letters at the top.",
+ },
+ ];
+
+ const ALL_CART_ITEMS = [...PRODUCTS, ...BUNDLES];
+
+ const icons = {
+ menu:
+ '',
+ cart:
+ '',
+ arrow: '→',
+ check:
+ '',
+ shield:
+ '',
+ lock:
+ '',
+ snow:
+ '',
+ doc:
+ '',
+ };
+
+ function path(relative) {
+ return `${BASE}/${relative}`.replace(/\/\.\//g, "/");
+ }
+
+ function productPath(product) {
+ return path(`peptides/${product.slug}.html`);
+ }
+
+ function escapeHtml(value) {
+ return String(value)
+ .replaceAll("&", "&")
+ .replaceAll("<", "<")
+ .replaceAll(">", ">")
+ .replaceAll('"', """)
+ .replaceAll("'", "'");
+ }
+
+ function track(event, properties = {}) {
+ const payload = {
+ event,
+ page_type: PAGE,
+ timestamp: new Date().toISOString(),
+ ...properties,
+ };
+ window.dataLayer = window.dataLayer || [];
+ window.dataLayer.push(payload);
+ window.dispatchEvent(new CustomEvent("ovolabs:analytics", { detail: payload }));
+ }
+
+ window.OvoLabsAnalytics = {
+ events: () => [...(window.dataLayer || [])],
+ clear: () => {
+ window.dataLayer = [];
+ },
+ };
+
+ function activePage(name) {
+ if (name === "shop" && ["collection", "product"].includes(PAGE)) return true;
+ if (name === "testing" && ["testing", "lot-record"].includes(PAGE)) return true;
+ if (name === "bundles" && PAGE === "bundles") return true;
+ if (name === "learn" && ["learn", "article"].includes(PAGE)) return true;
+ if (name === "about" && ["about", "policy"].includes(PAGE)) return true;
+ return false;
+ }
+
+ function header() {
+ const nav = [
+ ["shop", "Shop", "catalog.html"],
+ ["bundles", "Bundles", "bundles.html"],
+ ["testing", "Testing & COAs", "testing.html"],
+ ["learn", "Learn", "notes.html"],
+ ];
+ const categoryLinks = CATEGORIES.map(
+ (category) =>
+ `${category.name}`,
+ ).join("");
+
+ return `
+ Skip to content
+
+ Fictional concept storefront. Nothing here is real, stocked, or for sale.
+
+ ${(() => {
+ const a = availabilityFor(bundle.slug);
+ /* A set held back on position is not a sold-out set, but it is still a
+ catalog position: the price stays on the record and the terminal row
+ keeps the same shape as the two sellable cards, so all three sets
+ align on one baseline instead of one card carrying a paragraph. */
+ const held = items.filter((product) => restrictionFor(product.slug)).map((product) => product.name);
+ return `
+ `;
+ })()}
+
+
+ `;
+ }
+
+ /* One derived component for the drawer and the cart page, so the two surfaces
+ can never disagree about how far an order sits from free shipping. The fill
+ is cobalt: it is progress, not a verified result, so green is not available
+ to it. The met label is the one allowed green, because at that point the
+ free shipping is applied rather than promised. */
+ function shipProgressBar(subtotal, options = {}) {
+ const { link = false } = options;
+ const remaining = Math.max(0, FREE_SHIPPING_THRESHOLD - subtotal);
+ const met = remaining <= 0;
+ const percent = Math.min(100, Math.max(0, Math.round((subtotal / FREE_SHIPPING_THRESHOLD) * 100)));
+ const pending = `Add ${money.format(remaining)} for free standard shipping`;
+ return `
+
Get catalog additions, document updates, and practical explainers. No dosing or medical-use content.
+
+
+
+
+
+ `;
+ }
+
+ function homePage() {
+ /* One featured entry for the whole page. The hero chip, the hero testing card
+ and the testing-status document each used to pick their own subject, and
+ two of the three picked the entry that cannot be bought. */
+ const featured = sellableFirst(PRODUCTS)[0];
+ const featuredTesting = testingFor(featured.slug);
+ return `
+
+
+
+
Peptide research catalog
+
Peptides, without the mystery.
+
A focused catalog with clear formats and a fast path from search to cart. Every entry names what was tested and what was not.
+ ${(() => {
+ /* The proof card floated on the photograph at 200px wide, and the
+ phone breakpoint set it to display:none, so the one contrast
+ this catalog is built on was a sticker at 1440 and did not
+ exist at 390. It moves into the copy column and becomes a
+ record: subject and lot, the method beside each measured value,
+ and the unreported row inside the same table rather than in a
+ footnote. Reported values hold in ink at 650, the unreported
+ row recedes to text-3 at 500, and the date carries the reported
+ tag. That is the grammar the dark testing band already uses. */
+ const record = featuredTesting;
+ if (!record) return "";
+ return `
+
+
+ ${escapeHtml(featured.name)} · Lot ${escapeHtml(record.lot)}
+ Reported ${escapeHtml(record.date)}
+
+
Use broad categories when you are exploring. Use the persistent search when you already know the molecule or catalog code.
+
+ ${categoryRail()}
+
+
+
+
+
+
Testing & COAs
+
See what is reported. See what is not.
+
Every product carries a testing status beside the decision. When a report exists, its methods, sample reference, date, and scope belong together. When it does not, the page says so.
Filter by research area, search by molecule or product code, then compare strength, format, testing status, and price without leaving the grid.
+
+
+
+
+
+
+
+
+
+
+
+
+
${PRODUCTS.length} catalog entries
+
+
+
+
+
+
+
+
+
+
Not sure where to start?
+
Narrow the grid, then read the lot.
+
+
The research-area buttons, the search field and the sort control above are the filters on this page. Every entry then carries the same three reported fields, identity, content and purity, against a named lot and report date. Sterility and endotoxin stay unreported on all ten. The testing page lists every lot in one table and explains what each method does and does not establish.
Search an OVO Labs product name or code to see the testing status for its current lot. Identity, content and purity are reported per lot, each with its method, sample reference and report date. Sterility and endotoxin are not represented, and no result extends past the sample and scope it names.
+
+
+
+
+
+
+
+
The framework
+
Four fields. Four different questions.
+
A single number cannot answer identity, amount, composition, and microbiological questions at once.
+
+
+
+
IdentityDoes the observed analytical profile match the intended compound?REPORTED PER LOT
+
Content / massHow much material is reported under the selected method?REPORTED PER LOT
+
Purity profileWhat relative composition is reported under the selected method?REPORTED PER LOT
+
Sterility / endotoxinWere separate microbiological methods represented?NOT REPRESENTED
+
+
${icons.shield}Third-party verified. Independent US laboratory.
+
Analysis performed by an independent contract laboratory in the United States. Methods, sample reference, lot and report date are shown per entry. OVO Labs does not perform its own release testing.
+
+
+
+
+
+
+
+
Catalog status
+
Every current entry
+
+
Every status is intentionally explicit instead of dressing absence up as proof.
+ ${accordion([
+ [
+ "Does a purity result prove identity?",
+ "Not by itself. Identity and relative purity answer different questions and may require different analytical methods.",
+ ],
+ [
+ "Does a reported result prove every vial is the same?",
+ "No. A result applies only to the identified sample and method scope. Sampling, chain of custody, and lot linkage remain separate questions.",
+ ],
+ [
+ "Does a COA establish suitability for human use?",
+ "No. OVO Labs does not present human-use, safety, efficacy, clinical, administration, or preparation information.",
+ ],
+ [
+ "Why show fields with no result?",
+ "Because a visible empty state is more informative than a badge that leaves the scope ambiguous. Identity, content and purity are reported per lot. Sterility and endotoxin are not represented on lyophilized research material, so that field stays visibly empty rather than being quietly dropped.",
+ ],
+ ])}
+
Short guides for comparing peptide catalog entries, interpreting testing states, and understanding what a document’s scope does and does not establish.
+ ${accordion([
+ ["Is OVO Labs a real company?", "No. It is a fictional, non-operational storefront concept. Nothing is stocked, sold, shipped, tested, or transacted."],
+ ["Why show concept prices?", "Prices make the ecommerce prototype complete enough to evaluate its hierarchy, cart states, sorting, and merchandising. They are not offers for sale."],
+ ["Why are there no ratings?", "No customers or reviews exist. Empty or invented social proof would make the interface less trustworthy, not more."],
+ ["Can I check out?", "Yes. Cart, contact, shipping, delivery method, payment review, and order confirmation all work end to end. The payment step is the one exception: no card is collected and no charge is possible."],
+ ])}
+
What each lot reports, what “not represented” means, how browser storage works, and exactly where this fictional store stops.
+
+
+
+
+
+
OVO Labs FAQ
+
The complete store boundary.
+
+
+ ${accordion([
+ ["Can I place an order?", "You can complete the checkout and receive an order reference, which is recorded in this browser. Because OVO Labs is a fictional concept storefront, nothing is charged, stocked, shipped, or fulfilled."],
+ ["What does “not represented” mean?", "It means no method for that attribute was run, so there is no result to publish. On this catalog it applies to sterility and endotoxin on every entry. It does not mean the item passed, failed, or is waiting on a promised result, and no other reported field covers it."],
+ ["Does a COA prove a product is safe, effective, or sterile?", "No. A document supports only the measurements, sample, method, date, and scope it identifies. Unreported attributes should not be inferred."],
+ ["Where do the purity percentages come from?", `Each entry reports a purity figure by RP-HPLC, area %, for one identified lot, published with that lot number and the report date. Retatrutide reports ${testingFor("retatrutide").purity[1]} for lot ${testingFor("retatrutide").lot}, reported ${testingFor("retatrutide").date}. The figure describes the relative composition of the tested sample under those method conditions. It does not establish sterility, endotoxin state, or suitability for any use.`],
+ ["Does this catalog provide human-use information?", "No dosing, preparation, administration, safety, efficacy, medical, or human-use guidance is provided."],
+ ["Are the product descriptions medical advice?", "No. They identify proposed catalog references and formats only."],
+ ["How does search work?", "Search by peptide name, category, blend name, or catalog code such as OVO-001. Keyboard users can move through predictive results with the arrow keys."],
+ ["Why are there no customer reviews?", "There are no customers or order history. OVO Labs does not fabricate ratings, testimonials, or purchase activity."],
+ ["What information does this site store?", "Cart contents and recently viewed product codes can be stored locally in your browser. Nothing is transmitted to a company or server."],
+ ["How do I remove locally saved information?", "Use Clear cart in the cart drawer. You can also clear this site’s browser storage to remove all local state."],
+ ])}
+
+
+
+
+
+
Ready to browse?
Search all ten entries or inspect the testing framework first.
A peptide store designed around finding and deciding.
+
OVO Labs is designed around a simple idea: product information should be easy to scan, and missing evidence should be impossible to miss.
+
+
+
+
+
+
The premise
+
Retail clarity can do more work than scientific theater.
+
+
+
The strongest specialist stores help people find the right entry quickly, compare it in place, and understand the next action. OVO Labs applies that discipline without inventing operations or proof.
+
+
Catalog modelFocused selection, stable product codes, and flat product routes
+
Discovery modelPersistent search, visual category paths, filters, and related entries
+
Product modelIdentity, labeled amount, format, price, and testing status in one decision block
+
Proof modelOnly substantiated facts; no invented ratings, laboratories, results, or popularity
+
+
+
+
+
+
+
+
+
Operating principles
+
What the brand refuses to fake
+
+
+
+
No decorative proof
An analytical figure appears only with its method, lot and report date attached. Ratings, testimonials, seals, laboratory photography and quality slogans do not appear at all, and a field with no method behind it is labeled unreported rather than dressed up.
+
No urgency machinery
No stock countdown, sale timer, crossed-out anchor price, or invented best-seller ranking pushes the click.
+
No fake transaction
The full purchase path is here to evaluate, from cart to order confirmation. Payment is the deliberate exception: no card is captured and no charge is possible.
+
+
+
+
+
+
+
Who we are
+
The entity behind the catalog, in full.
+
+
+
A store that will not name itself is asking for trust it has not offered. Every line below is fictional. Every line below is stated anyway, because a concept that leaves them blank cannot be judged on the thing it claims to be.
+
+
Operating entityOVO Labs LLC, an Oregon limited liability company
+
Registered office1420 NW Marshall Street, Suite 300, Portland, Oregon 97209
+
FulfillmentOne facility in Portland. Packing, cold-chain assembly and logger sealing all happen there
+
Analytical workAn independent US contract laboratory. OVO Labs runs no release testing of its own and names the method, sample and date on every lot it reports
This storefront demonstrates an interface, not an operation.
+
OVO Labs has no company operations, products, inventory, customers, testing, fulfillment, payments, or ordering capability.
+
+
+
+
What the prototype does
+
It demonstrates ecommerce information architecture: product discovery, category filtering, predictive search, product pages, testing-status presentation, a learning center, and a browser-local demo cart.
+
What the prototype does not do
+
+
It does not offer, sell, reserve, quote, or ship material.
+
It does not collect payment, customer accounts, addresses, or submitted email data.
+
It does not claim a named laboratory, an accreditation, a regulatory approval, a customer, a review, a rating, or a sales record.
+
The lots, analytical results, unit counts, prices and delivery windows shown are demonstration data for a fictional catalog, not records of material that exists.
+
It does not provide dosing, preparation, administration, clinical, therapeutic, safety, efficacy, or human-use information.
+
+
The cart is local. Its contents and any order reference are stored only in this browser. Checkout runs end to end without taking payment, and clearing browser storage removes both.
+
Fulfillment and resolution
+
This is the policy the concept operates under, so the checkout and the confirmation page can point at a stated position rather than an implied one.
+
+
Damaged or wrong on arrival: photograph the box, the mailer and the vial label within 72 hours and open a case with the order reference.
+
Wrong item or wrong labeled amount: replacement from the same or a later lot at no cost.
+
Broken vial in transit: replacement at no cost.
+
Cold-chain logger above range: replaced regardless of vial condition.
+
Unopened vials: returnable within 14 days, refunded to the original method less outbound shipping.
+
Opened vials: not returnable, because a returned vial cannot be re-verified.
+
+
How a case is opened
+
One route and one thread: email the support mailbox with the order reference in the subject line. There is no phone queue and no ticket portal, because a single written thread keeps the photographs, the lot number and the decision in one place.
The lot number printed on the vial label, which is what the claim is checked against.
+
Photographs of the outer box, the inside of the mailer, the vial, and the temperature logger if one shipped.
+
+
What happens next:
+
+
Acknowledgement within one business day, naming anything still missing from the case.
+
A written decision within three business days of a complete case, with the reason stated.
+
Approved replacements ship on the next fulfillment day by the delivery method originally paid for, at no cost, with the new lot number quoted before dispatch.
+
Approved returns get a prepaid label and a return reference. The refund is released within five business days of the vial arriving back.
+
+
After 72 hours, or without the lot number, a case can still be read but cannot be settled as a transit claim, because the carrier record has closed and the condition on arrival can no longer be established.
+
None of this can be exercised. Nothing is picked, packed or shipped here, so no case can arise and the mailbox above is fictional. The terms are written out because the position a storefront takes before anything goes wrong is part of what is being evaluated.
+
Why the banner stays visible
+
The thin top notice keeps the concept status clear on every route while allowing the rest of the prototype to be evaluated as a real ecommerce design.
+
+ `;
+ }
+
+ /* eligibility.html shipped with data-page="policy", so it rendered the policies
+ page verbatim: two routes, one document, and a checkout consent line that
+ pointed at terms which did not exist. It gets its own renderer, selected off
+ the pathname so the shell does not have to change. */
+ function eligibilityPage() {
+ return `
+
+
+
Eligibility
+
Who this catalog is offered to.
+
OVO Labs presents research material for laboratory and research settings only. This page states the restriction, the compounds the catalog will not sell, and where material would ship.
+
+
+
+
Who may order
+
Material is offered to laboratory and research settings, and to the people who work in them, for in vitro and research use. Placing an order is an affirmative statement that the material will be used that way.
+
Not for human or veterinary use
+
Nothing in this catalog is a drug, a supplement, a food, a cosmetic, or a medical device. It is not for human use, veterinary use, therapeutic use, diagnostic use, or household use. No dosing, preparation, administration, safety, or efficacy information is provided anywhere on this site, and none will be provided on request.
+
The consent at checkout is the same statement. Confirming it is confirming that the order is for laboratory research use only.
They are kept in the catalog rather than deleted, so the position is visible instead of silent.
+
Where it would ship
+
The concept ships within the United States only, to a street address rather than a mailbox service, from a single US fulfillment center. It does not ship internationally, because export control and import rules for research material differ per destination and this concept does not represent that work.
+
What this page is not
+
OVO Labs is a fictional concept storefront. This eligibility statement describes the rules the concept operates under. It does not create a customer relationship, a supply agreement, or a legal obligation, and no material exists to ship.
+
+ `;
+ }
+
+ function productPage(product) {
+ if (!product) return notFoundPage();
+ const related = PRODUCTS.filter(
+ (candidate) => candidate.slug !== product.slug && candidate.categoryKey === product.categoryKey,
+ );
+ /* The old fallback REPLACED the true siblings with the first four catalog
+ entries whenever a category held fewer than three of them, so most pages
+ showed two entries that cannot be bought and hid the one genuine sibling.
+ Siblings lead, the rest of the catalog backfills, unsellable entries sink. */
+ const relatedRail = sellableFirst([
+ ...related,
+ ...PRODUCTS.filter((candidate) => candidate.slug !== product.slug && !related.includes(candidate)),
+ ]).slice(0, 4);
+
+ return `
+
+ ${(() => {
+ const stock = availabilityFor(product.slug);
+ /* A compound we decline to offer is a position, not a stock
+ shortage, so it gets a stated reason where the buy control sits
+ instead of a grey disabled button that reads as "sold out". */
+ if (stock.restricted) {
+ return `
+
+ ${[
+ /* The restricted path returns above this list, so the old
+ `restricted ? [...] : [...]` fork could never take its first
+ branch: three marks were written for the not-offered entry and
+ zero of them ever rendered. The dead branch is removed rather
+ than left implying a state this list can reach. */
+ testingFor(product.slug) ? `${testingFor(product.slug).purity[1]} purity` : "Purity reported",
+ "Third-party tested",
+ "Cold chain ready",
+ "Free over " + money.format(FREE_SHIPPING_THRESHOLD),
+ ].map((label) => `
${testingFor(product.slug) ? `Lot ${escapeHtml(testingFor(product.slug).lot)}` : "No lot on file"}${testingFor(product.slug) ? `Reported ${escapeHtml(testingFor(product.slug).date)}` : "No result reported"}
+
+
${availabilityFor(product.slug).restricted
+ ? "Nothing on this page can be added to a cart."
+ : "Adds this item to a browser-only cart. No order, payment, or shipment is created."}
+
+
+
+
+
+
+
Product facts
+
The comparison fields, up front.
+
+
+
Product name${escapeHtml(product.name)}
+
Catalog code${escapeHtml(product.code)}
+
Research area${escapeHtml(product.category)}
+
Labeled amount${escapeHtml(product.strength)}
+
Format${escapeHtml(product.format)}
+
Analytical state${testingFor(product.slug) ? `Identity, content, purity reported · lot ${escapeHtml(testingFor(product.slug).lot)}` : "No result reported"}
+
+
+
+
+
+
+
Testing status
+
Every missing result stays visible.
+
+
+ ${(() => {
+ const record = testingFor(product.slug);
+ return record
+ ? `
+
Lot ${escapeHtml(record.lot)} · sample ${escapeHtml(sampleReference(record.lot))} · reported ${escapeHtml(record.date)}
Not represented. Lyophilized research material is not released as sterile, so no microbiological result exists to report. Do not infer sterility from the purity figure above.
+
Analysis performed by an independent contract laboratory in the United States. Methods, sample reference, lot and report date are shown per entry. OVO Labs does not perform its own release testing.
+
+
+
+
+
+
+
Storage and handling
+
What to do when the box arrives.
+
+
+
Lyophilized peptide is a dry solid. It is stable at ambient temperature for the transit window, so the standard insulated mailer is not a downgrade. Cold chain exists for the record rather than for the vial: it adds a gel pack and a sealed single-use logger with a printed 2 to 8 °C range, so the condition on arrival is documented instead of assumed.
+
Read the logger before opening the mailer. A logger above range is replaced regardless of how the vial looks, because a dry vial shows no visible sign of a heat excursion, so photograph it and open a case before use. Store unopened vials at 2 to 8 °C, upright, in the carton and away from light. The ambient tolerance covers days in transit, not months on a shelf.
+ ${(() => {
+ /* This accordion used to open by denying the analytical panel
+ directly above it. The testing question now leads and reads from
+ the same record the panel does; availability is demoted and
+ explains the inventory model instead of contradicting the page. */
+ const record = testingFor(product.slug);
+ const stock = availabilityFor(product.slug);
+ return accordion([
+ [
+ "Has this entry been tested?",
+ record
+ ? `Identity, content and purity are reported for the lot named on this page (${record.lot}, reported ${record.date}) using the methods in the analytical panel. Sterility and endotoxin are not represented, so those fields stay empty rather than being implied. A reported result applies to the identified sample under the stated method, not to every vial produced.`
+ : "No analytical result is reported for this entry, so every field on the panel stays visibly empty rather than being implied.",
+ ],
+ [
+ "Is this entry available?",
+ stock.restricted
+ ? restrictionFor(product.slug)
+ : stock.sellable
+ ? `Stock is held per catalog entry and the buy box shows the current count. ${stock.units <= LOW_STOCK_AT ? `Only ${stock.units} remain, so the quantity control is capped at what exists.` : "The quantity control is capped at what exists, so a cart can never hold more than the count shown."}`
+ : "This entry is out of stock, so the buy control is closed until the count recovers. Nothing on this page reserves or backorders material.",
+ ],
+ ["What does the listed price mean?", "It lets the storefront demonstrate sorting, merchandising, cart totals, and product hierarchy. It is not an offer or quote."],
+ ["Where is administration information?", "It is intentionally absent. OVO Labs does not provide dosing, preparation, administration, human-use, safety, efficacy, or outcome information."],
+ ]);
+ })()}
+
+
+ ${availabilityFor(product.slug).sellable
+ ? ``
+ : ""}
+ `;
+ }
+
+ function articlePage(slug) {
+ const content = {
+ "reading-testing-status": {
+ eyebrow: "Testing guide · 4 minutes",
+ title: "How to read a testing status",
+ lede: "Start with the question the method is meant to answer. Then check whether a result is actually reported.",
+ sections: [
+ ["A specification is not a result", "A specification describes an intended target or acceptance rule. A result describes what was observed for an identified sample under a stated method. One should never be styled as the other."],
+ ["Identity, amount, and composition are separate", "An identity method asks whether the observed profile matches the intended compound. A content or mass method asks how much is reported. A purity method describes relative composition under its method conditions. None automatically answers the others."],
+ ["“Not represented” is useful information", "An explicit empty field stops a shopper assuming that a badge, document icon, or quality headline stands in for evidence. Where identity, content and purity are reported per lot and sterility and endotoxin are not, the gap stays visible at the moment of comparison."],
+ ],
+ },
+ "choosing-by-molecule": {
+ eyebrow: "Catalog guide · 4 minutes",
+ title: "Shop by molecule, not by hype",
+ lede: "A clean catalog starts with product identity, then narrows by strength, format, code, and evidence state.",
+ sections: [
+ ["Start with the exact entry", "Separate compounds should have separate product pages. A selector is useful for genuine strengths of the same item, not for hiding unrelated molecules inside one high-traffic page."],
+ ["Compare the same fields every time", "Product name, code, strength, format, price concept, and testing status should appear in predictable positions. Consistency turns a grid into a comparison tool."],
+ ["Use categories as a shortcut", "Research-area categories help exploration, while exact-name and product-code search help returning or expert shoppers. Both paths should reach the same canonical product page."],
+ ],
+ },
+ "coa-boundaries": {
+ eyebrow: "Document guide · 5 minutes",
+ title: "What a COA can and cannot show",
+ lede: "The value of a certificate depends on the identified sample, the method, the result, and the scope. The title alone proves very little.",
+ sections: [
+ ["Read the scope before the number", "A reported purity figure does not automatically establish identity, total content, sterility, endotoxin state, stability, or suitability for a particular use."],
+ ["Check the sample link", "A result is only useful when the document identifies the tested sample and the catalog can explain how that sample relates to the represented item."],
+ ["Do not fill gaps with design", "A green badge, seal, laboratory photograph, or download icon cannot replace a reported result. If a field is missing, the interface should say so directly."],
+ ],
+ },
+ }[slug];
+
+ if (!content) return notFoundPage();
+ return `
+
+
${escapeHtml(content.eyebrow)}
+
${escapeHtml(content.title)}
+
${escapeHtml(content.lede)}
+
This guide describes document and catalog structure. It does not provide medical, clinical, preparation, administration, or human-use information.
+
+ `;
+ }
+
+ /* Every product page promises a lot COA before dispatch, and until now the
+ document was asserted and never produced, which is the one place the site's
+ evidence claim was pure assertion. This is the document. It is deliberately
+ plain: mono for anything that is data, a label on every field, and the
+ unreported fields carried at the same weight as the reported ones instead
+ of quietly dropped. No badges, no status colour, no persuasion. */
+ function lotRecordIndex(excludeLot = "", compact = false) {
+ const rows = PRODUCTS.filter((product) => testingFor(product.slug))
+ .filter((product) => testingFor(product.slug).lot !== excludeLot)
+ .map((product) => {
+ const record = testingFor(product.slug);
+ return `
+
+ ${escapeHtml(record.lot)}
+ ${escapeHtml(product.name)} · ${escapeHtml(product.strength)}
+ ${escapeHtml(product.code)}
+ Reported ${escapeHtml(record.date)}
+
+ `;
+ })
+ .join("");
+ return `
${rows}
`;
+ }
+
+ function lotRecordPage() {
+ const requested = (new URLSearchParams(window.location.search).get("lot") || "").trim();
+ const product = productForLot(requested);
+
+ /* No lot, or a lot this catalog has never reported, lands on the index
+ rather than a dead end. A record set is browsable by definition. */
+ if (!product) {
+ track("lot_record_index", { requested_lot: requested });
+ return `
+
${requested ? `No record for lot ${escapeHtml(requested)}.` : "Lot records"}
+
${requested
+ ? "That lot number is not in this catalog's record set. Every lot currently reported is listed below."
+ : "One record per reported lot. Each names the sample, the method used for each field, the result, and the fields the record does not cover."}
+
+
+
+
+ ${lotRecordIndex()}
+
Analysis performed by an independent contract laboratory in the United States. OVO Labs does not perform its own release testing. No record on this site represents sterility or endotoxin.
The analytical record behind ${escapeHtml(product.name)} ${escapeHtml(product.strength)}. It states what was measured on one identified sample, and states just as plainly what it does not cover.
Each result applies to sample ${escapeHtml(sample)} under the method named beside it. Identity, content and purity answer three different questions, so a result in one row does not stand in for another, and no row here describes any vial other than the sample identified above.
+
+
+
Not represented by this record
+
${methodRows(omitted, true)}
+
Lyophilized research material is not released as sterile, and no microbiological or endotoxin method was performed on this sample, so there is no result to report and none is implied. Do not read the purity figure above as a sterility statement. This record also does not establish suitability for human use, and OVO Labs presents no dosing, preparation, or administration information.
+ ${(() => {
+ /* The lot is what a buyer can check the delivered vial label
+ against, so it rides the line from here to the receipt
+ instead of living only on the product page. */
+ const lots = lotTraceRows(item.slug);
+ return lots.length ? `
${lots.join("")}
` : "";
+ })()}
+
+ ${money.format(item.price * line.quantity)}
+
+
${(() => { const a = availabilityFor(item.slug); return a.sellable
+ ? ` ${escapeHtml(a.label)} · ships from the US fulfillment center`
+ : ` ${escapeHtml(a.label)} · remove to continue`; })()}
+
+
+
+ ${line.quantity}
+
+
+ ${money.format(item.price)} each
+
+
+ ${cartLineAtCap(line)
+ ? `
Maximum ${cartLineCeiling(line.slug)} per order at current stock.
`
+ : ""}
+
+
+ `;
+ })
+ .join("");
+
+ /* Both this bar and the summary shipping line derive from the same
+ threshold, so they can never contradict each other on screen. */
+ const freeShipBar = shipProgressBar(breakdown.subtotal, { link: true });
+
+ /* Cross-sell reads from the cart's own research area, so the suggestion is a
+ neighbour of what is already there rather than a generic four-up. Only
+ entries that can actually be bought are eligible. */
+ const cartCategories = new Set(
+ cart
+ .map((line) => cartItemData(line.slug))
+ .filter(Boolean)
+ .map((item) => item.categoryKey)
+ .filter(Boolean),
+ );
+ const inCart = new Set(cart.map((line) => line.slug));
+ const eligible = PRODUCTS.filter((entry) => !inCart.has(entry.slug) && availabilityFor(entry.slug).sellable);
+ const pairsWith = [
+ ...eligible.filter((entry) => cartCategories.has(entry.categoryKey)),
+ ...eligible.filter((entry) => !cartCategories.has(entry.categoryKey)),
+ ].slice(0, 3);
+
+ return `
+
+
+
Cart
+
Your cart
+
+
+
+
+
+ ${(() => {
+ /* "No longer available" and "we only have four of these" are not the
+ same problem and do not have the same fix, so the notice names
+ which lines are which instead of collapsing both into one word. */
+ const issues = cart.map((line) => cartLineIssue(line)).filter(Boolean);
+ if (!issues.length) return "";
+ const unsellable = issues.filter((issue) => issue.type !== "partial");
+ const partial = issues.filter((issue) => issue.type === "partial");
+ const parts = [];
+ if (unsellable.length) {
+ parts.push(
+ `${unsellable.map((issue) => escapeHtml(issue.name)).join(", ")} cannot be sold. Remove ${unsellable.length === 1 ? "it" : "them"} to continue to checkout.`,
+ );
+ }
+ partial.forEach((issue) => {
+ parts.push(`Only ${issue.units} of ${escapeHtml(issue.name)} available. Lower the quantity to continue.`);
+ });
+ return `
${issues.length === 1 ? "One line needs attention" : `${issues.length} lines need attention`} before checkout.${parts.join("")}
+ `;
+ }
+
+ /* Digits are what a carrier needs; the punctuation is only for reading it back
+ to the person who typed it, so it is applied at display time and never
+ stored. */
+ function formatPhone(value) {
+ const digits = String(value || "").replace(/\D/g, "");
+ if (digits.length === 10) return `(${digits.slice(0, 3)}) ${digits.slice(3, 6)}-${digits.slice(6)}`;
+ if (digits.length === 11 && digits.startsWith("1")) return `+1 (${digits.slice(1, 4)}) ${digits.slice(4, 7)}-${digits.slice(7)}`;
+ return String(value || "");
+ }
+
+ function checkoutPage() {
+ const blocked = blockedCartLines();
+ if (blocked.length) {
+ return `
+
+
+
Checkout
+
${blocked.length === 1 ? "An item in your cart is" : "Items in your cart are"} no longer available.
+
${blocked.map((line) => escapeHtml(cartItemData(line.slug) ? cartItemData(line.slug).name : line.slug)).join(", ")} cannot be sold. Remove ${blocked.length === 1 ? "it" : "them"} from your cart to continue.
+
+ `;
+ }
+
+ const draft = readCheckoutDraft();
+ const breakdown = priceBreakdown(draft);
+
+ /* A completed step is a place you can go back to. The indicator looked
+ clickable and was not, so completed steps are real buttons now; the
+ Review step's Edit links already proved jumping backwards is safe. */
+ const steps = CHECKOUT_STEPS.map(
+ (step, index) => `
+
+
+ `;
+ }
+
+ /* The receipt carries the lot it was ordered against, and the name links
+ back to that record, so the vial in the box can be checked against
+ something rather than trusted. */
+ const lines = order.items
+ .map(
+ (line) => `
+
+
+
+ ${escapeHtml(line.name)}
+ ${escapeHtml(line.code)} · ${escapeHtml(line.strength)} · Qty ${line.quantity}
+ ${(() => {
+ /* Orders placed before lots were recorded still render: the line
+ falls back to its single stored lot, and shows nothing at all
+ if it never carried one. */
+ const lots = Array.isArray(line.lots) && line.lots.length
+ ? line.lots
+ : line.lot
+ ? [{ name: line.name, lot: line.lot, date: line.lotDate || "" }]
+ : [];
+ return lots
+ .map(
+ (entry) =>
+ `${lots.length > 1 ? `${escapeHtml(entry.name)} · ` : ""}Lot ${escapeHtml(entry.lot)} · reported ${escapeHtml(entry.date || "")} · record`,
+ )
+ .join("");
+ })()}
+
+ ${money.format(line.price * line.quantity)}
+
+ `,
+ )
+ .join("");
+
+ /* The receipt's primary action is the record for the lot that was actually
+ shipped against, so the document the site keeps promising is one click
+ from the order rather than a search away. */
+ const orderLots = order.items.flatMap((line) =>
+ Array.isArray(line.lots) && line.lots.length
+ ? line.lots
+ : line.lot
+ ? [{ name: line.name, lot: line.lot, date: line.lotDate || "" }]
+ : [],
+ );
+ const firstLot = orderLots.length ? orderLots[0].lot : "";
+
+ const rows = [
+ ["Subtotal", money.format(order.totals.subtotal)],
+ ...(order.totals.discount > 0 ? [["Discount", `-${money.format(order.totals.discount)}`]] : []),
+ [`Shipping · ${escapeHtml(order.shippingMethodName)}`, order.totals.shipping === 0 ? "Free" : money.format(order.totals.shipping)],
+ ["Tax", money.format(order.totals.tax)],
+ ]
+ .map(([l, v]) => `
${l}${v}
`)
+ .join("");
+
+ return `
+
+
+
Order ${escapeHtml(order.reference)}
+
Thank you, ${escapeHtml(order.firstName)}.
+
Your order is recorded. A confirmation would be sent to ${escapeHtml(order.email)}.
${escapeHtml(order.email)}${order.phone ? ` ${escapeHtml(formatPhone(order.phone))}` : " No phone provided"}
+
+
+
If something is wrong
+
Photograph the box, mailer, vial label and logger within 72 hours, then email support@ovolabs.example with ${escapeHtml(order.reference)} in the subject line. Acknowledgement within one business day. Fulfillment and resolution policy
+ `;
+ })
+ .join("")
+ : "";
+
+ return `
+
+ `;
+ }
+
+ /* The drawer is a full-height grid (auto 1fr auto), so a short cart left ~196px
+ of dead white between the last line and the footer. Rather than collapse the
+ drawer, that region now carries the two things a cart is actually for:
+ progress toward free shipping, and the nearest sensible addition. */
+ function shippingProgress(breakdown) {
+ const pct = Math.min(100, Math.round((breakdown.subtotal / FREE_SHIPPING_THRESHOLD) * 100));
+ return breakdown.freeShippingRemaining > 0
+ ? `
+
+
Add ${money.format(breakdown.freeShippingRemaining)} for free standard shipping.
+
`
+ : `
+
+
Standard shipping is free on this order.
+
`;
+ }
+
+ function drawerCrossSell() {
+ const inCart = new Set(cart.map((line) => line.slug));
+ /* A side drawer pins its footer, so a short cart always leaves a void
+ somewhere between the last line and the summary. Rather than move the gap
+ around, fill it: the fewer lines in the cart, the more suggestions shown.
+ One line gets four, a full cart gets one. */
+ const room = Math.max(1, 5 - cart.length);
+ const picks = PRODUCTS
+ .filter((p) => !inCart.has(p.slug) && availabilityFor(p.slug).sellable)
+ .slice(0, room);
+ if (!picks.length) return "";
+ return `
+
+
Gilded ClinicalWhite · cream · champagne gold · black
+
+
The gold direction you asked for. Expensive when gold stays a detail and the purchase action stays black.
+
+
+
+
+
standardlabs.com
+
+
+
Loading full homepage
+
+
+
+
+
+
+
+
What I would ship
+
B. Cobalt Standard
+
Cobalt makes the testing system feel native, gives buttons more energy than brown or gold, and stays credible to both women and men. The page can still feel female-leading through photography, casting, copy, and editorial pacing instead of making the entire identity pink.
+
+
+
+
+
Naming reset
+
Category first. Labs at the end.
+
The mockups use Standard Peptide Labs as a working label, not a final name. These are the naming lanes worth pursuing after removing obvious live vendors such as Northline Labs and Modern Peptide Labs.
A focused research catalog with the lot identity, purity profile, labeled amount, and supporting record kept together. So the decision feels clear before checkout.
A percentage without a method, sample reference, and lot number is decoration. Our product system keeps the available record attached to the exact item it describes.
, so on Phone the red line landed
+ 49.6px below its input behind two lines of mono and read as part of the note.
+ Label and input keep order 0; the error now precedes the note. */
+.checkout-main .field { display: flex; flex-direction: column; }
+.checkout-main .field-error { order: 1; }
+.checkout-main .field-note { order: 2; }
+
+/* Locked placeholders sized for data they can never take: 456px holding 162px
+ of card number, 220px holding three bullets. max-width only shrinks, so this
+ cannot overflow at any width. */
+.checkout-main #cardNumber { max-width: 24ch; }
+.checkout-main #cardExpiry,
+.checkout-main #cardCvc { max-width: 12ch; }
+
+/* Lot segments are unbreakable units, so the line wraps between them instead of
+ inside the reported date, and no longer needs to be nowrap to stay readable. */
+.summary-line .lot-line .lot-nb { white-space: nowrap; }
+
+/* Delivery method name and its price sat 762px apart across a 928px card. */
+@media (min-width: 961px) {
+ .choice-body { max-width: var(--measure); }
+}
+
+/* The 640px rule made the whole lot line unbreakable, which overflowed the
+ receipt card by 61px and clipped the record link. The segments above carry
+ that job now, so the line itself may wrap again. */
+@media (max-width: 640px) {
+ .summary-line .lot-line { white-space: normal; }
+}
+
+
+/* ============================================================================
+ Cart drawer + cart page. Every number below was read off rendered 1440x900
+ and 390x844 captures, not off the source.
+ ========================================================================= */
+
+/* renderCart() sets .cart-count[hidden], but the class's own display:grid
+ outranks the UA [hidden] rule, so an empty cart shipped an 18x18 cobalt badge
+ reading "0" in the header at both widths. */
+.cart-count[hidden] { display: none; }
+
+/* .checkout-cta.is-blocked used opacity:0.45, which composites the cobalt fill
+ to rgb(140,183,223) under its white 13px/650 label: 2.12:1. Contrast tooling
+ reads background-color (6.30:1) and never sees the composite, which is why
+ this passed 30 combos. Explicit tokens instead, and the pointer says no. */
+.checkout-cta.is-blocked {
+ opacity: 1;
+ color: var(--on-dark);
+ background: var(--text-2);
+ cursor: not-allowed;
+}
+
+/* Empty drawer: the footer holds nothing but the note, and the 16px top margin
+ written to clear View cart became stray padding, 41px above the note against
+ 24px below it. */
+.cart-footer > .cart-terminus:first-child { margin-top: 0; }
+
+/* One line in the drawer at 1440: the last suggestion row ends at y503 and the
+ tinted band at y590.5, so 63.5px of tint sat empty after the band's own 24px
+ of padding. The band must keep flex:1 or a white gap opens above the pinned
+ footer, so the rows absorb the slack instead of one dead pocket doing it.
+ Component-scoped, not width-scoped: at 390 the same slack is 7.5px and the
+ rows grow 60px to 75.4px instead of 60px to 89.4px. */
+.drawer-cross { display: flex; flex-direction: column; }
+.drawer-cross-row { flex: 1 1 auto; }
+
+/* Four lines at 1440: .cart-items scrollHeight 622 against clientHeight 521,
+ and the cross-sell heading's text box (y584 to y597) is cut by the scroll
+ edge at y590.5 with nothing saying the region continues, so a hairline plus
+ a half-glyph reads as a section that failed to render. The fade is drawn only
+ when there are cart lines, so the empty drawer keeps its clean edge. */
+.cart-drawer .cart-footer { position: relative; }
+.cart-drawer .cart-items:has(.cart-item) + .cart-footer::before {
+ position: absolute;
+ right: 0;
+ bottom: 100%;
+ left: 0;
+ height: 20px;
+ content: "";
+ background: linear-gradient(rgba(12, 24, 38, 0), rgba(12, 24, 38, 0.09));
+ pointer-events: none;
+}
+
+/* Cart page closing actions at 1440. In a 928px space-between row Continue
+ shopping (144.6x38) sat at x60 and Clear cart (46.5x15, 10px underlined) at
+ x941.5, 736.9px apart, and Clear cart, which empties the whole cart, wore the
+ exact .remove-item treatment each line's own Remove wears. Pair them and give
+ the destructive one its own weight. Wrapped in its own min-width query: the
+ narrow layout already renders this row at 12px/44px and is untouched. */
+@media (min-width: 961px) {
+ .cart-actions { justify-content: flex-start; gap: var(--s-5); }
+ .cart-actions .remove-item { font-size: 12px; }
+}
+
+/* 390 cart page: .cart-row-image is a block link stretched by its grid row to
+ 84x157.3 around an 84x95 thumbnail, so 62.3px of the link, 40% of it, was
+ invisible clickable area under the image. Own max-width query. */
+@media (max-width: 960px) {
+ .cart-row-image { align-self: start; }
+}
+
+
+
+/* ============================================================================
+ Control states. Everything below is a state, a colour or a single scoped
+ component rule - nothing here changes page layout at any width.
+ ========================================================================= */
+
+/* Selected and hovered filters resolved to the identical computed value
+ (rgb(0,94,184), weight 400, transparent background on both), so hovering any
+ category made two rows read as selected at once. Selection now carries
+ weight; hover moves to --ink instead of borrowing the selection colour. */
+.filter-button[aria-pressed="true"] { color: var(--cobalt); font-weight: 650; }
+.filter-button:hover:not([aria-pressed="true"]) { color: var(--ink); }
+
+/* The card link is a stretched flex item: a 115px label in a 379px box, so its
+ focus ring drew a 385px rectangle with 264px of empty space inside it. */
+.education-card > .text-link { align-self: flex-start; }
+
+/* .empty-state is the full-width catalog empty state and carries 64px of block
+ padding. Reused inside the 320px suggestion popover it produced a 254px panel
+ holding 82.5px of text - 67.5% padding. */
+.search-results .empty-state { padding: var(--s-5) var(--s-4); }
+
+/* The Cmd-K hint is meaningless once the field holds a query, and it sat 11px
+ from the browser's own search-clear control. The clear control keeps working. */
+.search-input:not(:placeholder-shown) ~ .search-shortcut { display: none; }
+
+/* Stepper glyphs and the quantity input inherited the user-agent buttontext
+ black (#000000, off-palette) while the value beside them is --ink #101317. */
+.mini-quantity button,
+.quantity-control button,
+.quantity-control input { color: var(--ink); }
+
+/* .field input:focus sets outline:none and substitutes a 2px --cobalt-tint
+ ring that measures 1.14:1 against the white field. On a field in the error
+ state the border stays --danger, so that invisible ring is the only focus
+ signal there is. Restore the ring the rest of the site already uses. */
+.field input:focus-visible,
+.field select:focus-visible,
+.promo-input-row input:focus-visible,
+.collection-search:focus-visible,
+.search-input:focus-visible {
+ outline: 2px solid var(--cobalt);
+ outline-offset: 2px;
+}
+
+/* The stylesheet contained zero :active rules across 5,600 lines. Buttons lift
+ 1px on hover and then acknowledge the press with nothing at all. */
+.button:active,
+.add-button:active,
+.pdp-add:active,
+.drawer-cross-add:active,
+.checkout-cta:active,
+.icon-button:active { transform: translateY(1px); }
+
+
+
+/* ============================================================================
+ States you only reach by interacting. Each rule below was measured broken
+ before it was written; the layout rules are inside their own media query so
+ they land after the responsive blocks without touching desktop.
+ ========================================================================= */
+
+/* The header search reused the page-scale .empty-state, so the no-match panel
+ rendered 320x254 with only 120px of copy inside 128px of padding: taller than
+ the 320x155 two-result panel it replaces, centred against left-aligned rows,
+ and drawing a second border 1px inside the dropdown's own. */
+.search-results .empty-state {
+ padding: var(--s-4h) var(--s-4);
+ text-align: left;
+ border: 0;
+ border-radius: 0;
+}
+
+/* An empty cart stretched .cart-empty across the full 673px scroll region for
+ 122px of content (81.8% blank). With suggestions rendered underneath it, the
+ region sizes to its content instead of centring in a void. */
+.cart-items:has(.cart-empty) { align-content: start; }
+.cart-empty.is-compact { min-height: 0; padding-block: var(--s-6); }
+
+/* Two .field.is-half cells stretch to equal height, so the field carrying a
+ note pushed its error 41.6px below its neighbour's and put two lines of mono
+ copy between the input and its own error. Error sits under the control it
+ describes; the note follows it. */
+.field { display: flex; flex-direction: column; }
+.field > .field-error { order: 1; }
+.field > .field-note { order: 2; }
+
+@media (max-width: 640px) {
+ /* min-height:44px with margin-block:-12px put 49px menu rows on a 29px pitch:
+ each row overlapped the next by 20px, each row's bottom divider was drawn
+ inside the row below it, the last row hung 12px outside .mobile-nav, and
+ the bottom 41% of every row hit-tested to the next link. These rows already
+ clear 44px from their own padding, so they need no help. */
+ .mobile-nav a { min-height: 0; margin-block: 0; }
+
+ /* Same rule against 18px footer links: 44px boxes on a 32px pitch overlapped
+ by 12px, so the bottom of each link tapped the one beneath it. Keeping the
+ 44px target and dropping the negative margin gives a clean 44px pitch. */
+ .footer-column a { margin-block: 0; }
+
+ /* The simulated printed label is sized to 95% of the 96px card thumbnail at
+ this width, so the catalog code ran off the vial onto the countertop and
+ the name truncated mid-word. It is aria-hidden decoration and the card body
+ states name, strength and code 8px to its right. */
+ .product-grid > .product-card .product-image-label { display: none; }
+}
diff --git a/biologix-strategy-board/ovo-labs-warm/site.js b/biologix-strategy-board/ovo-labs-warm/site.js
new file mode 100644
index 0000000..642eb24
--- /dev/null
+++ b/biologix-strategy-board/ovo-labs-warm/site.js
@@ -0,0 +1,3742 @@
+(() => {
+ "use strict";
+
+ const body = document.body;
+ const root = document.querySelector("#site-root");
+ if (!root) return;
+
+ const BASE = body.dataset.base || ".";
+ const PAGE = body.dataset.page || "home";
+ const PRODUCT_SLUG = body.dataset.product || "";
+ const CART_KEY = "ovo-labs-demo-cart-v2";
+ const RECENT_KEY = "ovo-labs-recent-products-v1";
+ const ORDER_KEY = "ovo-labs-orders-v1";
+ const CHECKOUT_KEY = "ovo-labs-checkout-draft-v1";
+ const MAX_QUANTITY = 10;
+
+ const CHECKOUT_STEPS = [
+ { key: "contact", label: "Contact" },
+ { key: "shipping", label: "Shipping" },
+ { key: "delivery", label: "Delivery" },
+ { key: "payment", label: "Payment" },
+ { key: "review", label: "Review" },
+ ];
+
+ const SHIPPING_METHODS = [
+ { id: "standard", name: "Standard", detail: "3 to 5 business days", note: "Insulated mailer", price: 12 },
+ { id: "express", name: "Express", detail: "2 business days", note: "Insulated mailer, tracked", price: 18 },
+ { id: "cold", name: "Cold chain overnight", detail: "Next business day by 12:00", note: "Gel pack, temperature logger", price: 45 },
+ ];
+
+ const PROMO_CODES = {
+ "OVO-FIRST": { label: "First order", type: "percent", value: 10 },
+ "COLDCHAIN": { label: "Free cold chain", type: "shipping", value: 100 },
+ };
+
+ /* Analytical records per catalog entry.
+ The site's whole claim is "see what is reported, see what is not", but every
+ field was hardcoded to "not reported", which inverted the pitch into "we have
+ no data". These are the reported panels. Sterility and endotoxin are left
+ genuinely unreported on lyophilized research material, which is both accurate
+ and what makes the reported-vs-not distinction visible at all. */
+ const TESTING = {
+ "retatrutide": { lot: "RT-2411-A", date: "2026-06-18", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "10.2 mg"], purity: ["RP-HPLC, area %", "99.1%"] },
+ "semaglutide": { lot: "SG-2409-C", date: "2026-06-02", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "10.2 mg"], purity: ["RP-HPLC, area %", "98.7%"] },
+ "tirzepatide": { lot: "TZ-2410-B", date: "2026-06-11", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "10.1 mg"], purity: ["RP-HPLC, area %", "99.4%"] },
+ "cagrilintide": { lot: "CG-2408-A", date: "2026-05-27", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "9.8 mg"], purity: ["RP-HPLC, area %", "98.2%"] },
+ "bpc-157": { lot: "BP-2412-D", date: "2026-06-24", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "10.0 mg"], purity: ["RP-HPLC, area %", "99.0%"] },
+ "tb-500": { lot: "TB-2411-B", date: "2026-06-15", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "10.2 mg"], purity: ["RP-HPLC, area %", "98.9%"] },
+ "ipamorelin": { lot: "IP-2410-A", date: "2026-06-08", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "5.0 mg"], purity: ["RP-HPLC, area %", "99.2%"] },
+ "cjc-1295": { lot: "CJ-2409-E", date: "2026-06-04", identity: ["RP-HPLC / ESI-MS", "Conforms to reference"], content: ["RP-HPLC, 214 nm", "5.0 mg"], purity: ["RP-HPLC, area %", "98.5%"] },
+ "bpc-tb-blend": { lot: "BX-2412-A", date: "2026-06-21", identity: ["RP-HPLC / ESI-MS", "Both components conform"], content: ["RP-HPLC, 214 nm", "10.0 + 10.0 mg"], purity: ["RP-HPLC, area %", "98.4%"] },
+ "cjc-ipamorelin-blend": { lot: "CX-2411-C", date: "2026-06-13", identity: ["RP-HPLC / ESI-MS", "Both components conform"], content: ["RP-HPLC, 214 nm", "5.0 + 5.0 mg"], purity: ["RP-HPLC, area %", "98.8%"] },
+ };
+
+ /* Sample references are derived from the lot so the analytical record can name
+ the tested sample without a second hand-maintained table drifting out of sync. */
+ function sampleReference(lot) {
+ return `SMP-${String(lot).replace(/-/g, "")}`;
+ }
+
+ /* The lot number is the only thing that ties the vial in the box to the
+ analytical record on the site, so it has to be addressable and it has to
+ travel with the purchase. These four helpers are the whole mechanism:
+ resolve a lot to its catalog entry, build the record URL, and expand any
+ cart line into its lots. A set carries one lot per component, not a single
+ blended one, because that is what would be printed on the two vials. */
+ function productForLot(lot) {
+ const key = String(lot || "").trim().toUpperCase();
+ if (!key) return null;
+ const slug = Object.keys(TESTING).find((entry) => TESTING[entry].lot.toUpperCase() === key);
+ return slug ? PRODUCTS.find((product) => product.slug === slug) || null : null;
+ }
+
+ function lotPath(lot) {
+ return path(`lot-record.html?lot=${encodeURIComponent(lot)}`);
+ }
+
+ function lotTrace(slug) {
+ const item = ALL_CART_ITEMS.find((entry) => entry.slug === slug);
+ if (!item) return [];
+ return (item.productSlugs || [slug])
+ .map((componentSlug) => {
+ const record = testingFor(componentSlug);
+ if (!record) return null;
+ const product = PRODUCTS.find((entry) => entry.slug === componentSlug);
+ return {
+ slug: componentSlug,
+ name: product ? product.name : componentSlug,
+ code: product ? product.code : "",
+ lot: record.lot,
+ date: record.date,
+ };
+ })
+ .filter(Boolean);
+ }
+
+ /* One "Lot X, reported Y" row per component, named per component only when a
+ line carries more than one, so a single vial is never labelled twice. */
+ function lotTraceRows(slug, options = {}) {
+ const { link = true } = options;
+ const entries = lotTrace(slug);
+ return entries.map((entry) => {
+ const label = `${entries.length > 1 ? `${escapeHtml(entry.name)} · ` : ""}Lot ${escapeHtml(entry.lot)} · reported ${escapeHtml(entry.date)}`;
+ return link
+ ? `${label}`
+ : `${label}`;
+ });
+ }
+
+ function testingFor(slug) {
+ return TESTING[slug] || null;
+ }
+
+ /* The reported mass and the "% of label" figure used to be one hand-typed
+ string, so seven of ten entries contradicted their own labeled amount. The
+ measured mass is the only stored value now; the percentage is derived from
+ it against the product's labeled amount, and if either side cannot be parsed
+ the percentage is omitted rather than guessed. */
+ function contentResult(slug) {
+ const record = testingFor(slug);
+ if (!record) return "Result not reported";
+ const measured = String(record.content[1]).replace(/\s*\([^)]*\)\s*$/, "").trim();
+ const product = PRODUCTS.find((entry) => entry.slug === slug);
+ const masses = (measured.match(/\d+(?:\.\d+)?/g) || []).map(Number);
+ const labeled = product ? Number.parseFloat(product.strength) : Number.NaN;
+ if (!masses.length || !Number.isFinite(labeled) || labeled <= 0) return measured;
+ const total = masses.reduce((sum, value) => sum + value, 0);
+ return `${measured} (${Math.round((total / labeled) * 100)}% of label)`;
+ }
+
+ /* One renderer for all three surfaces that used to hardcode these rows, so a
+ product can never show a reported result on one page and a blank on another. */
+ function testingFields(slug) {
+ const t = testingFor(slug);
+ return [
+ { label: "Identity", method: t ? t.identity[0] : "Method not assigned", result: t ? t.identity[1] : "Result not reported", reported: Boolean(t) },
+ { label: "Content / mass", method: t ? t.content[0] : "Method not assigned", result: t ? contentResult(slug) : "Result not reported", reported: Boolean(t) },
+ { label: "Purity profile", method: t ? t.purity[0] : "Method not assigned", result: t ? t.purity[1] : "Result not reported", reported: Boolean(t) },
+ { label: "Sterility / endotoxin", method: "Not represented", result: "Result not reported", reported: false },
+ ];
+ }
+
+ /* Inventory. Availability is data, not markup, so a single edit here moves a
+ product between states and every surface follows: catalog card, PDP buy box,
+ search result, cart, and the checkout gate.
+
+ unavailable = cannot be sold. Retatrutide and cagrilintide are not approved
+ compounds. If the operating position ever changes for a given entry, flip its
+ line here and nothing else needs to be touched.
+
+ LOW_STOCK_AT is the threshold where the remaining count is surfaced. Below it
+ the exact number shows; above it the page just says in stock, because a
+ precise count on a well-stocked item is noise. */
+ const LOW_STOCK_AT = 6;
+
+ /* Restricted is a reason, not just a zero. Two compounds are not offered as a
+ position rather than as a stock accident, and a shopper who sees the same
+ grey "Unavailable" pill on both cannot tell the difference. Stock stays 0
+ either way; this only carries the reason to the surfaces that show it. */
+ const RESTRICTED = {
+ "retatrutide":
+ "OVO Labs does not offer retatrutide. It has no approved reference product and no established compendial standard to test against, so we cannot state what conformance would mean. The entry stays listed so the catalog is complete and the position is on the record.",
+ "cagrilintide":
+ "OVO Labs does not offer cagrilintide. It has no approved reference product and no established compendial standard to test against, so we cannot state what conformance would mean. The entry stays listed so the catalog is complete and the position is on the record.",
+ };
+
+ function restrictionFor(slug) {
+ return RESTRICTED[slug] || "";
+ }
+
+ const STOCK = {
+ "retatrutide": 0,
+ "cagrilintide": 0,
+ "tirzepatide": 24,
+ "semaglutide": 31,
+ "bpc-157": 48,
+ "tb-500": 12,
+ "cjc-1295": 37,
+ "ipamorelin": 52,
+ "cjc-ipamorelin-blend": 4,
+ "bpc-tb-blend": 9,
+ "metabolic-reference-set": 0,
+ "peptide-pair-set": 6,
+ "secretagogue-reference-set": 15,
+ };
+
+ function stockFor(slug) {
+ const units = STOCK[slug];
+ return typeof units === "number" ? units : 0;
+ }
+
+ function availability(slug) {
+ const units = stockFor(slug);
+ if (restrictionFor(slug)) {
+ return { state: "unavailable", units: 0, label: "Not offered", sellable: false, restricted: true };
+ }
+ if (units <= 0) return { state: "unavailable", units: 0, label: "Unavailable", sellable: false, restricted: false };
+ if (units <= LOW_STOCK_AT) return { state: "low", units, label: `Only ${units} left`, sellable: true, restricted: false };
+ return { state: "in", units, label: "In stock", sellable: true, restricted: false };
+ }
+
+ /* A bundle can only be as available as its scarcest component. Without this a
+ set could be sold while one of the vials inside it is unavailable. */
+ function bundleAvailability(bundle) {
+ if (!bundle || !bundle.productSlugs) return availability(bundle ? bundle.slug : "");
+ /* A set that contains a compound we will not offer is itself not offered, and
+ must say so with the same reason rather than reading as a stock shortage. */
+ if (bundle.productSlugs.some((slug) => restrictionFor(slug))) {
+ return { state: "unavailable", units: 0, label: "Not offered", sellable: false, restricted: true };
+ }
+ const own = availability(bundle.slug);
+ if (!own.sellable) return own;
+ const componentUnits = bundle.productSlugs.map((slug) => stockFor(slug));
+ const scarcest = Math.min(...componentUnits, own.units);
+ if (scarcest <= 0) return { state: "unavailable", units: 0, label: "Unavailable", sellable: false, restricted: false };
+ if (scarcest <= LOW_STOCK_AT) return { state: "low", units: scarcest, label: `Only ${scarcest} left`, sellable: true, restricted: false };
+ return { state: "in", units: scarcest, label: "In stock", sellable: true, restricted: false };
+ }
+
+ function availabilityFor(slug) {
+ const bundle = (typeof BUNDLES !== "undefined" ? BUNDLES : []).find((b) => b.slug === slug);
+ return bundle ? bundleAvailability(bundle) : availability(slug);
+ }
+
+ /* Any line in the cart that can no longer be sold. Stock can change while a
+ cart sits in storage, so this is checked at render time on both the cart and
+ the checkout rather than trusted from when the item was added. */
+ /* Curated rails are recommendations, so leading them with something that
+ cannot be bought wastes the strongest slot on the page. Sort is stable, so
+ entries keep their editorial order inside each group. The full catalog grid
+ still lists every entry, including the two that are not offered, so the
+ position on them stays visible. There it only applies to the Featured order,
+ and never overrides an explicit name or price sort. */
+ const sellableFirst = (list) =>
+ [...list].sort(
+ (a, b) => (availabilityFor(b.slug).sellable === true) - (availabilityFor(a.slug).sellable === true),
+ );
+
+ /* A cart line can go bad two different ways while it sits in storage: the
+ entry stops being sellable, or stock drops below the saved quantity. They
+ need different wording, so they are classified rather than merged. */
+ function cartLineIssue(line) {
+ const stock = availabilityFor(line.slug);
+ const item = cartItemData(line.slug);
+ const name = item ? item.name : line.slug;
+ if (!stock.sellable) {
+ return { type: stock.restricted ? "restricted" : "unavailable", name, units: 0 };
+ }
+ if (line.quantity > stock.units) {
+ return { type: "partial", name, units: stock.units };
+ }
+ return null;
+ }
+
+ function blockedCartLines() {
+ return cart.filter((line) => cartLineIssue(line));
+ }
+
+ /* The per-order ceiling is whichever runs out first, the order cap or the
+ shelf. Every quantity control reads it from here so the drawer, the cart
+ page and the PDP cannot disagree about where the "+" stops. */
+ function cartLineCeiling(slug) {
+ const stock = availabilityFor(slug);
+ return stock.sellable ? Math.min(MAX_QUANTITY, stock.units) : 0;
+ }
+
+ function cartLineAtCap(line) {
+ const ceiling = cartLineCeiling(line.slug);
+ return ceiling > 0 && line.quantity >= ceiling;
+ }
+
+ function stockBadge(slug) {
+ const a = availabilityFor(slug);
+ return `${escapeHtml(a.label)}`;
+ }
+
+ const TAX_RATE = 0.0725;
+ const FREE_SHIPPING_THRESHOLD = 500;
+
+ const US_STATES = ["AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY","DC"];
+
+ const money = new Intl.NumberFormat("en-US", {
+ style: "currency",
+ currency: "USD",
+ maximumFractionDigits: 0,
+ });
+
+ const PRODUCTS = [
+ {
+ slug: "retatrutide",
+ code: "OVO-001",
+ name: "Retatrutide",
+ category: "GLP-1 & Metabolic",
+ categoryKey: "metabolic",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 105,
+ descriptor: "Synthetic triple-agonist incretin-class research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A focused catalog entry for retatrutide research reference work. Molecule, labeled amount, format, and testing status are presented together.",
+ },
+ {
+ slug: "tirzepatide",
+ code: "OVO-002",
+ name: "Tirzepatide",
+ category: "GLP-1 & Metabolic",
+ categoryKey: "metabolic",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 100,
+ descriptor: "Synthetic dual incretin-receptor agonist research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A clear catalog entry for tirzepatide reference research, with labeled amount, product identity, format, and testing status in one decision block.",
+ },
+ {
+ slug: "semaglutide",
+ code: "OVO-003",
+ name: "Semaglutide",
+ category: "GLP-1 & Metabolic",
+ categoryKey: "metabolic",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 90,
+ descriptor: "Synthetic GLP-1 receptor agonist research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A structured semaglutide catalog entry with direct access to the product’s testing status and comparison-ready product facts.",
+ },
+ {
+ slug: "cagrilintide",
+ code: "OVO-004",
+ name: "Cagrilintide",
+ category: "GLP-1 & Metabolic",
+ categoryKey: "metabolic",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 89,
+ descriptor: "Long-acting amylin-analogue research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A cagrilintide research catalog entry organized around identity, labeled amount, format, and testing status.",
+ },
+ {
+ slug: "bpc-157",
+ code: "OVO-005",
+ name: "BPC-157",
+ category: "Research Peptides",
+ categoryKey: "research",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 60,
+ descriptor: "Synthetic pentadecapeptide research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A BPC-157 catalog entry with a compact, neutral specification surface and visible testing status.",
+ },
+ {
+ slug: "tb-500",
+ code: "OVO-006",
+ name: "TB-500",
+ category: "Research Peptides",
+ categoryKey: "research",
+ strength: "10 mg",
+ format: "Lyophilized vial",
+ price: 68,
+ descriptor: "Synthetic thymosin beta-4 fragment research compound.",
+ facts: ["10 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A TB-500 catalog entry that puts identity, labeled amount, format, price, and testing status in a single decision layout.",
+ },
+ {
+ slug: "cjc-1295",
+ code: "OVO-007",
+ name: "CJC-1295",
+ category: "Growth Hormone Research",
+ categoryKey: "growth",
+ strength: "5 mg",
+ format: "Lyophilized vial",
+ price: 52,
+ descriptor: "Synthetic GHRH-analogue research compound.",
+ facts: ["5 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "A CJC-1295 catalog entry built to make the exact product easy to find, compare, and inspect.",
+ },
+ {
+ slug: "ipamorelin",
+ code: "OVO-008",
+ name: "Ipamorelin",
+ category: "Growth Hormone Research",
+ categoryKey: "growth",
+ strength: "5 mg",
+ format: "Lyophilized vial",
+ price: 45,
+ descriptor: "Synthetic growth-hormone secretagogue research compound.",
+ facts: ["5 mg labeled amount", "Single-vial format", "Identity, content, purity reported"],
+ overview:
+ "An ipamorelin research catalog entry with simple product identification, comparable specifications, and visible testing status.",
+ },
+ {
+ slug: "cjc-ipamorelin-blend",
+ code: "OVO-009",
+ name: "CJC-1295 + Ipamorelin",
+ category: "Peptide Blends",
+ categoryKey: "blends",
+ strength: "10 mg",
+ format: "Dual-compound vial",
+ price: 92,
+ descriptor: "Equal-part GHRH analogue and secretagogue research blend.",
+ facts: ["5 mg + 5 mg labeled", "Single-vial blend format", "Identity, content, purity reported"],
+ overview:
+ "A two-compound blend shown as its own product, with each constituent and the testing status kept explicit.",
+ },
+ {
+ slug: "bpc-tb-blend",
+ code: "OVO-010",
+ name: "BPC-157 + TB-500",
+ category: "Peptide Blends",
+ categoryKey: "blends",
+ strength: "20 mg",
+ format: "Dual-compound vial",
+ price: 118,
+ descriptor: "Equal-part BPC-157 and TB-500 research blend.",
+ facts: ["10 mg + 10 mg labeled", "Single-vial blend format", "Identity, content, purity reported"],
+ overview:
+ "A two-compound blend with its own product identity, labeled composition, and testing status.",
+ },
+ ];
+
+ const BUNDLES = [
+ {
+ slug: "metabolic-reference-set",
+ code: "OVO-S01",
+ name: "Metabolic Reference Set",
+ category: "Curated Set",
+ strength: "2 vials",
+ format: "Retatrutide + Cagrilintide",
+ price: 169,
+ descriptor: "Two distinct incretin and amylin-class research references.",
+ productSlugs: ["retatrutide", "cagrilintide"],
+ },
+ {
+ slug: "peptide-pair-set",
+ code: "OVO-S02",
+ name: "Peptide Pair Set",
+ category: "Curated Set",
+ strength: "2 vials",
+ format: "BPC-157 + TB-500",
+ price: 108,
+ descriptor: "Two individually identified research peptide references.",
+ productSlugs: ["bpc-157", "tb-500"],
+ },
+ {
+ slug: "secretagogue-reference-set",
+ code: "OVO-S03",
+ name: "Secretagogue Reference Set",
+ category: "Curated Set",
+ strength: "2 vials",
+ format: "CJC-1295 + Ipamorelin",
+ price: 82,
+ descriptor: "Two separate growth-hormone research references.",
+ productSlugs: ["cjc-1295", "ipamorelin"],
+ },
+ ];
+
+ const CATEGORIES = [
+ { key: "all", name: "Shop All", note: `${PRODUCTS.length} catalog entries` },
+ { key: "metabolic", name: "GLP-1 & Metabolic", note: "4 individual compounds" },
+ { key: "research", name: "Research Peptides", note: "2 individual compounds" },
+ { key: "growth", name: "Growth Hormone Research", note: "2 individual compounds" },
+ { key: "blends", name: "Peptide Blends", note: "2 defined blends" },
+ ];
+
+ const ARTICLES = [
+ {
+ slug: "reading-testing-status",
+ kind: "Testing guide · 4 minutes",
+ title: "How to read a testing status",
+ summary: "A result, a specification, and an unreported field are three different things.",
+ },
+ {
+ slug: "choosing-by-molecule",
+ kind: "Catalog guide · 4 minutes",
+ title: "Shop by molecule, not by hype",
+ summary: "A practical catalog framework for comparing identity, strength, format, and evidence state.",
+ },
+ {
+ slug: "coa-boundaries",
+ kind: "Document guide · 5 minutes",
+ title: "What a COA can and cannot show",
+ summary: "Why a document’s method and scope matter more than the letters at the top.",
+ },
+ ];
+
+ const ALL_CART_ITEMS = [...PRODUCTS, ...BUNDLES];
+
+ const icons = {
+ menu:
+ '',
+ cart:
+ '',
+ arrow: '→',
+ check:
+ '',
+ shield:
+ '',
+ lock:
+ '',
+ snow:
+ '',
+ doc:
+ '',
+ };
+
+ function path(relative) {
+ return `${BASE}/${relative}`.replace(/\/\.\//g, "/");
+ }
+
+ function productPath(product) {
+ return path(`peptides/${product.slug}.html`);
+ }
+
+ function escapeHtml(value) {
+ return String(value)
+ .replaceAll("&", "&")
+ .replaceAll("<", "<")
+ .replaceAll(">", ">")
+ .replaceAll('"', """)
+ .replaceAll("'", "'");
+ }
+
+ function track(event, properties = {}) {
+ const payload = {
+ event,
+ page_type: PAGE,
+ timestamp: new Date().toISOString(),
+ ...properties,
+ };
+ window.dataLayer = window.dataLayer || [];
+ window.dataLayer.push(payload);
+ window.dispatchEvent(new CustomEvent("ovolabs:analytics", { detail: payload }));
+ }
+
+ window.OvoLabsAnalytics = {
+ events: () => [...(window.dataLayer || [])],
+ clear: () => {
+ window.dataLayer = [];
+ },
+ };
+
+ function activePage(name) {
+ if (name === "shop" && ["collection", "product"].includes(PAGE)) return true;
+ if (name === "testing" && ["testing", "lot-record"].includes(PAGE)) return true;
+ if (name === "bundles" && PAGE === "bundles") return true;
+ if (name === "learn" && ["learn", "article"].includes(PAGE)) return true;
+ if (name === "about" && ["about", "policy"].includes(PAGE)) return true;
+ return false;
+ }
+
+ function header() {
+ const nav = [
+ ["shop", "Shop", "catalog.html"],
+ ["bundles", "Bundles", "bundles.html"],
+ ["testing", "Testing & COAs", "testing.html"],
+ ["learn", "Learn", "notes.html"],
+ ];
+ const categoryLinks = CATEGORIES.map(
+ (category) =>
+ `${category.name}`,
+ ).join("");
+
+ return `
+ Skip to content
+
+ Fictional concept storefront. Nothing here is real, stocked, or for sale.
+
+ ${(() => {
+ const a = availabilityFor(bundle.slug);
+ /* A set held back on position is not a sold-out set, but it is still a
+ catalog position: the price stays on the record and the terminal row
+ keeps the same shape as the two sellable cards, so all three sets
+ align on one baseline instead of one card carrying a paragraph. */
+ const held = items.filter((product) => restrictionFor(product.slug)).map((product) => product.name);
+ return `
+ `;
+ })()}
+
+
+ `;
+ }
+
+ /* One derived component for the drawer and the cart page, so the two surfaces
+ can never disagree about how far an order sits from free shipping. The fill
+ is cobalt: it is progress, not a verified result, so green is not available
+ to it. The met label is the one allowed green, because at that point the
+ free shipping is applied rather than promised. */
+ function shipProgressBar(subtotal, options = {}) {
+ const { link = false } = options;
+ const remaining = Math.max(0, FREE_SHIPPING_THRESHOLD - subtotal);
+ const met = remaining <= 0;
+ const percent = Math.min(100, Math.max(0, Math.round((subtotal / FREE_SHIPPING_THRESHOLD) * 100)));
+ const pending = `Add ${money.format(remaining)} for free standard shipping`;
+ return `
+
Get catalog additions, document updates, and practical explainers. No dosing or medical-use content.
+
+
+
+
+
+ `;
+ }
+
+ function homePage() {
+ /* One featured entry for the whole page. The hero chip, the hero testing card
+ and the testing-status document each used to pick their own subject, and
+ two of the three picked the entry that cannot be bought. */
+ const featured = sellableFirst(PRODUCTS)[0];
+ const featuredTesting = testingFor(featured.slug);
+ return `
+
+
+
+
Peptide research catalog
+
Peptides, without the mystery.
+
A focused catalog with clear formats and a fast path from search to cart. Every entry names what was tested and what was not.
+ ${(() => {
+ /* The proof card floated on the photograph at 200px wide, and the
+ phone breakpoint set it to display:none, so the one contrast
+ this catalog is built on was a sticker at 1440 and did not
+ exist at 390. It moves into the copy column and becomes a
+ record: subject and lot, the method beside each measured value,
+ and the unreported row inside the same table rather than in a
+ footnote. Reported values hold in ink at 650, the unreported
+ row recedes to text-3 at 500, and the date carries the reported
+ tag. That is the grammar the dark testing band already uses. */
+ const record = featuredTesting;
+ if (!record) return "";
+ return `
+
+
+ ${escapeHtml(featured.name)} · Lot ${escapeHtml(record.lot)}
+ Reported ${escapeHtml(record.date)}
+
+
Use broad categories when you are exploring. Use the persistent search when you already know the molecule or catalog code.
+
+ ${categoryRail()}
+
+
+
+
+
+
Testing & COAs
+
See what is reported. See what is not.
+
Every product carries a testing status beside the decision. When a report exists, its methods, sample reference, date, and scope belong together. When it does not, the page says so.
Filter by research area, search by molecule or product code, then compare strength, format, testing status, and price without leaving the grid.
+
+
+
+
+
+
+
+
+
+
+
+
+
${PRODUCTS.length} catalog entries
+
+
+
+
+
+
+
+
+
+
Not sure where to start?
+
Narrow the grid, then read the lot.
+
+
The research-area buttons, the search field and the sort control above are the filters on this page. Every entry then carries the same three reported fields, identity, content and purity, against a named lot and report date. Sterility and endotoxin stay unreported on all ten. The testing page lists every lot in one table and explains what each method does and does not establish.
Search an OVO Labs product name or code to see the testing status for its current lot. Identity, content and purity are reported per lot, each with its method, sample reference and report date. Sterility and endotoxin are not represented, and no result extends past the sample and scope it names.
+
+
+
+
+
+
+
+
The framework
+
Four fields. Four different questions.
+
A single number cannot answer identity, amount, composition, and microbiological questions at once.
+
+
+
+
IdentityDoes the observed analytical profile match the intended compound?REPORTED PER LOT
+
Content / massHow much material is reported under the selected method?REPORTED PER LOT
+
Purity profileWhat relative composition is reported under the selected method?REPORTED PER LOT
+
Sterility / endotoxinWere separate microbiological methods represented?NOT REPRESENTED
+
+
${icons.shield}Third-party verified. Independent US laboratory.
+
Analysis performed by an independent contract laboratory in the United States. Methods, sample reference, lot and report date are shown per entry. OVO Labs does not perform its own release testing.
+
+
+
+
+
+
+
+
Catalog status
+
Every current entry
+
+
Every status is intentionally explicit instead of dressing absence up as proof.
+ ${accordion([
+ [
+ "Does a purity result prove identity?",
+ "Not by itself. Identity and relative purity answer different questions and may require different analytical methods.",
+ ],
+ [
+ "Does a reported result prove every vial is the same?",
+ "No. A result applies only to the identified sample and method scope. Sampling, chain of custody, and lot linkage remain separate questions.",
+ ],
+ [
+ "Does a COA establish suitability for human use?",
+ "No. OVO Labs does not present human-use, safety, efficacy, clinical, administration, or preparation information.",
+ ],
+ [
+ "Why show fields with no result?",
+ "Because a visible empty state is more informative than a badge that leaves the scope ambiguous. Identity, content and purity are reported per lot. Sterility and endotoxin are not represented on lyophilized research material, so that field stays visibly empty rather than being quietly dropped.",
+ ],
+ ])}
+
Short guides for comparing peptide catalog entries, interpreting testing states, and understanding what a document’s scope does and does not establish.
+ ${accordion([
+ ["Is OVO Labs a real company?", "No. It is a fictional, non-operational storefront concept. Nothing is stocked, sold, shipped, tested, or transacted."],
+ ["Why show concept prices?", "Prices make the ecommerce prototype complete enough to evaluate its hierarchy, cart states, sorting, and merchandising. They are not offers for sale."],
+ ["Why are there no ratings?", "No customers or reviews exist. Empty or invented social proof would make the interface less trustworthy, not more."],
+ ["Can I check out?", "Yes. Cart, contact, shipping, delivery method, payment review, and order confirmation all work end to end. The payment step is the one exception: no card is collected and no charge is possible."],
+ ])}
+
What each lot reports, what “not represented” means, how browser storage works, and exactly where this fictional store stops.
+
+
+
+
+
+
OVO Labs FAQ
+
The complete store boundary.
+
+
+ ${accordion([
+ ["Can I place an order?", "You can complete the checkout and receive an order reference, which is recorded in this browser. Because OVO Labs is a fictional concept storefront, nothing is charged, stocked, shipped, or fulfilled."],
+ ["What does “not represented” mean?", "It means no method for that attribute was run, so there is no result to publish. On this catalog it applies to sterility and endotoxin on every entry. It does not mean the item passed, failed, or is waiting on a promised result, and no other reported field covers it."],
+ ["Does a COA prove a product is safe, effective, or sterile?", "No. A document supports only the measurements, sample, method, date, and scope it identifies. Unreported attributes should not be inferred."],
+ ["Where do the purity percentages come from?", `Each entry reports a purity figure by RP-HPLC, area %, for one identified lot, published with that lot number and the report date. Retatrutide reports ${testingFor("retatrutide").purity[1]} for lot ${testingFor("retatrutide").lot}, reported ${testingFor("retatrutide").date}. The figure describes the relative composition of the tested sample under those method conditions. It does not establish sterility, endotoxin state, or suitability for any use.`],
+ ["Does this catalog provide human-use information?", "No dosing, preparation, administration, safety, efficacy, medical, or human-use guidance is provided."],
+ ["Are the product descriptions medical advice?", "No. They identify proposed catalog references and formats only."],
+ ["How does search work?", "Search by peptide name, category, blend name, or catalog code such as OVO-001. Keyboard users can move through predictive results with the arrow keys."],
+ ["Why are there no customer reviews?", "There are no customers or order history. OVO Labs does not fabricate ratings, testimonials, or purchase activity."],
+ ["What information does this site store?", "Cart contents and recently viewed product codes can be stored locally in your browser. Nothing is transmitted to a company or server."],
+ ["How do I remove locally saved information?", "Use Clear cart in the cart drawer. You can also clear this site’s browser storage to remove all local state."],
+ ])}
+
+
+
+
+
+
Ready to browse?
Search all ten entries or inspect the testing framework first.
A peptide store designed around finding and deciding.
+
OVO Labs is designed around a simple idea: product information should be easy to scan, and missing evidence should be impossible to miss.
+
+
+
+
+
+
The premise
+
Retail clarity can do more work than scientific theater.
+
+
+
The strongest specialist stores help people find the right entry quickly, compare it in place, and understand the next action. OVO Labs applies that discipline without inventing operations or proof.
+
+
Catalog modelFocused selection, stable product codes, and flat product routes
+
Discovery modelPersistent search, visual category paths, filters, and related entries
+
Product modelIdentity, labeled amount, format, price, and testing status in one decision block
+
Proof modelOnly substantiated facts; no invented ratings, laboratories, results, or popularity
+
+
+
+
+
+
+
+
+
Operating principles
+
What the brand refuses to fake
+
+
+
+
No decorative proof
An analytical figure appears only with its method, lot and report date attached. Ratings, testimonials, seals, laboratory photography and quality slogans do not appear at all, and a field with no method behind it is labeled unreported rather than dressed up.
+
No urgency machinery
No stock countdown, sale timer, crossed-out anchor price, or invented best-seller ranking pushes the click.
+
No fake transaction
The full purchase path is here to evaluate, from cart to order confirmation. Payment is the deliberate exception: no card is captured and no charge is possible.
+
+
+
+
+
+
+
Who we are
+
The entity behind the catalog, in full.
+
+
+
A store that will not name itself is asking for trust it has not offered. Every line below is fictional. Every line below is stated anyway, because a concept that leaves them blank cannot be judged on the thing it claims to be.
+
+
Operating entityOVO Labs LLC, an Oregon limited liability company
+
Registered office1420 NW Marshall Street, Suite 300, Portland, Oregon 97209
+
FulfillmentOne facility in Portland. Packing, cold-chain assembly and logger sealing all happen there
+
Analytical workAn independent US contract laboratory. OVO Labs runs no release testing of its own and names the method, sample and date on every lot it reports
This storefront demonstrates an interface, not an operation.
+
OVO Labs has no company operations, products, inventory, customers, testing, fulfillment, payments, or ordering capability.
+
+
+
+
What the prototype does
+
It demonstrates ecommerce information architecture: product discovery, category filtering, predictive search, product pages, testing-status presentation, a learning center, and a browser-local demo cart.
+
What the prototype does not do
+
+
It does not offer, sell, reserve, quote, or ship material.
+
It does not collect payment, customer accounts, addresses, or submitted email data.
+
It does not claim a named laboratory, an accreditation, a regulatory approval, a customer, a review, a rating, or a sales record.
+
The lots, analytical results, unit counts, prices and delivery windows shown are demonstration data for a fictional catalog, not records of material that exists.
+
It does not provide dosing, preparation, administration, clinical, therapeutic, safety, efficacy, or human-use information.
+
+
The cart is local. Its contents and any order reference are stored only in this browser. Checkout runs end to end without taking payment, and clearing browser storage removes both.
+
Fulfillment and resolution
+
This is the policy the concept operates under, so the checkout and the confirmation page can point at a stated position rather than an implied one.
+
+
Damaged or wrong on arrival: photograph the box, the mailer and the vial label within 72 hours and open a case with the order reference.
+
Wrong item or wrong labeled amount: replacement from the same or a later lot at no cost.
+
Broken vial in transit: replacement at no cost.
+
Cold-chain logger above range: replaced regardless of vial condition.
+
Unopened vials: returnable within 14 days, refunded to the original method less outbound shipping.
+
Opened vials: not returnable, because a returned vial cannot be re-verified.
+
+
How a case is opened
+
One route and one thread: email the support mailbox with the order reference in the subject line. There is no phone queue and no ticket portal, because a single written thread keeps the photographs, the lot number and the decision in one place.
The lot number printed on the vial label, which is what the claim is checked against.
+
Photographs of the outer box, the inside of the mailer, the vial, and the temperature logger if one shipped.
+
+
What happens next:
+
+
Acknowledgement within one business day, naming anything still missing from the case.
+
A written decision within three business days of a complete case, with the reason stated.
+
Approved replacements ship on the next fulfillment day by the delivery method originally paid for, at no cost, with the new lot number quoted before dispatch.
+
Approved returns get a prepaid label and a return reference. The refund is released within five business days of the vial arriving back.
+
+
After 72 hours, or without the lot number, a case can still be read but cannot be settled as a transit claim, because the carrier record has closed and the condition on arrival can no longer be established.
+
None of this can be exercised. Nothing is picked, packed or shipped here, so no case can arise and the mailbox above is fictional. The terms are written out because the position a storefront takes before anything goes wrong is part of what is being evaluated.
+
Why the banner stays visible
+
The thin top notice keeps the concept status clear on every route while allowing the rest of the prototype to be evaluated as a real ecommerce design.
+
+ `;
+ }
+
+ /* eligibility.html shipped with data-page="policy", so it rendered the policies
+ page verbatim: two routes, one document, and a checkout consent line that
+ pointed at terms which did not exist. It gets its own renderer, selected off
+ the pathname so the shell does not have to change. */
+ function eligibilityPage() {
+ return `
+
+
+
Eligibility
+
Who this catalog is offered to.
+
OVO Labs presents research material for laboratory and research settings only. This page states the restriction, the compounds the catalog will not sell, and where material would ship.
+
+
+
+
Who may order
+
Material is offered to laboratory and research settings, and to the people who work in them, for in vitro and research use. Placing an order is an affirmative statement that the material will be used that way.
+
Not for human or veterinary use
+
Nothing in this catalog is a drug, a supplement, a food, a cosmetic, or a medical device. It is not for human use, veterinary use, therapeutic use, diagnostic use, or household use. No dosing, preparation, administration, safety, or efficacy information is provided anywhere on this site, and none will be provided on request.
+
The consent at checkout is the same statement. Confirming it is confirming that the order is for laboratory research use only.
They are kept in the catalog rather than deleted, so the position is visible instead of silent.
+
Where it would ship
+
The concept ships within the United States only, to a street address rather than a mailbox service, from a single US fulfillment center. It does not ship internationally, because export control and import rules for research material differ per destination and this concept does not represent that work.
+
What this page is not
+
OVO Labs is a fictional concept storefront. This eligibility statement describes the rules the concept operates under. It does not create a customer relationship, a supply agreement, or a legal obligation, and no material exists to ship.
+
+ `;
+ }
+
+ function productPage(product) {
+ if (!product) return notFoundPage();
+ const related = PRODUCTS.filter(
+ (candidate) => candidate.slug !== product.slug && candidate.categoryKey === product.categoryKey,
+ );
+ /* The old fallback REPLACED the true siblings with the first four catalog
+ entries whenever a category held fewer than three of them, so most pages
+ showed two entries that cannot be bought and hid the one genuine sibling.
+ Siblings lead, the rest of the catalog backfills, unsellable entries sink. */
+ const relatedRail = sellableFirst([
+ ...related,
+ ...PRODUCTS.filter((candidate) => candidate.slug !== product.slug && !related.includes(candidate)),
+ ]).slice(0, 4);
+
+ return `
+
+ ${(() => {
+ const stock = availabilityFor(product.slug);
+ /* A compound we decline to offer is a position, not a stock
+ shortage, so it gets a stated reason where the buy control sits
+ instead of a grey disabled button that reads as "sold out". */
+ if (stock.restricted) {
+ return `
+
+ ${[
+ /* The restricted path returns above this list, so the old
+ `restricted ? [...] : [...]` fork could never take its first
+ branch: three marks were written for the not-offered entry and
+ zero of them ever rendered. The dead branch is removed rather
+ than left implying a state this list can reach. */
+ testingFor(product.slug) ? `${testingFor(product.slug).purity[1]} purity` : "Purity reported",
+ "Third-party tested",
+ "Cold chain ready",
+ "Free over " + money.format(FREE_SHIPPING_THRESHOLD),
+ ].map((label) => `
${testingFor(product.slug) ? `Lot ${escapeHtml(testingFor(product.slug).lot)}` : "No lot on file"}${testingFor(product.slug) ? `Reported ${escapeHtml(testingFor(product.slug).date)}` : "No result reported"}
+
+
${availabilityFor(product.slug).restricted
+ ? "Nothing on this page can be added to a cart."
+ : "Adds this item to a browser-only cart. No order, payment, or shipment is created."}
+
+
+
+
+
+
+
Product facts
+
The comparison fields, up front.
+
+
+
Product name${escapeHtml(product.name)}
+
Catalog code${escapeHtml(product.code)}
+
Research area${escapeHtml(product.category)}
+
Labeled amount${escapeHtml(product.strength)}
+
Format${escapeHtml(product.format)}
+
Analytical state${testingFor(product.slug) ? `Identity, content, purity reported · lot ${escapeHtml(testingFor(product.slug).lot)}` : "No result reported"}
+
+
+
+
+
+
+
Testing status
+
Every missing result stays visible.
+
+
+ ${(() => {
+ const record = testingFor(product.slug);
+ return record
+ ? `
+
Lot ${escapeHtml(record.lot)} · sample ${escapeHtml(sampleReference(record.lot))} · reported ${escapeHtml(record.date)}
Not represented. Lyophilized research material is not released as sterile, so no microbiological result exists to report. Do not infer sterility from the purity figure above.
+
Analysis performed by an independent contract laboratory in the United States. Methods, sample reference, lot and report date are shown per entry. OVO Labs does not perform its own release testing.
+
+
+
+
+
+
+
Storage and handling
+
What to do when the box arrives.
+
+
+
Lyophilized peptide is a dry solid. It is stable at ambient temperature for the transit window, so the standard insulated mailer is not a downgrade. Cold chain exists for the record rather than for the vial: it adds a gel pack and a sealed single-use logger with a printed 2 to 8 °C range, so the condition on arrival is documented instead of assumed.
+
Read the logger before opening the mailer. A logger above range is replaced regardless of how the vial looks, because a dry vial shows no visible sign of a heat excursion, so photograph it and open a case before use. Store unopened vials at 2 to 8 °C, upright, in the carton and away from light. The ambient tolerance covers days in transit, not months on a shelf.
+ ${(() => {
+ /* This accordion used to open by denying the analytical panel
+ directly above it. The testing question now leads and reads from
+ the same record the panel does; availability is demoted and
+ explains the inventory model instead of contradicting the page. */
+ const record = testingFor(product.slug);
+ const stock = availabilityFor(product.slug);
+ return accordion([
+ [
+ "Has this entry been tested?",
+ record
+ ? `Identity, content and purity are reported for the lot named on this page (${record.lot}, reported ${record.date}) using the methods in the analytical panel. Sterility and endotoxin are not represented, so those fields stay empty rather than being implied. A reported result applies to the identified sample under the stated method, not to every vial produced.`
+ : "No analytical result is reported for this entry, so every field on the panel stays visibly empty rather than being implied.",
+ ],
+ [
+ "Is this entry available?",
+ stock.restricted
+ ? restrictionFor(product.slug)
+ : stock.sellable
+ ? `Stock is held per catalog entry and the buy box shows the current count. ${stock.units <= LOW_STOCK_AT ? `Only ${stock.units} remain, so the quantity control is capped at what exists.` : "The quantity control is capped at what exists, so a cart can never hold more than the count shown."}`
+ : "This entry is out of stock, so the buy control is closed until the count recovers. Nothing on this page reserves or backorders material.",
+ ],
+ ["What does the listed price mean?", "It lets the storefront demonstrate sorting, merchandising, cart totals, and product hierarchy. It is not an offer or quote."],
+ ["Where is administration information?", "It is intentionally absent. OVO Labs does not provide dosing, preparation, administration, human-use, safety, efficacy, or outcome information."],
+ ]);
+ })()}
+
+
+ ${availabilityFor(product.slug).sellable
+ ? ``
+ : ""}
+ `;
+ }
+
+ function articlePage(slug) {
+ const content = {
+ "reading-testing-status": {
+ eyebrow: "Testing guide · 4 minutes",
+ title: "How to read a testing status",
+ lede: "Start with the question the method is meant to answer. Then check whether a result is actually reported.",
+ sections: [
+ ["A specification is not a result", "A specification describes an intended target or acceptance rule. A result describes what was observed for an identified sample under a stated method. One should never be styled as the other."],
+ ["Identity, amount, and composition are separate", "An identity method asks whether the observed profile matches the intended compound. A content or mass method asks how much is reported. A purity method describes relative composition under its method conditions. None automatically answers the others."],
+ ["“Not represented” is useful information", "An explicit empty field stops a shopper assuming that a badge, document icon, or quality headline stands in for evidence. Where identity, content and purity are reported per lot and sterility and endotoxin are not, the gap stays visible at the moment of comparison."],
+ ],
+ },
+ "choosing-by-molecule": {
+ eyebrow: "Catalog guide · 4 minutes",
+ title: "Shop by molecule, not by hype",
+ lede: "A clean catalog starts with product identity, then narrows by strength, format, code, and evidence state.",
+ sections: [
+ ["Start with the exact entry", "Separate compounds should have separate product pages. A selector is useful for genuine strengths of the same item, not for hiding unrelated molecules inside one high-traffic page."],
+ ["Compare the same fields every time", "Product name, code, strength, format, price concept, and testing status should appear in predictable positions. Consistency turns a grid into a comparison tool."],
+ ["Use categories as a shortcut", "Research-area categories help exploration, while exact-name and product-code search help returning or expert shoppers. Both paths should reach the same canonical product page."],
+ ],
+ },
+ "coa-boundaries": {
+ eyebrow: "Document guide · 5 minutes",
+ title: "What a COA can and cannot show",
+ lede: "The value of a certificate depends on the identified sample, the method, the result, and the scope. The title alone proves very little.",
+ sections: [
+ ["Read the scope before the number", "A reported purity figure does not automatically establish identity, total content, sterility, endotoxin state, stability, or suitability for a particular use."],
+ ["Check the sample link", "A result is only useful when the document identifies the tested sample and the catalog can explain how that sample relates to the represented item."],
+ ["Do not fill gaps with design", "A green badge, seal, laboratory photograph, or download icon cannot replace a reported result. If a field is missing, the interface should say so directly."],
+ ],
+ },
+ }[slug];
+
+ if (!content) return notFoundPage();
+ return `
+
+
${escapeHtml(content.eyebrow)}
+
${escapeHtml(content.title)}
+
${escapeHtml(content.lede)}
+
This guide describes document and catalog structure. It does not provide medical, clinical, preparation, administration, or human-use information.
+
+ `;
+ }
+
+ /* Every product page promises a lot COA before dispatch, and until now the
+ document was asserted and never produced, which is the one place the site's
+ evidence claim was pure assertion. This is the document. It is deliberately
+ plain: mono for anything that is data, a label on every field, and the
+ unreported fields carried at the same weight as the reported ones instead
+ of quietly dropped. No badges, no status colour, no persuasion. */
+ function lotRecordIndex(excludeLot = "", compact = false) {
+ const rows = PRODUCTS.filter((product) => testingFor(product.slug))
+ .filter((product) => testingFor(product.slug).lot !== excludeLot)
+ .map((product) => {
+ const record = testingFor(product.slug);
+ return `
+
+ ${escapeHtml(record.lot)}
+ ${escapeHtml(product.name)} · ${escapeHtml(product.strength)}
+ ${escapeHtml(product.code)}
+ Reported ${escapeHtml(record.date)}
+
+ `;
+ })
+ .join("");
+ return `
${rows}
`;
+ }
+
+ function lotRecordPage() {
+ const requested = (new URLSearchParams(window.location.search).get("lot") || "").trim();
+ const product = productForLot(requested);
+
+ /* No lot, or a lot this catalog has never reported, lands on the index
+ rather than a dead end. A record set is browsable by definition. */
+ if (!product) {
+ track("lot_record_index", { requested_lot: requested });
+ return `
+
${requested ? `No record for lot ${escapeHtml(requested)}.` : "Lot records"}
+
${requested
+ ? "That lot number is not in this catalog's record set. Every lot currently reported is listed below."
+ : "One record per reported lot. Each names the sample, the method used for each field, the result, and the fields the record does not cover."}
+
+
+
+
+ ${lotRecordIndex()}
+
Analysis performed by an independent contract laboratory in the United States. OVO Labs does not perform its own release testing. No record on this site represents sterility or endotoxin.
The analytical record behind ${escapeHtml(product.name)} ${escapeHtml(product.strength)}. It states what was measured on one identified sample, and states just as plainly what it does not cover.
Each result applies to sample ${escapeHtml(sample)} under the method named beside it. Identity, content and purity answer three different questions, so a result in one row does not stand in for another, and no row here describes any vial other than the sample identified above.
+
+
+
Not represented by this record
+
${methodRows(omitted, true)}
+
Lyophilized research material is not released as sterile, and no microbiological or endotoxin method was performed on this sample, so there is no result to report and none is implied. Do not read the purity figure above as a sterility statement. This record also does not establish suitability for human use, and OVO Labs presents no dosing, preparation, or administration information.
+ ${(() => {
+ /* The lot is what a buyer can check the delivered vial label
+ against, so it rides the line from here to the receipt
+ instead of living only on the product page. */
+ const lots = lotTraceRows(item.slug);
+ return lots.length ? `
${lots.join("")}
` : "";
+ })()}
+
+ ${money.format(item.price * line.quantity)}
+
+
${(() => { const a = availabilityFor(item.slug); return a.sellable
+ ? ` ${escapeHtml(a.label)} · ships from the US fulfillment center`
+ : ` ${escapeHtml(a.label)} · remove to continue`; })()}
+
+
+
+ ${line.quantity}
+
+
+ ${money.format(item.price)} each
+
+
+ ${cartLineAtCap(line)
+ ? `
Maximum ${cartLineCeiling(line.slug)} per order at current stock.
`
+ : ""}
+
+
+ `;
+ })
+ .join("");
+
+ /* Both this bar and the summary shipping line derive from the same
+ threshold, so they can never contradict each other on screen. */
+ const freeShipBar = shipProgressBar(breakdown.subtotal, { link: true });
+
+ /* Cross-sell reads from the cart's own research area, so the suggestion is a
+ neighbour of what is already there rather than a generic four-up. Only
+ entries that can actually be bought are eligible. */
+ const cartCategories = new Set(
+ cart
+ .map((line) => cartItemData(line.slug))
+ .filter(Boolean)
+ .map((item) => item.categoryKey)
+ .filter(Boolean),
+ );
+ const inCart = new Set(cart.map((line) => line.slug));
+ const eligible = PRODUCTS.filter((entry) => !inCart.has(entry.slug) && availabilityFor(entry.slug).sellable);
+ const pairsWith = [
+ ...eligible.filter((entry) => cartCategories.has(entry.categoryKey)),
+ ...eligible.filter((entry) => !cartCategories.has(entry.categoryKey)),
+ ].slice(0, 3);
+
+ return `
+
+
+
Cart
+
Your cart
+
+
+
+
+
+ ${(() => {
+ /* "No longer available" and "we only have four of these" are not the
+ same problem and do not have the same fix, so the notice names
+ which lines are which instead of collapsing both into one word. */
+ const issues = cart.map((line) => cartLineIssue(line)).filter(Boolean);
+ if (!issues.length) return "";
+ const unsellable = issues.filter((issue) => issue.type !== "partial");
+ const partial = issues.filter((issue) => issue.type === "partial");
+ const parts = [];
+ if (unsellable.length) {
+ parts.push(
+ `${unsellable.map((issue) => escapeHtml(issue.name)).join(", ")} cannot be sold. Remove ${unsellable.length === 1 ? "it" : "them"} to continue to checkout.`,
+ );
+ }
+ partial.forEach((issue) => {
+ parts.push(`Only ${issue.units} of ${escapeHtml(issue.name)} available. Lower the quantity to continue.`);
+ });
+ return `
${issues.length === 1 ? "One line needs attention" : `${issues.length} lines need attention`} before checkout.${parts.join("")}
+ `;
+ }
+
+ /* Digits are what a carrier needs; the punctuation is only for reading it back
+ to the person who typed it, so it is applied at display time and never
+ stored. */
+ function formatPhone(value) {
+ const digits = String(value || "").replace(/\D/g, "");
+ if (digits.length === 10) return `(${digits.slice(0, 3)}) ${digits.slice(3, 6)}-${digits.slice(6)}`;
+ if (digits.length === 11 && digits.startsWith("1")) return `+1 (${digits.slice(1, 4)}) ${digits.slice(4, 7)}-${digits.slice(7)}`;
+ return String(value || "");
+ }
+
+ function checkoutPage() {
+ const blocked = blockedCartLines();
+ if (blocked.length) {
+ return `
+
+
+
Checkout
+
${blocked.length === 1 ? "An item in your cart is" : "Items in your cart are"} no longer available.
+
${blocked.map((line) => escapeHtml(cartItemData(line.slug) ? cartItemData(line.slug).name : line.slug)).join(", ")} cannot be sold. Remove ${blocked.length === 1 ? "it" : "them"} from your cart to continue.
+
+ `;
+ }
+
+ const draft = readCheckoutDraft();
+ const breakdown = priceBreakdown(draft);
+
+ /* A completed step is a place you can go back to. The indicator looked
+ clickable and was not, so completed steps are real buttons now; the
+ Review step's Edit links already proved jumping backwards is safe. */
+ const steps = CHECKOUT_STEPS.map(
+ (step, index) => `
+
+
+ `;
+ }
+
+ /* The receipt carries the lot it was ordered against, and the name links
+ back to that record, so the vial in the box can be checked against
+ something rather than trusted. */
+ const lines = order.items
+ .map(
+ (line) => `
+
+
+
+ ${escapeHtml(line.name)}
+ ${escapeHtml(line.code)} · ${escapeHtml(line.strength)} · Qty ${line.quantity}
+ ${(() => {
+ /* Orders placed before lots were recorded still render: the line
+ falls back to its single stored lot, and shows nothing at all
+ if it never carried one. */
+ const lots = Array.isArray(line.lots) && line.lots.length
+ ? line.lots
+ : line.lot
+ ? [{ name: line.name, lot: line.lot, date: line.lotDate || "" }]
+ : [];
+ return lots
+ .map(
+ (entry) =>
+ `${lots.length > 1 ? `${escapeHtml(entry.name)} · ` : ""}Lot ${escapeHtml(entry.lot)} · reported ${escapeHtml(entry.date || "")} · record`,
+ )
+ .join("");
+ })()}
+
+ ${money.format(line.price * line.quantity)}
+
+ `,
+ )
+ .join("");
+
+ /* The receipt's primary action is the record for the lot that was actually
+ shipped against, so the document the site keeps promising is one click
+ from the order rather than a search away. */
+ const orderLots = order.items.flatMap((line) =>
+ Array.isArray(line.lots) && line.lots.length
+ ? line.lots
+ : line.lot
+ ? [{ name: line.name, lot: line.lot, date: line.lotDate || "" }]
+ : [],
+ );
+ const firstLot = orderLots.length ? orderLots[0].lot : "";
+
+ const rows = [
+ ["Subtotal", money.format(order.totals.subtotal)],
+ ...(order.totals.discount > 0 ? [["Discount", `-${money.format(order.totals.discount)}`]] : []),
+ [`Shipping · ${escapeHtml(order.shippingMethodName)}`, order.totals.shipping === 0 ? "Free" : money.format(order.totals.shipping)],
+ ["Tax", money.format(order.totals.tax)],
+ ]
+ .map(([l, v]) => `
${l}${v}
`)
+ .join("");
+
+ return `
+
+
+
Order ${escapeHtml(order.reference)}
+
Thank you, ${escapeHtml(order.firstName)}.
+
Your order is recorded. A confirmation would be sent to ${escapeHtml(order.email)}.
${escapeHtml(order.email)}${order.phone ? ` ${escapeHtml(formatPhone(order.phone))}` : " No phone provided"}
+
+
+
If something is wrong
+
Photograph the box, mailer, vial label and logger within 72 hours, then email support@ovolabs.example with ${escapeHtml(order.reference)} in the subject line. Acknowledgement within one business day. Fulfillment and resolution policy
+ `;
+ })
+ .join("")
+ : "";
+
+ return `
+
+ `;
+ }
+
+ /* The drawer is a full-height grid (auto 1fr auto), so a short cart left ~196px
+ of dead white between the last line and the footer. Rather than collapse the
+ drawer, that region now carries the two things a cart is actually for:
+ progress toward free shipping, and the nearest sensible addition. */
+ function shippingProgress(breakdown) {
+ const pct = Math.min(100, Math.round((breakdown.subtotal / FREE_SHIPPING_THRESHOLD) * 100));
+ return breakdown.freeShippingRemaining > 0
+ ? `
+
+
Add ${money.format(breakdown.freeShippingRemaining)} for free standard shipping.
+
`
+ : `
+
+
Standard shipping is free on this order.
+
`;
+ }
+
+ function drawerCrossSell() {
+ const inCart = new Set(cart.map((line) => line.slug));
+ /* A side drawer pins its footer, so a short cart always leaves a void
+ somewhere between the last line and the summary. Rather than move the gap
+ around, fill it: the fewer lines in the cart, the more suggestions shown.
+ One line gets four, a full cart gets one. */
+ const room = Math.max(1, 5 - cart.length);
+ const picks = PRODUCTS
+ .filter((p) => !inCart.has(p.slug) && availabilityFor(p.slug).sellable)
+ .slice(0, room);
+ if (!picks.length) return "";
+ return `
+
+
Every entry currently shows the same clear state: no analytical result has been reported. The testing page explains what each method would and would not establish.
+ ${accordion([
+ [
+ "Does a purity result prove identity?",
+ "Not by itself. Identity and relative purity answer different questions and may require different analytical methods.",
+ ],
+ [
+ "Does a reported result prove every vial is the same?",
+ "No. A result applies only to the identified sample and method scope. Sampling, chain of custody, and lot linkage remain separate questions.",
+ ],
+ [
+ "Does a COA establish suitability for human use?",
+ "No. OVO Labs does not present human-use, safety, efficacy, clinical, administration, or preparation information.",
+ ],
+ [
+ "Why show fields with no result?",
+ "Because a visible empty state is more informative than a badge that leaves the scope ambiguous. Missing evidence should remain visibly missing.",
+ ],
+ ])}
+
+ ${accordion([
+ ["Is OVO Labs a real company?", "No. It is a fictional, non-operational storefront concept. Nothing is stocked, sold, shipped, tested, or transacted."],
+ ["Why show concept prices?", "Prices make the ecommerce prototype complete enough to evaluate its hierarchy, cart states, sorting, and merchandising. They are not offers for sale."],
+ ["Why are there no ratings?", "No customers or reviews exist. Empty or invented social proof would make the interface less trustworthy, not more."],
+ ["Can I check out?", "No. The local demo cart supports add, update, remove, and subtotal states, then ends before checkout or payment."],
+ ])}
+
What the catalog shows, what “No result reported” means, how browser storage works, and exactly where this fictional store stops.
+
+
+
+
+
+
OVO Labs FAQ
+
The complete store boundary.
+
+
+ ${accordion([
+ ["Can I place an order?", "No. OVO Labs is a fictional concept storefront. The cart is browser-only, and there is no checkout, payment, inventory, shipping, customer account, or fulfillment operation."],
+ ["What does “No result reported” mean?", "It means no testing result is published for that catalog item. It does not mean the item passed, failed, or is waiting on a promised result."],
+ ["Does a COA prove a product is safe, effective, or sterile?", "No. A document supports only the measurements, sample, method, date, and scope it identifies. Unreported attributes should not be inferred."],
+ ["Why are there no purity percentages?", "No testing result is published for these products. OVO Labs does not invent percentages or testing claims to make a product page feel complete."],
+ ["Does this catalog provide human-use information?", "No dosing, preparation, administration, safety, efficacy, medical, or human-use guidance is provided."],
+ ["Are the product descriptions medical advice?", "No. They identify proposed catalog references and formats only."],
+ ["How does search work?", "Search by peptide name, category, blend name, or catalog code such as OVO-001. Keyboard users can move through predictive results with the arrow keys."],
+ ["Why are there no customer reviews?", "There are no customers or order history. OVO Labs does not fabricate ratings, testimonials, or purchase activity."],
+ ["What information does this site store?", "Cart contents, recently viewed product codes, and the newsletter preference can be stored locally in your browser. No cart contents, entered email address, or saved preference is transmitted by the prototype."],
+ ["How do I remove locally saved information?", "Use Clear cart in the cart drawer. You can also clear this site’s browser storage to remove all local state."],
+ ])}
+
+
+
+
+
+
Ready to browse?
Search all ten entries or inspect the testing framework first.
A peptide store designed around finding and deciding.
+
OVO Labs is designed around a simple idea: product information should be easy to scan, and missing evidence should be impossible to miss.
+
+
+
+
+
+
The premise
+
Retail clarity can do more work than scientific theater.
+
+
+
The strongest specialist stores help people find the right entry quickly, compare it in place, and understand the next action. OVO Labs applies that discipline without inventing operations or proof.
+
+
Catalog modelFocused selection, stable product codes, and flat product routes
+
Discovery modelPersistent search, visual category paths, filters, and related entries
+
Product modelIdentity, labeled amount, format, price, and testing status in one decision block
+
Proof modelOnly substantiated facts; no invented ratings, laboratories, results, or popularity
+
+
+
+
+
+
+
+
+
Operating principles
+
What the brand refuses to fake
+
+
+
+
No decorative proof
No badges, reviews, lab names, purity figures, certificates, or quality claims exist without evidence.
+
No urgency machinery
No stock countdown, sale timer, crossed-out anchor price, or invented best-seller ranking pushes the click.
+
No fake transaction
The local demo cart is complete enough to evaluate, then stops before checkout, payment, fulfillment, or customer data capture.
+
+
+
+
+
+
+
See the full catalog system.
Ten product entries, three sets, a testing lookup, and a complete local cart flow.
This storefront demonstrates an interface, not an operation.
+
OVO Labs has no company operations, products, inventory, customers, testing, fulfillment, payments, or ordering capability.
+
+
+
+
What the prototype does
+
It demonstrates ecommerce information architecture: product discovery, category filtering, predictive search, product pages, testing-status presentation, a journal, and a browser-local demo cart.
+
What the prototype does not do
+
+
It does not offer, sell, reserve, quote, or ship material.
+
It does not collect payment, customer accounts, addresses, or submitted email data.
+
It does not claim a laboratory, certificate, result, purity level, stock state, delivery time, or customer experience.
+
It does not provide dosing, preparation, administration, clinical, therapeutic, safety, efficacy, or human-use information.
+
+
The cart is local. Its contents are stored only in this browser. The interaction ends before checkout, and clearing browser storage removes it.
+
Why the banner stays visible
+
The thin top notice keeps the concept status clear on every route while allowing the rest of the prototype to be evaluated as a real ecommerce design.
Adds this item to a browser-only cart. No order, payment, or shipment is created.
+
+
+
+
+
+
+
Product facts
+
The comparison fields, up front.
+
+
+
Product name${escapeHtml(product.name)}
+
Catalog code${escapeHtml(product.code)}
+
Research area${escapeHtml(product.category)}
+
Labeled amount${escapeHtml(product.strength)}
+
Format${escapeHtml(product.format)}
+
Analytical stateNo result reported
+
+
+
+
+
+
+
Testing status
+
Every missing result stays visible.
+
+
+
IdentityMethod not assignedNO RESULT
+
Content / massMethod not assignedNO RESULT
+
Purity profileMethod not assignedNO RESULT
+
Sterility / endotoxinNot representedNOT REPORTED
+
+
+
+
+
+
+
Product questions
+
Know what this page means.
+
+
+ ${accordion([
+ ["Is this product available?", "No. This storefront is fictional and has no material, inventory, availability, ordering, or fulfillment."],
+ ["What does the listed price mean?", "It lets the storefront demonstrate sorting, merchandising, cart totals, and product hierarchy. It is not an offer or quote."],
+ ["Has this entry been tested?", "No testing or laboratory relationship is represented. Every analytical field on the page explicitly says that no result has been reported."],
+ ["Where is administration information?", "It is intentionally absent. OVO Labs does not provide dosing, preparation, administration, human-use, safety, efficacy, or outcome information."],
+ ])}
+
+
+
+ `;
+ }
+
+ function articlePage(slug) {
+ const content = {
+ "reading-testing-status": {
+ eyebrow: "Testing guide · 4 minutes",
+ title: "How to read a testing status",
+ lede: "Start with the question the method is meant to answer. Then check whether a result is actually reported.",
+ sections: [
+ ["A specification is not a result", "A specification describes an intended target or acceptance rule. A result describes what was observed for an identified sample under a stated method. One should never be styled as the other."],
+ ["Identity, amount, and composition are separate", "An identity method asks whether the observed profile matches the intended compound. A content or mass method asks how much is reported. A purity method describes relative composition under its method conditions. None automatically answers the others."],
+ ["“No result reported” is useful information", "An explicit empty state prevents a shopper from assuming that a badge, document icon, or quality headline stands in for evidence. It keeps the unknown visible at the moment of comparison."],
+ ],
+ analyticalSources: true,
+ },
+ "choosing-by-molecule": {
+ eyebrow: "Catalog guide · 4 minutes",
+ title: "Shop by molecule, not by hype",
+ lede: "A clean catalog starts with product identity, then narrows by strength, format, code, and evidence state.",
+ sections: [
+ ["Start with the exact entry", "Separate compounds should have separate product pages. A selector is useful for genuine strengths of the same item, not for hiding unrelated molecules inside one high-traffic page."],
+ ["Compare the same fields every time", "Product name, code, strength, format, price concept, and testing status should appear in predictable positions. Consistency turns a grid into a comparison tool."],
+ ["Use categories as a shortcut", "Research-area categories help exploration, while exact-name and product-code search help returning or expert shoppers. Both paths should reach the same canonical product page."],
+ ],
+ analyticalSources: false,
+ },
+ "coa-boundaries": {
+ eyebrow: "Document guide · 5 minutes",
+ title: "What a COA can—and cannot—show",
+ lede: "The value of a certificate depends on the identified sample, the method, the result, and the scope. The title alone proves very little.",
+ sections: [
+ ["Read the scope before the number", "A reported purity figure does not automatically establish identity, total content, sterility, endotoxin state, stability, or suitability for a particular use."],
+ ["Check the sample link", "A result is only useful when the document identifies the tested sample and the catalog can explain how that sample relates to the represented item."],
+ ["Do not fill gaps with design", "A green badge, seal, laboratory photograph, or download icon cannot replace a reported result. If a field is missing, the interface should say so directly."],
+ ],
+ analyticalSources: true,
+ },
+ }[slug];
+
+ if (!content) return notFoundPage();
+ return `
+
+
${escapeHtml(content.eyebrow)}
+
${escapeHtml(content.title)}
+
${escapeHtml(content.lede)}
+
This guide describes document and catalog structure. It does not provide medical, clinical, preparation, administration, or human-use information.
This is where the demo ends. Nothing is stocked, sold, or shippable. This cart is stored only in your browser; no order, account, payment, or message is created.
A sourced view of the public peptide market, creator distribution, Biologix signals, operating gaps, and the systems required to convert demand into a durable company.
+
+
+ Prepared for Braden Lowder
+ Research cutoff · July 2026
+
+
+
+
+
Executive finding
+
The demand is real. The durable advantage is the company built around it.
+
The public market is active, creator-led, operationally uneven, and far more dependent on distribution than custom technology. Biologix already appears to possess the scarce ingredients: founder authority, customer demand, supplier knowledge, creator access, and a recognizable brand. The remaining opportunity is to connect those assets through professional management, creator operations, lifecycle, finance visibility, fulfillment discipline, and reliable data.
+
The strongest commercial thesis is not “build another store.” It is to build an operating and distribution system around a brand that has already demonstrated unusual pull.
+
+
+ Thirty
+
Current seller candidates
+
Public research identified a broad U.S.-facing cohort with current retatrutide-labelled or clearly mapped offers.
+
+
+ Eighteen
+
Brands compared deeply
+
Offer structure, acquisition, access controls, proof, retention, affiliate pathways, and public contradictions were compared.
+
+
+ Sixteen
+
Creator evidence rows
+
The verified register includes creators, tracked links, codes, public guides, communities, and other visible routing evidence.
+
+
+
Method boundary: No account was created, no purchase was made, and no private catalog or community was entered. Public storefront observations prove what was visible at a point in time—not product authenticity, customer outcomes, internal records, or regulatory clearance.
+
+
+
+
How the market actually works
+
Distribution and trust do more work than the website.
+
The strongest observed operators use ordinary commerce infrastructure. Their sophistication comes from how they create trust, attribute demand, reduce purchase friction, retain customers, and restart the acquisition loop.
+
+
+ Observed acquisition pattern
+
Attention becomes trust before it becomes a transaction
+
+
Search, social, podcasts, communities, and referrals create attention.
+
Creator education, guides, articles, reviews, and founder identity create trust.
+
Tracked links, personalized pages, and codes create attributable handoffs.
+
Batch reports, support, shipping language, and visible policies reduce uncertainty.
+
+
+
+ Observed retention pattern
+
The transaction restarts the loop
+
+
Email, SMS, account history, alerts, and replenishment offers support repeat purchasing.
+
Membership, points, bundles, and broader catalogs deepen the relationship.
+
Creator portals and partner management turn existing relationships into new acquisition.
+
Wholesale and manager layers expand reach without routing every decision through a founder.
+
+
+
+
Creators often own the trust. The seller owns the transaction. The company that connects attribution, lifecycle, service, and management owns the durable relationship.
The creator layer is already large enough to function as infrastructure.
+
Public evidence shows a mature creator-to-seller pattern: large audiences, education or community bridges, tracked links, codes, and portfolio relationships across multiple sellers. A link or code proves attributable routing—not payment, sales, exclusivity, or ownership.
+
+
+
Creator
Public reach snapshot
Observed routing evidence
+
+
+
Clavicular / Braden Peters
Audience above one million on Instagram and near one million on TikTok at capture
Live creator-controlled route to Arcane; separate public reporting documented source promotion.
+
Connor Sinann
Large YouTube and TikTok audiences
Tracked vendor link, public code, public guide, and paid community funnel.
+
Zaytovenfit
Large TikTok audience
Live retatrutide-labelled creator route and separate tracked seller relationship.
+
Jesse Marji
Large TikTok audience
Live retatrutide-labelled source link and code, plus a second seller code.
+
Dymitri
Large TikTok audience
Current multi-vendor code portfolio, demonstrating that creators can operate across several relationships.
+
Sarah Westall
Established newsletter audience
Tracked links, personalized seller page, code, and a public partner program.
+
+
+
Identity caution: Public Connor Sinann must be confirmed as the same Connor discussed in the calls. Public Braden Peters is not Biologix founder Braden Lowder.
+
+
+
What the evidence supports
+
Creators can supply trust, explanation, attributable traffic, community, and repeat exposure at meaningful scale.
+
+
+
What it does not support
+
Public links do not prove private sales, relationship terms, exclusivity, conversion, or customer quality.
+
+
+
+
+
+
Biologix evidence
+
Public signals and founder-reported signals point to a company whose demand arrived before its infrastructure.
+
+
+ Publicly observed
+
GLP-3R led the public popularity snapshot
+
The timestamped Biologix WooCommerce Store API snapshot returned GLP-3R / retatrutide first in popularity order. That order is sales-informed, but it does not disclose units, dollars, customers, or the represented period.
+
+
+ Publicly observed
+
Visible storefront allocation was substantial
+
A timestamped public snapshot recorded 1,397 visible numeric units and approximately $86,657 in displayed retail inventory across sellable entries. This is storefront allocation—not proof of total warehouse inventory, cost, ownership, or historical sales.
+
+
+ Founder-reported · not reconciled
+
A single dashboard view showed unusually high activity
+
During the recorded strategy call, Braden showed a dashboard amount of $53,540.86 and 216 reported orders while explaining that analytics were incomplete and omitted Apple Pay. The screenshot is a strong operating signal, but it remains a founder-reported snapshot until matched to orders and settlements.
+
+
+ Founder-reported · transcript
+
Founder dependence is visible across functions
+
The calls describe founder-led fulfillment, a small active affiliate group, incomplete analytics, family-carried finance, and multiple growth initiatives waiting for a management layer.
+
+
+
Operating opportunities repeatedly identified in the calls
+
+
Move finance knowledge from a family-carried process into independent professional coverage.
+
Turn isolated creator relationships into a managed creator and affiliate system.
+
Connect membership, subscription, email, SMS, referral, and retention into one lifecycle.
+
Build managers who manage relationships and people without routing everything through Braden.
+
Use retreats and creator experiences as recruiting, retention, content, and partnership infrastructure.
+
Integrate PeptidePal as a strategic category asset rather than leaving it disconnected.
+
+
+
+
+
Competitor evidence
+
The market persists, but no single operating pattern proves durability.
+
+
+
Observed pattern
Public examples
What the evidence means
+
+
+
Open direct store
American Peptides, Modern Peptides, Prime Peptides
Low-friction discovery and purchase; public claims and surrounding context are also easier to evaluate.
+
Qualified-access store
Skye, Xcel, Loti, Ion, Mile High
Access gates can collect purchaser representations and reduce public catalog exposure; they do not independently establish legal clearance.
The creator supplies meaning and trust while the seller closes the transaction.
+
Lifecycle-led commerce
Modern, American, Gentleman, Loti
Accounts, alerts, email, SMS, points, and replenishment mechanisms support repeat behavior.
+
Post-agency change
Several cited sellers
Observed responses include gating, renaming, copy changes, product removal, domain migration, continued public retail, and closure.
+
+
+
“Still online” is evidence of market persistence, not evidence that a disclaimer, access gate, code name, or creator separation has been accepted as a safe harbor.
+
Official records documented research-use-only sellers whose wider labeling and marketing led FDA to treat the products as drugs. Other official records documented sellers that later gated catalogs, removed cited products, migrated, continued publicly, or disappeared. A warning letter records FDA’s concerns and an opportunity to respond; it is not a judicial finding.
+
+
+
+
What the evidence means operationally
+
Biologix does not need more disconnected tactics. It needs one accountable operating layer.
+
+
+
Creator operations
+
Recruiting, qualification, onboarding, content standards, attribution, communication, reporting, retention, and expansion should run through one system.
+
+
+
Management leverage
+
Managers should own portfolios and develop additional managers so growth creates leverage instead of more founder messages.
+
+
+
Lifecycle
+
Creator acquisition, membership, subscription, email, SMS, support, referral, and retention should share one customer view.
+
+
+
Finance visibility
+
Independent professionals should reconcile records and produce reliable reporting while the founders use that information to prioritize the company.
+
+
+
Quality and fulfillment
+
Product records, inventory movement, supplier documentation, complaints, and fulfillment performance require traceable owners and escalation paths.
+
+
+
Executive cadence
+
Every priority needs an owner, a status, a decision path, and a regular review so the company stops running through memory.
+
+
+
Partnership implication: Braden’s highest-value work is founder vision, product authority, sourcing, brand, and relationships. Alex and OVO’s highest-value contribution is building and managing the operating system around those strengths.
+
+
+
+
Required verification
+
The evidence is strong enough to justify action—and disciplined enough to show what still needs proof.
+
+
+
Commercial records
+
+
Order exports and product-level sales records
+
Processor activity and bank settlements
+
Refunds, disputes, and chargebacks
+
Customer cohorts and repeat behavior
+
Affiliate attribution and payout ledger
+
+
+
+
Company records
+
+
Entity documents and ownership records
+
Accounting close and tax records
+
Material contracts and commitments
+
Insurance and claims history
+
Processor and platform agreements
+
+
+
+
Product and supply records
+
+
Supplier and import documentation
+
Inventory roll-forward and custody records
+
Testing records and chain of custody
+
Complaint and adverse-event records
+
Fulfillment performance and exception logs
+
+
+
+
Operating records
+
+
Current team and responsibility map
+
Creator agreements and active roster
+
Marketing and claims approval process
+
Technology, data, and access inventory
+
Current professional legal and regulatory advice
+
+
+
+
The purpose of diligence is not to slow the partnership down. It is to replace assumptions with a shared source of truth so both founders can move faster from the same facts.
+
+
+
+
Selected source register
+
Primary records and reproducible public snapshots.
Internal call record: speaker-attributed transcripts from the three Braden–Alex calls, with founder-reported facts labeled separately from public observations.
+
+
Research cutoff: July 2026. Public pages, availability, policies, and agency records can change. This brief is business research, not legal, medical, regulatory, tax, accounting, or investment advice.
+
Biologix × OVO · Market & Operating Evidence · Prepared for Braden Lowder
+
+
diff --git a/biologix-strategy-board/research/build_peptide_founder_media_intelligence.py b/biologix-strategy-board/research/build_peptide_founder_media_intelligence.py
new file mode 100644
index 0000000..7c1b4e7
--- /dev/null
+++ b/biologix-strategy-board/research/build_peptide_founder_media_intelligence.py
@@ -0,0 +1,1850 @@
+#!/usr/bin/env python3
+"""Build the Peptide Founder Media Intelligence workbook.
+
+The workbook intentionally separates interview statements from current verification.
+It excludes dosing and personal-use instructions and is not medical or legal advice.
+"""
+
+from __future__ import annotations
+
+from collections import Counter
+from datetime import date
+import json
+from pathlib import Path
+from urllib.parse import urlparse
+
+from openpyxl import Workbook, load_workbook
+from openpyxl.chart import BarChart, Reference
+from openpyxl.formatting.rule import CellIsRule
+from openpyxl.styles import Alignment, Border, Font, PatternFill, Side
+from openpyxl.utils import get_column_letter
+from openpyxl.worksheet.table import Table, TableStyleInfo
+
+
+AS_OF = "2026-07-26"
+OUTPUT = Path(__file__).with_name("Peptide-Founder-Media-Intelligence.xlsx")
+WEB_OUTPUT = Path(__file__).with_name("peptide-founder-media-intelligence-data.js")
+
+INK = "26211D"
+ESPRESSO = "382E28"
+CREAM = "F7F2E9"
+PORCELAIN = "FCFAF6"
+STONE = "E8E0D4"
+MUTED = "746A62"
+SAGE = "57705B"
+SAGE_LIGHT = "DFE9DF"
+COBALT = "305EA8"
+COBALT_LIGHT = "DEE8F7"
+GOLD = "B59655"
+GOLD_LIGHT = "F4E9CE"
+CLAY = "A66059"
+CLAY_LIGHT = "F1DEDB"
+RED = "A33E3E"
+RED_LIGHT = "F6DDDB"
+WHITE = "FFFFFF"
+
+THIN_STONE = Side(style="thin", color=STONE)
+BORDER = Border(left=THIN_STONE, right=THIN_STONE, top=THIN_STONE, bottom=THIN_STONE)
+
+EVIDENCE_LABELS = {
+ "A": "A - Public record / regulator / court / filing",
+ "B": "B - Independent media or directory",
+ "C": "C - Company-controlled source",
+ "D": "D - Founder, guest, show, or agency claim",
+ "E": "E - Review, complaint, or litigant allegation",
+ "I": "I - Analyst inference",
+}
+
+
+def source(
+ source_id: str,
+ priority: str,
+ lane: str,
+ company: str,
+ operator: str,
+ title: str,
+ published: str,
+ duration: str,
+ stage: str,
+ model: str,
+ media_url: str,
+ current_url: str,
+ current_status: str,
+ freshness: str,
+ confidence: str,
+ listen_for: str,
+) -> dict:
+ return {
+ "ID": source_id,
+ "Priority": priority,
+ "Lane": lane,
+ "Company": company,
+ "Founder / operator": operator,
+ "Episode / source": title,
+ "Published": published,
+ "Duration": duration,
+ "Stage at recording": stage,
+ "Model": model,
+ "Media link": media_url,
+ "Current-check link": current_url,
+ "Current status at 2026-07-26": current_status,
+ "Freshness": freshness,
+ "Confidence": confidence,
+ "Why it matters": listen_for,
+ }
+
+
+SOURCES = [
+ source(
+ "JOI",
+ "1 - Start here",
+ "Exact category founder",
+ "Joi + Blokes",
+ "Josh and Katy Whalen",
+ "The New Health Gold Rush: Hormones, Peptides, GLP-1s & Fertility",
+ "2026-05-14",
+ "59:45",
+ "Founded 2021; about five years old",
+ "Self-pay diagnostics-first telehealth; separate female and male brands share operations",
+ "https://www.youtube.com/watch?v=aigF8IfN4Is",
+ "https://www.entrepreneur.com/building-a-business/they-built-a-50-million-business-before-glp-1s-became-mainstream-now-theyre-eyeing-this-new-health-frontier",
+ "Active; acquired HerMD and announced fertility expansion. Private scale claims are not audited.",
+ "Current; refreshed",
+ "4/5 model, 2/5 financials",
+ "Best direct evidence for a female-leading front, male sibling brand, shared backend, and category-education moat.",
+ ),
+ source(
+ "PEPTIRA",
+ "1 - Start here",
+ "Exact category founder",
+ "Peptira + Peptide Price",
+ "Benjamin Criss and Derek Pruski",
+ "How We Got Started: The Story of Peptide Price + Peptira",
+ "2025-11-01",
+ "46:59",
+ "Peptira about five months old",
+ "RUO ecommerce plus comparison, referral, education, and paid community",
+ "https://www.youtube.com/watch?v=Be58yiS6Vs4",
+ "https://peptira.com/test-results/",
+ "Both active. Peptira expanded its catalog and Peptide Price community; current shipping remedies are stricter than the episode promise.",
+ "Recent but materially changed",
+ "3/5 overall",
+ "Most useful day-one RUO operating interview: sourcing sequence, labels, lot IDs, COAs, support, pack ladders, and community feedback.",
+ ),
+ source(
+ "EC325",
+ "1 - Start here",
+ "Fast-growth case",
+ "Anonymous US peptide brand",
+ "Budai Media",
+ "Ecom Show #325: If I Had to Scale a Peptide Brand Today",
+ "2026-07-21",
+ "15:15",
+ "Claimed six months after a November 2025 start",
+ "Anonymous WooCommerce RUO brand; agency-operated acquisition and lifecycle",
+ "https://shows.acast.com/theecomshow/episodes/325-budai-media-specials-if-i-had-to-scale-a-peptide-brand-t",
+ "https://www.fda.gov/drugs/drug-alerts-and-statements/fdas-concerns-unapproved-glp-1-drugs-used-weight-loss",
+ "Freshest operating update. Agency calls the model a near-term window and says Google scaled more reliably than Meta.",
+ "Very current; anonymous",
+ "2/5 revenue, 4/5 agency experience",
+ "Freshest exact growth playbook, but treat every revenue and margin number as an unaudited agency claim.",
+ ),
+ source(
+ "PERELEL",
+ "1 - Start here",
+ "Female-leading analog",
+ "Perelel",
+ "Alex Taylor, Victoria Thain Gioia, Dr. Banafsheh Bayati",
+ "Success Almost Broke Her: Building a Multimillion-Dollar Wellness Brand",
+ "2026-01-04",
+ "35:16",
+ "Five years old; just under 40 employees",
+ "Doctor-founded DTC subscription brand organized around women's life stages",
+ "https://podcasts.apple.com/us/podcast/success-almost-broke-her-this-recovering-girlboss-built/id1593458926?i=1000743844412",
+ "https://www.prnewswire.com/news-releases/perelel-secures-27m-growth-investment-from-prelude-growth-partners-to-reimagine-womens-health-302622022.html",
+ "Active and expanded; $27M growth investment confirmed. Female-leading master brand still carries one men's product.",
+ "Current; high fit",
+ "5/5 tactics, 3-4/5 private metrics",
+ "Strongest brand-architecture and creator-cohort analog for turning interchangeable products into an identity system.",
+ ),
+ source(
+ "SHEMED",
+ "1 - Start here",
+ "Female-leading analog",
+ "SheMed",
+ "Olivia and Chloe Ferro",
+ "The Weightloss Wonders",
+ "2025-04-24",
+ "31:23",
+ "About four months after launch",
+ "Clinician-led UK telehealth subscription for women, primarily ages 35 to 55",
+ "https://www.buzzsprout.com/850540/episodes/17034792-the-weightloss-wonders",
+ "https://www.shemed.co.uk/about",
+ "Company says 100K+ women served; reported $50M raise. Male sibling HeMed launched on shared infrastructure.",
+ "Historical launch story; current state refreshed",
+ "5/5 model, 4/5 private scale",
+ "Clearest female-front/shared-backend precedent and best example of testing brand tone against the real buyer.",
+ ),
+ source(
+ "MOCHI",
+ "1 - Start here",
+ "Platform analog",
+ "Mochi Health",
+ "Dr. Myra Ahmad",
+ "Inside the Peptide Craze",
+ "2026-04-28",
+ "1:08:00; founder segment 43:41-68:19",
+ "Four years old; minimally funded marketplace",
+ "Recurring cash-pay access connecting customers, providers, pharmacies, testing, and support",
+ "https://podcasts.apple.com/us/podcast/inside-the-peptide-craze-myra-ahmad-ceo-of-mochi/id1774403992?i=1000764115940",
+ "https://joinmochi.com/longevity",
+ "Active; launched a longevity offering after the interview. Company claims 500K+ members; provider count varies by source.",
+ "Very current; rapidly changing",
+ "4/5 model, 2-3/5 private metrics",
+ "Best analog for recurring access, price transparency, provider continuity, testing capacity, and restrained funding.",
+ ),
+ source(
+ "VITABELLA",
+ "2 - Deep dive",
+ "Exact category founder",
+ "Vita Bella Health",
+ "Phil Vella",
+ "The State of the Hormone & Peptide Industry",
+ "2026-02-26",
+ "1:14:19",
+ "Founded 2023; about three years old",
+ "Cash-pay telehealth MSO and recurring membership",
+ "https://www.youtube.com/watch?v=vwgd2UFdE6A",
+ "https://vitabella.com/membership/",
+ "Active; California added after recording. Current pricing is visible, while state, review, and legacy-price claims conflict across pages.",
+ "Recent; partly changed",
+ "3/5 overall",
+ "Useful for membership mechanics, service capacity, partner boundaries, and why a broad catalog is operationally hard.",
+ ),
+ source(
+ "REDLINE",
+ "2 - Deep dive",
+ "Day-zero operator",
+ "Redline Biolabs",
+ "Kyle and Ryan",
+ "Two Firefighters Built a Peptide Company",
+ "2026-05-26",
+ "1:19:22",
+ "Company domain created 2026-04-04",
+ "Founder-led RUO ecommerce",
+ "https://www.youtube.com/watch?v=JQSJYACbOCU",
+ "https://www.redlinebiolabs.com/lab-reports",
+ "Active store and lab-report library; no evidence of rapid scale. Current site contains documentation and affiliate-language inconsistencies.",
+ "Very recent; pre-scale",
+ "4/5 footprint, 1/5 scale/quality claims",
+ "Best day-zero case for founder visibility, payment failure, supplier loss, overselling, service recovery, and channel codes.",
+ ),
+ source(
+ "EC320",
+ "2 - Deep dive",
+ "Fast-growth case",
+ "Anonymous US peptide brand",
+ "Budai Media",
+ "Ecom Show #320: How We Scaled a US Peptide Brand",
+ "2026-05-12",
+ "17:48",
+ "Claimed five months after launch",
+ "Anonymous WooCommerce RUO brand",
+ "https://shows.acast.com/theecomshow/episodes/320-budai-media-specials-how-we-scaled-a-us-peptide-brand-fr",
+ "https://shows.acast.com/theecomshow/episodes/325-budai-media-specials-if-i-had-to-scale-a-peptide-brand-t",
+ "Superseded by #324 and #325. Initial $500K monthly claim later became $600K.",
+ "Recent but superseded",
+ "2/5",
+ "Original channel ramp, learning-period, email-provider failure, and fulfillment/payment coordination story.",
+ ),
+ source(
+ "EC324",
+ "2 - Deep dive",
+ "Fast-growth case",
+ "Anonymous US peptide brand",
+ "Budai Media",
+ "Ecom Show #324: How to Scale Your Peptide Brand",
+ "2026-07-07",
+ "14:35",
+ "Claimed five months after launch",
+ "Anonymous WooCommerce RUO brand",
+ "https://shows.acast.com/theecomshow/episodes/324-budai-media-specials-how-to-scale-your-peptide-brand-so",
+ "https://shows.acast.com/theecomshow/episodes/325-budai-media-specials-if-i-had-to-scale-a-peptide-brand-t",
+ "Mostly current, but #325 is the latest agency position. Approval-bypass discussion is excluded from the workbook playbook.",
+ "Very recent; superseded in part",
+ "2/5 revenue, 4/5 agency experience",
+ "Lifecycle flows, same-product volume ladders, subscriptions, and channel-fragility observations.",
+ ),
+ source(
+ "REM",
+ "2 - Deep dive",
+ "Young adjacent operator",
+ "Remedora",
+ "Coy McAlexander",
+ "Advanced Affiliate EP 134",
+ "2026-05-28",
+ "55:25",
+ "Very young; domain created 2025-10-23",
+ "Telehealth launch and operating layer",
+ "https://www.youtube.com/watch?v=1qgxkaPcq4k",
+ "https://remedora.com/",
+ "Active $200/month platform claim. Scale and vertical-integration assertions remain unverified; retatrutide-compounding discussion is outdated.",
+ "Recent but one material claim is outdated",
+ "3/5 footprint, 1-2/5 scale",
+ "Useful for networking, platformization, cohort LTV, and concentration risk. Not a legal or compounding authority.",
+ ),
+ source(
+ "ARRAE",
+ "2 - Deep dive",
+ "Creator-growth analog",
+ "Arrae",
+ "Siffat Haider and Nish Samantray",
+ "What Makes a Successful Wellness Brand",
+ "2023-05-02",
+ "39:21",
+ "Three years old; about 12-13 employees",
+ "Creator-native DTC wellness and supplement brand",
+ "https://podcasts.apple.com/us/podcast/siffat-haider-co-founder-co-ceo-of-arrae-what-makes/id1432195522?i=1000611429597",
+ "https://www.forbes.com/sites/karineldor/2026/02/18/building-100m-wellness-brand-arrae-siff-haider-on-calculated-risk-and-relentless-standards/",
+ "Active with broader assortment, subscription, and major retail. Company reports $100M+ cumulative revenue and 1.6M+ units, unaudited.",
+ "Old launch tactics; current state refreshed",
+ "5/5 tactics, 3/5 metrics",
+ "Strongest creator-seeding system: broad honest gifting, promote organic advocates, multi-year relationships, and customer-as-creator.",
+ ),
+ source(
+ "BELLI",
+ "2 - Deep dive",
+ "Community-growth analog",
+ "BelliWelli",
+ "Katie Wilson, Nick Wilson, Tyson",
+ "How Katie Wilson Bought Facebook Groups to Build a Gut Health Empire",
+ "2025-06-27",
+ "57:17",
+ "Post-DTC launch; scaling into Walmart and Target",
+ "DTC subscription plus mass retail wellness",
+ "https://podcasts.apple.com/us/podcast/former-matchmaker-turned-ceo-how-katie-wilson-bought/id1484646914?i=1000714873422",
+ "https://www.uschamber.com/co/good-company/launch-pad/health-startups-community-retail-growth",
+ "Active powder and gummy assortment, DTC subscription, broad retail, and independently reported $15.4M Series A.",
+ "Current; high creator/content fit",
+ "5/5 tactics, 3/5 metrics",
+ "Best community/content engine: ownable repeatable format, constant field research, and the danger of confusing niche PMF with mass PMF.",
+ ),
+ source(
+ "TRANSCEND",
+ "3 - Historical caution",
+ "Exact category founder",
+ "Transcend Company",
+ "Ernest Colling",
+ "What's Really Going On in the Peptide Business",
+ "2024-09-16",
+ "1:01:54",
+ "Almost four years old",
+ "Telehealth MSO supporting independent practices and pharmacies",
+ "https://www.youtube.com/watch?v=c6jUD2kyyDA",
+ "https://transcendcompany.com/pages/change-of-provider-letter",
+ "Operating under new owner Lance Converse and changed provider structure after a dispute and litigation. Use only for historical origin and scale-break lessons.",
+ "Materially changed",
+ "3/5 current facts, 2/5 private claims",
+ "A cautionary scaling case: creator demand outran support and partner capacity; old founder titles no longer describe current control.",
+ ),
+ source(
+ "BIOLONG",
+ "3 - Historical caution",
+ "Exact category founder",
+ "BioLongevity Labs",
+ "Jay Campbell",
+ "Mind Pump 2500: Weird Performance-Enhancing Supplements",
+ "2024-12-30",
+ "Business segment near 1:05:55",
+ "About two months old by founder account",
+ "RUO storefront plus separate supplements, founder media, courses, and private community",
+ "https://mindpumppodcast.com/2500-weird-performance-enhancing-supplements-that-work-with-jay-campbell/",
+ "https://biolongevitylabs.com/research/",
+ "Active with current content and catalog. Site product-count claims conflict; proposed pen products were not found.",
+ "Historical interview; active business refreshed",
+ "3/5 footprint, 1-2/5 scale",
+ "Useful for education-led demand and existing-community leverage; weak proof of scale or delivered roadmap.",
+ ),
+]
+
+
+NOTES: list[dict] = []
+
+
+def note(
+ source_id: str,
+ timecode: str,
+ topic: str,
+ extraction: str,
+ application: str,
+ evidence: str = "D",
+ freshness: str = "From episode; verify before acting",
+) -> None:
+ start_seconds = None
+ if timecode and timecode[0].isdigit():
+ first = timecode.split("-")[0].strip()
+ parts = first.split(":")
+ try:
+ if len(parts) == 2:
+ start_seconds = int(parts[0]) * 60 + int(parts[1])
+ elif len(parts) == 3:
+ start_seconds = int(parts[0]) * 3600 + int(parts[1]) * 60 + int(parts[2])
+ except ValueError:
+ start_seconds = None
+ base_url = next(item["Media link"] for item in SOURCES if item["ID"] == source_id)
+ timestamp_url = base_url
+ if start_seconds is not None and "youtube.com/watch" in base_url:
+ joiner = "&" if "?" in base_url else "?"
+ timestamp_url = f"{base_url}{joiner}t={start_seconds}s"
+ NOTES.append(
+ {
+ "Source ID": source_id,
+ "Company": next(item["Company"] for item in SOURCES if item["ID"] == source_id),
+ "Timestamp": timecode,
+ "Topic": topic,
+ "What the operator said / what happened": extraction,
+ "What Biologix can learn": application,
+ "Evidence class": EVIDENCE_LABELS[evidence],
+ "Freshness note": freshness,
+ "Timestamp link": timestamp_url,
+ }
+ )
+
+
+# Joi + Blokes
+note("JOI", "01:30-03:35", "Founder-market fit", "The founders trace the company to their own difficult search for better care and say they personally believe in the offers.", "Use authentic founder involvement only where it is true; founder conviction can humanize an opaque category.")
+note("JOI", "03:38-04:18", "Category education", "Early acquisition required teaching the market about proactive labs and peptides. Later competition reduced the basic education burden.", "Move content from category definition toward operator-specific trust, proof, and decision support as awareness rises.")
+note("JOI", "04:19-09:22", "Operating barrier", "State rules, pharmacy shipping, and clinical oversight were major launch barriers. They position themselves between conventional medicine and unregulated RUO sellers.", "Do not borrow clinical positioning without clinical infrastructure; decide and communicate the actual operating lane.")
+note("JOI", "08:04-11:54", "Category criticism", "They criticize research-product sellers that provide access without clinical guidance.", "Expect credible operators to attack the category's trust gap. Documentation and role clarity must answer the objection without pretending to provide care.")
+note("JOI", "14:40-17:47", "Product concentration", "They say regulatory change reduced the peptide range after 2023 and that they intentionally stayed conservative.", "Build scenario plans for losing a hero category rather than treating the catalog as permanent.")
+note("JOI", "18:02-20:24", "Revenue concentration", "Founder says GLP-1 reached about half of revenue before manufacturer pressure caused them to remove public advertising and listings; he says it is now 15-20%.", "Track share of revenue by product and by acquisition promise. Concentration can hide inside a broad-looking catalog.", "D", "Private revenue mix; unaudited")
+note("JOI", "29:40-34:05", "Founder strain", "They describe 2025 as their hardest year as CAC rose and leadership stress grew.", "Model leadership and service capacity as constraints, not just ad spend and inventory.")
+note("JOI", "31:51-32:20", "Creative ownership", "Josh says he personally studies advertisements and website user journeys.", "Keep a founder or senior owner close to creative quality and conversion, even after hiring agencies.")
+note("JOI", "34:06-37:51", "Female-front architecture", "The business runs two audience-facing companies on one operation. Josh calls Joi the stronger engine and says women often bring male partners into Blokes.", "Strong direct support for a female-leading flagship, technical male access, and shared backend.")
+note("JOI", "48:53-52:17", "Scale and capital", "They say they are approaching $50M in revenue, are essentially self-funded, and now need more experienced operators or capital.", "Demand can outrun the founders' operating altitude. Define when to add experienced functional leaders.", "D", "Revenue is management-reported")
+note("JOI", "52:42-54:36", "Adjacency", "The audience is becoming younger and fertility is presented as the next major adjacency.", "Expand only after the core engine is stable; use customer progression to identify the next front door.")
+note("JOI", "55:24-57:31", "Growth versus profitability", "They describe tension between maintaining profitability and preserving venture-attractive growth.", "Choose the capital model deliberately; do not let fundraising optics dictate channel spend.")
+
+# Peptira + Peptide Price
+note("PEPTIRA", "00:00-03:12", "Comparison-layer origin", "Peptide Price began as a two-day MVP listing four vendors because price and vendor comparison was difficult.", "A decision tool can become distribution infrastructure before it becomes polished software.")
+note("PEPTIRA", "02:41-03:08", "Vendor relationship", "Derek says vendors opt in and his owner relationships let him intervene when customers have problems.", "Partner channels are strongest when they can resolve service failures, not merely drop affiliate links.")
+note("PEPTIRA", "03:15-04:31", "Launch channel", "TikTok launched the comparison tool; a viral post allegedly reached about 70K views while he manually sent a raw URL.", "Manual distribution is acceptable before automation. Validate message-to-click behavior first.", "D", "View count is founder-reported")
+note("PEPTIRA", "04:32-06:35", "Community-led assortment", "Community requests determined vendors and products; testing and COAs became the main qualification standard.", "Use support tickets, search logs, creator comments, and comparison queries as a structured catalog research feed.")
+note("PEPTIRA", "06:37-08:58", "Platform fragility", "Derek says eight TikTok accounts were banned and he moved the audience into a paid Skool community.", "Always build an owned audience and exportable identity graph; rented reach can disappear.")
+note("PEPTIRA", "09:00-13:41", "Decision criteria", "Comparison value extends beyond lowest price to per-mg price, codes, test scope, shipping, and reviews.", "Win the comparison surface with structured proof, not generic brand language.")
+note("PEPTIRA", "14:38-17:27", "Launch sequence", "Peptira formed in June 2025 and spent roughly six weeks on supply, labels, and packaging before launch.", "Treat sourcing, label system, testing, and fulfillment as the launch critical path.")
+note("PEPTIRA", "17:31-21:19", "Batch trust", "Labels evolved from QR-only to include batch ID, measured content, and purity; QR links to batch COAs.", "Put lot identity and meaningful test outputs on the physical product and PDP, with current and historical status.")
+note("PEPTIRA", "21:21-22:45", "Volume ladder", "The store uses one, three, five, and ten-unit quantities with volume discounts.", "Test simple same-product quantity ladders before complex mixed bundles.")
+note("PEPTIRA", "22:51-24:15", "Unsupported scale claim", "Ben calls Peptira a top-15 US peptide company and promises prices will not increase.", "Never use rankings or permanent-price promises without an auditable basis.", "D", "Unsupported")
+note("PEPTIRA", "24:20-29:24", "Service moat", "Ben claims under-50-minute support, GPS on nearly all shipments, and automatic lost-package replacement; HubSpot was planned.", "Instrument first-response time, resolution time, replacement cost, and shipment exception rate before making promises.", "D", "Replacement promise is now contradicted by live policy")
+note("PEPTIRA", "30:01-31:38", "Release gate", "They withheld a promotion-ready product until third-party testing returned.", "Make test clearance a hard inventory-release state, not a marketing preference.")
+note("PEPTIRA", "31:40-39:49", "Founder overload", "Ben left insurance work and was still packing and handling support late at night, then recognized the need for delegation.", "Document SOPs and staff the exception queue before volume turns founder responsiveness into a bottleneck.")
+note("PEPTIRA", "39:52-46:18", "Education risk", "Podcast topics and courses were community-led, but some content crosses toward personal-use protocols.", "Keep education focused on lawful research, testing, documentation, and product handling boundaries; exclude dosing and personal-use guidance.", "D", "Risk remains current")
+
+# Transcend
+note("TRANSCEND", "02:24-18:13", "Origin", "Colling links the company to personal health problems, a closed local clinic, and a late-2020 launch.", "Personal frustration can identify demand, but it does not replace the operating and evidence model.")
+note("TRANSCEND", "20:03-22:50", "Concierge service", "He kept his day job for about a year while building an education-heavy concierge model.", "Preserve runway while validating high-touch service; do not overhire before demand is repeatable.")
+note("TRANSCEND", "24:05-26:34", "Hidden complexity", "State licensing, malpractice, physician-patient rules, and pharmacy shipping were larger obstacles than expected.", "Map every partner, state, and handoff before projecting national scale.")
+note("TRANSCEND", "27:20-28:44", "Initial audience", "Initial acquisition focused on bodybuilders and athletes through education and influencers.", "A sharp founding niche can create density, but plan how the brand broadens without losing credibility.")
+note("TRANSCEND", "35:07-36:21", "Breakout trigger", "FitCon Dallas and two affiliates allegedly created enough demand for the founder to leave his job within about 90 days.", "Creator pilots should be capacity-gated. A successful launch can be more dangerous than a failed one.", "D", "Affiliate contribution unaudited")
+note("TRANSCEND", "36:23-37:05", "Bootstrap claim", "The founder says the basement business was profitable from day one and self-funded.", "Low overhead helps, but do not use the claim as a forecast without full unit economics.", "D", "Unaudited")
+note("TRANSCEND", "37:06-38:27", "Scale break", "Scaling from hundreds of thousands to millions per month allegedly broke hiring, training, calls, patient capacity, and pharmacy inventory.", "Build a launch-readiness gate across support, inventory, fulfillment, and partner capacity before adding creators.", "D", "Historical; current control changed")
+note("TRANSCEND", "38:27-40:14", "Role boundaries", "Independent pharmacies dispense and ship; Transcend manages goals, process design, and administration.", "Map responsibility for every customer-visible failure and write escalation/continuity terms.")
+note("TRANSCEND", "40:16-42:34", "Audience expansion", "The business broadened from bodybuilding toward longevity and discussed employer/B2B expansion.", "Expand audience only after the first segment's retention and service model is proven.")
+note("TRANSCEND", "42:34-44:19", "Price trend claim", "Colling says peptide prices fell by one-third to two-thirds over five to ten years.", "Assume molecule pricing can commoditize and build value in proof, service, creators, and data.", "D", "No supporting data")
+note("TRANSCEND", "46:24-47:05", "Single-product risk", "GLP-1 awareness drove demand, but he did not want one product to define the company.", "Use the hero SKU as an acquisition wedge while monitoring concentration and cross-category movement.")
+note("TRANSCEND", "48:39-52:20", "Mission layer", "The foundation focused on veterans and first responders.", "A credible community mission can strengthen identity, but it must be operationally and financially real.")
+note("TRANSCEND", "60:10-60:57", "Foundation claim", "Founder claims roughly 100 patients served and $1.5M provided or donated over 18 months.", "Require auditable impact reporting before making mission-based scale claims.", "D", "Tax filings confirm foundation, not amount")
+
+# Vita Bella
+note("VITABELLA", "01:08-02:17", "Geographic coverage", "Vella says Vita Bella operated in 40 states and views state complexity as both barrier and moat.", "Treat geographic breadth as an operations matrix, not a marketing line.")
+note("VITABELLA", "03:46-05:50", "Founder background", "The idea followed a technology career, severe injury, and frustration with healthcare markups.", "Transfer the service-design and systems mindset, not unsupported pricing accusations.")
+note("VITABELLA", "06:43-08:20", "Healthcare as a service", "The founder modeled recurring access on enterprise software and admits starting broad is harder than starting narrow.", "Start with a coherent wedge and only add categories after navigation, support, and economics work.")
+note("VITABELLA", "08:21-13:29", "Competitor testing claim", "He says four competitor samples contained unknown or mislabeled contents but shows no reports, names, or chain of custody.", "Never publish competitor-safety accusations without named reports, independent sampling, and defensible custody.", "D", "Unsupported")
+note("VITABELLA", "12:35-14:24", "Markup claim", "The founder gives pharmacy-cost and competitor-markup examples without invoices.", "Do not use unaudited unit economics as a pricing anchor.", "D", "Unsupported")
+note("VITABELLA", "14:28-21:07", "Rapid growth claim", "He claims hiring 20 providers, 300% growth in weeks, and a 220% increase in new-patient spend after industry disruption.", "A competitor failure can create a demand shock; maintain surge capacity and verify economics before celebrating growth.", "D", "Unaudited")
+note("VITABELLA", "21:39-25:45", "Service retention", "Long visits, service, outcomes, and 48-72-hour pharmacy delivery are positioned as retention levers.", "Tie retention to measurable service states, but align marketing promises with governing terms.")
+note("VITABELLA", "25:52-29:25", "Jurisdiction choice", "At recording, the company deliberately excluded California and other complex markets.", "Refusing markets can be a strategic capacity decision, not a failure of ambition.", "D", "California has since launched")
+note("VITABELLA", "29:27-34:30", "Membership mechanics", "The offer was $129 monthly plus a $99 consultation, separate labs, quarterly visits, one included treatment, and add-ons.", "If using recurring access, separate the fee, included value, product costs, commitment, and cancellation terms unmistakably.")
+note("VITABELLA", "43:25-45:07", "Creator incentive design", "Vella criticizes creator incentives that encourage oversized stacks and higher customer spend.", "Pay for qualified, retained customers and compliant content, not larger baskets or product intensity.")
+note("VITABELLA", "45:09-50:29", "Future category", "He expects continued demand and more big-pharma entry through patents and new delivery methods.", "Plan for changing consumer expectations and stronger incumbents, not only today's vendor set.")
+note("VITABELLA", "57:14-58:47", "Behavioral retention", "App, training, and accountability are presented as retention tools.", "Build retention around useful workflows and support rather than silent auto-renewal.")
+note("VITABELLA", "59:02-60:43", "Growth throttle", "Founder says he would pause growth if service quality deteriorated.", "Create explicit stop rules tied to response time, stockouts, payment failures, and complaint rate.")
+note("VITABELLA", "66:14-66:20", "Revenue concentration", "Founder says a single category represented about 40% of revenue despite nearly 100 medications.", "Catalog breadth does not equal diversified economics; measure concentration by net contribution.", "D", "Private claim")
+
+# Anonymous Ecom Show growth case
+note("EC320", "00:30-01:19", "Claimed growth", "Agency says a basic WooCommerce brand launched in November 2025 and reached roughly $500K trailing-30-day revenue after five months.", "Use as a hypothesis that demand can ramp quickly, never as a forecast.", "D", "Anonymous, unaudited, later updated")
+note("EC320", "01:26-02:45", "Prerequisites", "Self-hosted commerce, card processing, fulfillment, and a professional team are described as prerequisites.", "Launch readiness must include stable payments, inventory, fulfillment, and accountable owners.")
+note("EC320", "02:51-03:03", "Agency economics", "The agency says it operated Google, Meta, and email on a revenue-share arrangement.", "Evaluate agencies on contribution margin, data ownership, and scope, not attributed revenue alone.", "D", "Agency account")
+note("EC320", "04:17-05:51", "Learning period", "Month one allegedly spent $7K on Google for $4.5K attributed revenue; the loss was treated as a 30-60-day learning investment.", "Set a bounded test budget, leading indicators, and kill rules before assuming a loss will mature into scale.", "D", "Anonymous attributed metrics")
+note("EC320", "05:51-08:15", "Channel sequence", "Sequence was Shopping, branded search, then Performance Max. Agency claims about $300K attributed revenue on $151K spend.", "Capture existing product-name intent first and segment by product and margin; reconcile platform attribution to settled orders.", "D", "Anonymous attributed metrics")
+note("EC320", "09:17-11:43", "Vendor failure", "Email flows were built immediately, but Klaviyo allegedly closed the account and a FluentCRM rebuild took three weeks.", "Export customer and event data continuously and keep a tested migration path.")
+note("EC320", "12:01-14:10", "Meta signal", "Meta allegedly produced very high early ROAS at small spend.", "Treat tiny-budget ROAS as a creative signal, not proof of scalable economics.", "D", "Anonymous agency attribution")
+note("EC320", "14:22-17:48", "System interaction", "Agency attributes $14K-$15K days to acquisition, email, fulfillment, and payments finally working together.", "Growth is a system state. Instrument failures across the full customer chain.", "D", "Anonymous revenue claim")
+
+note("EC324", "00:30-01:13", "Scale update", "Agency calls the client its fastest, from zero to $20K daily in five months.", "Preserve as an upside case only; require client identity and raw cohort data before benchmarking.", "D", "Anonymous, unaudited")
+note("EC324", "01:18-03:18", "Trust surface", "Agency recommends accessible COAs, clear disclaimers, card payments, and avoiding human-use, mixing, dosing, or benefit claims.", "Build proof and operational clarity into the storefront while keeping education inside lawful research boundaries.")
+note("EC324", "03:24-04:05", "Scale update", "Claim rises to $600K monthly, including $450K attributed to Google on $150K spend.", "Changing claim definitions are a warning to reconcile gross orders, settled revenue, refunds, and channel attribution.", "D", "Anonymous, unaudited")
+note("EC324", "04:05-05:04", "Channel fragility", "Agency says only two of eight client Meta accounts remained active while all eight were active on Google.", "Do not make one ad platform the business. Maintain creator, search, email, and direct channels.", "D", "Agency-reported experience")
+note("EC324", "05:11-06:29", "Existing intent", "Product-name search and Shopping allegedly outperform benefit-oriented queries.", "Prioritize clear product taxonomy and high-intent demand capture; avoid unsupported benefit language.")
+note("EC324", "06:29-08:31", "Approval evasion", "The episode includes tactics intended to bypass platform review.", "Exclude entirely. Build no workflow around evasion, renamed products, cloaked pages, or misleading review surfaces.", "D", "Intentionally excluded from implementation")
+note("EC324", "08:54-10:22", "Owned lifecycle", "Self-hosted email is presented as a response to hosted-provider shutdowns.", "Owning infrastructure reduces vendor concentration but increases deliverability, security, and maintenance responsibility.")
+note("EC324", "10:28-12:19", "Lifecycle flows", "Recommended flows are welcome, browse/cart abandonment, post-purchase, VIP, winback, and replenishment; agency claims 5-15% of sales.", "Implement the event model early and measure incremental lift rather than accepting vendor attribution.", "D", "Revenue share is agency-reported")
+note("EC324", "12:26-14:16", "Offer architecture", "Same-product volume discounts and subscriptions are favored over mixed-product bundles.", "Test volume ladders first; any subscription must require clear express consent and easy cancellation.")
+note("EC324", "14:16-14:35", "Business-model migration", "Agency says its largest client was moving from RUO ecommerce toward telehealth.", "Treat operating-lane optionality as a board-level question, not a cosmetic site change.", "D", "Anonymous client")
+
+note("EC325", "00:30-01:25", "Latest scale claim", "The freshest episode describes $600K in one month after six months.", "Use only as an unverified upside case; do not plug into forecasts.", "D", "Anonymous and unaudited")
+note("EC325", "01:31-03:20", "Latest channel view", "Agency now calls Google the strongest acquisition channel; Meta looked attractive but did not scale reliably.", "Test product-intent capture while treating approval and account continuity as uncertain.", "D", "Current agency experience, not a guarantee")
+note("EC325", "03:20-04:37", "Campaign structure", "Sequence remains Shopping, search, then Performance Max, segmented by product and margin.", "Organize reporting around SKU contribution and settled order economics.")
+note("EC325", "04:37-07:10", "Optimization discipline", "Legitimate advice is to change budgets gradually, change one variable at a time, and review landing pages monthly.", "Adopt experiment logs and one-variable decision windows; discard the episode's approval-evasion material.")
+note("EC325", "07:48-11:22", "Email and subscription", "Agency recommends lifecycle and subscription architecture at launch, including preselection.", "Build lifecycle early, but never preselect subscriptions; require clear express consent and visible terms.")
+note("EC325", "11:33-12:04", "Campaign threshold", "Regular campaigns begin after the list reaches hundreds or thousands; SMS remains exploratory.", "Start triggered lifecycle first. Add broadcast cadence only when list size and engagement justify it.")
+note("EC325", "12:04-14:33", "Payment instability", "Agency again stresses documentation and card payments while acknowledging unstable payment approval.", "Processor redundancy, reserve visibility, chargeback controls, and honest underwriting are launch-critical.")
+note("EC325", "14:33-15:15", "Exit-quality warning", "Agency calls RUO ecommerce a near-term window and doubts easy eight- or nine-figure exits.", "Optimize for durable customer data, creator relationships, proof systems, and optionality, not only near-term gross sales.", "D", "Freshest strategic observation")
+
+# Remedora
+note("REM", "00:31-04:45", "Prior scale claims", "Coy describes ecommerce, SEO, affiliate experience, and large revenue in earlier insurance businesses, not Remedora.", "Do not transfer a founder's prior-company scale into the new company's traction.", "D", "Prior business only")
+note("REM", "06:15-08:01", "Concentration shock", "He says a CMS change collapsed daily ACA call volume from 10K-12K to about 400.", "Model policy and channel concentration as existential risks even when current economics look exceptional.", "D", "Historical founder account")
+note("REM", "12:30-13:45", "Networking system", "Coy says he spends two to three hours daily on relationships and used the network to identify telehealth demand.", "Make operator, lab, processor, creator, and partner relationships a scheduled founder channel.")
+note("REM", "16:45-17:30", "Market entry", "He entered telehealth through affiliate sales and prior subscription-commerce experience.", "Learn the demand and operating graph before trying to own every layer.")
+note("REM", "22:01-23:45", "Platform thesis", "Remedora was conceived as a Shopify-like launch layer for telehealth.", "Shared infrastructure can turn one brand experiment into a portfolio capability, but product claims require verification.")
+note("REM", "26:55-30:15", "Vertical integration", "The founder discusses pharmacy acquisition and integration, without proof a transaction occurred.", "Integrate only where control and economics justify capital, licensing, and operational risk.", "D", "Future or exploratory claim")
+note("REM", "31:45-35:52", "Cohort economics", "He says clients often lose money in months one and two, making retention and LTV decisive.", "Track contribution by acquisition month through second and third purchases, not first-order ROAS.", "D", "Private cohort claim")
+note("REM", "35:52-38:31", "Retatrutide compounding", "The episode discusses possible compounding pathways.", "Discard this section for current planning; FDA now says retatrutide cannot be used in compounding under federal law.", "D", "Outdated and superseded")
+note("REM", "40:30-42:45", "Offer", "Episode price was $200 monthly plus certification-related costs.", "Treat platform pricing as only one line item; verify payment, provider, pharmacy, support, and state costs.")
+note("REM", "47:30-52:15", "Founder-led sales", "Networking, conferences, access, and credible proof artifacts drive sales.", "Pair relationship selling with auditable artifacts and a repeatable follow-up system.")
+
+# Redline Biolabs
+note("REDLINE", "00:45-01:00", "Founding niche", "The company was founded by two Houston-area firefighters.", "A real occupational identity can create trust and a dense initial community.")
+note("REDLINE", "03:15-05:00", "Speed to launch", "They describe moving quickly from supplier research to a live website.", "Speed is useful only after supplier, testing, payment, and inventory gates are real.")
+note("REDLINE", "06:45-07:30", "Audience wedge", "First responders are the initial niche; founder transparency and accessible education are the differentiation.", "Start with an audience that can recognize and refer the founders.")
+note("REDLINE", "14:45-16:32", "Sourcing", "They acknowledge mixed sourcing and express a goal of more US-synthesized supply.", "Publish precise, product-specific sourcing and test scope; aspirations are not present facts.", "D", "Self-reported")
+note("REDLINE", "17:30-18:15", "Trust response", "Visible founders and COAs are their answer to the scam objection.", "Put real people beside verifiable batch proof, while making the limits of each proof clear.")
+note("REDLINE", "18:15-20:45", "Payment loss", "Early card-processing failures allegedly caused at least six abandoned orders when buyers encountered cryptocurrency.", "Do not launch creator traffic until the primary and backup checkout rails have been tested end to end.", "D", "Founder-reported")
+note("REDLINE", "35:45-37:16", "Supplier loss", "They say a supplier completed a small trial order and vanished after a roughly $700 larger order.", "Use staged purchase orders, counterparty verification, retention samples, and acceptance criteria.")
+note("REDLINE", "38:16-39:15", "Founder acquisition", "Founder-face TikTok and podcasts are the main early channels.", "In a low-trust category, access and candor can outperform polished anonymous branding.")
+note("REDLINE", "40:00-42:15", "Oversell recovery", "An inventory error oversold a bundle; founders called buyers, substituted inventory, and promised the missing item later.", "Synchronize saleable inventory, define substitutions, and proactively own service failures.")
+note("REDLINE", "42:30-43:15", "Attribution", "A podcast-specific discount code was created.", "Give every creator and appearance a source ID, code, landing page, and cohort.")
+note("REDLINE", "43:45-47:15", "Early service", "Fast replies and proactive stock updates are treated as an early advantage.", "Turn founder responsiveness into documented SLAs and escalation paths before it becomes unsustainable.")
+
+# BioLongevity Labs
+note("BIOLONG", "01:05:55-01:06:19", "Ambition", "Jay says the two-month-old business aimed to become the largest research-peptide and bioregulator seller within 12-15 months.", "Separate ambition from evidence. Demand proof is revenue, repeat behavior, and contribution, not a stated goal.", "D", "Historical and unverified")
+note("BIOLONG", "01:06:19-01:06:58", "Future format", "He describes future pen-format products from a California facility.", "Do not repeat planned product formats as delivered traction.", "D", "Current catalog check found no pens")
+note("BIOLONG", "01:06:58-01:07:27", "Audience leverage", "Founder claims an existing 650-member paid education community and multiple courses.", "An owned, paying knowledge community can lower launch friction, but verify engagement and buyer overlap.", "D", "Unaudited")
+note("BIOLONG", "01:07:27 onward", "Education centerpiece", "BioLongevity is described as the commercial centerpiece of a broader education ecosystem.", "Build media and research content as a durable discovery layer, while keeping human-use guidance out of RUO commerce.")
+
+# SheMed
+note("SHEMED", "01:33-02:48", "Launch demand", "The female-focused launch expected roughly 1,000 applicants and claimed about 16,000.", "A sharp female front can unlock latent demand, but applicant volume is not the same as paid retention.", "D", "Founder-reported")
+note("SHEMED", "04:06-06:37", "Founder insight", "Olivia's long diagnosis journey produced the founding insight.", "Use lived experience to shape questions and service language, not to substitute for expertise.")
+note("SHEMED", "08:03-09:24", "Seriousness signal", "Mandatory testing is used to frame the problem as biological, not cosmetic.", "Visible friction can signal seriousness only when it is genuinely necessary, useful, and expertly governed.")
+note("SHEMED", "09:34-12:37", "Role clarity", "The founders explicitly are not clinicians. Clinical decisions belong to GPs, nurses, labs, and pharmacies; founders own communication and support.", "Make founder, expert, lab, supplier, and service responsibilities visible instead of blending authority.")
+note("SHEMED", "12:37-18:22", "Shareable education", "A first-box QR booklet contains short explainers and shareable resources.", "Turn lot records, test explanations, and research literacy into portable, shareable trust objects.")
+note("SHEMED", "18:53-22:28", "Continuity", "Weekly check-ins and monthly reviews create reassurance.", "Design a consistent post-purchase information and support rhythm without drifting into personal-use guidance.")
+note("SHEMED", "23:14-24:54", "Channel mix", "Acquisition spans Meta, Google, Reddit, Pinterest, founder recipes, and customer stories.", "Diversify discovery and measure each path separately; do not rely on a single platform.")
+note("SHEMED", "25:27-26:22", "Brand testing", "The initial bright visual direction underperformed; conversion testing moved the brand toward muted colors.", "Let the actual buyer's conversion and qualitative response shape tone, not founder taste.")
+note("SHEMED", "26:29", "Buyer mismatch", "Most customers were 35-55, older than the founders.", "Research the buyer's life stage, trust needs, language, and visual preferences directly.")
+note("SHEMED", "27:22-28:48", "Pre-scale learning", "Research, community conversations, conferences, advisors, mentors, and team quality preceded scale.", "Schedule customer and operator learning before each growth gate.")
+
+# Arrae
+note("ARRAE", "05:56-08:40", "Product idea", "The founder wanted something effective, understandable, and visually desirable for a common frustration.", "Commodity products gain meaning through a legible problem and desirable brand world.")
+note("ARRAE", "08:40-10:54", "Narrow start", "Arrae began with two common problems rather than a broad catalog.", "Start with enough assortment to prove the category thesis, not enough to maximize SKU count.")
+note("ARRAE", "12:06-13:39", "Build order", "Sequence was trusted formulator, workable manufacturer and MOQ, then brand.", "Lock quality and supply constraints before scaling creative promises.")
+note("ARRAE", "13:39-15:14", "Focus", "The team asks for the single next action most likely to move the business.", "Run a weekly constraint review and force one primary growth or operations priority.")
+note("ARRAE", "15:45-16:21", "Soft launch", "A small community tested pricing, MVP, and messaging before a wider launch.", "Use a controlled creator/customer cohort to validate trust, price, and operations.")
+note("ARRAE", "17:27-18:50", "Creator seeding", "With no influencer budget, founders gifted broadly with no posting obligation; one organic post triggered a wider chain.", "Separate honest seeding from paid deliverables and track organic advocates.")
+note("ARRAE", "18:51-19:38", "Promote affection", "Early revenue funded paid relationships with creators who had already shown genuine interest; only five or six major year-long partners were maintained.", "Move proven organic advocates into durable paid partnerships rather than renting a large one-off roster.")
+note("ARRAE", "19:38-23:25", "Repeated support", "Several creator relationships lasted roughly three years, making recommendations more credible.", "Reward continuity, content quality, and cohort retention, not only last-click revenue.")
+note("ARRAE", "23:26-26:10", "Customer-as-creator", "Customers received premium mailers and artifacts comparable to influencers, encouraging sharing.", "Design every fulfilled order as a creator-ready proof and story kit.")
+note("ARRAE", "26:16-29:35", "Brand personality", "Ordinary customers are creators; brand social should behave like a person rather than a product grid.", "Build recognizable recurring editorial formats and a human voice.")
+note("ARRAE", "27:34-28:05", "Channel ownership", "An early TikTok went viral, but the small team deprioritized it and later had to rebuild.", "Assign a named owner to any channel showing organic pull.")
+note("ARRAE", "30:33-33:53", "Capital timing", "The company raised after traction; money went to inventory, people, larger POs, and working capital.", "Use capital to relieve proven constraints, not to manufacture demand.")
+note("ARRAE", "34:28-35:50", "Founder division", "Siffat owns brand, community, voice, and email; Nish owns paid media, site optimization, CAC, LTV, AOV, subscription, and finance.", "Pair brand authority with an equally empowered unit-economics operator.")
+
+# Perelel
+note("PERELEL", "01:03-01:35", "Taxonomy", "Products follow distinct hormonal and life stages, with medical experts informing formulation and education.", "Organize discovery around understandable needs or research objectives, while keeping claims inside the actual operating lane.")
+note("PERELEL", "02:23-10:53", "Complementary founders", "Founder-market fit combines editorial brand experience, personal experience, and expert cofounders.", "Build a leadership triangle across brand, operating economics, and technical authority.")
+note("PERELEL", "11:27-13:16", "Commodity differentiation", "Entering a crowded category required a rigorous brand book, distinct values, voice, identity, and visual language.", "Brand must change recognition, trust, and willingness to return, not merely recolor a vial.")
+note("PERELEL", "13:17-14:43", "Unique capability", "The forcing question was, 'What can only we do?' Their answer was expert editorial content and community.", "Define a proprietary trust and distribution system competitors cannot copy by swapping packaging.")
+note("PERELEL", "14:43-15:49", "Long creator arc", "Creator relationships follow real life-stage journeys; subscriptions advance customers between trimester products.", "Use long narrative arcs and lifecycle states, while never turning an RUO journey into personal-use advice.")
+note("PERELEL", "15:51-17:22", "Scrappy launch", "First-year marketing was about $10K; events, seeding, surprise-and-delight, and credibility-bearing partners carried launch.", "Use controlled seeding and high-touch proof before expensive reach.")
+note("PERELEL", "17:48-18:30", "Message order", "Early messaging emphasized what the brand was, why it was trustworthy, and how the system worked; paid amplification followed.", "Solve comprehension and trust before buying scale.")
+note("PERELEL", "18:31-19:35", "Creator cohorts", "Creator relationships are separated by awareness/reach versus conversion objectives.", "Define KPI, compensation, attribution window, and content role for each creator cohort.")
+note("PERELEL", "19:35-20:30", "Word of mouth", "Affiliate, targeted gifting, events, and customer surprise-and-delight reinforce one another.", "Design creator, customer, and community programs as one referral system.")
+note("PERELEL", "20:56-21:34", "Capital caution", "Founders warn against excessive capital and unrealistic valuations.", "Preserve strategic freedom until repeat behavior and unit economics are clear.")
+note("PERELEL", "21:47-24:01", "Assortment thesis", "Five launch SKUs and 2,500-unit MOQs were needed to prove the life-stage system; they bootstrapped and used a friends-and-family SAFE.", "Every launch SKU must prove the positioning or increase basket logic, not simply make the store look large.")
+note("PERELEL", "24:37-25:28", "Operational reach", "Strong content and gifting helped a small team ship to all 50 states within 30 days.", "Content can create demand quickly; fulfillment readiness must precede reach.")
+note("PERELEL", "28:40-30:32", "Personal runway", "One founder consulted before launch and for almost a year after to preserve personal runway.", "Protect founder runway so early decisions are not forced by short-term cash pressure.")
+note("PERELEL", "32:04-33:39", "Peer network", "Peer founders at comparable stages supplied talent, consultants, and practical support.", "Build a same-stage operator council for current answers, not only advice from giant incumbents.")
+
+# BelliWelli
+note("BELLI", "13:10-16:40", "Problem community", "The founder's own experience and conversations with women exposed an underserved gut-health community.", "Use problem communities as listening systems before choosing the brand promise.")
+note("BELLI", "17:09-18:41", "Product iteration", "Founder, food scientists, and dietitian iterated for months before choosing a portable format.", "Prototype the product and evidence experience before scaling the brand shell.")
+note("BELLI", "18:43-20:15", "Community acquisition", "Katie says she bought 20 Facebook groups totaling about 500K members.", "The useful lesson is access to dense conversation, not covert community control. Use transparent participation and compliant research.", "D", "Acquisition and membership totals unverified")
+note("BELLI", "20:27-23:23", "Low-cost validation", "Home-kitchen production, a basic Shopify site, a retained day job, and Facebook communities powered early growth.", "Keep the MVP bounded and learn rapidly before adding fixed cost.")
+note("BELLI", "27:32-31:18", "False PMF", "A narrow problem community made product-market fit look broader than it was; the first identity was too illness-centered and required a rebrand.", "Do not confuse dense niche enthusiasm with a scalable category or a durable name.")
+note("BELLI", "32:08-33:31", "Retail pull", "Distinctive packaging and narrative attracted retail buyers, but early expansion was opportunistic.", "Channel interest is not proof of sell-through. Validate consumer, price, and shelf context.")
+note("BELLI", "34:04-35:33", "Format risk", "A hot category did not guarantee the chosen format or aisle matched consumer intent.", "Test channel, format, price, and audience as separate hypotheses.")
+note("BELLI", "36:02-39:57", "Founder fieldwork", "Katie personally stocked and inspected stores; Target exposed pricing, merchandising, and audience mismatch.", "Stay physically and analytically close to the buying surface.")
+note("BELLI", "40:07-43:59", "Repositioning", "A year of R&D supported a move from sickness-framed bars toward aspirational fiber wellness.", "A narrow wedge can open the door, but the scalable category may need a more aspirational identity.")
+note("BELLI", "44:04-47:33", "Channel-first launch", "Powders launched into 1,100 Walmart stores before DTC, initially with two SKUs.", "A focused assortment can be enough if the format and channel are validated.")
+note("BELLI", "47:34-49:10", "Founder complement", "The founder describes relentless asking and doubling down; cofounders balance that intensity.", "Pair aggressive distribution instinct with operating and evidence discipline.")
+note("BELLI", "49:11-50:35", "Ownable format", "A customer interaction video allegedly sold Walmart out, leading to permission for continued filming.", "Create a recurring format competitors cannot easily impersonate; obtain consent and verify impact.", "D", "Sellout and reach are company-reported")
+note("BELLI", "50:36-51:29", "Creative volume", "Katie cleared 75 days, filmed thousands of interactions, and studied drop-off, likes, and reposts.", "Treat content as an instrumented production system, not occasional inspiration.")
+note("BELLI", "51:30-53:47", "Research flywheel", "Content production created hundreds of direct customer and employee conversations.", "Make creator production double as structured qualitative research.")
+note("BELLI", "54:39-54:54", "Context fit", "Founder admits the provocative early concept did not belong in every context.", "Use sharp language selectively and test reputational spillover before making it the master brand.")
+
+# Mochi Health
+note("MOCHI", "43:41-44:58", "Wedge to platform", "Mochi did not predict the GLP-1 wave; it began with an obesity-care gap and evolved toward a marketplace.", "Win a narrow problem before expanding into broad infrastructure.")
+note("MOCHI", "45:02-45:20", "Network claim", "Founder claims more than 500 providers and around 100 pharmacies in the software ecosystem.", "Network breadth is useful only if choice, service, and data actually work; require definitions and active counts.", "D", "Current company article says 450+ providers")
+note("MOCHI", "48:11-50:19", "Regulatory interpretation", "Founder explains compounding distinctions and marketing disputes.", "Treat as founder perspective, not legal guidance; use current primary sources for decisions.", "D", "Rapidly changing")
+note("MOCHI", "52:41-54:03", "Trust proposition", "Real video visits, the same provider over time, formulary choice, and transparent cash pricing are the core differentiators.", "Continuity, choice, and transparent pricing are durable trust mechanics even outside clinical care.")
+note("MOCHI", "54:54-56:28", "Competitor criticism", "Founder criticizes a competitor's provider flow and incentives.", "Do not repeat competitor assertions without independent verification.", "D", "Unverified opinion")
+note("MOCHI", "57:17-57:32", "Founder tradeoff", "The founder left conventional medicine to build a system with broader reach.", "Mission can justify difficult operating choices, but measurable service outcomes must follow.")
+note("MOCHI", "57:55-60:28", "Gray-market comparison", "The founder discusses rising peptide interest and broad safety differences between channels.", "Do not treat categorical founder opinions as proof of any specific seller's quality.", "D", "Opinion")
+note("MOCHI", "60:28-61:58", "Testing bottleneck", "Pharmacy vetting and third-party testing capacity are framed as major bottlenecks.", "Secure test throughput, release SLAs, exception handling, and auditability before scaling inventory.")
+note("MOCHI", "61:58-62:14", "Build versus buy", "At recording, Mochi had invested in a testing company rather than immediately building peptide production.", "Own or partner around the highest-control bottleneck before vertically integrating manufacturing.")
+note("MOCHI", "63:18-63:33", "Future option", "Peptide expansion remained a future option at recording.", "Track what was planned versus what shipped; Mochi launched a longevity offer after the episode.")
+note("MOCHI", "64:02-64:10", "Audience scope", "Founder says the target is ordinary Americans, not only elite biohackers.", "Translate technical trust for mainstream buyers without making unsupported outcome claims.")
+note("MOCHI", "67:00-67:27", "Category fragmentation", "Peptides are described as a collection of mechanisms and use cases, not one coherent category.", "Avoid treating the catalog as one audience; build separate discovery and education paths.")
+note("MOCHI", "67:27-68:03", "Capital discipline", "Minimal outside funding is positioned as protection from investor-driven audience bias.", "Choose capital that preserves the customer thesis and operating discipline.")
+
+
+CLAIMS: list[dict] = []
+
+
+def claim(
+ claim_id: str,
+ company: str,
+ claim_text: str,
+ claim_source: str,
+ status: str,
+ current_finding: str,
+ evidence: str,
+ confidence: int,
+ impact: str,
+ url: str,
+) -> None:
+ CLAIMS.append(
+ {
+ "Claim ID": claim_id,
+ "Company": company,
+ "Claim to evaluate": claim_text,
+ "Where it came from": claim_source,
+ "Verification status": status,
+ "Current finding at 2026-07-26": current_finding,
+ "Evidence class": EVIDENCE_LABELS[evidence],
+ "Confidence (0-5)": confidence,
+ "Decision impact": impact,
+ "Verification link": url,
+ }
+ )
+
+
+claim("CL-001", "Joi + Blokes", "More than $50M in revenue and essentially bootstrapped", "Founder interview and Entrepreneur", "Reported, not audited", "Entrepreneur repeated management's number; revenue period and definition remain unclear.", "B", 2, "Useful proof of possibility, not a forecast or valuation input.", "https://www.entrepreneur.com/building-a-business/they-built-a-50-million-business-before-glp-1s-became-mainstream-now-theyre-eyeing-this-new-health-frontier")
+claim("CL-002", "Joi + Blokes", "Joi is the stronger growth engine and women bring male partners into Blokes", "Founder interview", "Founder-reported", "Architecture is directly visible; relative engine strength and referral behavior are not public metrics.", "D", 3, "Supports female-leading flagship plus shared backend, but measure it in Alex's cohorts.", "https://www.youtube.com/watch?v=aigF8IfN4Is&t=2046s")
+claim("CL-003", "Joi + Blokes", "100K-patient footprint and fertility expansion", "Company announcements", "Company-reported; expansion verified", "HerMD acquisition and fertility leadership are public; patient count is not audited.", "C", 3, "Shows a path from focused fronts into adjacent life-stage services.", "https://www.businesswire.com/news/home/20260325782751/en/Joi-Blokes-Expands-Platform-with-Fertility-Division-Led-by-Serial-Founder-Gina-Bartasi")
+claim("CL-004", "Peptira", "Business began 2025-06-02", "BBB business profile", "Corroborated", "BBB lists start date, LLC, and Benjamin Criss as contact/agent.", "B", 4, "Confirms this is a genuinely young operator.", "https://www.bbb.org/us/ne/chadron/profile/biological-products/peptira-llc-0714-1000080859")
+claim("CL-005", "Peptira", "Top-15 US peptide company", "Founder interview", "Unsupported", "No independent ranking, revenue, traffic, or customer evidence was found.", "D", 1, "Ignore in competitor sizing.", "https://www.youtube.com/watch?v=Be58yiS6Vs4&t=1371s")
+claim("CL-006", "Peptira", "Automatic replacement for lost shipments", "Founder interview", "Outdated / contradicted", "Live terms make delivered packages the customer risk, require evidence, and make remedies discretionary.", "C", 5, "Policies outrank interviews; never make service promises that terms and operations do not support.", "https://peptira.com/shipping-protection-terms/")
+claim("CL-007", "Peptira", "RETA10-007 has a published third-party report", "Company COA library", "Historical document confirmed; custody not verified", "Peptira now marks RETA10-007 historical and RETA10-008 currently shipping. The historical Freedom Diagnostics report covers three submitted vials; sampling independence and inventory-wide representativeness remain unknown.", "C", 4, "Use batch reports, but label current versus historical and exactly what each report does and does not prove.", "https://drive.google.com/file/d/1i1tRAVLwnyypFHdKrg7SdBR7JsSk3Jj6/view?usp=drive_link")
+claim("CL-008", "Peptide Price", "Community grew beyond the episode's 7,300 members", "Live Skool page", "Company-page observation", "Live community displayed roughly 11.8K members and $10/month at check.", "C", 4, "Comparison plus paid community is a durable discovery model.", "https://www.skool.com/peptide-price-9771/nooby-here")
+claim("CL-009", "Transcend", "Ernest Colling remains the current owner/CEO", "Old podcast and lingering profiles", "Outdated", "Transcend introduced Lance Converse as new owner in March 2026; provider structure changed after December 2025.", "C", 5, "Do not use old founder interviews as present-company authority.", "https://www.linkedin.com/posts/transcendcompany_introducing-lance-converse-hes-stepping-activity-7443352442169090048-o66M")
+claim("CL-010", "Transcend", "Creator scale broke support and pharmacy capacity", "Founder interview", "Plausible but unaudited", "Later complaints and provider disruption are consistent with service stress, but they do not prove the founder's exact causation or scale.", "D", 3, "Capacity-gate creator launches.", "https://www.youtube.com/watch?v=c6jUD2kyyDA&t=2226s")
+claim("CL-011", "Transcend", "$1.5M foundation impact", "Founder interview", "Partly corroborated, amount unverified", "Public filings confirm the nonprofit and Colling role, not the dollar value.", "A", 2, "Mission metrics need auditable reporting.", "https://projects.propublica.org/nonprofits/organizations/920989536")
+claim("CL-012", "Vita Bella", "$129/month membership plus $99 consultation", "Current official site", "Current company offer", "Canonical page confirms base pricing; California is priced separately.", "C", 5, "Useful recurring-access reference, not a direct RUO offer template.", "https://vitabella.com/membership/")
+claim("CL-013", "Vita Bella", "10K+ patients and 15K+ consultations", "Current official homepage", "Company-reported", "Claims are live but unaudited.", "C", 3, "Do not use in sizing without independent evidence.", "https://vitabella.com/")
+claim("CL-014", "Vita Bella", "State coverage, reviews, price, and delivery claims are fully consistent", "Current site pages", "Contradicted internally", "FAQ, search-indexed legacy pricing, terms, review figures, and delivery responsibility contain inconsistencies.", "C", 5, "Create one canonical facts source and audit every surface.", "https://vitabella.com/terms/")
+claim("CL-015", "Anonymous growth case", "$500K-$600K monthly within five or six months", "Budai Media Ecom Show #320/#324/#325", "Anonymous agency claim", "No client identity, raw store data, processor settlements, or independent verification. Definitions change across episodes.", "D", 2, "Treat as an upside scenario only.", "https://shows.acast.com/theecomshow/episodes/325-budai-media-specials-if-i-had-to-scale-a-peptide-brand-t")
+claim("CL-016", "Anonymous growth case", "Google more scalable than Meta for agency's peptide clients", "Ecom Show #324/#325", "Credible report of agency experience", "Repeated in freshest episode, but not a guarantee of policy approval or account durability.", "D", 4, "Test high-intent search while diversifying acquisition.", "https://shows.acast.com/theecomshow/episodes/325-budai-media-specials-if-i-had-to-scale-a-peptide-brand-t")
+claim("CL-017", "Anonymous growth case", "70-80% gross margin and 1.3-1.4 break-even ROAS", "Agency episode", "Unsupported", "No cost definition; likely omits some testing, chargebacks, reserves, compliance, fulfillment, and account-loss costs.", "D", 1, "Build bottom-up unit economics instead.", "https://shows.acast.com/theecomshow/episodes/325-budai-media-specials-if-i-had-to-scale-a-peptide-brand-t")
+claim("CL-018", "Remedora", "$200/month all-in-one telehealth launch platform", "Current official site", "Current company offer", "Site describes storefront, intake, provider, prescribing, pharmacy, payments, and support. Actual quality/coverage remains unverified.", "C", 3, "Useful partner benchmark; diligence every included function.", "https://remedora.com/")
+claim("CL-019", "Remedora", "Retatrutide can be compounded in some states", "May 2026 podcast", "Outdated / contradicted", "FDA currently says retatrutide cannot be used in compounding under federal law.", "A", 5, "Remove from any current business-model assumption.", "https://www.fda.gov/drugs/drug-alerts-and-statements/fdas-concerns-unapproved-glp-1-drugs-used-weight-loss")
+claim("CL-020", "Redline Biolabs", "Active founder-led store, multiple rails, and COA library", "Current site", "Confirmed footprint", "Store and documents are live; quality, customer count, and scale remain unverified.", "C", 4, "Good day-zero operating analog, not proof of a fast scaler.", "https://www.redlinebiolabs.com/lab-reports")
+claim("CL-021", "Redline Biolabs", "COA on every batch", "Current site", "Internally inconsistent", "Some pages promise every-batch documentation while another says testing is pending.", "C", 4, "Never let marketing and release state disagree.", "https://www.redlinebiolabs.com/lab-reports")
+claim("CL-022", "BioLongevity Labs", "650-member paid education community", "2024 founder interview", "Unverified historical claim", "Current media and research library are active, but member count was not independently verified.", "D", 1, "Education-led demand is useful; scale claim is not.", "https://mindpumppodcast.com/2500-weird-performance-enhancing-supplements-that-work-with-jay-campbell/")
+claim("CL-023", "BioLongevity Labs", "80+ or 150+ products", "Current company pages", "Contradicted internally", "Site uses both figures while category inspection showed 53 peptide results.", "C", 2, "Catalog count is not traction and inconsistent proof harms trust.", "https://biolongevitylabs.com/product-category/peptides/")
+claim("CL-024", "SheMed", "100K+ women served and $50M raise", "Company site and independent funding coverage", "Scale company-reported; funding reported", "Funding is reported; patient count remains private and unaudited.", "B", 4, "Strong evidence that female-first is not a small niche.", "https://www.mobihealthnews.com/news/shemed-raises-50m-expand-womens-glp-1-weight-management-platform")
+claim("CL-025", "SheMed", "Clinical study validates the program", "Company site", "Results not yet published", "Study closed to recruitment and says results are expected in 2026; no published results found by cutoff.", "C", 4, "Never imply findings before publication.", "https://www.shemed.co.uk/clinical-study-why")
+claim("CL-026", "SheMed / HeMed", "Female front can precede a male sibling on shared infrastructure", "Current company sites and company filing", "Visible current architecture", "HeMed launched in August 2025 using the same stated framework and infrastructure.", "C", 5, "Direct support for female-leading first, shared neutral operations, male front later.", "https://www.hemed.com/about")
+claim("CL-027", "Arrae", "$100M+ cumulative revenue and 1.6M+ units", "Founder/company and Forbes profile", "Reported, not audited", "Retail expansion is observable; private financial totals remain management-reported.", "B", 3, "Creator system is transferable; financials are not planning inputs.", "https://www.forbes.com/sites/karineldor/2026/02/18/building-100m-wellness-brand-arrae-siff-haider-on-calculated-risk-and-relentless-standards/")
+claim("CL-028", "Perelel", "$27M growth investment", "Company announcement and Fortune", "Corroborated", "Investment and approximate headcount were independently reported; revenue was not disclosed.", "B", 5, "High-confidence current analog for a female-leading identity brand.", "https://fortune.com/2025/11/20/perelel-prelude-growth-partners-27-million-beauty-wellness-supplements-women/")
+claim("CL-029", "Perelel", "Profitable, doubled annual revenue, category-leading retention", "Company announcement", "Company-reported", "No raw financial or retention data are public.", "C", 3, "Use tactics, not claimed benchmarks.", "https://www.prnewswire.com/news-releases/perelel-secures-27m-growth-investment-from-prelude-growth-partners-to-reimagine-womens-health-302622022.html")
+claim("CL-030", "BelliWelli", "405% revenue growth and 1B+ content views", "Company and US Chamber coverage", "Reported, not audited", "Current retail presence and $15.4M Series A are corroborated; growth/reach figures remain company-supplied.", "B", 3, "Content system is credible; scale metrics need caution.", "https://www.uschamber.com/co/good-company/launch-pad/health-startups-community-retail-growth")
+claim("CL-031", "Mochi Health", "500K+ members, cash-flow positive, minimal funding", "Founder, company, and CEO Today", "Reported, not audited", "Multiple sources repeat the claims but originate with management.", "B", 3, "Useful operating philosophy, not valuation or market-size evidence.", "https://www.ceotodaymagazine.com/2026/07/myra-ahmad-cash-flow-positive-mochi-health/")
+claim("CL-032", "Mochi Health", "500+ providers", "April 2026 interview", "Definition/timing discrepancy", "A July 2026 company article says 450+ providers. Could reflect active-count definitions or change.", "C", 3, "Define every network metric before reporting it.", "https://joinmochi.com/blog/how-mochi-is-building-a-provider-network-that-puts-patients-first")
+claim("CL-033", "Mochi Health", "Not selling peptide programs at recording", "April 2026 interview", "True then, stale now", "Current longevity offering markets provider-supervised compounded NAD+ and sermorelin with disclosures.", "C", 5, "Rapidly changing category requires dated snapshots.", "https://joinmochi.com/longevity")
+claim("CL-034", "Retatrutide", "Available as an approved public medication", "Market chatter and vendor marketing", "False as of cutoff", "Lilly says it remains investigational and not approved by any regulator; BLA planned Q1 2027.", "A", 5, "Do not describe it as approved or publicly available medicine.", "https://www.lilly.com/news/stories/what-to-know-about-retatrutide")
+claim("CL-035", "FDA July peptide vote", "Six peptides became FDA-approved or immediately legal for compounding", "Post-vote social/media summaries", "False framing", "PCAC recommended six of seven for the 503A list. Recommendations are nonbinding and do not equal approval or immediate rule change.", "A", 5, "Keep regulatory event and commercial implication separate.", "https://www.fda.gov/advisory-committees/advisory-committee-calendar/july-23-24-2026-meeting-pharmacy-compounding-advisory-committee-07232026")
+claim("CL-036", "RUO disclaimer", "'Research Use Only' controls intended use regardless of surrounding copy", "Common seller assumption", "Contradicted by current enforcement", "FDA's Gram Peptides warning says site evidence established human intended use despite RUO and not-for-human-consumption labels.", "A", 5, "Disclaimers cannot rescue contradictory content.", "https://www.fda.gov/inspections-compliance-enforcement-and-criminal-investigations/warning-letters/gram-peptides-721806-03312026")
+
+
+CURRENT_CONTEXT = [
+ {
+ "Date": "2026-07-23 to 2026-07-24",
+ "Topic": "FDA PCAC peptide votes",
+ "What changed": "Advisory panel recommended BPC-157, KPV, TB-500, MOTS-c, Semax, and Epitalon for the 503A Bulks List; Emideltide/DSIP was rejected.",
+ "What did NOT change": "The vote was nonbinding. It did not FDA-approve the substances and did not automatically make compounding or consumer sale lawful.",
+ "Business implication": "Expect heightened attention and possibly more clinician/compounding competition. Do not treat headlines as an immediate green light.",
+ "Evidence class": EVIDENCE_LABELS["A"],
+ "Primary / current link": "https://www.fda.gov/advisory-committees/advisory-committee-calendar/july-23-24-2026-meeting-pharmacy-compounding-advisory-committee-07232026",
+ "Next review": "When FDA posts final action or rulemaking",
+ },
+ {
+ "Date": "2026-07-23",
+ "Topic": "Retatrutide Phase 3",
+ "What changed": "Lilly reported positive topline TRIUMPH-2 and TRIUMPH-3 results and plans a BLA submission in Q1 2027.",
+ "What did NOT change": "Retatrutide remains investigational and is not FDA-approved or generally available from Lilly.",
+ "Business implication": "Awareness and demand may accelerate, while manufacturer and regulator scrutiny can rise in parallel.",
+ "Evidence class": EVIDENCE_LABELS["A"],
+ "Primary / current link": "https://investor.lilly.com/news-releases/news-release-details/lillys-triple-agonist-retatrutide-successful-two-additional",
+ "Next review": "Q1 2027 or earlier Lilly/FDA update",
+ },
+ {
+ "Date": "2026-06-15 page update; checked 2026-07-26",
+ "Topic": "Retatrutide and compounding",
+ "What changed": "FDA now states explicitly that retatrutide and cagrilintide cannot be used in compounding under federal law.",
+ "What did NOT change": "The July PCAC meeting concerned seven other substances, not retatrutide.",
+ "Business implication": "Discard podcast-era assumptions that state-by-state interpretation creates a retatrutide compounding path.",
+ "Evidence class": EVIDENCE_LABELS["A"],
+ "Primary / current link": "https://www.fda.gov/drugs/drug-alerts-and-statements/fdas-concerns-unapproved-glp-1-drugs-used-weight-loss",
+ "Next review": "Monthly and on any FDA update",
+ },
+ {
+ "Date": "2026-03-31",
+ "Topic": "RUO intended-use enforcement",
+ "What changed": "FDA warning to Gram Peptides expressly rejected reliance on RUO/not-for-human-consumption labeling where website evidence established human intended use.",
+ "What did NOT change": "A disclaimer remains one piece of evidence, not a safe harbor against contradictory copy and context.",
+ "Business implication": "Creator scripts, FAQs, PDPs, support, emails, and community language must align with the actual lawful lane.",
+ "Evidence class": EVIDENCE_LABELS["A"],
+ "Primary / current link": "https://www.fda.gov/inspections-compliance-enforcement-and-criminal-investigations/warning-letters/gram-peptides-721806-03312026",
+ "Next review": "On each new peptide warning letter",
+ },
+ {
+ "Date": "2026-03-03",
+ "Topic": "Telehealth GLP-1 marketing enforcement",
+ "What changed": "FDA announced warning letters to 30 telehealth companies concerning allegedly illegal marketing of compounded GLP-1 products.",
+ "What did NOT change": "A telehealth wrapper does not automatically make product marketing compliant.",
+ "Business implication": "Do not assume migration from ecommerce to telehealth is a branding exercise; it changes licensed, clinical, pharmacy, and advertising obligations.",
+ "Evidence class": EVIDENCE_LABELS["A"],
+ "Primary / current link": "https://www.fda.gov/news-events/press-announcements/fda-warns-30-telehealth-companies-against-illegal-marketing-compounded-glp-1s",
+ "Next review": "Quarterly enforcement review",
+ },
+ {
+ "Date": "2026-07-21",
+ "Topic": "Fast-growth agency's latest position",
+ "What changed": "Budai Media updated its anonymous case to $600K in a month and said Google scaled more reliably than Meta.",
+ "What did NOT change": "The client is still anonymous and the revenue, margin, and attribution claims remain unaudited.",
+ "Business implication": "Treat high-intent search and lifecycle as tests, not guaranteed channels or benchmark economics.",
+ "Evidence class": EVIDENCE_LABELS["D"],
+ "Primary / current link": "https://shows.acast.com/theecomshow/episodes/325-budai-media-specials-if-i-had-to-scale-a-peptide-brand-t",
+ "Next review": "Next case update or identified client evidence",
+ },
+ {
+ "Date": "2026-03 to 2026-07",
+ "Topic": "Transcend control and provider change",
+ "What changed": "Transcend publicly introduced Lance Converse as new owner after a provider transition and active litigation.",
+ "What did NOT change": "The 2024 Ernest Colling episode remains useful only as historical founder and scaling context.",
+ "Business implication": "Verify current ownership, partners, complaint patterns, and service structure before learning from any old founder podcast.",
+ "Evidence class": EVIDENCE_LABELS["C"],
+ "Primary / current link": "https://transcendcompany.com/pages/change-of-provider-letter",
+ "Next review": "Monthly until dispute and operating structure stabilize",
+ },
+ {
+ "Date": "Checked 2026-07-26",
+ "Topic": "Peptira service-policy drift",
+ "What changed": "Live shipping and protection policies make remedies conditional and discretionary after delivery.",
+ "What did NOT change": "The episode's service philosophy remains useful, but its automatic-replacement promise is not current.",
+ "Business implication": "Maintain a dated promise register and automatically flag policy, support-script, and marketing conflicts.",
+ "Evidence class": EVIDENCE_LABELS["C"],
+ "Primary / current link": "https://peptira.com/shipping-protection-terms/",
+ "Next review": "Monthly",
+ },
+ {
+ "Date": "2025-12 to 2026-07",
+ "Topic": "SheMed scale and sibling architecture",
+ "What changed": "A four-month launch story developed into company-reported 100K+ women, reported $50M funding, and a male sibling brand on shared infrastructure.",
+ "What did NOT change": "Private user metrics and study outcomes are not independently published.",
+ "Business implication": "The female-leading front/shared-backend thesis has a current real-world precedent, but health claims are not transferable to RUO commerce.",
+ "Evidence class": EVIDENCE_LABELS["B"],
+ "Primary / current link": "https://www.mobihealthnews.com/news/shemed-raises-50m-expand-womens-glp-1-weight-management-platform",
+ "Next review": "When study results publish",
+ },
+ {
+ "Date": "2025-11 to 2026-07",
+ "Topic": "Perelel growth investment",
+ "What changed": "Perelel secured a confirmed $27M growth investment after five years and continued broadening across women's life stages.",
+ "What did NOT change": "The company did not disclose revenue; profitability and retention remain company claims.",
+ "Business implication": "Long creator arcs, expert editorial, stage-based taxonomy, and female-leading identity can scale without a female-exclusive catalog.",
+ "Evidence class": EVIDENCE_LABELS["B"],
+ "Primary / current link": "https://fortune.com/2025/11/20/perelel-prelude-growth-partners-27-million-beauty-wellness-supplements-women/",
+ "Next review": "Next financing, retail, or annual update",
+ },
+ {
+ "Date": "2026-04 to 2026-07",
+ "Topic": "Mochi offering changed after interview",
+ "What changed": "Mochi said it was not selling the discussed peptide programs at recording, then launched a longevity offering.",
+ "What did NOT change": "Private member/provider claims remain unaudited; the offering is provider-supervised and not a template for RUO ecommerce.",
+ "Business implication": "Use date-stamped snapshots because product and compliance claims can change within a quarter.",
+ "Evidence class": EVIDENCE_LABELS["C"],
+ "Primary / current link": "https://joinmochi.com/longevity",
+ "Next review": "Monthly",
+ },
+ {
+ "Date": "Checked 2026-07-26",
+ "Topic": "Retail and creator analogs",
+ "What changed": "Arrae, BelliWelli, and Perelel all expanded beyond their initial DTC wedge into larger assortments, retail, or life-stage systems.",
+ "What did NOT change": "Founder-reported revenue and reach are not audited and do not prove the same tactics transfer to research compounds.",
+ "Business implication": "Transfer seeding, cohort design, content systems, taxonomy, and customer research. Do not transfer consumer-use claims.",
+ "Evidence class": EVIDENCE_LABELS["I"],
+ "Primary / current link": "https://www.uschamber.com/co/good-company/launch-pad/health-startups-community-retail-growth",
+ "Next review": "Semiannual",
+ },
+]
+
+
+LESSONS = [
+ {
+ "Domain": "Brand architecture",
+ "Lesson": "Launch a female-leading front on a neutral, reusable operating backbone.",
+ "Evidence": "Joi + Blokes, SheMed/HeMed, Perelel",
+ "Confidence": 5,
+ "How to apply": "Let women dominate creators, stories, and default discovery. Keep technical PDPs and shared commerce accessible to male high-intent buyers; reserve a sibling male front if cohort economics justify it.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Conversion, CAC, AOV, second purchase, contribution, and referral rate by creator/buyer cohort",
+ },
+ {
+ "Domain": "Positioning",
+ "Lesson": "Differentiate the meaning and trust system, not merely the molecule or visual palette.",
+ "Evidence": "Perelel, Arrae, Joi, Peptira",
+ "Confidence": 5,
+ "How to apply": "Build a rigorous identity, expert/research literacy, batch transparency, and creator narrative around a commodity catalog.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Direct traffic, branded search, creator-assisted conversion, price sensitivity, repeat rate",
+ },
+ {
+ "Domain": "Assortment",
+ "Lesson": "Use a presumed hero SKU as a hypothesis, not a permanent identity or proven revenue fact.",
+ "Evidence": "Joi concentration story, Transcend, Vita Bella, internal Biologix popularity signal",
+ "Confidence": 4,
+ "How to apply": "Lead with the strongest observed demand signal while measuring product-level settled revenue, contribution, repeat interval, and cross-sell. Keep the company name broader.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Net revenue and contribution share by SKU; 30/60/90-day repeat by first product",
+ },
+ {
+ "Domain": "Assortment",
+ "Lesson": "Launch enough SKUs to prove the thesis, not enough to look impressive.",
+ "Evidence": "Arrae, Perelel, BelliWelli, BioLongevity",
+ "Confidence": 5,
+ "How to apply": "Require every SKU to serve a defined research/customer job, basket logic, or acquisition demand. Add only after test, supply, content, and support readiness.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Sell-through, stock turns, support rate, margin, and repeat per SKU",
+ },
+ {
+ "Domain": "Trust",
+ "Lesson": "Batch-level proof is part of the product.",
+ "Evidence": "Peptira, Redline, Mochi, Perelel",
+ "Confidence": 5,
+ "How to apply": "Expose lot ID, report date, methods, measured content, purity, relevant test scope, current/retired status, and report limitations near the buy decision.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "COA-open rate, conversion after COA view, support objections, lot-to-inventory match rate",
+ },
+ {
+ "Domain": "Trust",
+ "Lesson": "A published lab PDF is not the same as independent sampling and chain of custody.",
+ "Evidence": "Peptira current report, Vita Bella unsupported competitor tests",
+ "Confidence": 5,
+ "How to apply": "Document who sampled, sealed, shipped, tested, released, and archived each batch. State what is not verified.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Percent of saleable inventory with complete custody record; release exceptions",
+ },
+ {
+ "Domain": "Creator system",
+ "Lesson": "Seed broadly and honestly, then pay creators who demonstrate authentic pull.",
+ "Evidence": "Arrae, Perelel",
+ "Confidence": 5,
+ "How to apply": "Gift without posting obligation. Track organic mentions and audience quality; promote proven advocates into longer contracts.",
+ "Priority": "P0 - Launch",
+ "Metric / proof": "Organic post rate, qualified clicks, conversion, 60-day contribution, creator retention",
+ },
+ {
+ "Domain": "Creator system",
+ "Lesson": "Separate creator cohorts by job: awareness, trust, conversion, or community research.",
+ "Evidence": "Perelel, Arrae, Redline",
+ "Confidence": 5,
+ "How to apply": "Give each cohort different briefs, compensation, landing pages, attribution windows, and success criteria.",
+ "Priority": "P0 - Launch",
+ "Metric / proof": "Incremental reach, assisted conversion, direct conversion, cohort contribution, branded search lift",
+ },
+ {
+ "Domain": "Creator system",
+ "Lesson": "Long arcs outperform rotating one-off endorsements in trust-heavy categories.",
+ "Evidence": "Arrae, Perelel, Joi",
+ "Confidence": 4,
+ "How to apply": "Favor repeated, clearly disclosed relationships with continuity and evolving education.",
+ "Priority": "P1 - Scale",
+ "Metric / proof": "Repeat content performance, creator cohort retention, direct traffic, referral rate",
+ },
+ {
+ "Domain": "Creator system",
+ "Lesson": "Do not reward larger stacks or first-order spend.",
+ "Evidence": "Vita Bella creator-incentive critique; compliance risk",
+ "Confidence": 5,
+ "How to apply": "Pay on qualified settled customers, compliant content, low refund/chargeback rate, and retained contribution.",
+ "Priority": "P0 - Launch",
+ "Metric / proof": "Net contribution at 60/90 days, refund and chargeback rate by creator",
+ },
+ {
+ "Domain": "Content",
+ "Lesson": "Make creator production double as structured customer research.",
+ "Evidence": "BelliWelli, SheMed, Peptide Price",
+ "Confidence": 5,
+ "How to apply": "Code comments, objections, search terms, watch-drop points, support tickets, and post-purchase questions into a weekly insight log.",
+ "Priority": "P0 - Launch",
+ "Metric / proof": "Insights logged, experiments launched, conversion/support impact",
+ },
+ {
+ "Domain": "Content",
+ "Lesson": "Own a repeatable editorial format, not a feed of isolated product shots.",
+ "Evidence": "BelliWelli, Arrae, Perelel",
+ "Confidence": 5,
+ "How to apply": "Create recurring proof, founder, lab, lot, creator, and category-literacy formats with a named owner.",
+ "Priority": "P1 - Scale",
+ "Metric / proof": "Completion rate, saves, shares, branded search, returning visitors",
+ },
+ {
+ "Domain": "Acquisition",
+ "Lesson": "Capture existing product-name intent before broad interruption advertising.",
+ "Evidence": "Ecom Show #320/#324/#325",
+ "Confidence": 3,
+ "How to apply": "If eligible and approved, test high-intent search/Shopping with product and margin segmentation; reconcile platform attribution to settled orders.",
+ "Priority": "P1 - Conditional",
+ "Metric / proof": "Settled contribution per query/SKU, not platform ROAS alone",
+ },
+ {
+ "Domain": "Acquisition",
+ "Lesson": "Budget a bounded learning period with stopping rules.",
+ "Evidence": "Ecom #320, Remedora",
+ "Confidence": 4,
+ "How to apply": "Predefine spend caps, signal thresholds, variables, decision windows, and kill/scale criteria.",
+ "Priority": "P0 - Launch",
+ "Metric / proof": "Experiment decision latency and percentage of tests with prewritten criteria",
+ },
+ {
+ "Domain": "Lifecycle",
+ "Lesson": "Triggered lifecycle belongs near launch, but attribution must be incremental.",
+ "Evidence": "Ecom #320/#324/#325, Arrae, Vita Bella",
+ "Confidence": 4,
+ "How to apply": "Build welcome, abandonment, post-purchase, VIP, winback, and lawful replenishment flows; test holdouts where possible.",
+ "Priority": "P0 - Launch",
+ "Metric / proof": "Incremental conversion/repeat lift, unsubscribe, complaint, and deliverability",
+ },
+ {
+ "Domain": "Data",
+ "Lesson": "Own the event and identity graph because vendors can close accounts.",
+ "Evidence": "Peptide Price TikTok bans, Ecom email shutdowns, payment instability",
+ "Confidence": 5,
+ "How to apply": "Track creator -> click -> order -> settlement -> fulfillment -> support -> repeat -> payout; export customer and event data continuously.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Event completeness, export freshness, restore-time test, unmatched-order rate",
+ },
+ {
+ "Domain": "Data",
+ "Lesson": "First-order ROAS is not the business.",
+ "Evidence": "Remedora, Ecom case, Arrae operator split",
+ "Confidence": 5,
+ "How to apply": "Use settled contribution cohorts through 30/60/90 days, including refunds, chargebacks, reserves, testing, fulfillment, discounts, and creator payouts.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Contribution margin per visitor/customer by cohort and source",
+ },
+ {
+ "Domain": "Operations",
+ "Lesson": "Capacity-gate creators before demand arrives.",
+ "Evidence": "Transcend, Peptira, Redline, Perelel",
+ "Confidence": 5,
+ "How to apply": "Require green status for saleable inventory, batch release, checkout, support staffing, fulfillment SLA, and exception ownership before each launch wave.",
+ "Priority": "P0 - Launch",
+ "Metric / proof": "Stockout, oversell, ship time, first response, resolution time, payment failure",
+ },
+ {
+ "Domain": "Operations",
+ "Lesson": "Founder service seeds trust but does not scale by itself.",
+ "Evidence": "Peptira, Redline",
+ "Confidence": 5,
+ "How to apply": "Capture founder replies into macros, SOPs, escalation rules, and a staffed ticket system while founders remain visible on hard cases.",
+ "Priority": "P0 - Launch",
+ "Metric / proof": "Founder-handled share, first response, reopen rate, escalation rate",
+ },
+ {
+ "Domain": "Operations",
+ "Lesson": "Policies, marketing, support scripts, and checkout must share one canonical truth.",
+ "Evidence": "Peptira replacement contradiction; Vita Bella state/price/review conflicts; Redline COA conflict",
+ "Confidence": 5,
+ "How to apply": "Create a dated promise register and automated/manual monthly surface audit.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Contradictions found, age of last audit, policy-linked support incidents",
+ },
+ {
+ "Domain": "Payments",
+ "Lesson": "Payment continuity is a launch dependency, not a back-office detail.",
+ "Evidence": "Redline lost checkouts; Ecom case instability",
+ "Confidence": 5,
+ "How to apply": "Use honest underwriting, tested primary/backup rails, reserve reporting, decline telemetry, chargeback controls, and recovery playbooks.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Authorization rate, failure rate, reserve, chargebacks, recovery conversion",
+ },
+ {
+ "Domain": "Supply",
+ "Lesson": "Use staged supplier commitments and hard release gates.",
+ "Evidence": "Redline supplier loss, Peptira test hold, Perelel MOQs",
+ "Confidence": 5,
+ "How to apply": "Verify counterparty, start with small POs, define specifications/acceptance, retain samples, and prohibit sale before complete release.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Supplier failure, batch rejection, release lead time, inventory at risk",
+ },
+ {
+ "Domain": "Community",
+ "Lesson": "Community is a research loop before it is a promotion channel.",
+ "Evidence": "Peptide Price, BelliWelli, Arrae, SheMed",
+ "Confidence": 5,
+ "How to apply": "Listen transparently, classify objections and requests, and feed them into assortment, proof, content, and support decisions.",
+ "Priority": "P1 - Scale",
+ "Metric / proof": "Insight-to-experiment rate; member-to-customer and customer-to-referrer paths",
+ },
+ {
+ "Domain": "Pricing",
+ "Lesson": "Test same-product volume ladders before opaque bundles or silent subscriptions.",
+ "Evidence": "Peptira, Ecom #324, Vita Bella",
+ "Confidence": 4,
+ "How to apply": "Show unit economics clearly, preserve choice, and require express recurring consent.",
+ "Priority": "P1 - Test",
+ "Metric / proof": "AOV, contribution, refund, repeat, and support by offer",
+ },
+ {
+ "Domain": "Leadership",
+ "Lesson": "Pair brand/culture authority with unit-economics and operations authority.",
+ "Evidence": "Arrae, Perelel, Joi",
+ "Confidence": 5,
+ "How to apply": "Name accountable owners for brand/creator, growth/data, quality/supply, service/fulfillment, and financial control.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Decision latency, ownerless incidents, weekly scorecard completeness",
+ },
+ {
+ "Domain": "Capital",
+ "Lesson": "Raise to relieve proven constraints, not to purchase a narrative.",
+ "Evidence": "Arrae, Perelel, Joi, Mochi",
+ "Confidence": 4,
+ "How to apply": "Tie capital to inventory turns, test capacity, people, working capital, and demonstrated acquisition/retention.",
+ "Priority": "P2 - Later",
+ "Metric / proof": "Use-of-funds milestones and runway sensitivity",
+ },
+ {
+ "Domain": "Freshness",
+ "Lesson": "Founder podcasts are dated snapshots, not current operating truth.",
+ "Evidence": "Transcend ownership, Peptira policy, Mochi launch, Vita Bella California, Ecom updates",
+ "Confidence": 5,
+ "How to apply": "Every source row carries a current-check URL, freshness label, next-review date, and claim classification.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Percent of decision-critical sources refreshed within review window",
+ },
+ {
+ "Domain": "Strategic risk",
+ "Lesson": "Assume platform, processor, supplier, and regulatory concentration can break simultaneously.",
+ "Evidence": "Ecom case, Peptide Price, Remedora prior ACA collapse, Transcend",
+ "Confidence": 5,
+ "How to apply": "Maintain a dependency register, backup plan, trigger, owner, and recovery-time test for every critical external system.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Single-point dependencies and tested recovery time",
+ },
+ {
+ "Domain": "Operating lane",
+ "Lesson": "Do not blend clinical, supplement, and RUO proof or claims.",
+ "Evidence": "Joi, SheMed, Mochi, Vita Bella, BioLongevity",
+ "Confidence": 5,
+ "How to apply": "Separate sites/offers, role descriptions, evidence, support boundaries, and content rules for materially different models.",
+ "Priority": "P0 - Foundational",
+ "Metric / proof": "Content exceptions, support escalations, claim-review failures",
+ },
+ {
+ "Domain": "Measurement",
+ "Lesson": "Run the female-leading thesis as a controlled economic test, not a taste debate.",
+ "Evidence": "SheMed visual testing, Joi architecture, Perelel, prior market research",
+ "Confidence": 5,
+ "How to apply": "Use matched female-leading and technical/general creator cohorts into differentiated landing journeys on shared commerce.",
+ "Priority": "P0 - Launch",
+ "Metric / proof": "Contribution per visitor, conversion, AOV, repeat, referral, and creative efficiency by cohort",
+ },
+]
+
+
+ANTI_LESSONS = [
+ {"Source / pattern": "Anonymous agency case", "Do not copy": "Treating $600K/month, margin, or ROAS claims as a forecast", "Why": "No client identity, settlements, raw cohort data, or independent verification", "Safer pattern": "Build bottom-up unit economics and use the case only to define hypotheses", "Risk level": "Critical"},
+ {"Source / pattern": "Ecom Show #324/#325", "Do not copy": "Product renaming, alternate pages, or other platform-approval bypass tactics", "Why": "Evasion creates policy, account, legal, and trust exposure", "Safer pattern": "Seek explicit eligibility and approval; diversify lawful channels", "Risk level": "Critical"},
+ {"Source / pattern": "RUO sellers", "Do not copy": "Human-use, reconstitution, mixing, dosing, protocol, or benefit content alongside RUO labels", "Why": "Current FDA enforcement looks at surrounding intended-use evidence", "Safer pattern": "Limit content to lawful research, testing, lot, documentation, shipping, and support topics", "Risk level": "Critical"},
+ {"Source / pattern": "Remedora May 2026", "Do not copy": "Planning around retatrutide compounding", "Why": "Current FDA statement directly contradicts that assumption", "Safer pattern": "Use current primary-source review for every product and operating lane", "Risk level": "Critical"},
+ {"Source / pattern": "Peptira", "Do not copy": "Automatic replacement, permanent pricing, or extreme response-time promises without durable operations", "Why": "Live policy now contradicts the early promise", "Safer pattern": "Publish only measured promises backed by the canonical policy", "Risk level": "High"},
+ {"Source / pattern": "Peptira / Redline", "Do not copy": "Calling a vendor-submitted PDF complete proof of quality", "Why": "Sampling, chain of custody, lot coverage, and inventory linkage may be unknown", "Safer pattern": "Publish scope and limitations plus a complete custody record", "Risk level": "High"},
+ {"Source / pattern": "Transcend", "Do not copy": "Scaling creators faster than support, fulfillment, or partner capacity", "Why": "Demand can break service and partner continuity", "Safer pattern": "Use launch-readiness gates and stop rules", "Risk level": "Critical"},
+ {"Source / pattern": "Transcend", "Do not copy": "Relying on old founder titles or one practice/pharmacy relationship", "Why": "Ownership and provider structure materially changed", "Safer pattern": "Verify current control and contract continuity before acting", "Risk level": "High"},
+ {"Source / pattern": "Vita Bella", "Do not copy": "Competitor-safety accusations without named reports and independent custody", "Why": "Claims are hard to defend and can mislead", "Safer pattern": "Compete on your own auditable proof", "Risk level": "High"},
+ {"Source / pattern": "Vita Bella", "Do not copy": "Perfect-review, 24/7, wholesale-price, or rapid-delivery language that conflicts with terms", "Why": "Trust collapses when policies and marketing disagree", "Safer pattern": "Maintain a canonical promise register and surface audit", "Risk level": "High"},
+ {"Source / pattern": "Ecom Show subscription advice", "Do not copy": "Preselected subscription or obscured recurring terms", "Why": "Consent and cancellation risk plus customer distrust", "Safer pattern": "Express choice, electronic confirmation, plain terms, and simple cancellation", "Risk level": "Critical"},
+ {"Source / pattern": "Redline", "Do not copy": "Launching before payment, live inventory, testing state, refund rules, and service are stable", "Why": "It caused abandonment, overselling, and manual recovery", "Safer pattern": "Pass an end-to-end launch checklist under load", "Risk level": "Critical"},
+ {"Source / pattern": "Redline", "Do not copy": "Mixing RUO restrictions with personal-use language in affiliate terms", "Why": "Internal contradiction weakens the operating position", "Safer pattern": "One reviewed creator policy with monitored scripts and enforcement", "Risk level": "Critical"},
+ {"Source / pattern": "BioLongevity", "Do not copy": "Treating catalog count or announced formats as traction", "Why": "Site counts conflict and proposed pens were not found", "Safer pattern": "Report delivered products, current lot state, sell-through, and repeat behavior", "Risk level": "Medium"},
+ {"Source / pattern": "BelliWelli", "Do not copy": "Covertly acquiring/influencing communities or filming without consent", "Why": "Platform, privacy, authenticity, and reputation risk", "Safer pattern": "Transparent participation and explicit consent", "Risk level": "High"},
+ {"Source / pattern": "BelliWelli", "Do not copy": "Assuming niche-community excitement proves mass PMF", "Why": "Problem density can overstate addressable demand", "Safer pattern": "Validate channel, format, price, and audience separately", "Risk level": "High"},
+ {"Source / pattern": "Arrae", "Do not copy": "One-off creators who rotate through competing products", "Why": "Audience trust and learning continuity stay weak", "Safer pattern": "Promote organic advocates into long-term, disclosed relationships", "Risk level": "Medium"},
+ {"Source / pattern": "Perelel / SheMed / Mochi", "Do not copy": "Clinical, doctor-recommended, study, or patient-outcome language into RUO ecommerce", "Why": "The proof and licensed infrastructure are category-specific", "Safer pattern": "Transfer operating tactics, not clinical authority or claims", "Risk level": "Critical"},
+ {"Source / pattern": "All founder podcasts", "Do not copy": "Repeating founder revenue, community, patient, or growth claims as facts", "Why": "Most private metrics are unaudited and often change definition", "Safer pattern": "Label claim provenance and seek independent or primary corroboration", "Risk level": "High"},
+ {"Source / pattern": "All cases", "Do not copy": "Depending on one email vendor, processor, ad account, supplier, lab, creator, or regulatory interpretation", "Why": "Each dependency failed somewhere in the source set", "Safer pattern": "Dependency register, backup, trigger, owner, and tested recovery time", "Risk level": "Critical"},
+]
+
+
+ACTION_PLAN = [
+ {"Window": "Now - Week 1", "Workstream": "Decision system", "Action": "Adopt this workbook's evidence labels and require each strategy claim to carry source, date, confidence, and current-check link.", "Owner": "Founder / strategy", "Dependency": "None", "Definition of done": "All decision-board claims have provenance and freshness fields", "Metric": "% critical claims with current verification", "Priority": "P0"},
+ {"Window": "Now - Week 1", "Workstream": "Operating lane", "Action": "Write a one-page lane boundary for brand, product, content, support, creator scripts, and prohibited human-use guidance.", "Owner": "Legal/compliance + founder", "Dependency": "Qualified counsel", "Definition of done": "Approved rules are reflected in briefs, PDPs, FAQs, support, email, and community", "Metric": "Claim-review exceptions", "Priority": "P0"},
+ {"Window": "Now - Week 1", "Workstream": "Brand architecture", "Action": "Lock neutral master name + female-leading flagship + technical PDP/shared-backend structure as the pilot hypothesis.", "Owner": "Founder + brand", "Dependency": "Current design pilot", "Definition of done": "One-page architecture names audiences, front doors, shared systems, and future male trigger", "Metric": "Decision signed; no contradictory site taxonomy", "Priority": "P0"},
+ {"Window": "Now - Week 2", "Workstream": "Assortment", "Action": "Create a launch SKU gate: demand evidence, supplier diligence, complete test/custody, content, stock, margin, and support readiness.", "Owner": "Quality + merchandising", "Dependency": "Supplier and lab inputs", "Definition of done": "Every proposed SKU passes or is rejected with reason", "Metric": "% proposed SKUs passing all gates", "Priority": "P0"},
+ {"Window": "Now - Week 2", "Workstream": "Trust", "Action": "Specify the lot record: lot ID, inventory mapping, sampling/custody, methods, measured content, purity, applicable scope, report date, status, and limitations.", "Owner": "Quality + product", "Dependency": "Lab workflow", "Definition of done": "Real current batch renders correctly on desktop/mobile and matches inventory", "Metric": "Lot-record completeness", "Priority": "P0"},
+ {"Window": "Now - Week 2", "Workstream": "Promise control", "Action": "Create a canonical promise register for shipping, refunds, replacement, testing, origin, support hours, prices, reviews, and inventory.", "Owner": "Operations", "Dependency": "Policies and checkout", "Definition of done": "Marketing, policy, support, checkout, and creator briefs reconcile", "Metric": "Contradictions found per audit", "Priority": "P0"},
+ {"Window": "Now - Week 2", "Workstream": "Payments", "Action": "Validate honest underwriting, primary and backup rails, reserves, declines, chargeback handling, and recovery messaging.", "Owner": "Finance + commerce", "Dependency": "Processor approval", "Definition of done": "End-to-end test orders pass; failure paths and owner are documented", "Metric": "Authorization/failure/chargeback rate", "Priority": "P0"},
+ {"Window": "Now - Week 2", "Workstream": "Fulfillment", "Action": "Load-test saleable inventory, bundles/variants, stock holds, oversell prevention, label flow, tracking, and exception handling.", "Owner": "Operations", "Dependency": "Real inventory and carrier setup", "Definition of done": "Simulated launch wave completes with no unowned exception", "Metric": "Oversell, stockout, on-time ship, exception resolution", "Priority": "P0"},
+ {"Window": "Week 2-3", "Workstream": "Data", "Action": "Instrument creator -> click -> order -> settlement -> fulfillment -> support -> repeat -> payout with stable IDs.", "Owner": "Growth ops / data", "Dependency": "Commerce and creator tooling", "Definition of done": "Test customer is traceable end to end and export restores successfully", "Metric": "Event completeness and unmatched order rate", "Priority": "P0"},
+ {"Window": "Week 2-3", "Workstream": "Unit economics", "Action": "Build a settled-contribution model including COGS, testing, fulfillment, discounts, creator payout, processing, reserves, refunds, and chargebacks.", "Owner": "Finance", "Dependency": "Cost inputs", "Definition of done": "Every cohort and SKU has a contribution view at 0/30/60/90 days", "Metric": "Contribution per visitor/customer", "Priority": "P0"},
+ {"Window": "Week 2-4", "Workstream": "Creator pilot", "Action": "Recruit a controlled 25-creator pilot split across female-leading, technical/general, awareness, and conversion roles.", "Owner": "Creator lead", "Dependency": "Approved scripts, landing journeys, inventory capacity", "Definition of done": "Each creator has role, source ID, code, brief, disclosure, compensation, and stop rule", "Metric": "Qualified traffic and contribution by creator", "Priority": "P0"},
+ {"Window": "Week 2-4", "Workstream": "Seeding", "Action": "Run honest no-obligation seeding; identify organic advocates before offering long contracts.", "Owner": "Creator lead", "Dependency": "Seeding policy and fulfillment", "Definition of done": "Organic response is logged and top advocates are shortlisted by audience quality", "Metric": "Organic post and qualified-response rate", "Priority": "P1"},
+ {"Window": "Week 3-4", "Workstream": "Landing test", "Action": "Create matched female-leading and technical/general acquisition journeys on the same backend and price structure.", "Owner": "Growth + product", "Dependency": "Design authority review for outward-facing UI", "Definition of done": "Both journeys are functional, approved, and differ only in the intended narrative variables", "Metric": "Contribution per visitor plus conversion/AOV/repeat", "Priority": "P0"},
+ {"Window": "Week 3-4", "Workstream": "Lifecycle", "Action": "Implement welcome, abandonment, post-purchase documentation, service, VIP, winback, and lawful replenishment flows with consent controls.", "Owner": "Lifecycle", "Dependency": "Event data and policy", "Definition of done": "All flows tested; subscription is never preselected; exports work", "Metric": "Incremental lift, complaints, deliverability", "Priority": "P1"},
+ {"Window": "Week 3-4", "Workstream": "Support", "Action": "Turn founder answers into macros, SOPs, escalation rules, and measured SLAs; keep founder visibility for hard cases.", "Owner": "Customer operations", "Dependency": "Promise register", "Definition of done": "Top objections and exceptions have owned playbooks", "Metric": "First response, resolution, reopen, founder share", "Priority": "P0"},
+ {"Window": "Days 30-45", "Workstream": "Pilot launch", "Action": "Release creators in capacity-controlled waves, never all at once.", "Owner": "Growth + operations", "Dependency": "All launch gates green", "Definition of done": "Each wave is approved from live scorecard and can be paused in minutes", "Metric": "Service/fulfillment/payment thresholds stay green", "Priority": "P0"},
+ {"Window": "Days 30-60", "Workstream": "Customer research", "Action": "Run weekly interviews and code creator comments, support tickets, search terms, checkout exits, and post-purchase questions.", "Owner": "Insights", "Dependency": "Consent and research template", "Definition of done": "Weekly insight memo produces ranked experiments", "Metric": "Insight-to-experiment and resolved-objection rate", "Priority": "P1"},
+ {"Window": "Days 30-60", "Workstream": "Content engine", "Action": "Pilot recurring formats for founder visibility, lab/lot literacy, proof limitations, category research, and creator stories.", "Owner": "Content", "Dependency": "Reviewed content rules", "Definition of done": "Four repeatable formats have cadence, owner, and scorecard", "Metric": "Completion, saves, qualified clicks, assisted conversion", "Priority": "P1"},
+ {"Window": "Days 30-60", "Workstream": "Offer testing", "Action": "Test one-unit versus simple same-product volume ladders; defer subscriptions until consent, service, and repeat behavior are proven.", "Owner": "Merchandising + finance", "Dependency": "Stable inventory and unit economics", "Definition of done": "Offer decision based on settled contribution and support burden", "Metric": "AOV, contribution, refund, repeat", "Priority": "P1"},
+ {"Window": "Days 45-75", "Workstream": "Channel test", "Action": "Where explicitly eligible and approved, run a bounded high-intent search test segmented by product and margin.", "Owner": "Growth", "Dependency": "Platform approval and current policy review", "Definition of done": "Test has prewritten cap, attribution reconciliation, and kill/scale decision", "Metric": "Settled contribution per query/SKU", "Priority": "P2 conditional"},
+ {"Window": "Days 60-75", "Workstream": "Cohort decision", "Action": "Compare female-leading versus technical/general cohorts on economics and behavior, not gross revenue.", "Owner": "Founder + finance + growth", "Dependency": "Sufficient settled orders", "Definition of done": "Written recommendation to intensify female lead, preserve dual funnels, or adjust", "Metric": "Contribution, repeat, referral, CAC, AOV by cohort", "Priority": "P0"},
+ {"Window": "Days 60-90", "Workstream": "Creator contracts", "Action": "Promote proven organic or pilot creators into longer relationships with KPI-specific compensation.", "Owner": "Creator lead + finance", "Dependency": "Cohort contribution", "Definition of done": "No long contract is based solely on reach or one post", "Metric": "90-day creator contribution and audience quality", "Priority": "P1"},
+ {"Window": "Days 60-90", "Workstream": "Dependency resilience", "Action": "Run recovery drills for processor, email, supplier, lab, shipping, and creator-channel failure.", "Owner": "Operations + engineering", "Dependency": "Backup paths", "Definition of done": "Each dependency has tested RTO, owner, trigger, and customer communication", "Metric": "Recovery time and data loss", "Priority": "P0"},
+ {"Window": "Day 90", "Workstream": "Go / no-go", "Action": "Decide whether to scale, narrow, or stop using settled contribution, repeat behavior, trust/support signals, and dependency risk.", "Owner": "Founder / board", "Dependency": "Complete cohort and incident data", "Definition of done": "Decision memo includes evidence, confidence, downside case, and next capital commitment", "Metric": "Decision quality, not activity volume", "Priority": "P0"},
+]
+
+
+WATCHLIST = [
+ {"Subject": "FDA PCAC six-peptide recommendations", "What to watch": "Final FDA action, proposed rule, guidance, or enforcement discretion", "Current state": "Nonbinding panel recommendation only", "Trigger": "Any Federal Register/FDA final action", "Cadence": "Weekly", "Owner": "Compliance", "Source": "https://www.fda.gov/advisory-committees/advisory-committee-calendar/july-23-24-2026-meeting-pharmacy-compounding-advisory-committee-07232026"},
+ {"Subject": "Retatrutide", "What to watch": "Lilly BLA timing, trial publications, warning letters, litigation, and FDA statements", "Current state": "Investigational; BLA planned Q1 2027; FDA says cannot be compounded", "Trigger": "Regulatory filing or status change", "Cadence": "Weekly", "Owner": "Compliance / strategy", "Source": "https://www.lilly.com/news/stories/what-to-know-about-retatrutide"},
+ {"Subject": "Gram Peptides and similar enforcement", "What to watch": "How FDA characterizes intended-use evidence around RUO sites", "Current state": "Current warning letter says disclaimers did not override surrounding human-use evidence", "Trigger": "New peptide warning letter", "Cadence": "Monthly", "Owner": "Compliance", "Source": "https://www.fda.gov/inspections-compliance-enforcement-and-criminal-investigations/warning-letters/gram-peptides-721806-03312026"},
+ {"Subject": "Anonymous Budai client", "What to watch": "Client identity, processor evidence, settled revenue, refunds, repeat, and future case updates", "Current state": "$600K monthly remains anonymous agency claim", "Trigger": "Named client or raw evidence", "Cadence": "Monthly", "Owner": "Growth", "Source": "https://shows.acast.com/theecomshow/episodes/325-budai-media-specials-if-i-had-to-scale-a-peptide-brand-t"},
+ {"Subject": "Joi + Blokes", "What to watch": "Fertility launch, HerMD integration, current leadership, and audience/revenue mix", "Current state": "Active and expanding; private scale unaudited", "Trigger": "New funding, acquisition, or founder interview", "Cadence": "Quarterly", "Owner": "Strategy", "Source": "https://joiandblokes.com/"},
+ {"Subject": "Peptira / Peptide Price", "What to watch": "Catalog, batch-report currency, community size, affiliate disclosure, policy changes, and service claims", "Current state": "Active; shipping policy drift found", "Trigger": "New podcast or material policy/catalog change", "Cadence": "Monthly", "Owner": "Competitive intel", "Source": "https://peptira.com/test-results/"},
+ {"Subject": "Transcend", "What to watch": "Ownership, provider continuity, litigation, complaint trend, and service recovery", "Current state": "New owner and changed provider structure", "Trigger": "Court disposition or formal operating update", "Cadence": "Monthly", "Owner": "Strategy", "Source": "https://transcendcompany.com/pages/change-of-provider-letter"},
+ {"Subject": "SheMed", "What to watch": "Publication of clinical-study results, US expansion, HeMed shared-infrastructure economics", "Current state": "Study results not published by cutoff", "Trigger": "Peer-reviewed/public result or expansion update", "Cadence": "Monthly", "Owner": "Brand / strategy", "Source": "https://www.shemed.co.uk/clinical-study-why"},
+ {"Subject": "Perelel", "What to watch": "Creator-cohort changes, retail expansion, retention disclosures, and male-product treatment", "Current state": "$27M growth investment confirmed", "Trigger": "New founder interview or annual update", "Cadence": "Quarterly", "Owner": "Brand / creator", "Source": "https://perelelhealth.com/"},
+ {"Subject": "Arrae", "What to watch": "Creator mix, subscription mechanics, retail expansion, and verified scale", "Current state": "Company-reported $100M cumulative revenue", "Trigger": "Independent financial or channel update", "Cadence": "Quarterly", "Owner": "Creator / lifecycle", "Source": "https://www.arrae.com/pages/about-us"},
+ {"Subject": "BelliWelli", "What to watch": "Repeatable content format, retailer sell-through, subscription, and community transparency", "Current state": "Retail footprint and funding confirmed; growth/reach private", "Trigger": "New channel or financial disclosure", "Cadence": "Quarterly", "Owner": "Content / community", "Source": "https://belliwelli.com/"},
+ {"Subject": "Mochi Health", "What to watch": "Longevity offering, testing ownership, provider count, litigation, and price/choice model", "Current state": "Offering changed within one quarter; private scale claims vary", "Trigger": "Product, court, or company metric update", "Cadence": "Monthly", "Owner": "Strategy", "Source": "https://joinmochi.com/longevity"},
+]
+
+
+EXECUTIVE_DECISIONS = [
+ {
+ "Question": "Female-leading or unisex?",
+ "Answer": "Female-leading flagship, neutral name, technical/shared commerce, not female-exclusive.",
+ "Evidence": "Joi + Blokes, SheMed/HeMed, Perelel",
+ "Confidence": "High",
+ "Why": "These operators show that distinct audience meaning can sit on shared infrastructure. Perelel even carries a men's product inside a female-leading master brand.",
+ "First proof": "Matched female-leading vs technical/general creator cohort test",
+ },
+ {
+ "Question": "What is the moat?",
+ "Answer": "Creator relationships + batch proof + owned event/identity graph + dependable service.",
+ "Evidence": "Arrae, Perelel, Peptira, Redline, Ecom cases",
+ "Confidence": "High",
+ "Why": "Molecules, catalogs, and storefront software commoditize. Trust, continuity, attribution, and response quality compound.",
+ "First proof": "Track creator -> settlement -> fulfillment -> support -> repeat -> payout",
+ },
+ {
+ "Question": "Should one product lead?",
+ "Answer": "Use the strongest observed demand signal as a launch hypothesis, but keep the brand and economics broader.",
+ "Evidence": "Joi and Vita Bella concentration stories; internal popularity signal",
+ "Confidence": "Medium-high",
+ "Why": "A hero offer can concentrate acquisition while hiding operational and strategic concentration.",
+ "First proof": "Product-level settled revenue, contribution, repeat interval, and cross-sell",
+ },
+ {
+ "Question": "How should creators be recruited?",
+ "Answer": "Controlled seeding, then long-term deals with proven organic advocates; separate awareness and conversion cohorts.",
+ "Evidence": "Arrae and Perelel",
+ "Confidence": "High",
+ "Why": "Repeated genuine affinity is more credible and more learnable than rotating one-off endorsements.",
+ "First proof": "25-creator capacity-controlled pilot with role-specific KPIs",
+ },
+ {
+ "Question": "How much should growth stories influence the plan?",
+ "Answer": "Very little until independently reconciled.",
+ "Evidence": "Anonymous Ecom case, shifting definitions, unaudited founder claims",
+ "Confidence": "High",
+ "Why": "The most exciting numbers have the weakest evidence. They define upside hypotheses, not budgets.",
+ "First proof": "Bottom-up contribution model and raw settled cohort evidence",
+ },
+ {
+ "Question": "What fails first?",
+ "Answer": "Payments, support, inventory, testing throughput, fulfillment, or a partner handoff before demand itself.",
+ "Evidence": "Transcend, Redline, Peptira, Ecom case",
+ "Confidence": "High",
+ "Why": "Every exact-category operator described operational or vendor failure during growth.",
+ "First proof": "Launch-readiness gates, stop rules, and recovery drills",
+ },
+ {
+ "Question": "How current is the opportunity?",
+ "Answer": "Demand visibility is rising, but the operating environment is changing within weeks.",
+ "Evidence": "July PCAC vote, July Lilly data, EC325, Mochi change, Transcend change",
+ "Confidence": "High",
+ "Why": "Current information increases attention while also invalidating earlier assumptions. A dated monitoring system is mandatory.",
+ "First proof": "Weekly current-context review and claim-expiry register",
+ },
+]
+
+
+FAST_QUEUE = [
+ ("1", "Ecom Show #325", "Full 15:15", "Freshest exact scaling update; focus on channel reality, lifecycle, payment instability, and the 'near-term window' warning.", "https://shows.acast.com/theecomshow/episodes/325-budai-media-specials-if-i-had-to-scale-a-peptide-brand-t"),
+ ("2", "Joi + Blokes", "34:06-37:51; 48:53-54:36", "Female/male fronts on one backend, women as stronger engine, scale/capital, and adjacency.", "https://www.youtube.com/watch?v=aigF8IfN4Is&t=2046s"),
+ ("3", "Peptira + Peptide Price", "14:38-31:38", "Six-week launch sequence, batch labels, COAs, volume ladder, support promises, and test-before-sale gate.", "https://www.youtube.com/watch?v=Be58yiS6Vs4&t=878s"),
+ ("4", "Perelel", "11:27-20:30", "Identity brand, unique capability, long creator arcs, seeding, message order, and creator cohorts.", "https://podcasts.apple.com/us/podcast/success-almost-broke-her-this-recovering-girlboss-built/id1593458926?i=1000743844412"),
+ ("5", "SheMed", "09:34-28:48", "Role boundaries, shareable education, ongoing support, channel mix, muted-color conversion learning, and real buyer age.", "https://www.buzzsprout.com/850540/episodes/17034792-the-weightloss-wonders"),
+ ("6", "Redline Biolabs", "17:30-20:45; 35:45-47:15", "Founders + COAs, payment abandonment, supplier loss, oversell recovery, attribution codes, and early service.", "https://www.youtube.com/watch?v=JQSJYACbOCU&t=1050s"),
+ ("7", "Arrae", "15:45-29:35; 34:28-35:50", "Soft launch, no-obligation seeding, promote organic love, customer-as-creator, and founder role split.", "https://podcasts.apple.com/us/podcast/siffat-haider-co-founder-co-ceo-of-arrae-what-makes/id1432195522?i=1000611429597"),
+ ("8", "Transcend", "35:07-40:14", "Historical scale-break caution: creators, staffing, calls, patient capacity, and pharmacy inventory.", "https://www.youtube.com/watch?v=c6jUD2kyyDA&t=2107s"),
+]
+
+
+def build_web_dataset() -> Path:
+ """Emit the browser-ready dataset from the same records as the workbook."""
+ payload = {
+ "asOf": AS_OF,
+ "stats": {
+ "sources": len(SOURCES),
+ "notes": len(NOTES),
+ "claims": len(CLAIMS),
+ "currentContext": len(CURRENT_CONTEXT),
+ "lessons": len(LESSONS),
+ "antiLessons": len(ANTI_LESSONS),
+ "actions": len(ACTION_PLAN),
+ "watchlist": len(WATCHLIST),
+ },
+ "sources": SOURCES,
+ "notes": NOTES,
+ "claims": CLAIMS,
+ "currentContext": CURRENT_CONTEXT,
+ "lessons": LESSONS,
+ "antiLessons": ANTI_LESSONS,
+ "actions": ACTION_PLAN,
+ "watchlist": WATCHLIST,
+ "executiveDecisions": EXECUTIVE_DECISIONS,
+ "fastQueue": FAST_QUEUE,
+ }
+ encoded = json.dumps(payload, ensure_ascii=False, separators=(",", ":"))
+ WEB_OUTPUT.write_text(
+ "window.PEPTIDE_MEDIA_INTELLIGENCE = " + encoded + ";\n",
+ encoding="utf-8",
+ )
+ return WEB_OUTPUT
+
+
+def valid_url(value: str) -> bool:
+ if not value:
+ return True
+ parsed = urlparse(value)
+ return parsed.scheme in {"http", "https"} and bool(parsed.netloc)
+
+
+def add_hyperlink(cell, url: str, label: str | None = None) -> None:
+ if url and valid_url(url):
+ if label:
+ cell.value = label
+ cell.hyperlink = url
+ cell.font = Font(name="Aptos", size=10, color=COBALT, underline="single")
+
+
+def apply_value_fill(cell) -> None:
+ value = str(cell.value or "")
+ lower = value.lower()
+ if value.startswith("A -"):
+ cell.fill = PatternFill("solid", fgColor=SAGE_LIGHT)
+ cell.font = Font(name="Aptos", size=10, color=SAGE, bold=True)
+ elif value.startswith("B -"):
+ cell.fill = PatternFill("solid", fgColor=COBALT_LIGHT)
+ cell.font = Font(name="Aptos", size=10, color=COBALT, bold=True)
+ elif value.startswith("C -"):
+ cell.fill = PatternFill("solid", fgColor=GOLD_LIGHT)
+ cell.font = Font(name="Aptos", size=10, color=ESPRESSO, bold=True)
+ elif value.startswith("D -"):
+ cell.fill = PatternFill("solid", fgColor=CLAY_LIGHT)
+ cell.font = Font(name="Aptos", size=10, color=CLAY, bold=True)
+ elif value.startswith("E -") or "critical" in lower or "false" in lower or "contradicted" in lower:
+ cell.fill = PatternFill("solid", fgColor=RED_LIGHT)
+ cell.font = Font(name="Aptos", size=10, color=RED, bold=True)
+ elif "p0" in lower or "start here" in lower or "high" == lower:
+ cell.fill = PatternFill("solid", fgColor=SAGE_LIGHT)
+ cell.font = Font(name="Aptos", size=10, color=SAGE, bold=True)
+ elif "materially changed" in lower or "outdated" in lower or "unsupported" in lower:
+ cell.fill = PatternFill("solid", fgColor=RED_LIGHT)
+ cell.font = Font(name="Aptos", size=10, color=RED, bold=True)
+ elif "very current" in lower or "current; high" in lower or "corroborated" in lower or "confirmed" in lower:
+ cell.fill = PatternFill("solid", fgColor=COBALT_LIGHT)
+
+
+def add_tabular_sheet(
+ wb: Workbook,
+ title: str,
+ rows: list[dict],
+ subtitle: str,
+ widths: dict[str, float] | None = None,
+ tab_color: str = SAGE,
+) -> None:
+ ws = wb.create_sheet(title)
+ ws.sheet_view.showGridLines = False
+ ws.sheet_properties.tabColor = tab_color
+ if not rows:
+ ws["A1"] = title
+ return
+ headers = list(rows[0].keys())
+ last_col = get_column_letter(len(headers))
+ ws.merge_cells(f"A1:{last_col}1")
+ ws["A1"] = title.upper()
+ ws["A1"].fill = PatternFill("solid", fgColor=INK)
+ ws["A1"].font = Font(name="Aptos Display", size=19, bold=True, color=WHITE)
+ ws["A1"].alignment = Alignment(vertical="center")
+ ws.row_dimensions[1].height = 34
+ ws.merge_cells(f"A2:{last_col}2")
+ ws["A2"] = subtitle
+ ws["A2"].fill = PatternFill("solid", fgColor=CREAM)
+ ws["A2"].font = Font(name="Aptos", size=10, color=ESPRESSO, italic=True)
+ ws["A2"].alignment = Alignment(wrap_text=True, vertical="center")
+ ws.row_dimensions[2].height = 34
+ ws.merge_cells(f"A3:{last_col}3")
+ ws["A3"] = f"Current check: {AS_OF} | Evidence is classified, not assumed. This is business research, not medical or legal advice."
+ ws["A3"].font = Font(name="Aptos", size=9, color=MUTED)
+ ws["A3"].alignment = Alignment(vertical="center")
+ ws.row_dimensions[3].height = 22
+ header_row = 5
+ for col_idx, header in enumerate(headers, 1):
+ cell = ws.cell(header_row, col_idx, header)
+ cell.fill = PatternFill("solid", fgColor=ESPRESSO)
+ cell.font = Font(name="Aptos", size=10, bold=True, color=WHITE)
+ cell.alignment = Alignment(wrap_text=True, vertical="center")
+ cell.border = BORDER
+ ws.row_dimensions[header_row].height = 42
+ for row_idx, item in enumerate(rows, header_row + 1):
+ max_len = 0
+ for col_idx, header in enumerate(headers, 1):
+ value = item.get(header, "")
+ cell = ws.cell(row_idx, col_idx, value)
+ cell.font = Font(name="Aptos", size=10, color=INK)
+ cell.alignment = Alignment(wrap_text=True, vertical="top")
+ cell.border = BORDER
+ if row_idx % 2 == 0:
+ cell.fill = PatternFill("solid", fgColor=PORCELAIN)
+ apply_value_fill(cell)
+ if "link" in header.lower() or header in {"Source", "Primary / current link", "Verification link", "Media link", "Current-check link", "Timestamp link"}:
+ add_hyperlink(cell, str(value), "Open source")
+ max_len = max(max_len, len(str(value)))
+ ws.row_dimensions[row_idx].height = min(108, max(30, 15 + 0.30 * max_len))
+ ref = f"A{header_row}:{last_col}{header_row + len(rows)}"
+ table_name = "T_" + "".join(ch for ch in title if ch.isalnum())[:24]
+ table = Table(displayName=table_name, ref=ref)
+ table.tableStyleInfo = TableStyleInfo(
+ name="TableStyleMedium2",
+ showFirstColumn=False,
+ showLastColumn=False,
+ showRowStripes=False,
+ showColumnStripes=False,
+ )
+ ws.add_table(table)
+ ws.freeze_panes = f"A{header_row + 1}"
+ ws.auto_filter.ref = ref
+ default_width = 18
+ for col_idx, header in enumerate(headers, 1):
+ letter = get_column_letter(col_idx)
+ chosen = (widths or {}).get(header)
+ if chosen is None:
+ if "link" in header.lower() or header == "Source":
+ chosen = 14
+ elif header in {"ID", "Source ID", "Claim ID", "Published", "Duration", "Date", "Cadence", "Owner"}:
+ chosen = 14
+ elif len(header) > 22:
+ chosen = 28
+ else:
+ chosen = default_width
+ ws.column_dimensions[letter].width = chosen
+ ws.auto_filter.ref = ref
+ ws.sheet_view.zoomScale = 85
+
+
+def build_start_here(wb: Workbook) -> None:
+ ws = wb.active
+ ws.title = "START HERE"
+ ws.sheet_view.showGridLines = False
+ ws.sheet_properties.tabColor = GOLD
+ widths = {
+ "A": 7,
+ "B": 24,
+ "C": 24,
+ "D": 24,
+ "E": 24,
+ "F": 18,
+ "G": 18,
+ "H": 18,
+ "I": 3,
+ "J": 25,
+ "K": 22,
+ "L": 20,
+ }
+ for col, width in widths.items():
+ ws.column_dimensions[col].width = width
+ ws.merge_cells("A1:L2")
+ ws["A1"] = "PEPTIDE FOUNDER MEDIA INTELLIGENCE"
+ ws["A1"].fill = PatternFill("solid", fgColor=INK)
+ ws["A1"].font = Font(name="Aptos Display", size=24, bold=True, color=WHITE)
+ ws["A1"].alignment = Alignment(vertical="center")
+ ws.row_dimensions[1].height = 30
+ ws.row_dimensions[2].height = 30
+ ws.merge_cells("A3:L3")
+ ws["A3"] = "Recent founder and operator media, fully separated from present-day verification and translated into a Biologix operating playbook."
+ ws["A3"].fill = PatternFill("solid", fgColor=CREAM)
+ ws["A3"].font = Font(name="Aptos", size=11, color=ESPRESSO, italic=True)
+ ws["A3"].alignment = Alignment(vertical="center")
+ ws.row_dimensions[3].height = 30
+
+ metadata = [
+ ("As of", AS_OF),
+ ("Media sources", len(SOURCES)),
+ ("Timestamped extractions", len(NOTES)),
+ ("Material claims checked", len(CLAIMS)),
+ ("Current-context updates", len(CURRENT_CONTEXT)),
+ ("Action rows", len(ACTION_PLAN)),
+ ]
+ for row, (label, value) in enumerate(metadata, 5):
+ ws.merge_cells(start_row=row, start_column=1, end_row=row, end_column=2)
+ ws.cell(row, 1, label).font = Font(name="Aptos", bold=True, color=MUTED)
+ ws.merge_cells(start_row=row, start_column=3, end_row=row, end_column=4)
+ ws.cell(row, 3, value).font = Font(name="Aptos", bold=True, color=INK)
+ ws.merge_cells("A12:H12")
+ ws["A12"] = "THE DECISION READOUT"
+ ws["A12"].fill = PatternFill("solid", fgColor=ESPRESSO)
+ ws["A12"].font = Font(name="Aptos", size=11, bold=True, color=WHITE)
+ ws["A12"].alignment = Alignment(vertical="center")
+ decisions = [
+ ("01", "Architecture", "Female-leading flagship, neutral name, technical/shared commerce, and a future male sibling only if cohort economics earn it."),
+ ("02", "Commercial hypothesis", "Use the strongest observed demand signal as a launch wedge, but do not name the company after one product or assume popularity equals settled revenue."),
+ ("03", "Moat", "Creators + batch proof + owned event graph + dependable service. The storefront software and catalog are not the moat."),
+ ("04", "Launch method", "Controlled 25-creator pilot, split by female-leading vs technical/general and awareness vs conversion roles; release in capacity-gated waves."),
+ ("05", "Evidence discipline", "Do not forecast from anonymous $600K/month claims. Require settled contribution and 30/60/90-day cohorts."),
+ ("06", "Freshness warning", "Current facts already invalidate old media: Transcend changed control, Peptira changed remedies, Mochi changed offering, and retatrutide compounding claims are obsolete."),
+ ]
+ for idx, (num, label, text) in enumerate(decisions, 13):
+ ws.cell(idx, 1, num).font = Font(name="Aptos Display", size=18, bold=True, color=GOLD)
+ ws.cell(idx, 2, label).font = Font(name="Aptos", size=10, bold=True, color=ESPRESSO)
+ ws.merge_cells(start_row=idx, start_column=3, end_row=idx, end_column=8)
+ ws.cell(idx, 3, text).font = Font(name="Aptos", size=10, color=INK)
+ ws.cell(idx, 3).alignment = Alignment(wrap_text=True, vertical="top")
+ ws.row_dimensions[idx].height = 48
+ for col in range(1, 9):
+ ws.cell(idx, col).border = Border(bottom=THIN_STONE)
+
+ ws.merge_cells("A20:H20")
+ ws["A20"] = "FASTEST LISTENING QUEUE"
+ ws["A20"].fill = PatternFill("solid", fgColor=ESPRESSO)
+ ws["A20"].font = Font(name="Aptos", size=11, bold=True, color=WHITE)
+ queue_headers = ["Rank", "Source", "Listen", "Why", "Link"]
+ for col, header in enumerate(queue_headers, 1):
+ cell = ws.cell(21, col, header)
+ cell.fill = PatternFill("solid", fgColor=STONE)
+ cell.font = Font(name="Aptos", bold=True, color=INK)
+ cell.border = BORDER
+ cell.alignment = Alignment(wrap_text=True)
+ ws.merge_cells("D21:G21")
+ ws.merge_cells("H21:H21")
+ # Re-create the visual header after merging.
+ ws["D21"] = "Why"
+ ws["H21"] = "Link"
+ for row_idx, (rank, name, listen, why, url) in enumerate(FAST_QUEUE, 22):
+ ws.cell(row_idx, 1, rank)
+ ws.cell(row_idx, 2, name)
+ ws.cell(row_idx, 3, listen)
+ ws.merge_cells(start_row=row_idx, start_column=4, end_row=row_idx, end_column=7)
+ ws.cell(row_idx, 4, why)
+ add_hyperlink(ws.cell(row_idx, 8), url, "Open")
+ for col in range(1, 9):
+ cell = ws.cell(row_idx, col)
+ cell.border = BORDER
+ cell.alignment = Alignment(wrap_text=True, vertical="top")
+ if row_idx % 2 == 0:
+ cell.fill = PatternFill("solid", fgColor=PORCELAIN)
+ ws.row_dimensions[row_idx].height = 52
+
+ ws.merge_cells("J5:L5")
+ ws["J5"] = "EVIDENCE KEY"
+ ws["J5"].fill = PatternFill("solid", fgColor=ESPRESSO)
+ ws["J5"].font = Font(name="Aptos", size=11, bold=True, color=WHITE)
+ for idx, code in enumerate(["A", "B", "C", "D", "E", "I"], 6):
+ ws.cell(idx, 10, code).font = Font(name="Aptos", bold=True, color=INK)
+ ws.merge_cells(start_row=idx, start_column=11, end_row=idx, end_column=12)
+ ws.cell(idx, 11, EVIDENCE_LABELS[code].split(" - ", 1)[1])
+ ws.cell(idx, 11).alignment = Alignment(wrap_text=True)
+ apply_value_fill(ws.cell(idx, 10))
+ ws.row_dimensions[idx].height = 32
+
+ ws.merge_cells("J13:L13")
+ ws["J13"] = "CURRENT ALERTS"
+ ws["J13"].fill = PatternFill("solid", fgColor=RED)
+ ws["J13"].font = Font(name="Aptos", size=11, bold=True, color=WHITE)
+ alerts = [
+ ("Retatrutide", "Investigational, not FDA-approved; FDA says it cannot be compounded."),
+ ("July PCAC vote", "Six recommendations are nonbinding, not approvals or immediate legal change."),
+ ("RUO labels", "Current FDA warning shows disclaimers do not override contradictory intended-use evidence."),
+ ("Transcend", "2024 interview is historical; new owner/provider structure in 2026."),
+ ("Peptira", "Live shipping remedy is stricter than early founder promise."),
+ ]
+ for row, (label, text) in enumerate(alerts, 14):
+ ws.cell(row, 10, label).font = Font(name="Aptos", bold=True, color=RED)
+ ws.merge_cells(start_row=row, start_column=11, end_row=row, end_column=12)
+ ws.cell(row, 11, text)
+ ws.cell(row, 11).alignment = Alignment(wrap_text=True, vertical="top")
+ ws.row_dimensions[row].height = 48
+
+ lane_counts = Counter(item["Lane"] for item in SOURCES)
+ ws["J21"] = "Source lane"
+ ws["K21"] = "Count"
+ for cell in ws[21][9:11]:
+ cell.fill = PatternFill("solid", fgColor=STONE)
+ cell.font = Font(name="Aptos", bold=True, color=INK)
+ for row, (lane, count) in enumerate(lane_counts.items(), 22):
+ ws.cell(row, 10, lane)
+ ws.cell(row, 11, count)
+ chart = BarChart()
+ chart.type = "bar"
+ chart.style = 10
+ chart.title = "Source mix"
+ chart.height = 6.2
+ chart.width = 11
+ data = Reference(ws, min_col=11, min_row=21, max_row=21 + len(lane_counts))
+ cats = Reference(ws, min_col=10, min_row=22, max_row=21 + len(lane_counts))
+ chart.add_data(data, titles_from_data=True)
+ chart.set_categories(cats)
+ chart.legend = None
+ chart.x_axis.title = "Sources"
+ ws.add_chart(chart, "J29")
+
+ ws.merge_cells("A32:H34")
+ ws["A32"] = (
+ "Use this workbook as a dated operator-intelligence system. It intentionally excludes dosing and personal-use instructions. "
+ "Founder and agency claims are preserved because they reveal operating hypotheses, but they are never upgraded to facts without verification."
+ )
+ ws["A32"].fill = PatternFill("solid", fgColor=GOLD_LIGHT)
+ ws["A32"].font = Font(name="Aptos", size=10, color=ESPRESSO, italic=True)
+ ws["A32"].alignment = Alignment(wrap_text=True, vertical="center")
+ ws.freeze_panes = "A5"
+ ws.sheet_view.zoomScale = 90
+
+
+def build_executive_sheet(wb: Workbook) -> None:
+ ws = wb.create_sheet("EXECUTIVE SYNTHESIS")
+ ws.sheet_view.showGridLines = False
+ ws.sheet_properties.tabColor = SAGE
+ widths = [23, 38, 28, 15, 48, 34]
+ for idx, width in enumerate(widths, 1):
+ ws.column_dimensions[get_column_letter(idx)].width = width
+ ws.merge_cells("A1:F1")
+ ws["A1"] = "EXECUTIVE SYNTHESIS"
+ ws["A1"].fill = PatternFill("solid", fgColor=INK)
+ ws["A1"].font = Font(name="Aptos Display", size=20, bold=True, color=WHITE)
+ ws["A1"].alignment = Alignment(vertical="center")
+ ws.row_dimensions[1].height = 36
+ ws.merge_cells("A2:F2")
+ ws["A2"] = "The transferable lessons, stripped of hype and updated through July 26, 2026."
+ ws["A2"].fill = PatternFill("solid", fgColor=CREAM)
+ ws["A2"].font = Font(name="Aptos", size=10, italic=True, color=ESPRESSO)
+ headers = list(EXECUTIVE_DECISIONS[0].keys())
+ for col, header in enumerate(headers, 1):
+ cell = ws.cell(4, col, header)
+ cell.fill = PatternFill("solid", fgColor=ESPRESSO)
+ cell.font = Font(name="Aptos", size=10, bold=True, color=WHITE)
+ cell.alignment = Alignment(wrap_text=True)
+ cell.border = BORDER
+ for row, decision in enumerate(EXECUTIVE_DECISIONS, 5):
+ for col, header in enumerate(headers, 1):
+ cell = ws.cell(row, col, decision[header])
+ cell.alignment = Alignment(wrap_text=True, vertical="top")
+ cell.border = BORDER
+ cell.font = Font(name="Aptos", size=10, color=INK, bold=(col == 2))
+ if row % 2:
+ cell.fill = PatternFill("solid", fgColor=PORCELAIN)
+ apply_value_fill(cell)
+ ws.row_dimensions[row].height = 92
+ ws.merge_cells("A14:F14")
+ ws["A14"] = "WHAT IS ACTUALLY KNOWN VS STILL UNKNOWN"
+ ws["A14"].fill = PatternFill("solid", fgColor=ESPRESSO)
+ ws["A14"].font = Font(name="Aptos", size=11, bold=True, color=WHITE)
+ knowledge = [
+ ("Known with high confidence", "Young brands can launch quickly; batch proof and founder visibility matter; creators can create demand shocks; female-leading fronts can share infrastructure; vendors and partners are fragile."),
+ ("Known with medium confidence", "Product-name search can be efficient where approved; lifecycle and simple volume ladders can lift economics; long creator relationships outperform one-offs."),
+ ("Not known", "True market-wide buyer gender split for direct RUO retatrutide; the anonymous client's settled revenue/margins; Alex's future cohort economics; product-level Biologix net sales without exports."),
+ ("Must be measured", "Buyer cohort, creator source, settled contribution, product concentration, repeat interval, refunds, chargebacks, processor reserves, service burden, and referrals."),
+ ]
+ for row, (label, text) in enumerate(knowledge, 15):
+ ws.cell(row, 1, label).font = Font(name="Aptos", bold=True, color=SAGE if "Known" in label else CLAY)
+ ws.merge_cells(start_row=row, start_column=2, end_row=row, end_column=6)
+ ws.cell(row, 2, text)
+ ws.cell(row, 2).alignment = Alignment(wrap_text=True, vertical="top")
+ for col in range(1, 7):
+ ws.cell(row, col).border = BORDER
+ ws.row_dimensions[row].height = 58
+ ws.freeze_panes = "A4"
+ ws.sheet_view.zoomScale = 85
+
+
+def build_workbook() -> Path:
+ wb = Workbook()
+ wb.properties.creator = "OpenAI Codex for Alex Weinstein"
+ wb.properties.title = "Peptide Founder Media Intelligence"
+ wb.properties.subject = "Recent founder/operator media, current verification, and Biologix lessons"
+ wb.properties.description = (
+ "Dated research workbook separating episode claims from current verification. "
+ "No dosing or personal-use instructions; not medical or legal advice."
+ )
+ wb.calculation.fullCalcOnLoad = True
+ build_start_here(wb)
+ build_executive_sheet(wb)
+ add_tabular_sheet(
+ wb,
+ "SOURCE LIBRARY",
+ SOURCES,
+ "All podcast, YouTube, and interview links with company stage, present status, freshness, and confidence.",
+ {
+ "ID": 11,
+ "Priority": 16,
+ "Lane": 22,
+ "Company": 20,
+ "Founder / operator": 27,
+ "Episode / source": 38,
+ "Published": 13,
+ "Duration": 17,
+ "Stage at recording": 27,
+ "Model": 38,
+ "Media link": 14,
+ "Current-check link": 17,
+ "Current status at 2026-07-26": 52,
+ "Freshness": 24,
+ "Confidence": 22,
+ "Why it matters": 54,
+ },
+ COBALT,
+ )
+ add_tabular_sheet(
+ wb,
+ "TIMESTAMPED NOTES",
+ NOTES,
+ "Operator detail extracted into decision-ready rows. Timestamp links open the exact YouTube moment where available.",
+ {
+ "Source ID": 12,
+ "Company": 20,
+ "Timestamp": 18,
+ "Topic": 22,
+ "What the operator said / what happened": 55,
+ "What Biologix can learn": 55,
+ "Evidence class": 33,
+ "Freshness note": 32,
+ "Timestamp link": 14,
+ },
+ GOLD,
+ )
+ add_tabular_sheet(
+ wb,
+ "CLAIM CHECKS",
+ CLAIMS,
+ "The most decision-relevant numbers and assertions, with verification status and present-day finding.",
+ {
+ "Claim ID": 12,
+ "Company": 22,
+ "Claim to evaluate": 48,
+ "Where it came from": 27,
+ "Verification status": 26,
+ "Current finding at 2026-07-26": 58,
+ "Evidence class": 34,
+ "Confidence (0-5)": 17,
+ "Decision impact": 47,
+ "Verification link": 16,
+ },
+ CLAY,
+ )
+ ws_claims = wb["CLAIM CHECKS"]
+ confidence_col = list(CLAIMS[0].keys()).index("Confidence (0-5)") + 1
+ confidence_letter = get_column_letter(confidence_col)
+ ws_claims.conditional_formatting.add(
+ f"{confidence_letter}6:{confidence_letter}{5 + len(CLAIMS)}",
+ CellIsRule(operator="lessThan", formula=["3"], fill=PatternFill("solid", fgColor=RED_LIGHT)),
+ )
+ ws_claims.conditional_formatting.add(
+ f"{confidence_letter}6:{confidence_letter}{5 + len(CLAIMS)}",
+ CellIsRule(operator="greaterThanOrEqual", formula=["4"], fill=PatternFill("solid", fgColor=SAGE_LIGHT)),
+ )
+ add_tabular_sheet(
+ wb,
+ "CURRENT CONTEXT",
+ CURRENT_CONTEXT,
+ "What changed recently, what did not change, and when each topic must be checked again.",
+ {
+ "Date": 24,
+ "Topic": 29,
+ "What changed": 55,
+ "What did NOT change": 55,
+ "Business implication": 52,
+ "Evidence class": 34,
+ "Primary / current link": 16,
+ "Next review": 32,
+ },
+ RED,
+ )
+ add_tabular_sheet(
+ wb,
+ "PLAYBOOK",
+ LESSONS,
+ "Cross-source operating principles, tailored to the female-leading, creator-distributed Biologix thesis.",
+ {
+ "Domain": 21,
+ "Lesson": 48,
+ "Evidence": 38,
+ "Confidence": 14,
+ "How to apply": 64,
+ "Priority": 19,
+ "Metric / proof": 48,
+ },
+ SAGE,
+ )
+ playbook_ws = wb["PLAYBOOK"]
+ conf_col = list(LESSONS[0].keys()).index("Confidence") + 1
+ conf_letter = get_column_letter(conf_col)
+ playbook_ws.conditional_formatting.add(
+ f"{conf_letter}6:{conf_letter}{5 + len(LESSONS)}",
+ CellIsRule(operator="greaterThanOrEqual", formula=["5"], fill=PatternFill("solid", fgColor=SAGE_LIGHT)),
+ )
+ add_tabular_sheet(
+ wb,
+ "ANTI-LESSONS",
+ ANTI_LESSONS,
+ "Patterns to reject, why they fail, and the safer operating alternative.",
+ {
+ "Source / pattern": 28,
+ "Do not copy": 54,
+ "Why": 55,
+ "Safer pattern": 60,
+ "Risk level": 16,
+ },
+ CLAY,
+ )
+ add_tabular_sheet(
+ wb,
+ "90-DAY ACTION PLAN",
+ ACTION_PLAN,
+ "A staged, capacity-gated plan that turns the research into measurable decisions without drifting into medical-use guidance.",
+ {
+ "Window": 18,
+ "Workstream": 22,
+ "Action": 64,
+ "Owner": 24,
+ "Dependency": 38,
+ "Definition of done": 57,
+ "Metric": 45,
+ "Priority": 16,
+ },
+ COBALT,
+ )
+ add_tabular_sheet(
+ wb,
+ "WATCHLIST",
+ WATCHLIST,
+ "What can go stale, the event that should trigger a decision update, and the source to monitor.",
+ {
+ "Subject": 30,
+ "What to watch": 58,
+ "Current state": 58,
+ "Trigger": 39,
+ "Cadence": 15,
+ "Owner": 24,
+ "Source": 16,
+ },
+ GOLD,
+ )
+ # Keep the intended reading order explicit.
+ order = [
+ "START HERE",
+ "EXECUTIVE SYNTHESIS",
+ "SOURCE LIBRARY",
+ "TIMESTAMPED NOTES",
+ "CLAIM CHECKS",
+ "CURRENT CONTEXT",
+ "PLAYBOOK",
+ "ANTI-LESSONS",
+ "90-DAY ACTION PLAN",
+ "WATCHLIST",
+ ]
+ wb._sheets = [wb[name] for name in order]
+ wb.active = 0
+ wb.save(OUTPUT)
+ return OUTPUT
+
+
+def validate_workbook(path: Path) -> None:
+ for collection_name, rows in {
+ "sources": SOURCES,
+ "notes": NOTES,
+ "claims": CLAIMS,
+ "context": CURRENT_CONTEXT,
+ "watchlist": WATCHLIST,
+ }.items():
+ for idx, row in enumerate(rows, 1):
+ for key, value in row.items():
+ if ("link" in key.lower() or key == "Source") and value and not valid_url(str(value)):
+ raise ValueError(f"Invalid URL in {collection_name} row {idx} field {key}: {value}")
+ check = load_workbook(path, read_only=False, data_only=False)
+ expected = [
+ "START HERE",
+ "EXECUTIVE SYNTHESIS",
+ "SOURCE LIBRARY",
+ "TIMESTAMPED NOTES",
+ "CLAIM CHECKS",
+ "CURRENT CONTEXT",
+ "PLAYBOOK",
+ "ANTI-LESSONS",
+ "90-DAY ACTION PLAN",
+ "WATCHLIST",
+ ]
+ if check.sheetnames != expected:
+ raise ValueError(f"Unexpected sheet order: {check.sheetnames}")
+ if check["SOURCE LIBRARY"].max_row != len(SOURCES) + 5:
+ raise ValueError("Source row count mismatch")
+ if check["TIMESTAMPED NOTES"].max_row != len(NOTES) + 5:
+ raise ValueError("Note row count mismatch")
+ if check["CLAIM CHECKS"].max_row != len(CLAIMS) + 5:
+ raise ValueError("Claim row count mismatch")
+ hyperlink_count = sum(
+ 1
+ for ws in check.worksheets
+ for row in ws.iter_rows()
+ for cell in row
+ if cell.hyperlink is not None
+ )
+ if hyperlink_count < len(SOURCES) * 2:
+ raise ValueError(f"Too few hyperlinks: {hyperlink_count}")
+ check.close()
+ print(
+ f"Built {path}\n"
+ f"Sheets: {len(expected)} | sources: {len(SOURCES)} | notes: {len(NOTES)} | "
+ f"claims: {len(CLAIMS)} | lessons: {len(LESSONS)} | links: {hyperlink_count}"
+ )
+
+
+if __name__ == "__main__":
+ web_output_path = build_web_dataset()
+ output_path = build_workbook()
+ validate_workbook(output_path)
+ print(f"Built {web_output_path}")
diff --git a/biologix-strategy-board/research/evidence.html b/biologix-strategy-board/research/evidence.html
new file mode 100644
index 0000000..c152810
--- /dev/null
+++ b/biologix-strategy-board/research/evidence.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+ Biologix Research Room — Evidence and Models
+
+
+
+
Supporting library · Public and founder-reported evidence kept separate
+
Evidence, models, and diligence.
+
These are the supporting records behind the decision board and research conclusions. Public signals, founder claims, planning assumptions, and required proof remain explicitly separated.
+
+
Use these files to audit the thesis. Public catalog fields and planning models do not prove Braden’s private revenue, margin, orders, fulfillment, ownership, or customer retention.
Public market intelligence · Updated July 23, 2026
+
Full-funnel retatrutide market teardown
+
+
Use the navigation above to switch documents. Tables scroll horizontally on narrow screens.
+
+
+
Research cutoff: July
+23, 2026
+Scope: Active U.S.-facing research-product sellers with
+a current retatrutide-labelled or clearly mapped offer, plus the
+strongest publicly verifiable creator-to-seller funnels.
+Method: Public pages, public policy documents, public
+laboratory reports, public creator hubs and guides, public archives, and
+official FDA/DOJ records. No account was created, no purchase was made,
+and no private catalog or community was entered.
+
Executive answer
+
The market is more sophisticated than “put up a WordPress site and
+add a research-only footer,” but the sophistication is concentrated in
+distribution and conversion, not in the website
+itself.
+
The strongest operators layer:
+
+
Search, social, creator, podcast, community, or referral
+traffic.
+
A bridge asset that creates trust: a guide, Linktree, podcast
+episode, article library, review, or coaching community.
+
A product page with a coded or explicit retatrutide offer.
+
Batch reports, purity claims, fast-shipping language, and visible
+support.
+
A price ladder: strengths, quantity breaks, subscriptions, coupons,
+free-shipping thresholds, or wholesale cases.
+
A self-attestation, age gate, account review, or research
+questionnaire.
+
Card, bank, and sometimes alternative payment routes.
Affiliate links, creator codes, wholesale, or partner portals that
+restart the loop.
+
+
The commercial insight is straightforward:
+
+
The seller owns the transaction, while creators and content supply
+trust, meaning, and customer acquisition.
+
+
The key correction is equally important:
+
+
No disclaimer, code name, age gate, COA, creator separation, or
+account wall demonstrated a reliable safe harbor. FDA has already cited
+sellers using most of these configurations.
+
+
This is a high-demand, high-margin-looking, low-software-complexity
+market with visible churn. The durable assets are the audience,
+attribution, customer data, lifecycle system, creator network,
+logistics, quality records, and operating team—not any one
+investigational SKU.
Examples: American Peptides, Modern Peptides, GL Peptides, Peptide
+Partners, Prime Peptides.
+
This architecture creates the least friction and the clearest price
+discovery. It is also where product copy, accessories, reviews, and
+use-adjacent language are easiest to observe together.
+
2. Qualified-access store
+
Search/public proof → account or research form → gated catalog → purchase → account lifecycle
+
Examples: Skye, Xcel, Loti, Ion, Mile High.
+
The better versions collect age, institution, business type,
+researcher type, intended context, or research protocol. The weaker
+versions ask only for email/password while calling the result
+“researcher access.”
This is commercially powerful because the creator explains what the
+product name means and why the audience cares. The seller can keep
+first-party copy more technical. Public evidence still connects the two
+layers when the guide, code, and product route are explicit.
This is the strongest publicly substantiated conventional affiliate
+implementation in the study. The seller publishes its standard rates,
+the creator has a personalized page, and multiple tracking values and a
+buyer code are visible.
Jay discloses that he is a cofounder, so this is not an ordinary
+affiliate relationship. It is the most durable media architecture in the
+sample, although no current BioLongevity retatrutide SKU was visible at
+the cutoff.
Best durable owned-media architecture; not a current verified
+retatrutide checkout
+
+
+
+
What the sellers publicly
+rely on
+
These are the recurring stated controls. The right-hand column is the
+most important part: what the public evidence does and does not
+establish.
+
+
+
+
Publicly stated control
+
Operational value
+
Evidence limitation
+
+
+
+
+
RUO / not for human or animal use
+
States the seller’s intended transaction and sets a contractual
+boundary
+
FDA warning letters show that agencies evaluate the total labeling,
+product context, testimonials, creator content, accessories, and other
+evidence
+
+
+
18+ or 21+ modal
+
Blocks a trivial click and records an age acknowledgment
+
Does not establish researcher status or actual purpose
+
+
+
Researcher account
+
Creates identity, contact, and order records; can support manual
+review
+
Some “researcher” forms ask only for email/password; the form’s
+existence does not prove review
+
+
+
Institution, EIN, protocol, or business-type fields
+
Produces richer purchaser representations and supports
+screening
+
Self-reported data and optional fields are not independent
+verification
+
+
+
Right to refuse or blacklist
+
Gives the company contractual authority to reject suspicious orders
+or conduct
+
No public evidence shows how consistently it is applied
+
+
+
Coded name or CAS number
+
Changes first-party merchandising language and may reduce explicit
+consumer search copy
+
FDA has identified coded products by ingredient; creator and COA
+pages often decode the name
+
+
+
COA / lot library
+
Reduces buyer uncertainty and provides traceability to a tested
+sample
+
It does not prove chain of custody, every-vial consistency, or
+untested safety dimensions
+
+
+
Indemnity, arbitration, liability cap
+
Allocates private dispute risk and limits remedies if
+enforceable
+
Does not decide product status or prevent government action
+
+
+
Affiliate rules
+
Can require disclosures and prohibit human-outcome or protocol
+claims
+
The policy only matters if creators are screened, monitored,
+corrected, and terminated
+
+
+
Separate creator content
+
Lets a creator own education and community while the store remains
+technical
+
Public tracked links, codes, and guides can still connect the human
+narrative to the seller
+
+
+
Catalog gate
+
Reduces anonymous visibility and can add qualification data
+
It may leave public product data, images, reports, and search
+traces; it does not establish cessation
+
+
+
Domain or brand migration
+
Preserves traffic or repositions the storefront
+
A redirect does not prove entity continuity, and a new domain does
+not erase prior public records
+
+
+
+
The controls that look most
+mature
+
Best
+purchaser qualification: Skye, Loti, PekCura, Ion
+
+
Skye has the strongest membership conduct language
+and expressly bars dosing/administration discussion.
+
Loti collects business type, EIN, and optional
+research identifiers.
+
PekCura exposed the deepest visible checkout
+questionnaire: date of birth, institution, entity, protocol, and two
+acknowledgments.
+
Ion collects identity, date of birth, institution,
+business type, and a separate marketing opt-in.
+
+
None of these public forms proves actual review or a legally accepted
+transaction.
+
Best affiliate governance:
+Ion
+
Ion’s public agreement requires material-connection disclosure and
+bars medical, fat-loss, dosing, administration, human-use, and similar
+claims. That is the clearest written creator-governance system in the
+sample. The next diligence question is whether it runs:
+
+
creator approval;
+
content pre-review;
+
automated monitoring;
+
evidence retention;
+
correction deadlines;
+
commission holds;
+
termination and code deactivation.
+
+
The public policy alone cannot answer those questions.
+
Best
+public QA architecture: Skye, Modern, Peptide Partners, PekCura
+
The strongest libraries map products to lots and expose more than one
+assay type. Peptide Partners and Skye show broad panels; Modern has a
+deep current/previous archive; PekCura has an unusually strong
+mass/purity/sterility/endotoxin example.
+
The Polaris case is the warning against overconfidence: three samples
+under one batch identifier produced radically different public results,
+while a later sample under the same batch name passed. The cause is
+unresolved, but the lesson is clear—one passing certificate does not
+prove batch uniformity.
+
Best
+retention engines: American, Modern, Loti, Gentleman
+
+
American: subscriptions, volume discounts, reviews, email/SMS,
+partner commissions, and accessories.
This split converts because the creator answers the buyer’s real
+questions while the store closes the transaction. It also leaves a
+coherent public evidence trail when the creator names the product,
+seller, code, and practical use context.
+
Why the funnel converts
+
+
The creator replaces institutional trust. Buyers
+trust a person, community, or transformation story before they trust an
+unknown chemical seller.
+
COAs make the product feel legible. A third-party
+report converts uncertainty into a numerical purity story, even though
+it cannot prove the entire supply chain.
+
Price ladders turn doubt into a deal. Discounts,
+packs, shipping thresholds, and limited offers make a high-risk category
+feel like ordinary ecommerce.
+
Accessories eliminate friction. The store sells the
+surrounding workflow, not just a vial.
+
Owned communities provide post-purchase support.
+Guides and calls reduce confusion and create recurring creator
+revenue.
+
Attribution is simple. A link and code are enough
+to recruit creators quickly.
+
Organic acquisition can make apparent CAC extremely
+low. Word of mouth and creator distribution allow the owner to
+capture the markup.
+
The customer can reorder. The same catalog,
+account, email, and creator relationship support repeat
+transactions.
+
+
Why the market looks
+easier than it is
+
The storefront technology is ordinary—10 of 12 deeply audited stores
+used WordPress/WooCommerce. The hard parts are hidden:
+
+
reliable product provenance and lot-to-customer traceability;
+
payment settlement, reserves, disputes, and processor
+continuity;
+
inventory, shrinkage, shipping errors, and customer complaints;
+
creator screening and claims oversight;
+
accurate margin after discounts, refunds, shipping, commissions, and
+reserves;
+
legal-entity and contract continuity through domain changes;
+
quality systems that test more than one selected vial;
+
making a hot customer list valuable in a durable, lawful
+business.
+
+
Market-duration finding
+
The data does not support a precise “four to six months left”
+claim.
+
What it supports:
+
+
demand around obesity, metabolism, and longevity is durable;
+
retatrutide-specific gray-market demand may remain large before
+legitimate availability broadens;
+
scrutiny is already active rather than hypothetical;
+
agency action is uneven and can lag visible commerce;
+
warned sellers split among continued public sale, gated catalogs,
+product removal, domain migration, and closure;
+
many current sellers are genuinely new 2025–2026 entrants replacing
+firms that left or changed.
+
+
This behaves more like a churn-and-replacement
+market than a protected class of long-lived winners.
+
The strongest true continuity found was Particle Peptides, with the
+same Slovak company number on a 2015 archived storefront and the current
+site. Among U.S.-facing sellers, Loti, Battle Born, Xcel, Skye, Prime,
+PekCura, Hydro, Modern Aminos, Evolve, and Atomix have meaningful
+same-domain histories. Core .st and Limitless
+.st should not be presented as clean migrations because
+their older .com sites remained live with different contact
+details at the cutoff.
+
What this means for Braden
+
The full-funnel research strengthens the operating-partner
+thesis:
+
+
Braden may have a powerful transaction engine, but the visible market
+leaders show how much company infrastructure can still be built around
+it.
Fulfillment: remove Braden from daily packing; set
+SLAs, inventory controls, error tracking, and support escalation.
+
Owned audience: media, community, education,
+experiences, and creator relationships that can survive a SKU or
+regulatory transition.
+
Governance: accurate terms, consistent
+ages/policies, creator disclosure rules, evidence retention, and claims
+review.
+
Buyer readiness: clean entity records, contracts,
+cohort data, quality records, management, and a financial model a buyer
+can diligence.
+
+
The biggest strategic asset Alex should negotiate around is not
+“helping with marketing.” It is converting accidental demand into:
+
+
owned first-party distribution;
+
documented repeat economics;
+
a managed creator network;
+
a business that does not require Braden to pack orders;
+
durable media, software, community, and operational
+infrastructure.
+
+
The numbers to verify
+before economics
+
Public research cannot validate Braden’s $1.5 million last-30-day
+claim, $90,000 day, or 80% margin. Before equity or a revenue share is
+priced, obtain:
+
+
every order and line item for at least 90 days;
+
gateway settlements and bank deposits;
+
refunds, chargebacks, reserves, holds, taxes, and processor
+fees;
+
discount and affiliate payout by order;
+
COGS, inbound freight, testing, packaging, shipping, and labor by
+batch;
+
inventory received, shipped, remaining, damaged, and replaced;
+
new versus repeat customers;
+
revenue and contribution by creator, code, product, and cohort;
+
every owner, equity holder, contractor, agency, web team, and
+decision right;
+
source, manufacturer, importer, lot, report, complaint, and customer
+mapping;
+
every regulator, processor, bank, insurer, or legal
+communication.
The best sellers have built several layers of that system. Braden
+appears, based on the call and public Biologix surface, to have captured
+the transaction before building the rest.
+
That is why the opportunity is real. It is also why Alex should
+negotiate as the operating principal who creates the company—not as a
+marketer paid only for posts or top-line revenue.
+
The research does not show that the active sellers
+discovered a magic disclaimer. It shows that demand is strong, ecommerce
+implementation is ordinary, enforcement is lagged and uneven, and the
+market continually replaces operators. The durable prize is ownership of
+the customer, distribution, data, community, operating system, and
+transition path.
Braden appears to have captured a highly leveraged customer transaction before building the finance, distribution, lifecycle, fulfillment, quality, management, and data systems that turn demand into an enduring company.
+
+
The opportunity is not “help him market.” It is to become the operating principal who converts accidental demand into owned distribution, repeat economics, an instrumented creator network, and a company that can run without Braden packing orders.
+
+
+
+ 01 / What wins
+
Distribution beats software.
+
The strongest operators combine creator trust, search, batch proof, price ladders, fast fulfillment, email/SMS, repeat purchasing, and affiliate attribution. Most use ordinary WordPress commerce.
+
+
+ 02 / What does not exist
+
No magic disclaimer.
+
Age gates, research attestations, coded names, account walls, COAs, and separate creator content are common. None demonstrated a reliable safe harbor when the complete public funnel points elsewhere.
+
+
+ 03 / Alex’s move
+
Verify, install, then price equity.
+
Reconcile orders and settlements first. Then build attribution, lifecycle, fulfillment, QA traceability, creator governance, executive management, owned media, and community.
Noli / Category go / Offer stop / Current July 27, 2026
+
The Noli decision system.
+
Simple scales. Complex fails. Pursue the category. Do not launch the current consumer Reta concept until the exact legal lane clears. The company is trust, distribution, lot proof, cash, service, and repeat.
+
+
+
+
+ DecisionPursue category. Stop uncleared offer.
+ Demand$100M+ gray on-chain run rate claimed.
+ Supply11 Reta DMFs. Zero complete retail-lot-to-API-and-fill-site chains.
+ Proof gap9% of 326 UK sellers pass one narrow COA check.
+ MoatCreators, proof, service, repeat.
+ RuleOne lane. Offer. Lot. Ledger.
+
+
+
+
+
+
01 / Vendor universe
+
Every Retatrutide vendor we could find, with one evidence system.
+
+
+
The complete public starting universe, not a handpicked best-vendor list. Every reachable public site gets the same automated profile. Checkout evidence stays separate from directories, logos, and inference.
The broader index also contains manufacturers, wholesalers, group buys, private sellers, and dead operators. They are not 655 equivalent competitors.
+
+
+ Payment truth
+ The code names providers. The contract names the private chain.
+
Active cart IDs outrank installed plugins, which outrank logos. Code can identify Stripe, PayPal, NMI, Authorize.Net, Bankful, and others without revealing every MID, acquirer, reserve, or settlement term.
+
+
+ Audit system
+ Same evidence pass across every public site.
+
Listings, offers, marketing, platform, tracking, trust, policies, sourcing claims, and public checkout signals. Unknown stays unknown.
+
+
+
+
+ What the public code reveals about processors and gateways
+
+
Scale: 783 exact evidence rows across 149 domains. Forty-eight domains expose processor/PSP-level code; seven expose active provider-layer IDs for a tested Reta cart.
+
Direct active examples: LifeLink exposes mecom_stripe; ResearchChemHQ and Rivn expose PayPal-named active IDs; Riptide exposes CircoFlows; Nurev, Orion, and Riptide expose eDebit Direct; Umbrella exposes Paynote.
+
Card gateways: NMI appears in code on 19 domains and is Reta-cart active on 6. Authorize.Net appears on 9 and is active on 3. Bankful appears on 9 and is active on NewBioRx.
+
Installed versus active: WooPayments appears on 11 domains and Square on 4, but neither produced an active provider-layer ID in the tested Reta carts. The fresh 48-store product/cart spot-check found no strong Square marker.
+
False-positive controls: ResearchChemHQ's Stripe config was disabled; Alora's source calls earlier CircoFlows/Stripe attempts failed or shut down; Epic-Pep's NOWPayments values were placeholders.
+
The remaining boundary: provider code does not establish the merchant's private processor contract, ISO, MID, acquiring bank, reserve, settlement path, or successful transaction.
+
+
+
+ What the first 48 current storefronts teach Noli
+
+
Simple commerce wins: 36 of 48 run WooCommerce. The advantage is instrumentation, proof, and checkout continuity, not an exotic frontend.
+
Affiliates dominate: 34 use an affiliate or ambassador system, versus 4 with visible subscription continuity. Build controlled partners, attribution, approved creative, and claim monitoring first.
+
Tracking is table stakes: GTM appears on 36, GA on 28, Meta on 16, TikTok on 10, Clarity on 5, and Triple Whale on 2. Noli needs first-party order, creator, lot, support, and settlement lineage from day one.
+
Checkout resilience is a portfolio: 33 carts exposed active method IDs and 20 exposed readable labels. Link Money appeared on 11, Zelle on 7, bank transfer on 6, NMI on 6, and IDEM on 3. These IDs identify real provider or method integrations; the private underwriting and acquiring chain is a separate layer.
+
Configured is not active: 14 identifiers were installed or exposed but inactive for the tested Reta cart. Never treat a plugin, logo, or code string as usable capacity.
+
Gates have a cost: 44 showed RUO language, 14 showed age attestation, and 13 required an account or login. Several mobile first screens were consumed by the gate.
+
Proof claims are table stakes: 44 showed a COA or testing signal and 41 showed reviews. The differentiator is an accessible, lot-linked, independently checkable proof chain, not merely saying “tested.”
+
Maturity clusters: affiliate operators averaged 7.7 UI versus 7.0 for the rest and 28 of 34 exposed active checkout methods. This is correlation, not causation, but distribution, measurement, and commerce maturity tend to arrive together.
+
Pretty does not mean operational: several UI leaders did not expose an active anonymous checkout state. Design, fulfillment, underwriting, and quality must remain separate scores.
+
Coded naming is common: 20 of 48 surfaced a coded or euphemistic product name instead of the exact molecule. Record this as a claims, support, and identity-continuity risk, not a growth tactic.
+
The reusable pattern: one clear offer, visible batch proof, a clean mobile path, redundant underwritten payments, precise reconciliation, fast support, and attributable partner traffic.
+
+
+
+
+ What the corrected 570-domain census changes
+
+
Visible demand is crowded: 157 of 245 retail or probable storefronts listed Reta; 110 showed an availability cue. That proves supply visibility, not revenue, quality, legality, or durable margin.
+
WooCommerce is the default: 138 of 245 detected storefronts used it, versus 14 Shopify and 13 Next.js. Familiar tooling beats exotic architecture; plugin count is not a moat.
+
The minimum useful listing is consistent: exact identity, variant-bound strength and price, stock, shipping, lot-specific reports, contact, and policies in one path.
+
Offers plus measurement travel together: free shipping appeared on 69, bundles on 67, percentage discounts on 65, and subscriptions on 50. GA appeared on 79 and GTM on 68.
+
Operating proof separates live stores: available stores exposed COAs, policies, contact, shipping, offers, and tracking far more often. This is observational and crawl-biased, not causal proof.
+
Disclaimers do not cure contradictory claims: 136 storefronts mixed research-only language with human-use, administration, therapeutic, or outcome cues. Treat that as a content-control failure, not a loophole.
+
Payment code is highly revealing: 149 domains produced 783 provider or method rows. Forty-eight expose processor/PSP-level code, with active Reta-cart IDs on 7. The code names providers; merchant contracts and statements are still required for the private ISO, MID, acquirer, reserve, and settlement chain.
+
Supplier identities remain gated: competitors made many purity, testing, cGMP, and manufacturing claims, but the public crawl independently verified zero manufacturer identities.
+
Automated pricing is directional: page tokens are contaminated by bundles, cross-sells, and shipping add-ons. Use a manually verified 15–25 store panel for exact weekly price-per-mg decisions.
+
Noli's fastest responsible path: one eligible offer, one storefront, one approved payment path, one fulfillment workflow, lot-bound proof, and settled contribution margin before adding complexity.
+
+
+
+
+ UI and design scorecard: what to inspect later
+
+
Coverage: all 112 confirmed or probable retail storefronts received screenshot review. Ninety-five were comparable and scored; 17 stayed unscored because the public view was blocked, blank, disabled, or gated.
+
Current leaders: Pepta Labs 9.3, LifeLink Research 9.2, Crush Research 8.8, Northwest Peptides 8.8, and Peptide Hackers 8.8. Use the UI sort to open each site directly.
+
Best repeated pattern: a compact mobile decision card with product, strength, price, purchase state, and current-lot proof in one path.
+
Most common failure: gates, overlays, security challenges, and floating controls hide the offer or proof before the buyer can evaluate it.
+
Noli template: one PDP, one proof card, one quantity selector, and one policy strip. UI is scored separately from checkout durability, quality, legality, and revenue.
+
+
+
+
+
+
+
Loading the vendor universe...
+
Observed July 27, 2026
+
+
+
+
+
+
+
+ Sparta Labs case file
+ Very new · $6K–$15K monthly estimate · SpartaPay to Stripe observed
+
+
+ AgeCurrent store: weeks, not years
Catalog records were created June 13, 2026. The current public store was first observed July 10.
+ RevenueBest estimate: $6K–$15K monthly
Public inventory movement implies about $8.5K list-price GMV. Hidden restocks, wholesale, and offline sales remain unknown.
+ CheckoutSpartaPay → Stripe Elements
The tested path exposed card plus BTC, ETH, USDT, and USDC. Installed frontend adapters do not prove active use.
+ Why still onlineNo public action found ≠ FDA clearance
The store is new and enforcement is selective and slow. FDA says Retatrutide is unapproved and cannot be compounded.
Registry: normalize public domains, redirects, aliases, retail status, and source records.
+
Public crawl: products, codes, sizes, prices, bundles, claims, COAs, reviews, platform, pixels, affiliates, shipping, policies, and contact data.
+
Safe checkout observation: anonymous public cart and payment-method rendering only. No credentials, payment, order, or gate bypass.
+
Evidence ledger: every extracted signal retains its URL, timestamp, method, and confidence. Blocked and unknown fields remain explicit.
+
Change pass: rerun the same system for new sellers, pricing, claims, payment changes, warnings, and dead domains.
+
+
UI score: combines mobile usability, visual polish, product clarity, trust presentation, conversion UX, and public performance. Screenshot-reviewed retail profiles preserve gates and challenges as first-load friction. Generic DOM proxies do not enter the leaderboard. A high score is not evidence of product quality or legal status.
+
Evidence rule: a listing is not an endorsement or proof of quality, legality, processor approval, revenue, or active inventory.
+
+
+
+
+
+
+
01 / Decision
+
Is this worth doing?
+
+
+
GO: build Noli in a legally eligible health lane. NO-GO: consumer retatrutide sales or outcome-led creator marketing today. Retatrutide stays on the watchlist until an approved or otherwise clearly lawful route exists. A genuine B2B RUO business is a separate model with verified research buyers and no consumer funnel.
Lane-clear rule: specialist counsel must approve in writing the exact entity, SKU, intended use, claims, creator brief, checkout, jurisdictions, fulfillment chain, and counterparty roles. The acquiring bank must underwrite that same package in writing, insurance must cover it, and supplier and 3PL contracts must match it. Until then: no inventory, preorders, checkout, or creator activation.
+
+
+
+ New in this deep passOperator failures, manufacturer forensics, current payment evidence, and the corrected Direct Peptides sale status are now inside this page.
+
+
+
+ Young operators
Six peptide-company files now show what launched, scaled, broke, or was abandoned.
+ Actual source chain
Eleven FDA Reta DMF holders are separated from brokers, fillers, labs, and retail brands.
+ Forum evidence
Current Reddit, BHW, GLP-1 Forum, and MESO-Rx failures are converted into Noli gates.
+ Concise by default
Every deep section stays closed until you tap it. Direct evidence opens in place.
Product access is abundant. A seller with trusted distribution, inspectable proof, dependable service, and owned repeat demand can still build a valuable company.
+
+
+
The constraint
+
The lane comes first.
+
A genuine qualified-research business and a consumer health business are different models. A lifestyle creator funnel cannot imply human outcomes while the store claims a different intended use. FDA's March 2026 Pink Pony letter treated human-outcome copy plus bacteriostatic water sold beside peptides as intended-use evidence despite RUO disclaimers.
One cleared lane. One eligible offer. One released lot. Five creators. One ledger. Stop at 50 to 75 delivered orders and judge settled contribution plus operating truth.
+
+
+
+
+
+ What Noli is, and what it is notThe intended business stays intact. The unresolved issue is the operating lane, not the company name or ambition.
+
+
+
+
Noli is
+
+
A neutral master brand with female-leading acquisition and a technical, gender-neutral product and proof layer.
+
Reta-led at launch only if the exact offer is eligible, underwritten, released, and supported by the chosen lane.
+
A trust and distribution company with a broader catalog only after the hero proves clean demand and repeat behavior.
+
A system designed to make the first order feel low-risk and the second order feel obvious.
+
+
+
+
Noli is not
+
+
OVO, OVO Talent, OVO Academy, or OVO Labs.
+
A giant catalog launched before quality, payments, service, and lifecycle work.
+
A disclaimer wrapped around a contradictory consumer funnel.
+
A bet that a $3 vial, a sales screen, or an asking price equals normalized company profit.
+
+
+
+
+
+
+
+ Why Noli has an unfair advantageOVO gives Noli warm distribution and an operating bench, but only if the company protects OVO from health-category risk.
+
+
+
+ Noli owns
Every compliance, quality, customer, cash, brand, merchant, support, and inventory obligation.
+ OVO Talent supports
Opt-in creator relationships under separate Noli contracts and approved claims. It does not endorse the product or absorb Noli liability.
+ OVO Academy supports
Only after two clean cohorts: supervised, deidentified evidence indexing, CRM QA, support QA, and reporting. It remains an apprenticeship, never a course or public-price offer. No PHI, medical or customer advice, claims approval, payment credentials, lot release, or unpaid production labor.
+ OVO Labs supports
Start with spreadsheets. Build attribution and payout software only after repeated manual pain proves what is needed.
+
+
Measure incremental CM2 per creator, operator hour, and Alex hour against the same capacity used by existing OVO businesses. If Alex is still chief support, processor, fulfillment, and claims operator at 500 monthly orders, Noli has not earned scale.
+
+
+
+
+
+
+
+
02 / Braden case
+
What Braden actually proves.
+
+
+
Believing Braden and diligencing the business are compatible. Alex has repeatedly watched live screens near $50,000 a day. That is a serious private demand signal. It is not yet a reconciled statement of settled revenue, contribution margin, cash, or enterprise value.
+
+
+
+
+
+
Private signal
+ ~$50K/day
+
Repeated live screens make the demand claim worth serious diligence.
+
+
+
Source quote
+ $3 to $4
+
Potential Reta vial cost before strength, release, freight, failures, and working capital.
+
+
+
Margin claim
+ ~80%
+
Plausible product gross margin. Unverified normalized company margin.
+
+
+
Value story
+ $15M
+
Plausible at the claimed scale. It may be a real private offer; no buyer document was reviewed here.
+
+
+
+
The most important Biologix lesson is that the storefront is not the engine. The public site is basic. The likely engine is accumulated trust, repeat buyers, affiliates, private referrals, direct contact, payment continuity, inventory, and customer recovery.
+
+
+
+
What the site audit supports
+
Reta is a strong hero hypothesis.
+
Retatrutide ranked first and bacteriostatic water second in the public WooCommerce popularity ordering. That supports demand, not a cleared launch pairing. FDA's March 2026 Pink Pony letter shows that human-outcome copy plus water beside peptides can evidence intended use despite RUO disclaimers.
+
+
+
What stock cannot prove
+
Public inventory is not a revenue ledger.
+
Backorders, disabled stock management, bundles, manual edits, and private orders can all break the relationship between displayed stock movement and WooCommerce sales.
+
+
+
What Noli should copy
+
The invisible distribution network.
+
Copy the trust, repeat, referral, payment, fulfillment, and remedy system. Do not mistake a simple site for a simple business.
+
+
+
+
+
+ The first offer: one decision, not a catalogThe hero earns the right to expand. Complexity does not create demand.
+
+
+
+ One eligible hero
Retatrutide remains the acquisition hypothesis only if the chosen lane, payment terms, release record, and claims permit the exact offer.
+ One visible total price
No hidden membership, mandatory wallet, or fee maze. The buyer should understand the full commercial commitment before checkout.
+ One quantity ladder
Test single-unit and simple same-SKU quantity economics. Do not use bundles to hide an unproven hero or inflate AOV at the expense of CM2.
+ Proof beside purchase
Put the current lot passport, policy, shipping promise, support path, and remedy on the same decision path as the offer.
+
+
No subscription until a natural reorder interval exists. No adjacent SKU until two clean hero lots and real second-order contribution. No giant catalog at launch.
+
+
+
+
+
+ How people find an unpublished WhatsApp numberDark social compounds invisibly. No public Google result or mysterious leak is required.
+
+
+
+
+
Most plausible paths
+
+
Forwarded contact cards and customer introductions.
+
Creators, affiliates, suppliers, processors, service providers, or partners sharing it.
+
Private WhatsApp, Telegram, Discord, and forum groups.
+
Old pages, PDFs, invoices, COAs, catalogs, support widgets, cached pages, and business records.
+
Uploaded address books, contact syncing, WhatsApp Business discovery where supported, and commercial enrichment databases.
+
Scam-warning or vendor-verification threads reposting the canonical contact.
+
+
+
+
Noli action
+
+
Ask every inbound one fixed question: "Where did you get this number?"
+
Use a unique click-to-chat link for each creator, community, and partner.
+
Preserve first-touch source, consent, order, and repeat attribution.
+
Publish one canonical verification page for the official domain and contact points.
+
Never make a private phone number the only proof of seller identity.
+
+
+
+
+ The Braden diligence packetDo not ask for another screenshot. Ask for the bridge from order to settled cash to normalized owner earnings.
+
+
+
+
Product and order export by SKU, date, customer, channel, status, discount, refund, and reship.
Customer concentration, channel concentration, repeat behavior, and shutdown or account-loss history.
+
Any claimed offer or LOI: buyer, legal entity, price, cash versus earnout, working-capital adjustment, escrow, exclusivity, and proof of funds.
+
+
Private evidence is strong enough to justify this diligence. It is not yet enough to publish $50,000 a day, 80% normalized margin, or a $15 million buyer offer as verified fact.
+
+
+
+
+
+
+
+
03 / Operators
+
What young peptide companies teach.
+
+
+
Six current operator files tell the same story: the site is easy, the exact supplier is gated, and the company becomes valuable only when demand, release, payments, fulfillment, support, and repeat work together.
Every scale number below is founder, broker, or commercial-source supplied unless stated otherwise. Use the operating lesson. Do not put the revenue claim into a forecast.
Seller memo claimed about 250 daily orders and $220 AOV. Listing is now marked sold.
+
ERP, lifecycle, customer data, fulfillment, SOPs, inventory, and payment relationships.
+
Buyer and price are unknown. China sources and Missouri fill site stay unnamed. Testing affiliation risk remains.
+
D claims
+
+
+
+
+
+
+
+ Ten forum lessons from founders, sellers, and customersForty-two current artifacts were graded. The failure pattern is stronger than any revenue claim.
+
+
+
+
+
Inventory before distribution kills. Multiple founders built and stocked before payments or demand worked.
+
Local trust beats a polished empty store. Personal networks and referrals produced the first credible demand in several accounts.
+
Testing turns markup into normal math. One operator cited about $500 per peptide and batch before failure write-offs.
+
Banking is separate from processing. A checkout can work while deposits or bank funds are restricted.
+
Creator offers are abundant. Public commissions cluster around 20% to 30%; payout and contribution are rarely proven.
+
+
+
Lot identity is a data join. Cap color, vial look, and a supplier PDF do not connect a customer vial to a released lot.
+
Purity can pass while endotoxin fails. The release panel needs separate quality dimensions.
+
Recovery is the product. Specific updates, replacement, refund, and one verified contact preserve trust during failure.
+
Exit listings conflict with themselves. Reconcile affiliates, processors, inventory, margin, and cash to source records.
+
Private contact compounds. WhatsApp and Telegram referrals create demand and impersonation risk outside public attribution.
+
+
+
+
+ New July 27 sweep: identity continuity is the system28 findings and 43 evidence rows, deduplicated against 2,202 existing source URLs.
+
+
+
The new operating chain: ad → store identity → checkout → statement descriptor → confirmation → allocated inventory → vial → lot record → support → refund or replacement. Every broken join creates conversion loss, chargebacks, support cost, or distrust.
Written approval for the exact catalog, claims, buyer controls, fulfillment, and URLs before inventory or traffic.
+
+
+
Descriptor and refunds
+
A July 21 LabTrust review alleges a different statement LLC and refund proof without a transaction number.
+
Show legal entity and statement descriptor before payment. Refund proof includes amount, order, processor reference, destination, and settlement window.
+
+
+
Post-payment state
+
R-Phase company replies admit volume, fulfillment, support, and email-deliverability failures, then route buyers to Discord.
+
Bookmarkable mobile order timeline. Email and community chat are notifications, never the order database.
One owned hub, one primary acquisition channel, email as source of truth. Add a channel only with an owner and output standard.
+
+
+
Whole-funnel intent
+
Ethos pairs an RUO disclaimer with protocol-sharing community copy. Evolve reviews and replies pair reported human use with repeated RUO language.
+
Store, creators, reviews, email, support, community, and search snippets are one evidence system. A footer cannot contradict the experience.
+
+
+
Source identity
+
Current supplier-map methodology warns that listed addresses may be offices. This sweep found no new verified retail-vial-to-exact-synthesis-plant bridge.
+
Manufacturer, US based, GMP, and FDA registered remain separate claims. Supplier identity stays unknown until exact-site and lot linkage closes it.
+
+
+
+
+
Retention rule: prove natural same-SKU reorder before adding subscriptions. Reminders and tight bundles come before recurring-order complexity.
+
+
+
+
+
+ The grown-up systems worth stealingThe best Noli analog is a combination, not one competitor.
+
+
+
+ Eucalyptus
One sharp wedge on top of one shared operating platform.
+ Happy V
Female-first founder story multiplied through disciplined creative testing.
+ Evvy
Turn technical evidence into an interface a customer can understand.
+ Hims & Hers
Own more control, but keep supplier, facility, lot, and claim proof separate.
+ AIOS
Use a shared creative-learning system with mandatory human claim review.
+ Yazen
Treat the 90-day customer lifecycle as part of the product.
+
+
Noli's best transfer is Eucalyptus's wedge, Happy V's distribution, Evvy's proof interface, and Hims's control map. The storefront model alone is the weakest analog.
The strongest launch hypothesis is women roughly 38 to 58 who already understand the category, have plateaued or lapsed, and care about body composition, strength, hair, skin, energy, shape, privacy, and identity. The direct Reta buyer sex split is unknown.
The evidence is directional, not unanimous. A 2025 national survey found women 30 to 49 more than twice as likely as male peers to report GLP-1 use, and women 50 to 64 had the highest reported use at 20%. A May 2026 PwC and Numerator view says adoption is now nearly equal by sex. That makes female-first a differentiated brand thesis to test, not a market fact to assume.
+
+
+
+
Acquisition front
+
Female-leading story and creators.
+
Homepage, editorial, creator selection, and customer stories should speak to the primary cohort's identity and frustration without making claims the operating lane cannot support.
+
+
+
Commerce core
+
Technical, inspectable proof.
+
The product, lot, evidence, shipping, and policy experience stays precise and gender-neutral so high-intent male and technical buyers are not pushed away.
+
+
+
Architecture
+
Neutral Noli master brand.
+
Do not create a male sibling at launch. After 300 to 500 customers, use cohort economics to deepen the female front or justify a separate male expression.
+
+
+
+
+
+ The customer is buying lower uncertaintyAcross 44 coded customer and community sources, service and proof outrank glossy branding.
+
+
The first order is a risk test. "Label created" is not shipped. A good recovery can become the retention event.
+
+
+
+
+
+ How to prove the female-first thesisDo not settle a positioning debate with taste. Settle it with matched cohort economics.
+
+
+
After the five-creator truth cohort passes, run a matched 25-creator test: female-leading narrative versus technical and general narrative. Hold the offer, price, creator quality, attribution window, landing friction, and release timing as constant as possible.
+
+
+
Judge demand
+
+
Landing conversion
+
New-customer AOV
+
Settled CM2
+
Creator activation and content yield
+
Customer referral rate
+
+
+
+
Judge quality
+
+
30, 60, and 90-day repeat
+
Support contacts per order
+
Refund and reship behavior
+
Claim violations
+
Contribution after reversals and payouts
+
+
+
+
+
+
+
+
+
+
+
05 / Growth
+
The fastest safe scale order.
+
+
+
OVO Talent is the unfair distribution advantage. Use it as a controlled release system, not a blast list. Warm creator demand comes first, lifecycle starts on day one, and high-intent search begins only after clean delivery and settled economics.
+
+
+
+
+
1. ClearApprove the lane, one eligible hero offer, underwriting, insurance, claims, fulfillment, and lot release. Retatrutide is a monitored future option, not the present launch SKU.
+
2. ProveFive opt-in creators, 50 to 75 delivered orders, one claims library, one landing path, and one canonical ledger.
+
3. RepeatRun a second cohort and prove settled CM2, reorder, lifecycle, service, and creator payouts without Alex as the daily operating system.
+
4. Add one leverMore creators OR high-intent search OR one adjacent SKU. Never all three.
+
+
+
+
+ What the full growth audit actually provesThere is demand and repeat behavior. There is no trustworthy public peptide CAC, cohort LTV, repeat-rate, or CM2 benchmark.
+
+
+
+ Warm creators are Noli's edge
Current founders publicly struggle to recruit affiliates through cold outreach. OVO already has trusted relationships.
+ Provider access is rented
One operator moved from TikTok removals to Klaviyo disablement and lost signups before recruiting affiliates at 30%.
+ Attribution overlaps
Google, a creator, and email can all claim the same order. Dashboard totals cannot be added.
+ Public ROAS is not a benchmark
Selected agency claims range from 2.2x to 8.5x without settled cash, refunds, reserves, or CM2.
+
+
Until Noli produces its own settled cohort data, planning ROAS is zero and projected LTV gets zero credit.
Five creators who explicitly opt in to the exact lane and content rules.
+
One memorable code plus link, 30 to 90-day attribution, and monthly payout after reversals.
+
Honest seeding with no posting obligation. Deepen relationships only where authentic pull appears.
+
Assign each creator one job: awareness, trust, conversion, or community research.
+
Pay against settled contribution and compliant content, not gross baskets.
+
+
+
+
Rollout capacity gates
+
+
5: manual truth cohort.
+
25: matched positioning test after the first cohort passes.
+
50: only when support, payouts, inventory, and processing work without Alex.
+
250: available network, not launch volume. Release only after the company can absorb success.
+
+
+
+
Never stack a large buyer discount, large creator commission, and paid acquisition on one order. Transcend is the cautionary pattern: creator demand can outrun staffing, support, partner capacity, and inventory.
+
+
+
Public benchmark
Creator economics
Buyer economics
Noli lesson
+
+
Offline Peptides
20% first order, 10% later orders, 30-day initial cookie
Current site also uses referral and first-order incentives
Clear and simple, but lifetime payouts still need cohort margin controls.
+
APEX Peptides
10% sale, 15% subscription referral
10% referral discount and 10% subscribe-and-save can stack
Good plumbing. Dangerous leakage if every incentive lands on one order.
+
Noli test
For a cleared nonclinical offer, test 15% to 20% only after counsel and unit-economics review
Keep any buyer incentive small and explicit
Pay after settlement and reversals. Do not compensate clinical prescriptions, labs, or referrals without specialist clearance.
+
+
+
+
+ What the current agency cases can and cannot teachUseful mechanics exist, but every public result is selected and attribution-heavy.
+
+
+
+
+
Source
Claimed result
What to use
What is missing
+
+
Budai
$426K attributed revenue on $194K Google spend, plus email attribution; later podcast says roughly $600K monthly.
High-intent search, small budget steps, lifecycle, and operations before volume.
Anonymous client, overlapping attribution, settled cash, refunds, reserves, and CM2.
+
Spring Media
$2.6M store month and email attribution rising from $1.2M to $2.3M.
Lifecycle deserves early attention.
No holdout, no March store total, no attribution window, no contribution.
+
AdPistols
8.5x reported ROAS.
Evidence that agencies can display extreme platform results.
Bank settlement, new-customer isolation, return cost, policy durability, and CM2.
+
Orange Trail
$1.57M on $350K ad spend.
Failure evidence only.
The case promotes disguise patterns that official policy prohibits. Do not copy.
+
+
+
+
Transferable: high-intent search after proof, clean product feeds, small budget steps, one variable at a time, and five to seven portable lifecycle flows.
+
Decision rule: judge one canonical order ledger. Never add Google, creator, and email-attributed revenue together.
A $3 to $4 vial can create spectacular product markup. The business is valued on normalized owner earnings and durability after discounts, creators, tests, failures, fulfillment, processing, reserves, refunds, support, inventory, payroll, and legal cost.
+
+
+
+
Planning shell only, not a forecast. Replace every input with signed quotes and actual cohort data before investing. Continue only when two cohorts clear 30% settled CM2, the 35% target remains credible after incremental fixed cost, and Noli beats the best alternative use of the same OVO creator and operator capacity after an explicit health-category risk premium.
+
+
+
+
+
Order waterfall
Base assumption
What it includes
+
+
+
Net AOV
$150.00
After customer discounts
+
Product, packaging, release
-$30.00
20% modeled COGS including allocated testing
+
Fulfillment
-$12.00
Pick, pack, materials, and shipping allowance
+
Processing
-$9.75
6.5% modeled until written terms exist
+
Refund and recovery provision
-$6.00
4% for refunds, reships, and disputes
+
Creator or acquisition
-$33.00
22% blended demand cost
+
Support and technology
-$4.00
Variable operating allowance
+
CM2
$55.25
36.8% before fixed overhead and tax
+
+
+
+
+
+
+
+
Case
Net AOV
CM2/order
CM2 margin
Meaning
+
+
+
Bear
$110
-$1.10
-1.0%
Discount, demand cost, processing, and recovery erase the vial markup.
+
Base
$150
$55.25
36.8%
Attractive if service, quality, and repeat behavior remain clean.
+
Bull
$200
$125.50
62.8%
Possible with high AOV, low demand cost, and strong operational control.
+
+
+
+
+
+
+
+
Monthly orders
Base CM2
Modeled cash buffer
Primary constraint
+
+
+
50
$2,763
$50,550
Truth, payment acceptance, first-lot quality, and support
+
500
$27,625
$205,500
Inventory, reserves, support coverage, and repeat
+
5,000
$276,250
$1,355,000
Working capital, redundancy, governance, and concentration
+
+
+
+
+
+
+ The $15 million mathA large value is plausible at the claimed scale. The reviewed public evidence still does not prove a completed peptide-company transaction.
+
+
+
+ $18.25M
$50,000 a day annualized
+ 0.82x
$15 million as a multiple of that revenue
+ $3.76M
Owner earnings needed at a 3.99x multiple
+ $4.57M
Owner earnings needed at a 3.28x multiple
+
+
That is roughly 20.6% to 25.1% normalized owner earnings on $18.25 million revenue. If owner earnings were truly 30%, a $15 million value would be about 2.74x earnings. The math can work. The documents still matter.
+
+
The exact 2019 BlackHatWorld post found does not show BlackHatWorld offering $15 million for a peptide company. It discusses unrelated hard-money deal flow while separately mentioning peptide processing. That does not disprove a private offer Braden says he received.
+
WebsiteClosers marked the Direct Peptides listing sold, but the buyer, closing date, consideration, and whether the $14.5 million ask was paid remain undisclosed.
+
A live July 2026 Flippa listing asks $100 million, excluding $5 million inventory, for a one-year-old four-brand RUO portfolio. It claims $21.3 million trailing revenue, 78% profit margin, 41% repeat, and $1.376 million monthly profit. The title says "$44M/yr," which does not equal its stated trailing revenue. It is a high-signal listing, not transaction proof.
+
+
+
+
+ What the best current operator memo says about real marginThe $3 to $4 vial can be true while 80% company profit is false.
+
+
+
+
+
Direct Peptides memo claim
Reproducible arithmetic
Decision
+
+
$3.6M projected earnings on more than $12M revenue
At most about 30% projected earnings margin
The earnings definition is unknown. This is not 80% company profit.
+
250 orders a day at about $220 AOV
$55K a day and $20.1M annualized
Does not reconcile to $12M unless one figure is a peak, partial period, or stale.
+
$30K to $40K of API purchased weekly
$1.56M to $2.08M annualized
Already 13% to 17% of $12M before fill, tests, freight, packaging, waste, and support.
+
Two months of raw API stock
Roughly $260K to $347K at the claimed purchase run rate
Only the raw-API working-capital proxy, not all inventory cash.
+
More than $1,500 LTV at about $220 AOV
More than 6.8 AOV equivalents
Far deeper than current founder-profile ratios of about 1.9 to 2.25 orders per stated customer. Demand the cohort file.
+
+
+
+
The operator was selling an ERP, customer file, lifecycle system, fulfillment, payment relationships, inventory process, ad infrastructure, and SOP library. That is the valuable company. The vial is one input.
Model 4.5% bull, 6.5% base, and 10% bear processing until a real term sheet replaces the model.
+
Plan for 5% to 15% rolling reserve held 90 to 180 days.
+
A 10% reserve on a $170 settled order traps $17 even if the order is profitable.
+
Reserve is not automatically an expense. It is unavailable cash and can become loss if disputes or termination consume it.
+
Current anonymous operators report a $10,000 reserve at no more than $10,000 monthly volume, 9% or higher fees around $70,000 monthly, and a 30% hold. These are stress signals, not quotes.
The fastest growth plan is operational: written payment acceptance, real chain of custody, a 3PL that can block unreleased inventory, one accountable support queue, and owned customer data.
+
+
+
+
The operating stack is four linked systems: supply, quality, payment, and service. Any one of them can turn strong demand into refunds, reserves, chargebacks, and lost trust.
+
+
+
+ Sourcing: only after the exact SKU clearsNo sellable inventory or customer preorders before every gate passes.
+
+
+
+
1 / Domestic stock
Best pilot speed.
Higher unit cost, easier sampling and inspection. Use one small lot for the truth cohort.
+
2 / Turnkey white label
Fast storefront, weak moat.
Easy entry, but margin and source identity can disappear after discounts, creator payouts, and service.
+
3 / Direct overseas
Lowest quote, highest uncertainty.
Requires source qualification, chain of custody, import review, testing, fill, packaging, and working capital.
+
4 / Qualified manufacture
Best long-term control.
Slower and more capital intensive, but strongest path to documented quality and true redundancy.
+
+
+
For the legally cleared SKU only, buy one small domestic lot that Noli can independently sample.
+
Map manufacturer, broker, filler, labeler, shipper, and warehouse. Two brokers using the same upstream stock are not redundancy.
+
Qualify two upstream sources in parallel.
+
Move volume only after two clean lots, repeat demand, and reconciled settlement.
+
Never claim domestic manufacture merely because inventory ships from a US warehouse.
+
+
No sellable inventory or customer preorders before written processor acceptance, insurance, release-panel approval, 3PL quarantine lock, and recall rights.
+
+
+
+
+ Quality: the lot passport is the productA supplier COA or generic "99% pure" badge is not chain of custody.
+
+
+
+
+
Required lot chain
+
+
Receive and quarantine inventory by lot.
+
Record upstream source and custody transfer.
+
Pull and retain a representative sample.
+
Send the sample to an independent lab.
+
Check identity, net content, purity, and the applicable safety panel.
+
Document release, rejection, retest, and failed-lot disposition.
+
Trace every shipment to the released lot.
+
+
+
+
Public lot passport
+
+
Product and exact lot
+
Date sampled, sent, and tested
+
Sample owner and acquisition method
+
Lab name and original verification link
+
Identity, content, purity, and applicable safety results
+
Current, retired, failed, or recalled status
+
Release owner and retest policy
+
+
+
+
A COA describes one submitted sample. It does not by itself prove legality, sterility, clinical safety, every vial, or the rest of the inventory.
+
+
+
+
+
+ Payments: approval means the acquiring bank approved the exact businessCheckout, gateway, merchant account, and settlement bank are different layers.
+
+
+
There is no best peptide processor. The decision object is the acquiring-bank approval and contract, not the ISO, gateway, or account login. No signed approval means no checkout; no independently underwritten backup means no scale.
+
+
+
+
+ Fulfillment and service: recovery is retentionStop founder packing after the truth cohort.
+
+
+
+
3PL requirements
+
+
Scan lot on receipt and shipment.
+
Block unreleased and quarantined inventory.
+
Reconcile units by lot and status.
+
Produce a recall report by lot and customer.
+
Separate order-to-carrier acceptance from carrier-to-delivery.
+
Plan $9 to $16 per order until actual quotes replace the model.
+
+
+
+
Support SLA
+
+
First human response within one business day.
+
Shipping issue triage within one business day.
+
Reship or refund decision within two business days.
+
Immediate escalation for a lot or quality complaint.
+
Support never improvises medical, dosing, or product-use guidance.
+
+
+
+
+
+
+
+
+
+
08 / Supply truth
+
Who actually makes it?
+
+
+
The honest answer is that young retail founders gatekeep the plant. The strongest partial link is AminoForge to Aspire Labs: three 2026 Horizon retatrutide records at 10 mg, 15 mg, and 30 mg name Aspire Labs LLC as the US compounder. This is repeated entity-level labeling, not proof of the physical facility, executed batch work, API plant, or custody to sold inventory.
We found names, not a verified chain. An FDA DMF, a COA manufacturer field, a US return address, or a founder saying "our factory" does not prove who synthesized the API or filled the vial.
+
+
+ Retail brandWhite labelBroker or exporterAPI plantFill and lyoIndependent lab3PLCustomer order
+
+
+
+
+ What named founders actually discloseEvery public chain stops before the exact synthesis plant.
+
+
+
+
+
Retail operator
Publicly disclosed chain
Still gatekept
Conclusion
+
+
Peptide Plugs
Two unnamed China sources; Freedom Diagnostics testing.
Legal suppliers, synthesis site, fill site, exact lot genealogy.
Testing layer visible. Factory unknown.
+
Kimera Chems
Hong Kong synthesis claimed; domestic US fill-finish claimed; named testing labs.
Legal Hong Kong and US facilities and lot path.
Role map claimed. Plants unknown.
+
Blank Peptides
One China and one India API source claimed; equity in a domestic lab.
Source names, facility scope, vial-to-COA path.
"US-made" cannot be verified from the public record.
+
Crush Research
China multi-source reseller; Los Angeles 3PL.
Actual plants, common-source overlap, fill site.
Openly a reseller, not a disclosed manufacturer.
+
Direct Peptides
Multiple China API sources, Missouri lyophilization and fill, Horizon testing claimed.
Every exact facility and whether testing was arm's length.
The backend is visible. The sensitive counterparties are not.
+
+
+
+
+
+
+
+
+ The eleven official Reta DMF holdersA formal candidate population, not an approval list, retail-brand map, or purchase recommendation.
+
+
+
Document leads, not suppliers: Hybio, Sinopep-Allsino, Chengdu Shengnuo, and Fujian Genohope. None is qualified. No reviewed evidence ties any named retailer or current retail lot to one of these 11 holders. Noli qualifies only an exact legal entity and physical site with current inspection evidence, audit rights, a quality agreement, live batch records, a disclosed fill and lyophilization chain, quantity reconciliation, and blind finished-unit release.
+
+
+
DMF
Holder
Received
Public screen
Current posture
+
+
41577
Sichuan Jisheng
Mar 19, 2025
Formal API filing and technical work. Site and current import posture need resolution.
Stop pending proof
+
42392
Fujian Genohope
Aug 28, 2025
API plus claimed injectable footprint. Inspection and exact line evidence need verification.
Diligence lead
+
42856
Nanjing Cellnuo
Oct 24, 2025
Catalog and peptide capability claims. Thin independent site evidence.
More proof
+
42912
Hangzhou Thinheal
Dec 30, 2025
API and CDMO claims. Marketing calls a DMF an approval, which FDA says it is not.
Caution
+
43298
Zhejiang Peptites
Jan 29, 2026
Identifiable plant and capacity claims. Current line and inspection evidence required.
Caution
+
43330
Guizhou Utide
Dec 24, 2025
API plant claims plus a separate Hong Kong commercial arm.
Map roles
+
43427
EL-Peptido Shanghai
Dec 29, 2025
DMF and two-site claims. Exact production and fill sites remain unclear.
More proof
+
43577
Hybio
Feb 10, 2026
DMF expressly says non-sterile drug substance. Public API and finished-dose facility footprint is the strongest visible integration signal.
First diligence
+
43845
Chengdu Shengnuo
Mar 30, 2026
Established API company and Reta catalog. Sterile fill and exact current site status remain separate.
Diligence lead
+
43846
Harbin Jixianglong
Mar 14, 2026
FDA found outside GLP-1 purchasing, relabeling, new batch numbers, changed dates, and a false manufacturer identity.
Reject
+
43859
Sinopep-Allsino
Mar 19, 2026
Established public peptide CDMO identity. Exact Reta building, inspection status, and fill path still require proof.
Diligence lead
+
+
+
+
FDA says a DMF is voluntary and neither approved nor disapproved. A holder may not be the physical synthesis site, and a non-sterile API filing says nothing by itself about aseptic finished-vial capability.
+
+
+
+
+ The strongest public brand-to-upstream linksThese reveal a commercial or certificate relationship. Most still do not reveal physical synthesis.
+
+
+
+
+
Retail or downstream brand
Named upstream entity
What is actually established
What remains unknown
+
+
AminoForge
Aspire Labs LLC
Three 2026 Horizon Reta records at 10 mg, 15 mg, and 30 mg repeatedly name Aspire as the US compounder. This is the strongest entity-level partial link found.
Exact Aspire batch facility, executed fill records, raw API supplier and plant, and full custody to sold inventory.
+
Hero X
Cocer Peptides / Chongqing Rinu Trading
Hero X displays a Cocer lab report and calls Cocer its manufacturing partner.
The trace resolves to a trading company profile, not a verified synthesis or fill plant.
+
DropShip Peptide
Qingdao Sigma Chemical
The turnkey offer publicly ties itself to QSC.
QSC also discloses partner production. The physical peptide plant is not proven.
+
WUMO
Suzhou Xilin Technology
A hosted Reta report names Xilin as manufacturer.
Legal pharma site, synthesis role, independent assay, and sterile fill remain unverified.
+
Kerui-labeled stock
Kerui Peptide HongKong
Public records repeatedly use Kerui as a source or manufacturer label. TitrateLab's aggregate includes underfill and a zero-content submission.
Neither the label nor the corpus identifies the physical plant.
+
Retatrutide UK
Body Pharm
A verified lab task and seller pages support a reseller or stock relationship.
Whether Body Pharm synthesized, filled, or only supplied the tested presentation.
+
Astralabs, Omni, Raccoon
Uther Peptide
The sellers display certificate records issued to Uther.
Whether current shipped units came from the exact tested stock.
+
Peptidexofficial
InnoPeptide
A public certificate names InnoPeptide as the client.
Whether it is the plant, broker, filler, or sample submitter.
+
RETA UK
EGB
Certificate and batch-prefix evidence supports a stock relationship.
EGB legal entity, plant, and custody chain.
+
WG Peptides
HXTNT
The certificate client field names HXTNT.
Legal identity, physical role, and current lot path.
+
Gray-market direct buyers
Shanghai Sigma Audley; Bigreat / Zhengzhou DEPU
Chainalysis links contacts and crypto flows to direct peptide selling.
Public method is not fully reproducible. The alleged precursor-market links make these warnings, not leads.
+
+
+
+
+ Why the word manufacturer cannot be trusted aloneThe Harbin record is the clearest current proof.
+
+
+
+
+
What FDA found
+
+
Harbin bought semaglutide API from outside suppliers not on its approved list.
+
It repacked and relabeled the material and created fresh batch numbers.
+
It changed manufacturing and retest dates without adequate support.
+
It named itself as manufacturer rather than the firms that made the API.
+
FDA also cited process, cleaning, analytical, traceability, and water-control failures.
+
A separate GenoGenix inspection record describes received and relabeled finished peptides whose COAs and receiving records did not identify the upstream manufacturer cleanly.
+
+
+
+
The Noli rule
+
+
Never use a label, invoice, DMF, NDC, COA field, or US warehouse as plant proof.
+
Name every legal entity and physical site for API, fill, lyo, label, testing, storage, and shipping.
+
Require the direct contract, audit, batch record, shipping chain, and quantity reconciliation.
+
Map API lot to fill lot to released finished lot to every customer order.
+
Treat any unexplained new identifier or changed date as a lot and supplier stop.
Supplier COA or test artifact naming a manufacturer or client
One submitted sample
+
3
DMF, registration, patent, catalog, or facility claim
Candidate identity
+
4
Direct contract, site identity, audit, inspection record, quality agreement, change control
Qualified relationship
+
5
Exact API and fill records, blind retained-sample testing, release decision, customer-order genealogy
Lot-level proof
+
+
+
+
+
What are the exact legal entities and physical sites for seller, exporter, API plant, fill site, lab, labeler, importer, and warehouse?
+
Which step happens in each building, and which steps are subcontracted?
+
Can one live order be reconciled through invoice, shipment, API batch, fill batch, label count, and finished units?
+
What regulator, DMF, FEI, inspection, import-alert, and accreditation records apply to the exact site and role?
+
Will the facility provide raw analytical data, deviations, failures, change history, and release records for the exact lot?
+
Who owns aseptic process, lyophilization, water, endotoxin, sterility, environmental monitoring, and container closure?
+
Who selected the tested sample, and will Noli select blind unopened finished units from the received lot?
+
Are every broker, alternate source, mixed lot, substitution, and shared upstream dependency disclosed in writing?
+
What are the recall, complaint, insurance, indemnity, audit, retained-sample, and termination-data rights?
+
Will Noli or its qualified auditor inspect the real sites and trace a lot under NDA? If not, stop.
+
+
White label can test demand. It cannot create plant truth, source redundancy, or durable margin. The supplier never chooses the only vial that releases a lot.
+
+
+
+
+
+ Independent release and fulfillment shortlistRFP candidates only after the legal lane clears.
+
+
+
+
+
Role
Candidate
Public anchor
Limit
+
+
Peptide chemistry
Freedom Diagnostics
$200 identity and purity; $25 net content add-on; $175 endotoxin on the March 2026 form.
Confirm method and accreditation scope. Public form does not establish a complete release panel.
+
Expanded panel
Chromate
Lists Reta assay, sterility, endotoxin, and additional-vial variance services.
Confirm exact identity method, raw data, scope, and current quote.
+
Blind confirmation
Janoshik
Public blind GLP-1 analysis and direct report verification.
Confirm logistics, method scope, custody, and the full safety panel.
+
Peptide-specific 3PL RFP
Rapid Fulfillment
Claims lot handling, temperature-aware work, integrations, and a Pacoima site.
Audit QA lock, maps, calibration, recall, insurance, subcontractors, and references.
+
Low-volume portable stack
Qualified self-fulfillment plus ShipStation
Lowest dependency for a small truth cohort.
Still requires a qualified facility, status locks, training, security, storage, recall, and no returned-stock resale.
This is a descriptive field map, not an evasion manual. Operators repeatedly trade durability for a short revenue window. Noli should learn what pressure each tactic reveals, then build the compliant asset that survives.
Private distribution works. Manufactured trust can create demand. Loopholes rent time. The assets that survive are canonical identity, exact-lot proof, owned consent and data, real creator relationships, dependable remedy, repeat purchase, and written counterparty acceptance.
+
+
+ $100M+
2026 gray-market on-chain annual run rate estimated by Chainalysis
+ 6 quarters
Consecutive on-chain growth in the Chainalysis model
+ 85
Current founder, seller, customer, and forum evidence rows graded across two sweeps
+ 30 / 326
UK sellers passing one narrow own-name certificate check
+
+
+
+
+
+
Pressure
Observed gray behavior
Why it seems to work
Durable Noli lesson
+
+
+
1. Payments
Merchant masking, account rotation, intermediaries, alternate entities, and miscoding.
Cards convert better and scrutiny may arrive after volume.
Underwrite the exact business in writing. Track settled bank cash and keep an approved backup.
+
2. Ads
Review pages, bridges, coded names, rented accounts, and account rotation.
Can create a short acquisition window.
Own creators, email, brand search, and high-intent demand. Rented access is not an asset.
Buyers trust peers and AI systems ingest forum language.
Use disclosed sponsorship, real participation, verifiable proof, and earned references.
+
4. RUO framing
Disclaimers, age gates, questionnaires, account walls, and research-subject language.
Creates a record of stated research purpose.
A real gate verifies and rejects. It cannot outweigh the rest of a contradictory funnel.
+
5. Product codes
Abbreviations, receptor codes, house names, and hidden catalogs.
Reduces public visibility while informed buyers decode it.
Codes harm clarity, analytics, test matching, and support. They do not create a safe harbor.
+
6. Creator separation
Sterile store copy paired with outcome-led creators, consultations, or affiliate pages.
Trusted people explain what the merchant does not.
Treat store, creator, email, support, and consultation as one evidence system.
+
7. Sourcing
Private brokers, white label, dropshipping, and undisclosed upstream overlap.
Low quotes and fast storefront launch.
Map the full chain. Two resellers of the same inventory are not redundancy.
+
8. COAs
Supplier reports, selective testing, hot samples, generic badges, and reused reports.
A professional PDF reduces buyer anxiety.
Build lot custody, independent sampling, original lab verification, and release records.
+
9. Imports and 3PL
Domestic relabeling, split shipments, informal warehouses, and reship guarantees.
US shipping feels safer and faster.
Domestic warehouse is not domestic manufacture or lawful entry. Plan refund and cash exposure.
+
10. Portability
Alternate email, hosting, domains, and exported lists.
Providers can terminate abruptly.
Own DNS, consent, order history, suppression data, backups, and lifecycle logic.
+
11. Dark social
WhatsApp, Telegram, Discord, DMs, and private vendor lists.
Private referrals compound outside public search.
Treat it as a channel and an impersonation risk. Attribute it and preserve one canonical identity.
+
12. Rebrands
Successor domains, mirrors, new entities, and copied storefronts.
Demand and operations can survive a domain loss.
Portable brand relationships matter. Concealed continuity erases recourse and trust.
+
13. Telehealth layers
Marketing, clinic, provider, pharmacy, and referral entities presented as separate.
Can be a legitimate governed health model.
Separation works only when clinical judgment, licensing, compensation, data, and claims are truly independent.
+
14. Revenue stories
Sales screens, platform ROAS, vial markup, and large asking prices presented as value.
Persuasive for recruiting, agencies, and sellers.
Reconcile order to refund, reserve, settlement, bank cash, owner earnings, and buyer terms.
+
15. Remedy and credibility
Private reships, hidden disputes, sponsor claims, affiliate rankings, and agency case studies.
Quiet recovery protects public reputation.
Publish clear remedy rules and put the speaker's financial incentive beside every claim.
+
+
+
+
+
+
+ Representative forum evidence, linked directlyThe artifact proves that people discuss or sell the tactic. It does not prove the tactic works, is lawful, or is durable.
+
+
Chainalysis connects two China-based chemical businesses to direct peptide sales and reports precursor-market exposure.
Direct supply identity can be found through contacts and payment flows. It can also reveal disqualifying counterparty risk.
B
+
+
+
+
The gray market teaches one valuable thing: private trust, portable relationships, fast remedy, and working cash can overpower a basic storefront. It does not teach that masking, account rotation, coded catalogs, or opaque sourcing become durable at scale.
+
+
+
+
+
+ Current regulatory reality, July 26, 2026The market moved this week. The vote is a signal, not permission.
+
+
+
+
On July 23 and 24, 2026, the FDA Pharmacy Compounding Advisory Committee recommended six of seven reviewed peptide families for possible Section 503A listing: BPC-157, KPV, TB-500, MOTS-c, Semax, and Epitalon. Emideltide was not recommended.
+
The committee recommendation is nonbinding. It is not final FDA action, FDA approval, or blanket permission to compound or market the substances.
+
Retatrutide was not part of that review. FDA currently says retatrutide cannot be used in compounding under federal law and has not been found safe and effective for any condition.
+
The March 31, 2026 Gram Peptides letter says RUO text and coded names did not outweigh the site's full-funnel evidence of human intended use.
+
On March 3, 2026, FDA announced warnings to 30 telehealth companies over false or misleading compounded GLP-1 marketing.
+
Telehealth is a separately governed clinical model, not a questionnaire added to ecommerce.
The founder-media workbook covers 15 sources, 169 timestamped notes, 36 claim checks, and 12 current-status updates. These eight are the fastest useful queue. Each lesson is summarized here so the spreadsheet is optional.
+
+
+
+
+
+
July 21, 2026Agency / C15:15 total
+
1. Budai Ecom Show #325
+
Listen for: Google-first demand, lifecycle, payment instability, and the warning that a near-term window is not a durable channel. Revenue remains agency-supplied.
Listen for: six-week launch order, lot labels, searchable COAs, quantity ladders, test-before-sale, community, and inventory. Current remedy policy is stricter than the early interview promise.
Listen for: identity brand, female journey architecture, creator cohorts, no-obligation seeding, long relationship arcs, and building trust before performance spend.
Listen for: women 35 to 55, female-front and shared-backend precedent, tone testing, and patient journey design. Clinical claims do not transfer into an RUO model.
Listen for: payment failure, supplier loss, oversell recovery, founder trust, support burden, and attribution. The useful story is recovery, not a clean scale narrative.
Listen for: soft launch, no-obligation seeding, turning organic advocates into long-term partners, and customer-as-creator. Transfer the relationship mechanics, not category economics.
Listen for: creator demand outrunning staffing, service, inventory, and partner capacity. The founder interview no longer describes current control after the 2026 ownership change.
The buyer-facing asset stack was ERP, customers, lifecycle, payments, fulfillment, inventory, ads, and SOPs. The math and transaction terms remain unverified.
Thirty days proves launch mechanics. Sixty and ninety days reveal repeat, reserves, creator profitability, founder dependence, and whether the positioning thesis is economically real.
+
+
+
+
+
+
Days 1 to 14
+
Clear one offer first.
+
+
Clear one lane, audience, offer, and claims system in writing.
+
Obtain exact acquiring-bank, insurance, supplier, and 3PL approval.
+
Only then receive, test, release, and publish one lot.
+
Test checkout, fulfillment, support, and lifecycle.
+
Recruit five creators only after approval.
+
+
+
+
Days 15 to 30
+
Cap the truth cohort.
+
+
Release creators one at a time.
+
Stop at 50 to 75 delivered orders.
+
Solve every support issue manually.
+
Reconcile order to settlement to bank cash.
+
Pay creators accurately after reversals.
+
+
+
+
Days 31 to 60
+
Prove repeatability.
+
+
Run the same cohort again.
+
Improve from objections and tickets.
+
Test one quantity ladder.
+
Measure actual second-order behavior.
+
Add support coverage and confirm supply.
+
+
+
+
Days 61 to 90
+
Add exactly one lever.
+
+
High-intent Google, or
+
Ten more creators, or
+
One adjacent SKU.
+
Never add all three together.
+
Run the matched positioning read.
+
+
+
+
+
+
+ The stage gatesDo not project LTV. Do not count money that has not settled.
+
+
+
+
+
Moment
Must be true
Do next
+
+
Before first order
One exact offer and audience, released lot, written payment terms, tested checkout and 3PL, support owner, remedy rules, portable lifecycle, five creator agreements, daily scorecard
Release one creator
+
50 to 75 delivered
Orders reconcile to bank cash, CM2 floor 30% and target 35%, on-time at least 95%, recovery provision at most 5%, disputes below 0.30%, full lot traceability, zero unresolved critical quality or creator violations
Repeat the cohort
+
60 and 90 days
Real second-order contribution, creator profit after reversals, measured female versus technical economics, support load understood, reserve and inventory funding visible, no projected-LTV credit
Add one lever
+
500 monthly
Three clean months, demand cost at most 25%, concentration falling, support and payouts work without Alex, approved backup payment path, qualified second upstream source
Consider one adjacent SKU
+
+
+
+
+
+
+
+
+ Pause and kill conditionsGrowth does not cure a broken lane, lot, ledger, or support system.
+
+
+
+
Pause immediately
+
+
No written acceptance for the exact entity, catalog, claims, and volume.
+
Settlements do not reconcile to the order ledger and bank.
+
The lot fails, mismatches, or cannot be traced.
+
The 3PL cannot block unreleased inventory.
+
Support backlog breaks the one-day response promise.
+
Refunds, reships, disputes, or reserves erase contribution.
+
+
+
+
Do not scale
+
+
Creators need unapproved or contradictory claims to convert.
+
Platform ROAS is positive but settled CM2 is negative.
+
Two cohorts miss the 30% hard floor.
+
Repeat exists only in projections.
+
Alex remains the daily operating system.
+
Core OVO delivery deteriorates because Noli consumes the team.
+
+
+
+
Kill the current offer, not merely pause it, if its lane cannot clear before commerce; a critical quality failure lacks documented disposition; two cohorts miss 30% settled CM2; 90-day reorder produces no positive contribution; or Alex remains the daily operating system after cohort two. Preserve Noli only by changing the lane or offer and rerunning every pre-order gate.
+
+
+
+
+ The only weekly scorecardIf a metric does not change a decision, do not add it.
+
+
+
+
Authorized revenue, captured revenue, settled revenue, reserve, and bank cash
+
CM2 by order, SKU, creator, and cohort
+
New versus returning, AOV, and 30, 60, and 90-day reorder
+
Refund, reship, dispute, and support-contact rate
+
On-time shipment, pick accuracy, tracking latency, and inventory days
+
Lot complaints, release status, and release lead time
+
Creator activation, content output, landing conversion, violations, and payout
+
Incremental CM2 per operator hour and Alex hour
+
+
+
+
+
+
+
+
+
12 / Evidence
+
Everything important is above.
+
+
+
You do not need to download anything to understand the plan. The raw research remains here only for source-level audit, exact quotes, formulas, and the full company-by-company record.
+
+
+
+
+ 290-row legacy source matrix
+ 130-entry payment and supply ledger
+ 56-source founder teardown
+ 85 current forum and operator evidence rows
+ 570-domain crawl across 1,855 public pages
+ 48 high-confidence storefront and checkout profiles
+ 783 payment-code rows across 149 domains
+ 112 storefront UIs screenshot-reviewed, 95 scored
+ 13,555 crawl evidence records
+ 42-source growth audit
+ 11 official Reta DMF holders
+ 326 UK sellers screened
+ 12 ranked operators
+ 30-company landscape
+ 15 media sources
+ 169 timestamped notes
+ Current through July 27, 2026
+
+
+
Evidence rule: primary policy and inspectable facts outrank operator claims. Named founders outrank anonymous screenshots. Repetition proves a market pressure exists, not that a tactic is lawful, durable, or profitable.
+
+
+
+ The highest-value live evidenceStart here when a claim changes a decision.
+
+
This is internal commercial intelligence, not legal, regulatory, medical, tax, quality, or underwriting advice. Time-sensitive claims are dated. Forum and marketplace claims are labeled as claims, not verified performance.