From 64ae21fa30df2e073a6d1aa72900fd76ad4970e0 Mon Sep 17 00:00:00 2001 From: Jin Choi Date: Wed, 27 May 2026 23:50:18 -0700 Subject: [PATCH 1/3] chore: gitignore .codex/ and personal strategy docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - .codex/ — Codex CLI per-developer config (mirrors existing .claude/) - 5 strategy/planning docs (company-plan*, gtm-mastery, option-b-ingestion-adapter-plan) — matches the anthropic-briefing precedent for personal/strategic docs Co-Authored-By: Claude Opus 4.7 (1M context) --- .gitignore | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitignore b/.gitignore index e67c7776fc..c344a0a61f 100644 --- a/.gitignore +++ b/.gitignore @@ -10,8 +10,16 @@ knowledge-base/db/ docs/anthropic-briefing.* docs/t1-translation-product.md docs/photobooth-analysis.md +# Personal strategy/planning docs — local-only, same model as anthropic-briefing +docs/company-plan.md +docs/company-plan-v3.md +docs/company-plan-v4.md +docs/gtm-mastery.md +docs/option-b-ingestion-adapter-plan.md # Claude Code — entire directory is local-only; templates in .claude.example/ .claude/ +# Codex CLI — same model as .claude/, per-developer tooling config +.codex/ # Sources — all ingested content is local only, not distributed knowledge-base/sources/ *.pdf From 3fa3f91ab3ca14f47bdaf571a133aeba001dad4b Mon Sep 17 00:00:00 2001 From: Jin Choi Date: Wed, 27 May 2026 23:50:30 -0700 Subject: [PATCH 2/3] feat(schemas): Investment Source schema family (Phase 1.3b) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A parallel discriminated union to scripts/schemas/frontmatter.ts that handles investment-firm source types — IC memos, post-mortems, sector theses, quarterly letters, meeting notes, slack threads. Run side-by- side with the original Zuhn source schemas; tenant configuration determines which schema family applies. - common.ts: shared building blocks (DateField, Confidence, Predictions, PrincipleRef, PersonField, PeopleField) calibrated to real-corpus conventions (case-insensitive enums, YAML-1.1 date coercion, comma- separated person fields) - 6 per-type schemas with passthrough() to preserve firm-specific quirky fields - sources.test.ts: dispatcher tests + the full Meridian demo corpus parsed as fixture (asserts ≥12 corpus files to prevent empty-suite false-positives) The corpus fixtures land in the next commit. Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/schemas/sources/common.ts | 93 ++++++++ scripts/schemas/sources/ic-memo.ts | 45 ++++ scripts/schemas/sources/index.ts | 73 ++++++ scripts/schemas/sources/meeting-note.ts | 52 +++++ scripts/schemas/sources/post-mortem.ts | 46 ++++ scripts/schemas/sources/quarterly-letter.ts | 47 ++++ scripts/schemas/sources/sector-thesis.ts | 42 ++++ scripts/schemas/sources/slack-thread.ts | 35 +++ scripts/schemas/sources/sources.test.ts | 242 ++++++++++++++++++++ 9 files changed, 675 insertions(+) create mode 100644 scripts/schemas/sources/common.ts create mode 100644 scripts/schemas/sources/ic-memo.ts create mode 100644 scripts/schemas/sources/index.ts create mode 100644 scripts/schemas/sources/meeting-note.ts create mode 100644 scripts/schemas/sources/post-mortem.ts create mode 100644 scripts/schemas/sources/quarterly-letter.ts create mode 100644 scripts/schemas/sources/sector-thesis.ts create mode 100644 scripts/schemas/sources/slack-thread.ts create mode 100644 scripts/schemas/sources/sources.test.ts diff --git a/scripts/schemas/sources/common.ts b/scripts/schemas/sources/common.ts new file mode 100644 index 0000000000..33ee6167c0 --- /dev/null +++ b/scripts/schemas/sources/common.ts @@ -0,0 +1,93 @@ +// ─── Shared building blocks for investment-corpus source schemas ───── +// +// These shapes appear across multiple document types in firm corpora +// (IC memos, post-mortems, sector theses, etc). Centralizing them here +// keeps the per-type schemas focused on their unique fields and ensures +// downstream consumers (extractors, audit-deliverable generators) can +// rely on consistent structure. + +import { z } from "zod"; + +// ─── Date coercion ──────────────────────────────────────────────────── +// gray-matter (via js-yaml) parses bare YAML dates like `2023-09-14` as +// JS Date objects. Timestamps with explicit timezones (e.g. `2025-08-12 +// 10:14 PT`) come through as strings. We normalize both to ISO strings +// so downstream string operations (slicing, regex, display) Just Work. + +export const DateField = z.preprocess( + (v) => (v instanceof Date ? v.toISOString() : v), + z.string(), +); + +// ─── Confidence ─────────────────────────────────────────────────────── +// Same scale as core Zuhn Confidence, with case-insensitive parsing for +// human-authored frontmatter where "High" and "high" both occur. + +export const Confidence = z.preprocess( + (v) => (typeof v === "string" ? v.toLowerCase() : v), + z.enum(["pending", "low", "medium", "high", "very_high"]), +); + +// ─── Predictions ────────────────────────────────────────────────────── +// Two shapes appear in real corpora: +// 1. IC memos coin NEW predictions — full inline objects with id, +// claim, confidence, horizon, resolution. +// 2. Post-mortems / slack threads / quarterly letters REFERENCE +// existing predictions — strings, often with verdict markers like +// "PRED-2022Q1-009: claim — FALSIFIED". +// +// PredictionInline captures (1). PredictionRef accepts either form so +// related_predictions can be permissive about how authors write them. +// +// `resolution` is intentionally an open string. Real authors write +// "CONFIRMED EARLY (Q4 2024 datacenter revenue $54B annualized)" — the +// canonical category is in the leading word, but the rest is signal we +// don't want to discard. A downstream classifier maps to the canonical +// resolution category at extract time. + +export const PredictionInline = z + .object({ + id: z.string(), + claim: z.string(), + confidence: Confidence, + horizon: z.string().optional(), + resolution: z.string().optional(), + }) + .passthrough(); + +export const PredictionRef = z.union([z.string(), PredictionInline]); + +// ─── Principles ─────────────────────────────────────────────────────── +// Principles in customer corpora are typically referenced by either an +// internal ID ("PRI-MERIDIAN-2023-001") or descriptive text ("Compute +// scarcity creates a durable infrastructure moat"). Strings are fine — +// the resolution to actual principle records happens at extract time. + +export const PrincipleRef = z.string(); + +// ─── Document references ────────────────────────────────────────────── +// related_documents fields use either filenames ("2025-Q2-pope-podcast- +// summary.md") or relative paths. Either form is acceptable. + +export const DocumentRef = z.string(); + +// ─── Person references ──────────────────────────────────────────────── +// Authors and reviewers can be a single string ("Sarah Chen, CIO") or an +// array. Most fields are arrays, but quarterly-letter "author" is single. +// +// PeopleField accepts both shapes: a comma-separated string is split into +// an array, an array passes through. This matches real corpus conventions +// where humans naturally write `reviewers: A, B, C` rather than YAML +// list syntax. + +export const PersonField = z.string(); + +export const PeopleField = z.preprocess((v) => { + if (typeof v === "string") { + return v + .split(",") + .map((s) => s.trim()) + .filter(Boolean); + } + return v; +}, z.array(z.string())); diff --git a/scripts/schemas/sources/ic-memo.ts b/scripts/schemas/sources/ic-memo.ts new file mode 100644 index 0000000000..97516545a7 --- /dev/null +++ b/scripts/schemas/sources/ic-memo.ts @@ -0,0 +1,45 @@ +// ─── IC Memo Frontmatter ────────────────────────────────────────────── +// +// Investment Committee memos are the primary decision artifact for +// investment firms. They COIN predictions (which post-mortems later +// resolve) and reference parent sector theses. The action field defines +// the lifecycle stage of the position covered by this memo. + +import { z } from "zod"; +import { DateField, PredictionInline, PrincipleRef, PersonField, PeopleField } from "./common.js"; + +export const ICMemoFrontmatter = z + .object({ + type: z.literal("ic-memo"), + firm: z.string(), + + // Position-level identity + position: z.string(), // e.g. "NVDA" + // action is open-string: real corpora include "thesis revision (no + // position change)", "bucket initiation", etc. Canonical categorization + // (initiation / followon / trim / exit / hold-review) is a downstream + // classifier concern, not a validation concern. + action: z.string(), + size: z.string().optional(), // e.g. "$48M (4.0% of AUM)" + + // Authorship & review + ic_date: DateField, + author: PersonField, + reviewers: PeopleField.optional(), + + // Workflow status — open string ("APPROVED (bucket framework); + // position-level approvals to follow"). Leading word carries the + // canonical category; downstream classifier extracts it. + status: z.string(), + + // Cross-references + related_positions: z.array(z.string()).optional(), + related_principles: z.array(PrincipleRef).optional(), + parent_thesis: z.string().optional(), // sector thesis filename + + // Predictions COINED in this memo (inline objects) + predictions: z.array(PredictionInline).optional(), + }) + .passthrough(); + +export type ICMemoData = z.infer; diff --git a/scripts/schemas/sources/index.ts b/scripts/schemas/sources/index.ts new file mode 100644 index 0000000000..c85f3de096 --- /dev/null +++ b/scripts/schemas/sources/index.ts @@ -0,0 +1,73 @@ +// ─── Investment Source Frontmatter dispatcher ───────────────────────── +// +// Single entry point for parsing frontmatter from investment-firm +// corpora. Use parseInvestmentSource(fm) — it routes via the `type` +// discriminator and returns the strongly-typed parse result. +// +// Adding a new document type = add a schema file here, add it to the +// discriminated union, add it to the type registry. Three lines per type. +// +// This is parallel to (not a replacement for) scripts/schemas/frontmatter.ts +// SourceFrontmatter, which handles the original Zuhn source types +// (reddit/youtube/blog/podcast/etc). The two run side-by-side: tenant +// configuration determines which schema family applies. + +import { z } from "zod"; +import { ICMemoFrontmatter } from "./ic-memo.js"; +import { PostMortemFrontmatter } from "./post-mortem.js"; +import { SectorThesisFrontmatter } from "./sector-thesis.js"; +import { QuarterlyLetterFrontmatter } from "./quarterly-letter.js"; +import { MeetingNoteFrontmatter } from "./meeting-note.js"; +import { SlackThreadFrontmatter } from "./slack-thread.js"; + +export const InvestmentSourceFrontmatter = z.discriminatedUnion("type", [ + ICMemoFrontmatter, + PostMortemFrontmatter, + SectorThesisFrontmatter, + QuarterlyLetterFrontmatter, + MeetingNoteFrontmatter, + SlackThreadFrontmatter, +]); + +export type InvestmentSourceData = z.infer; + +export type InvestmentSourceType = InvestmentSourceData["type"]; + +/** + * Parse arbitrary frontmatter as one of the six investment-source types. + * Throws ZodError on validation failure. Use .safeParse for non-throwing. + */ +export function parseInvestmentSource(fm: unknown): InvestmentSourceData { + return InvestmentSourceFrontmatter.parse(fm); +} + +/** + * Non-throwing variant. Returns { success: true, data } or { success: false, error }. + */ +export function safeParseInvestmentSource(fm: unknown) { + return InvestmentSourceFrontmatter.safeParse(fm); +} + +/** + * Type guard: is this a recognized investment-source frontmatter shape? + */ +export function isInvestmentSource(fm: unknown): fm is InvestmentSourceData { + return safeParseInvestmentSource(fm).success; +} + +// Re-export per-type schemas for callers that want narrow typing. +export { + ICMemoFrontmatter, + PostMortemFrontmatter, + SectorThesisFrontmatter, + QuarterlyLetterFrontmatter, + MeetingNoteFrontmatter, + SlackThreadFrontmatter, +}; + +export type { ICMemoData } from "./ic-memo.js"; +export type { PostMortemData } from "./post-mortem.js"; +export type { SectorThesisData } from "./sector-thesis.js"; +export type { QuarterlyLetterData } from "./quarterly-letter.js"; +export type { MeetingNoteData } from "./meeting-note.js"; +export type { SlackThreadData } from "./slack-thread.js"; diff --git a/scripts/schemas/sources/meeting-note.ts b/scripts/schemas/sources/meeting-note.ts new file mode 100644 index 0000000000..c305310301 --- /dev/null +++ b/scripts/schemas/sources/meeting-note.ts @@ -0,0 +1,52 @@ +// ─── Meeting Note Frontmatter ───────────────────────────────────────── +// +// Meeting notes capture both internal discussions and summaries of +// external content (podcasts, conferences, expert calls) that the firm +// has flagged as thesis-relevant. note_type discriminates the subtypes. +// External content summaries (the Pope podcast example) are especially +// high-signal — they often trigger thesis revisions. + +import { z } from "zod"; +import { DateField, PrincipleRef, PersonField, PeopleField } from "./common.js"; + +export const MeetingNoteFrontmatter = z + .object({ + type: z.literal("meeting-note"), + firm: z.string(), + + // Note classification + note_type: z.preprocess( + (v) => (typeof v === "string" ? v.toLowerCase() : v), + z.enum([ + "external-content-summary", + "internal-discussion", + "expert-call", + "conference-notes", + "company-meeting", + "ic-discussion", + ]), + ), + + // External content reference (when note_type is external-*) + source: z.string().optional(), + source_date: DateField.optional(), + source_url: z.string().optional(), + source_duration: z.string().optional(), + + // Internal note metadata + note_author: PersonField, + note_date: DateField, + shared_with: PeopleField.optional(), + attendees: PeopleField.optional(), + + // Triage — accepts "HIGH (potentially thesis-impacting)" etc. + // Leading word is the canonical category. + priority: z.string().optional(), + + // Lineage + tagged_principles_affected: z.array(PrincipleRef).optional(), + related_documents: z.array(z.string()).optional(), + }) + .passthrough(); + +export type MeetingNoteData = z.infer; diff --git a/scripts/schemas/sources/post-mortem.ts b/scripts/schemas/sources/post-mortem.ts new file mode 100644 index 0000000000..1e25696ed4 --- /dev/null +++ b/scripts/schemas/sources/post-mortem.ts @@ -0,0 +1,46 @@ +// ─── Post-Mortem Frontmatter ────────────────────────────────────────── +// +// Post-mortems are the highest-signal documents in an investment firm's +// corpus: they are where predictions get RESOLVED and principles get +// RETIRED. The audit-deliverable's lineage tracking depends heavily on +// related_predictions and retired_principles being parseable. + +import { z } from "zod"; +import { DateField, PredictionRef, PrincipleRef, PeopleField } from "./common.js"; + +export const PostMortemFrontmatter = z + .object({ + type: z.literal("post-mortem"), + firm: z.string(), + + // Position + position: z.string(), + // Open string — canonical categorization (closed/trimmed/held/exited) + // is a downstream classifier concern. + action: z.string(), + + // Lifecycle dates & economics + entry_date: DateField, + entry_price: z.union([z.string(), z.number()]).optional(), + exit_date: DateField.optional(), + exit_price: z.union([z.string(), z.number()]).optional(), + holding_period: z.string().optional(), + total_return: z.string().optional(), + size_at_entry: z.string().optional(), + size_at_exit: z.string().optional(), + + // Authorship + authors: PeopleField, + + // Lineage — the lessons of the post-mortem + related_predictions: z.array(PredictionRef).optional(), + retired_principles: z.array(PrincipleRef).optional(), + new_principles_seeded: z.array(PrincipleRef).optional(), + related_documents: z.array(z.string()).optional(), + + // Workflow status (DRAFT | ARCHIVED | FINAL plus narration). + status: z.string(), + }) + .passthrough(); + +export type PostMortemData = z.infer; diff --git a/scripts/schemas/sources/quarterly-letter.ts b/scripts/schemas/sources/quarterly-letter.ts new file mode 100644 index 0000000000..9e30964a02 --- /dev/null +++ b/scripts/schemas/sources/quarterly-letter.ts @@ -0,0 +1,47 @@ +// ─── Quarterly Letter Frontmatter ───────────────────────────────────── +// +// Letters to LPs / family principals. These are PUBLIC narrative — they +// summarize a quarter's positioning and link back to the deeper +// reasoning in IC memos and post-mortems. The performance object is the +// closest the corpus gets to structured numerical state. + +import { z } from "zod"; +import { DateField, PrincipleRef, PersonField } from "./common.js"; + +const Performance = z + .object({ + benchmark: z.string().optional(), + }) + .catchall(z.union([z.string(), z.number()])); // q4_2024, ytd_2024, etc. + +export const QuarterlyLetterFrontmatter = z + .object({ + type: z.literal("quarterly-letter"), + firm: z.string(), + + // Period + period: z.string(), // "2024 Q4" + date: DateField, + + // Authorship & distribution + author: PersonField, + distribution: z.string().optional(), + length: z.union([z.string(), z.number()]).optional(), + + // Performance snapshot + performance: Performance.optional(), + + // Position deltas this quarter + positions_initiated: z.array(z.string()).optional(), + positions_closed: z.array(z.string()).optional(), + positions_trimmed: z.array(z.string()).optional(), + positions_added: z.array(z.string()).optional(), + + // Lineage + related_principles_evolved: z.array(PrincipleRef).optional(), + related_principles_retired: z.array(PrincipleRef).optional(), + related_post_mortems: z.array(z.string()).optional(), + }) + .passthrough(); + +export type QuarterlyLetterData = z.infer; diff --git a/scripts/schemas/sources/sector-thesis.ts b/scripts/schemas/sources/sector-thesis.ts new file mode 100644 index 0000000000..d1f8fe8ebb --- /dev/null +++ b/scripts/schemas/sources/sector-thesis.ts @@ -0,0 +1,42 @@ +// ─── Sector Thesis Frontmatter ──────────────────────────────────────── +// +// Sector theses are PARENT documents — long-form frames that individual +// IC memos derive from. They SEED principles. Their status arc (ACTIVE +// → UNDER REVIEW → SUPERSEDED) is critical for the audit-deliverable's +// thesis-lifecycle visualization. + +import { z } from "zod"; +import { DateField, PrincipleRef, PeopleField } from "./common.js"; + +export const SectorThesisFrontmatter = z + .object({ + type: z.literal("sector-thesis"), + firm: z.string(), + + // Identity + sector: z.string(), + horizon: z.string().optional(), // "24-36 months" + + // Authorship + date_established: DateField, + authors: PeopleField, + + // Workflow status — the corpus contains rich human-authored values + // like "ACTIVE (under quarterly review)" or "SECTIONS UNDER ACTIVE + // RETIREMENT". Leading word carries canonical category; downstream + // classifier extracts it. + status: z.string(), + + // Review cadence + review_cadence: z.string().optional(), + last_review: z.string().optional(), + + // Lineage + positions_implied: z.array(z.string()).optional(), + related_principles_seeded: z.array(PrincipleRef).optional(), + superseded_by: z.string().optional(), + supersedes: z.string().optional(), + }) + .passthrough(); + +export type SectorThesisData = z.infer; diff --git a/scripts/schemas/sources/slack-thread.ts b/scripts/schemas/sources/slack-thread.ts new file mode 100644 index 0000000000..826d037549 --- /dev/null +++ b/scripts/schemas/sources/slack-thread.ts @@ -0,0 +1,35 @@ +// ─── Slack Thread Frontmatter ───────────────────────────────────────── +// +// Slack threads from #investment-committee are the "show your work" of +// the firm. They preserve the deliberation that produced a decision — +// the meta-level evidence the audit-deliverable cites when it shows +// "the firm's discipline working." Outcome field links the thread to +// the formal IC decision it produced. + +import { z } from "zod"; +import { DateField, PredictionRef, PrincipleRef, PeopleField } from "./common.js"; + +export const SlackThreadFrontmatter = z + .object({ + type: z.literal("slack-thread"), + firm: z.string(), + + // Identity + channel: z.string(), + thread_started: DateField, + thread_concluded: DateField.optional(), + + // Participants (free-text strings, may include role suffixes) + participants: PeopleField, + + // Lineage + related_documents: z.array(z.string()).optional(), + related_predictions: z.array(PredictionRef).optional(), + related_principles_affected: z.array(PrincipleRef).optional(), + + // Outcome — links thread to formal decision/document it produced + outcome: z.string().optional(), + }) + .passthrough(); + +export type SlackThreadData = z.infer; diff --git a/scripts/schemas/sources/sources.test.ts b/scripts/schemas/sources/sources.test.ts new file mode 100644 index 0000000000..752cea3c3f --- /dev/null +++ b/scripts/schemas/sources/sources.test.ts @@ -0,0 +1,242 @@ +// ─── Investment-source schema regression suite ──────────────────────── +// +// Pins two contracts: +// 1. The discriminated union dispatches correctly across all six +// document types (one synthetic minimal-valid sample each). +// 2. The full Meridian demo corpus parses cleanly. Any schema or +// corpus change that breaks ingestion fails this test. +// +// Phase 1.3b — replaces the throwaway scripts/_validate-meridian.ts +// validator with a permanent regression test. + +import { describe, expect, it } from "vitest"; +import { readFileSync } from "node:fs"; +import { join } from "node:path"; +import fg from "fast-glob"; +import matter from "gray-matter"; +import { + InvestmentSourceFrontmatter, + parseInvestmentSource, + safeParseInvestmentSource, + isInvestmentSource, +} from "./index.js"; + +const MERIDIAN_ROOT = join(__dirname, "../../..", "demos", "meridian-capital"); + +describe("investment source schema dispatcher", () => { + it("dispatches ic-memo by type discriminator", () => { + const fm = { + type: "ic-memo", + firm: "Test Firm", + position: "TEST", + action: "initiation", + ic_date: "2024-01-15", + author: "Test Author", + status: "APPROVED", + }; + const parsed = parseInvestmentSource(fm); + expect(parsed.type).toBe("ic-memo"); + }); + + it("dispatches post-mortem", () => { + const fm = { + type: "post-mortem", + firm: "Test Firm", + position: "TEST", + action: "closed", + entry_date: "2022-04-18", + authors: ["Author A", "Author B"], + status: "ARCHIVED", + }; + expect(parseInvestmentSource(fm).type).toBe("post-mortem"); + }); + + it("dispatches sector-thesis", () => { + const fm = { + type: "sector-thesis", + firm: "Test Firm", + sector: "Test Sector", + date_established: "2024-01-15", + authors: ["Author A"], + status: "ACTIVE", + }; + expect(parseInvestmentSource(fm).type).toBe("sector-thesis"); + }); + + it("dispatches quarterly-letter", () => { + const fm = { + type: "quarterly-letter", + firm: "Test Firm", + period: "2024 Q4", + date: "2025-01-18", + author: "Test Author", + }; + expect(parseInvestmentSource(fm).type).toBe("quarterly-letter"); + }); + + it("dispatches meeting-note", () => { + const fm = { + type: "meeting-note", + firm: "Test Firm", + note_type: "external-content-summary", + note_author: "Test Author", + note_date: "2025-05-08", + }; + expect(parseInvestmentSource(fm).type).toBe("meeting-note"); + }); + + it("dispatches slack-thread", () => { + const fm = { + type: "slack-thread", + firm: "Test Firm", + channel: "#investment-committee", + thread_started: "2025-08-12 10:14 PT", + participants: ["A", "B"], + }; + expect(parseInvestmentSource(fm).type).toBe("slack-thread"); + }); + + it("rejects unknown types", () => { + const fm = { type: "unknown-doc", firm: "X" }; + const result = safeParseInvestmentSource(fm); + expect(result.success).toBe(false); + }); + + it("rejects missing required fields", () => { + const fm = { type: "ic-memo", firm: "X" }; // missing position, action, etc. + expect(isInvestmentSource(fm)).toBe(false); + }); +}); + +describe("normalization helpers", () => { + it("PeopleField accepts comma-separated strings", () => { + const fm = { + type: "ic-memo", + firm: "Test", + position: "TEST", + action: "initiation", + ic_date: "2024-01-15", + author: "Author", + reviewers: "Sarah Chen (CIO), Rachel Wu (Senior PM)", + status: "APPROVED", + }; + const parsed = parseInvestmentSource(fm); + if (parsed.type !== "ic-memo") throw new Error("dispatch failed"); + expect(parsed.reviewers).toEqual([ + "Sarah Chen (CIO)", + "Rachel Wu (Senior PM)", + ]); + }); + + it("PeopleField accepts native arrays unchanged", () => { + const fm = { + type: "post-mortem", + firm: "Test", + position: "TEST", + action: "closed", + entry_date: "2022-04-18", + authors: ["A", "B"], + status: "ARCHIVED", + }; + const parsed = parseInvestmentSource(fm); + if (parsed.type !== "post-mortem") throw new Error("dispatch failed"); + expect(parsed.authors).toEqual(["A", "B"]); + }); + + it("DateField coerces JS Date objects (YAML 1.1 bare-date parsing)", () => { + const fm = { + type: "ic-memo", + firm: "Test", + position: "TEST", + action: "initiation", + ic_date: new Date("2024-01-15T00:00:00.000Z"), + author: "Author", + status: "APPROVED", + }; + const parsed = parseInvestmentSource(fm); + if (parsed.type !== "ic-memo") throw new Error("dispatch failed"); + expect(typeof parsed.ic_date).toBe("string"); + expect(parsed.ic_date).toContain("2024-01-15"); + }); + + it("Confidence enum is case-insensitive", () => { + const fm = { + type: "ic-memo", + firm: "Test", + position: "TEST", + action: "initiation", + ic_date: "2024-01-15", + author: "Author", + status: "APPROVED", + predictions: [ + { id: "PRED-1", claim: "X", confidence: "High" }, // capital H + ], + }; + const parsed = parseInvestmentSource(fm); + if (parsed.type !== "ic-memo") throw new Error("dispatch failed"); + expect(parsed.predictions?.[0].confidence).toBe("high"); + }); + + it("passthrough preserves firm-specific extra fields", () => { + const fm = { + type: "sector-thesis", + firm: "Test", + sector: "Test", + date_established: "2024-01-15", + authors: ["A"], + status: "ACTIVE", + // Firm-specific quirky field — must survive + status_2025_Q3: "SECTIONS UNDER ACTIVE RETIREMENT", + }; + const parsed = parseInvestmentSource(fm) as Record; + expect(parsed.status_2025_Q3).toBe("SECTIONS UNDER ACTIVE RETIREMENT"); + }); +}); + +describe("Meridian demo corpus parses cleanly", () => { + // Directory name → expected discriminator value. Explicit map because + // pluralization is irregular (theses → thesis), not just `s`-stripping. + const dirToType: Record = { + "ic-memos": "ic-memo", + "post-mortems": "post-mortem", + "sector-theses": "sector-thesis", + "quarterly-letters": "quarterly-letter", + "meeting-notes": "meeting-note", + "slack-threads": "slack-thread", + }; + const subdirs = Object.keys(dirToType); + + // Glob synchronously at suite-load time so each fixture becomes its + // own named test case (it.each-style) — failures point to the exact file. + const files: Array<{ path: string; rel: string }> = []; + for (const sub of subdirs) { + const matches = fg.sync("*.md", { + cwd: join(MERIDIAN_ROOT, sub), + absolute: true, + }); + for (const m of matches) { + files.push({ path: m, rel: `${sub}/${m.split("/").pop()}` }); + } + } + + it("found at least 12 corpus files (preventing empty-suite false-positive)", () => { + expect(files.length).toBeGreaterThanOrEqual(12); + }); + + for (const { path, rel } of files) { + it(`parses ${rel}`, () => { + const raw = readFileSync(path, "utf-8"); + const { data } = matter(raw); + const result = InvestmentSourceFrontmatter.safeParse(data); + if (!result.success) { + const issues = result.error.issues + .map((i) => `[${i.path.join(".")}] ${i.message}`) + .join("\n "); + throw new Error(`Failed to parse ${rel}:\n ${issues}`); + } + // Confirm dispatched type matches the directory naming convention + const dir = rel.split("/")[0]; + expect(result.data.type).toBe(dirToType[dir]); + }); + } +}); From 890a226876efc55afef45c4c01d5ceb00a975f83 Mon Sep 17 00:00:00 2001 From: Jin Choi Date: Wed, 27 May 2026 23:50:40 -0700 Subject: [PATCH 3/3] test(fixtures): Meridian Capital demo corpus for Investment Source schemas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 14 corpus files across 6 document types (ic-memo, post-mortem, sector-thesis, quarterly-letter, meeting-note, slack-thread) — the fixtures that the schemas test (scripts/schemas/sources/sources.test.ts in the prior commit) walks to verify clean parse. Also includes the per-firm knowledge-base scaffolding (mostly empty placeholders at this stage) that demonstrates what a tenant-scoped Zuhn instance looks like when ingesting from these source types. Co-Authored-By: Claude Opus 4.7 (1M context) --- demos/meridian-capital/README.md | 263 ++++++++++++++++++ .../ic-memos/2023-Q3-NVDA-initiation.md | 99 +++++++ .../ic-memos/2024-Q2-Anthropic-secondary.md | 115 ++++++++ .../2024-Q4-NVDA-followon-thesis-revision.md | 136 +++++++++ .../2026-Q1-vertical-AI-bucket-initiation.md | 191 +++++++++++++ .../knowledge-base/MASTER_INDEX.md | 10 + .../knowledge-base/archive/stale/.gitkeep | 0 .../knowledge-base/decisions/.gitkeep | 0 .../knowledge-base/mental-models/.gitkeep | 0 .../knowledge-base/meta/flags.md | 14 + .../knowledge-base/meta/pending-urls.txt | 1 + .../knowledge-base/meta/stats.md | 8 + .../knowledge-base/predictions/.gitkeep | 0 .../knowledge-base/sources/_index.md | 3 + .../sources/paste/sample-spacing-effect.md | 17 ++ .../knowledge-base/tags/_index.md | 3 + .../knowledge-base/tensions/.gitkeep | 0 .../2025-Q2-pope-podcast-summary.md | 94 +++++++ .../post-mortems/2025-Q1-TWLO-postmortem.md | 118 ++++++++ .../2025-Q3-NVDA-mid-position-postmortem.md | 161 +++++++++++ .../quarterly-letters/2024-Q4-letter.md | 129 +++++++++ .../quarterly-letters/2025-Q4-letter.md | 120 ++++++++ .../2023-Q3-AI-infrastructure-thesis.md | 139 +++++++++ ...026-Q1-AI-infrastructure-thesis-revised.md | 152 ++++++++++ .../slack-threads/2025-Q3-NVDA-trim-debate.md | 188 +++++++++++++ 25 files changed, 1961 insertions(+) create mode 100644 demos/meridian-capital/README.md create mode 100644 demos/meridian-capital/ic-memos/2023-Q3-NVDA-initiation.md create mode 100644 demos/meridian-capital/ic-memos/2024-Q2-Anthropic-secondary.md create mode 100644 demos/meridian-capital/ic-memos/2024-Q4-NVDA-followon-thesis-revision.md create mode 100644 demos/meridian-capital/ic-memos/2026-Q1-vertical-AI-bucket-initiation.md create mode 100644 demos/meridian-capital/knowledge-base/MASTER_INDEX.md create mode 100644 demos/meridian-capital/knowledge-base/archive/stale/.gitkeep create mode 100644 demos/meridian-capital/knowledge-base/decisions/.gitkeep create mode 100644 demos/meridian-capital/knowledge-base/mental-models/.gitkeep create mode 100644 demos/meridian-capital/knowledge-base/meta/flags.md create mode 100644 demos/meridian-capital/knowledge-base/meta/pending-urls.txt create mode 100644 demos/meridian-capital/knowledge-base/meta/stats.md create mode 100644 demos/meridian-capital/knowledge-base/predictions/.gitkeep create mode 100644 demos/meridian-capital/knowledge-base/sources/_index.md create mode 100644 demos/meridian-capital/knowledge-base/sources/paste/sample-spacing-effect.md create mode 100644 demos/meridian-capital/knowledge-base/tags/_index.md create mode 100644 demos/meridian-capital/knowledge-base/tensions/.gitkeep create mode 100644 demos/meridian-capital/meeting-notes/2025-Q2-pope-podcast-summary.md create mode 100644 demos/meridian-capital/post-mortems/2025-Q1-TWLO-postmortem.md create mode 100644 demos/meridian-capital/post-mortems/2025-Q3-NVDA-mid-position-postmortem.md create mode 100644 demos/meridian-capital/quarterly-letters/2024-Q4-letter.md create mode 100644 demos/meridian-capital/quarterly-letters/2025-Q4-letter.md create mode 100644 demos/meridian-capital/sector-theses/2023-Q3-AI-infrastructure-thesis.md create mode 100644 demos/meridian-capital/sector-theses/2026-Q1-AI-infrastructure-thesis-revised.md create mode 100644 demos/meridian-capital/slack-threads/2025-Q3-NVDA-trim-debate.md diff --git a/demos/meridian-capital/README.md b/demos/meridian-capital/README.md new file mode 100644 index 0000000000..2260d860ee --- /dev/null +++ b/demos/meridian-capital/README.md @@ -0,0 +1,263 @@ +# Meridian Capital Partners — Demo Corpus + +*A fictional investment firm corpus for Zuhn demos and capability stress-testing.* + +--- + +## Purpose + +This corpus exists to: + +1. **Demo Zuhn's compression / lineage / retirement / prediction-tracking against investment-firm-shaped content** — the demo every YC interview and customer prospect runs through. +2. **Surface capability gaps** — where Zuhn's existing schema and pipeline assume personal-corpus content (YouTube transcripts, blog posts) and break or weaken on firm content (IC memos, post-mortems, multi-author Slack threads). +3. **Anchor the v3 company plan in a concrete buyer journey** rather than abstract architecture. + +This is a fictional firm. Any resemblance to real firms is unintentional. The narrative arc is designed to demonstrate retirement of superseded conclusions and prediction-vs-outcome resolution. + +--- + +## The firm + +**Meridian Capital Partners** + +- Single family office, ~$1.2B AUM +- 8 investment professionals: Sarah Chen (CIO), David Park (Senior PM), Rachel Wu (Senior PM), Marcus Reed (Mid-Level Analyst), Priya Shah (Mid-Level Analyst), James Liu (Mid-Level Analyst), Kira Volkov (Junior Analyst), Daniel Tanaka (Junior Analyst) +- Multi-asset: public equities, private growth, secondaries, fund-of-fund commitments +- Founded 2018, AI-thesis-heavy since 2022 +- Quarterly IC, weekly investment meetings + +--- + +## The narrative arc (Q3 2023 → Q2 2026) + +| Period | Thesis state | Documented in | +|---|---|---| +| **Q3 2023** | Initiate "AI infrastructure as durable moat" thesis | sector-theses/2023-Q3-AI-infrastructure-thesis.md, ic-memos/2023-Q3-NVDA-initiation.md | +| **Q1-Q2 2024** | Extend into application layer | ic-memos/2024-Q2-Anthropic-secondary.md | +| **Q4 2024** | First questions emerge — model costs dropping ~4x/year | quarterly-letters/2024-Q4-letter.md, ic-memos/2024-Q4-NVDA-followon-thesis-revision.md | +| **Q1-Q2 2025** | TWLO post-mortem encodes "API-economy moats erode in AI-native architectures" | post-mortems/2025-Q1-TWLO-postmortem.md, meeting-notes/2025-Q2-pope-podcast-summary.md | +| **Q3 2025** | NVDA trim debate; methodology gap surfaced | slack-threads/2025-Q3-NVDA-trim-debate.md, post-mortems/2025-Q3-NVDA-mid-position-postmortem.md | +| **Q4 2025** | Formal retirement of "compute scarcity = permanent moat" | quarterly-letters/2025-Q4-letter.md | +| **Q1 2026** | Replacement thesis published; Vertical AI Bucket initiated | sector-theses/2026-Q1-AI-infrastructure-thesis-revised.md, ic-memos/2026-Q1-vertical-AI-bucket-initiation.md | + +This arc demonstrates: +- 12+ explicit principles compressed from documents +- 3 explicit retirement events (compute scarcity, API moats, communication API foundationality) +- 12+ predictions of varying resolution states (CONFIRMED, FALSIFIED, PARTIALLY CONFIRMED, PENDING, TRACKING) +- Cross-document lineage through 12 interconnected documents + +--- + +## Document inventory + +| Type | Generated | Total target | Status | +|---|---|---|---| +| IC Memos | 4 | 10 | Narrative-essential complete | +| Post-Mortems | 2 | 5 | Narrative-essential complete | +| Sector Theses | 2 | 5 | Narrative-essential complete | +| Meeting Notes | 1 | 8 | 1 anchor note done | +| Quarterly Letters | 2 | 4 | Mid-arc + retirement-arc complete | +| Slack Threads | 1 | 8 | 1 multi-author debate done | +| **Total** | **12** | **40** | **30% — narrative arc complete** | + +The remaining 28 documents are variety / depth, not narrative. They can be generated in a follow-up session. + +--- + +## Capability gaps surfaced (the actual deliverable) + +Generating these 12 documents surfaced specific gaps in Zuhn's current pipeline. Listed in priority order with effort estimates. + +### Tier 1 — schema and data model gaps (must fix before pilot) + +#### 1. Document type taxonomy doesn't include investment-firm types + +Zuhn's source schema knows YouTube, blog, Reddit, PDF, audio. It does not know IC memo, post-mortem, quarterly letter, sector thesis, meeting note, slack thread. Each has different structural fields: + +| Document type | Required structural fields | +|---|---| +| IC memo | position, action, predictions[], stop-loss, vote outcome, parent_thesis | +| Post-mortem | predicted vs actual, retired predictions[], retired principles[], lessons[] | +| Quarterly letter | performance, position changes, principle evolutions, related post-mortems | +| Sector thesis | pillars, risks, status updates over time, supersedes/superseded_by | +| Meeting note | source, source_date, source_url, principles_affected, priority | +| Slack thread | participants, thread_started, thread_concluded, related_documents, outcome | + +**Fix:** Extend `SourceSchema` with `type` enum + per-type frontmatter validators. Roughly 1-2 weeks of schema and ingestion work. + +#### 2. Predictions need to be first-class objects extractable from documents + +The IC memos declare predictions inline with structured `id / claim / confidence / horizon / resolution` fields. The post-mortems reference and resolve those predictions across multiple IDs simultaneously. Today, predictions live in `knowledge-base/predictions/` as separate files created by `predict.ts`. There's no document-driven prediction extraction. + +The Meridian corpus contains 12+ predictions with identifiers like `PRED-2023Q3-001` through `PRED-2026Q1-021`. Each has its own resolution state that needs to flow to the principle layer. + +**Fix:** Add prediction extractor to ingestion. When ingesting an IC memo, parse `predictions:` frontmatter and create individual prediction files. When ingesting a post-mortem, parse `related_predictions` and resolve them — multi-prediction resolution in a single pass. Roughly 2-3 weeks. + +#### 3. Explicit retirement events for principles (document-driven, not just empirical) + +The TWLO post-mortem retires 2 prior principles. The Q4 2025 letter retires "compute scarcity moat." The 2026 sector thesis explicitly supersedes the 2023 sector thesis. Today, Zuhn's retirement happens via empirical resolution (failing predictions). There's no document-driven principle retirement workflow. + +**Fix:** Add retirement event handler. Documents can list `retired_principles:` in frontmatter and the principle file gets marked archived with full lineage to the retiring document. Add `supersedes:` and `superseded_by:` fields for parent-thesis revision. Roughly 1-2 weeks. + +### Tier 2 — extraction quality gaps (need work but not blocking) + +#### 4. Multi-author attribution chains + +IC memos have proposer + reviewers + voter outcomes (4-0, 4-0-1, 6-0). Post-mortems have authors + review chain. Slack threads have multiple participants with timestamps. Zuhn currently tags everything to a single source author. We need multi-author attribution per insight — which partner originated which thesis, who concurred, who abstained. + +The Meridian corpus has Sarah Chen (CIO) appearing across 9 documents in different roles (proposer, reviewer, vote-caster, letter-author). The compression layer should surface "Sarah Chen is the originating voice on the 'leading vs lagging indicator' lesson" by attribution analysis across documents. + +#### 5. Document workflow states + +IC memos move through draft → reviewed → approved → encoded. Post-mortems through filed → reviewed → encoded. The corpus tracks this in frontmatter (`status: APPROVED`, `Outcome: APPROVED 4-0-1`). Today Zuhn has no document state tracking. + +#### 6. Cross-document narrative arcs + +The Q4 2025 letter explicitly references the TWLO post-mortem. The TWLO post-mortem explicitly retires principles that the parent sector thesis seeded. The slack thread references both the Pope memo and the original IC memo. The principle that gets encoded should know it has lineage through ALL of these documents. + +Today's extraction is per-document. Cross-document compression happens in `learn.ts` via Louvain but doesn't currently understand "this letter explicitly cites this post-mortem." We need explicit citation parsing in the ingestion pipeline. + +#### 7. Time-series document evolution + +The 2023-Q3 sector thesis has quarterly status updates appended to it as the position evolves. By Q3 2025 the document has 8 quarterly updates. This is a document-with-versions structure, not a static document. Zuhn's current model assumes static documents. + +**Fix:** Allow "appendable" document types where new content gets added with timestamps. Compression should treat the latest version as primary while preserving history. + +### Tier 3 — UX gaps (visible to user, not blocking architecture) + +#### 8. No visual UI for the demo + +The artifacts read well as markdown. A CIO will not read markdown. We need a web UI showing: +- Compression hierarchy (insights → principles → mental models → wisdom) +- Lineage trace from claim back to source documents +- Prediction states (CONFIRMED / FALSIFIED / PARTIALLY / PENDING) with timeline +- Retirement events with the document that retired the principle +- Author attribution heatmap (who originates which kinds of insights) + +#### 9. No demo query mode + +Walking a prospect through "let me show you a query against this corpus" needs a query interface. Today it's CLI / MCP only. Needs at minimum a simple web frontend with: +- Free-text query box +- Structured filters (by author, by date range, by document type, by position, by principle) +- Results showing principle + lineage + supporting documents + +#### 10. No timeline / narrative visualization + +The narrative arc (Q3 2023 → Q2 2026) is the most visceral demonstration of retirement working over time. Today we have no way to visualize "thesis evolution timeline" — it'd just be a list of principle files with timestamps. + +**Specific demo flow we want:** A horizontal timeline showing: +- Sector thesis nodes (2023-Q3 active, 2025-Q4 retiring, 2026-Q1 replacing) +- Principle nodes (active = green, warning = yellow, retired = grey with strikethrough) +- Predictions (resolved at the right point on the timeline with outcome color-coded) +- Position events (initiations, trims, post-mortems) anchored to dates +- Document references (clickable) for any element + +### Tier 4 — engineering envelope (already known from v1 plan, validated by corpus) + +Pre-pilot envelope work, unchanged by this exercise: + +- 5-7 connectors (Notion, Slack, Gmail, Google Drive, Affinity, etc.) +- Multi-user identity and permissions +- Role-scoped retrieval (CIO ≠ junior analyst access for confidential memos) +- Audit log (who queried what, when) +- Customer success tooling + +The corpus exercise validated that the envelope is necessary but did not surface new envelope work. The 14-22 weeks estimate from v1 holds. + +--- + +## Total realistic engineering envelope + +| Tier | Effort | Cumulative | +|---|---|---| +| Tier 1 (schema, predictions, retirement) | 4-6 weeks | 4-6 weeks | +| Tier 2 (attribution, workflow, narrative) | 3-4 weeks | 7-10 weeks | +| Tier 3 (UI / visualization) | 8-10 weeks | 15-20 weeks | +| Tier 4 (envelope: connectors, identity, audit) | 14-22 weeks | 29-42 weeks | + +**Total: 29-42 weeks of focused engineering with 2 engineers** to go from current personal-corpus Zuhn to first-paying-customer-ready Sterling Capital pilot. That's 7-10 months elapsed time. + +This is the funded work. YC funding compresses the timeline to ~6 months by accelerating hiring and parallelizing tracks. + +--- + +## What this corpus enables + +With these 12 documents in place, we can: + +1. **Demo compression hierarchy** on investment-firm-shaped content. A 5-minute Loom showing query → principle → lineage → source documents → predictions → retirement events. + +2. **Demonstrate retirement** by showing the lifecycle of "compute scarcity = durable moat" from active in 2023 → warning in 2024 → retiring in 2025 → superseded in 2026. + +3. **Demonstrate prediction tracking** by showing the resolution lifecycle of NVDA's four entry-thesis predictions, two confirmed early, one partially confirmed, all with full lineage. + +4. **Show multi-author attribution** by surfacing how Sarah Chen, David Park, Rachel Wu, and Marcus Reed each contribute different shapes of insight across the corpus. + +5. **Anchor the YC application** in concrete artifacts. "Here's the demo corpus. Here's the architecture working on it. Here are the gaps. Here's the funded work." + +The corpus IS the demo. + +--- + +## Next steps + +1. **(Done) Generate narrative-essential documents.** Complete: 12 documents, all major arcs covered. +2. **Update v3 of the company plan** to reference this corpus and ground every architectural decision in a concrete journey stage. +3. **Sketch Option B (ingestion adapter)** intentionally — what's the minimum viable build that gets these documents through Zuhn's pipeline? +4. **Future session: Generate remaining ~28 documents** for variety and depth. + +--- + +## Documents inventory (detailed) + +### Sector Theses (2/5) +- ✅ `sector-theses/2023-Q3-AI-infrastructure-thesis.md` — original, with quarterly status updates through retirement +- ✅ `sector-theses/2026-Q1-AI-infrastructure-thesis-revised.md` — replacement thesis with explicit lineage to retired one +- ⏳ `sector-theses/2024-Q2-AI-application-layer-thesis.md` — secondary thesis on application layer +- ⏳ `sector-theses/2024-Q3-cybersecurity-AI-thesis.md` +- ⏳ `sector-theses/2024-Q2-climate-tech-thesis.md` + +### IC Memos (4/10) +- ✅ `ic-memos/2023-Q3-NVDA-initiation.md` +- ✅ `ic-memos/2024-Q2-Anthropic-secondary.md` +- ✅ `ic-memos/2024-Q4-NVDA-followon-thesis-revision.md` +- ✅ `ic-memos/2026-Q1-vertical-AI-bucket-initiation.md` +- ⏳ `ic-memos/2023-Q4-MSFT-initiation.md` +- ⏳ `ic-memos/2024-Q1-SNOW-initiation.md` +- ⏳ `ic-memos/2024-Q1-MDB-initiation.md` +- ⏳ `ic-memos/2024-Q3-PLTR-initiation.md` +- ⏳ `ic-memos/2024-Q4-CrowdStrike-initiation.md` +- ⏳ `ic-memos/2026-Q2-ARM-evaluation.md` + +### Post-Mortems (2/5) +- ✅ `post-mortems/2025-Q1-TWLO-postmortem.md` — closed losing position with retired principles +- ✅ `post-mortems/2025-Q3-NVDA-mid-position-postmortem.md` — mid-position review of winning position +- ⏳ `post-mortems/2024-Q4-SPLK-postmortem.md` — winning position closed via M&A +- ⏳ `post-mortems/2025-Q2-ZM-postmortem.md` — losing position +- ⏳ `post-mortems/2025-Q4-SNOW-postmortem.md` — mixed outcome + +### Quarterly Letters (2/4) +- ✅ `quarterly-letters/2024-Q4-letter.md` — mid-arc, thesis questioning emerging +- ✅ `quarterly-letters/2025-Q4-letter.md` — formal retirement announcement +- ⏳ `quarterly-letters/2023-Q4-letter.md` — initial thesis articulation +- ⏳ `quarterly-letters/2026-Q1-letter.md` — framework update + +### Meeting Notes (1/8) +- ✅ `meeting-notes/2025-Q2-pope-podcast-summary.md` — external content summary, principles flagged +- ⏳ `meeting-notes/2023-Q4-NVDA-IR-call.md` +- ⏳ `meeting-notes/2024-Q2-Karpathy-podcast-summary.md` +- ⏳ `meeting-notes/2024-Q3-Anthropic-exec-call.md` +- ⏳ `meeting-notes/2024-Q4-energy-analyst-call.md` +- ⏳ `meeting-notes/2025-Q1-Hebbia-founder-call.md` +- ⏳ `meeting-notes/2025-Q2-semi-analyst-call.md` +- ⏳ `meeting-notes/2026-Q1-Bridgewater-PM-conversation.md` + +### Slack Threads (1/8) +- ✅ `slack-threads/2025-Q3-NVDA-trim-debate.md` — multi-author debate that produced firm principles +- ⏳ `slack-threads/2024-Q1-NVDA-position-sizing.md` +- ⏳ `slack-threads/2024-Q3-Anthropic-vs-OpenAI.md` +- ⏳ `slack-threads/2025-Q1-TWLO-sell-decision.md` +- ⏳ `slack-threads/2025-Q4-cybersecurity-allocation.md` +- ⏳ `slack-threads/2026-Q1-NVDA-partial-sell.md` +- ⏳ `slack-threads/2026-Q2-edge-AI-thesis.md` +- ⏳ `slack-threads/2026-Q2-Anthropic-trim.md` diff --git a/demos/meridian-capital/ic-memos/2023-Q3-NVDA-initiation.md b/demos/meridian-capital/ic-memos/2023-Q3-NVDA-initiation.md new file mode 100644 index 0000000000..365a7c90d3 --- /dev/null +++ b/demos/meridian-capital/ic-memos/2023-Q3-NVDA-initiation.md @@ -0,0 +1,99 @@ +--- +type: ic-memo +firm: Meridian Capital Partners +position: NVDA +action: initiation +size: $48M (4.0% of AUM) +ic_date: 2023-09-14 +author: David Park (Senior PM) +reviewers: Sarah Chen (CIO), Rachel Wu (Senior PM) +status: APPROVED +related_positions: [] +predictions: + - id: PRED-2023Q3-001 + claim: NVDA datacenter revenue will exceed $40B annualized by EOY 2024 + confidence: high + horizon: 15 months + resolution: pending + - id: PRED-2023Q3-002 + claim: H100 demand will outstrip supply through at least Q4 2024 with allocation rationing + confidence: high + horizon: 15 months + resolution: pending + - id: PRED-2023Q3-003 + claim: Hyperscaler capex commitments to AI infrastructure will reach $200B+ aggregate by EOY 2025 + confidence: medium + horizon: 27 months + resolution: pending + - id: PRED-2023Q3-004 + claim: NVDA's CUDA software moat will keep gross margins above 70% through 2026 + confidence: medium + horizon: 39 months + resolution: pending +--- + +# Investment Committee Memo — NVDA Initiation + +## Recommendation + +**INITIATE 4.0% position ($48M) at $445/share.** Stop loss at $325. Target $750-900 over 18 months. + +## Thesis + +We are entering a structural shift in computing that's larger than mobile and at least equivalent to the mainframe-to-distributed transition. The companies that own the compute substrate during structural shifts capture disproportionate value. NVIDIA owns the substrate. + +Three structural arguments: + +**1. Compute scarcity is the binding constraint, not algorithmic invention.** +The leading frontier labs (OpenAI, Anthropic, Google DeepMind) are gated on training compute, not on research talent or data. Every meaningful capability gain over the past 18 months has come from scaling — not from architectural breakthroughs that scale-substitute. As long as scaling continues to produce capability gains, compute is the rate-limiting input. + +**2. NVIDIA's moat is the full stack, not just chips.** +The naive view is that AMD or Intel can catch up on raw FLOPs and erode margin. The actual moat is CUDA, NVLink, networking (Mellanox), and the developer ecosystem trained on NVIDIA's stack since 2012. Replacing NVIDIA in a frontier lab's training cluster requires re-architecting the entire workflow — not just swapping accelerators. We estimate switching cost at 12-18 months of engineering work per cluster, which makes the moat durable through this cycle. + +**3. Hyperscaler capex commitments are pre-allocated through 2024.** +Microsoft, Google, Meta, Amazon, Oracle have publicly disclosed AI infrastructure capex commitments aggregating to ~$120B for 2024. NVIDIA has visibility into ~80% of that demand via direct allocation conversations. The revenue line is not speculative — it's contracted. + +## Position sizing rationale + +4.0% of AUM is large for an initiation but justified by: +- Conviction level (high) on a 12-18 month horizon +- Liquidity profile (large-cap, can exit cleanly) +- Asymmetric upside (we model 60-100% upside vs 25% downside to stop) +- Portfolio fit (no existing concentrated AI infrastructure exposure) + +We are NOT averaging in. The AI capex cycle is moving fast enough that waiting for a better entry has higher opportunity cost than market-price entry today. + +## What kills this thesis + +Explicitly enumerated so we can monitor: + +1. **Algorithmic breakthrough that reduces compute requirement by >5x.** A new architecture (post-Transformer) that achieves Claude-level capability at 10x less compute would compress the demand curve and impair NVIDIA pricing power. +2. **AMD or Intel custom silicon catches CUDA at the framework level.** If PyTorch / TensorFlow ship first-class non-CUDA backends with comparable performance, the switching cost erodes. +3. **Hyperscaler in-house chips at scale.** Google TPU, AWS Trainium, Microsoft Maia at 30%+ of internal training compute by 2025 would compress NVIDIA's hyperscaler revenue. +4. **Capex pause.** Macro shock or AI ROI disappointment forcing a 12+ month capex freeze. + +We expect to revisit this thesis explicitly in Q4 2024 to assess whether any of these conditions are materializing. + +## Stop-loss discipline + +$325 is not a price prediction. It's a position-sizing discipline. If NVDA hits $325 we have either (a) a thesis-broken event we missed, or (b) a multi-year drawdown we don't want to ride. Either way, we exit and re-evaluate from cash. + +## Open questions for IC + +- Should we hedge with put protection at $400? Cost is 3-4% annualized. Reduces tail risk but compresses expected return. +- Should we layer in additional 1% over the next 90 days if price holds above $440? +- How does this position interact with our pending OpenAI fund-of-fund commitment? (Discussed separately, but worth noting concentration in the AI capex cycle.) + +## Vote + +David Park: **APPROVE** (proposer) +Sarah Chen (CIO): APPROVE — "I want explicit Q4 2024 thesis review on the calendar." +Rachel Wu: APPROVE — "Concur on sizing. Open to layering 1% in 60 days if price holds." +Marcus Reed: APPROVE — "Tracking the algorithmic-breakthrough risk closely. Dwarkesh and Karpathy both writing about this." +Priya Shah: ABSTAIN — "Conviction is right but I want more time on the AMD MI300 trajectory." + +**Outcome: APPROVED 4-0-1.** + +--- + +*Filed by David Park, 2023-09-14. To be revisited Q4 2024 per IC discipline.* diff --git a/demos/meridian-capital/ic-memos/2024-Q2-Anthropic-secondary.md b/demos/meridian-capital/ic-memos/2024-Q2-Anthropic-secondary.md new file mode 100644 index 0000000000..8df600a433 --- /dev/null +++ b/demos/meridian-capital/ic-memos/2024-Q2-Anthropic-secondary.md @@ -0,0 +1,115 @@ +--- +type: ic-memo +firm: Meridian Capital Partners +position: Anthropic (private, via secondary) +action: initiation +size: $18M (1.5% of AUM) +ic_date: 2024-06-12 +author: Marcus Reed (Mid-Level Analyst) +sponsor: David Park (Senior PM) +reviewers: Sarah Chen (CIO), Rachel Wu (Senior PM) +status: APPROVED +related_positions: [NVDA, MSFT] +parent_thesis: 2023-Q3-AI-infrastructure-thesis.md +predictions: + - id: PRED-2024Q2-007 + claim: Anthropic ARR will cross $1B by EOY 2024 + confidence: high + horizon: 6 months + resolution: pending + - id: PRED-2024Q2-008 + claim: Anthropic will close at $40B+ valuation in next funding round (within 12 months) + confidence: medium + horizon: 12 months + resolution: pending + - id: PRED-2024Q2-009 + claim: Anthropic will retain or extend its lead in agentic coding workflows through 2025 + confidence: medium + horizon: 18 months + resolution: pending +--- + +# Investment Committee Memo — Anthropic Secondary Initiation + +## Recommendation + +**INITIATE 1.5% position ($18M) via secondary at $24B valuation.** Lock-up: 2 years. Liquidity: anticipated tender offers + IPO. + +## Why secondary, why now + +Anthropic announced an internal tender offer for early employees and Series B investors. We secured an allocation through a relationship-driven introduction (David Park's connection to Spark Capital partner). Allocation is $18M at $24B post-money, representing approximately 0.075% of fully diluted shares. + +This is the earliest opportunity we have had to take meaningful exposure to a frontier AI lab at a sane valuation. OpenAI's last secondary cleared at $86B+ with structural lockups making liquidity questionable. Anthropic at $24B is roughly 1/3 the multiple on a comparable revenue base. + +## Thesis + +This position is derivative of our parent AI infrastructure thesis (2023-Q3-AI-infrastructure-thesis.md) but with a specific application-layer dimension we have not previously held. + +**Three structural arguments:** + +### 1. Frontier model performance is differentiating, not converging + +Through 2023, the assumption was that frontier models would converge — GPT-4 / Claude 3 / Gemini Ultra at roughly equivalent capability. 2024 disclosures suggest that's not happening. Specifically: + +- **Coding benchmarks:** Claude 3 Opus's lead on SWE-bench and HumanEval has widened, not narrowed, since release. As of our data (April 2024), Claude is +12 to +18 percentage points over GPT-4 on production coding workflows reported by Replit, Cursor, GitHub Copilot. +- **Long-horizon reasoning:** Claude 3 Opus shows distinct strength on multi-step reasoning tasks where context exceeds 50K tokens. Anthropic's constitutional AI training methodology appears to produce systematically better long-context coherence. +- **Tool use:** Anthropic has been first or co-first to ship every major tool-use capability since 2023 (Claude tool use, computer use). The product velocity gap is widening. + +If frontier models converge, our position is mediocre infrastructure exposure. If they diverge, Anthropic captures asymmetric value because they are the technical leader. + +### 2. Coding agents are the first major commercial wedge for frontier AI + +Claude Code, Cursor, Replit Agent, Devin — all 2024 product launches. The coding agent category went from "experimental" to "$50M+ ARR per leader" within 12 months. Anthropic powers most of these via API revenue share. Our internal estimate (David Park + Marcus Reed) is that coding workflows currently account for 35-45% of Anthropic's API revenue. + +Coding is the wedge for two reasons. First, it has clear ROI (engineer hours saved, measurable). Second, it is verifiable (the code either works or doesn't) which makes it tractable for current AI capability levels. Coding is therefore a leading indicator for which frontier lab will dominate the next wave of agentic applications. + +Anthropic's lead on coding implies a downstream lead on agentic enterprise applications. + +### 3. Dario Amodei's constitutional AI methodology is becoming a commercial moat + +The constitutional AI training methodology (RLHF + RLAIF + explicit constitutional rules) was originally framed as a safety story. Increasingly it is functioning as a **product story** — Claude is the model that enterprise buyers are choosing because it has more predictable behavior under adversarial inputs and clearer refusal patterns. + +For enterprise AI deployments where misbehavior is a liability event (legal, financial advisory, healthcare), Claude's predictability is a buying criterion. This is hard to replicate without re-implementing constitutional AI from scratch, which OpenAI and Google have not publicly done at the same depth. + +## Position sizing rationale + +$18M at $24B is a small position both as percentage of AUM (1.5%) and as percentage of Anthropic's cap table (0.075%). We are sized for asymmetric upside without taking concentration risk in a single private name. + +The illiquidity premium we are accepting: +- 2-year lock-up at minimum, possibly longer if no tender or IPO +- Limited information rights (we receive top-of-funnel updates only) +- Tax inefficiency relative to public exposure + +The asymmetric upside we are buying: +- 5-10x potential upside if Anthropic IPOs at $200B+ or trades at OpenAI-comparable secondary multiples +- Optionality on AI capability outcomes that public infrastructure positions don't capture +- A position in the application layer to balance our infrastructure-heavy 2023 positioning + +## What kills this thesis + +1. **Frontier model convergence.** If Claude / GPT / Gemini converge at the same capability ceiling, the value of being technically ahead compresses to zero. +2. **OpenAI distribution moat.** If GPT API + ChatGPT consumer + Microsoft enterprise distribution captures the bulk of agentic AI economic value regardless of model quality, Anthropic's technical lead doesn't translate to market share. +3. **Foundation lab vertical encroachment by hyperscalers.** Google integrating Gemini deeply into Workspace + Cloud + Android creates a distribution moat Anthropic can't match. +4. **Capital inefficiency.** Anthropic's compute requirements scale faster than revenue. They could need $20B+ in funding to reach IPO scale, which dilutes our position significantly. + +We will reassess in Q2 2025 explicitly. + +## Position interaction with existing portfolio + +This position has positive correlation with our NVDA exposure (Anthropic is a major NVIDIA customer for training compute). It has positive correlation with MSFT (indirect — both benefit from frontier AI commercial adoption). It is mildly negatively correlated with our SNOW position (frontier AI applications may bypass cloud data warehouses for AI-native data infrastructure). + +Net portfolio impact: increases AI-thematic concentration from 11.5% to 13.0% of AUM. We are explicitly comfortable with this level of thematic concentration given the conviction. + +## Vote + +Marcus Reed: APPROVE (proposer) +David Park: APPROVE — "Conviction high, sizing appropriate." +Sarah Chen: APPROVE — "I want explicit Q1 2025 reassessment on whether the technical lead is holding." +Rachel Wu: APPROVE — "Concur. Open to layering 50 bps if a follow-on opportunity emerges in next 12 months." +Priya Shah: ABSTAIN — "I think the position is right but I'm not confident in the constitutional AI moat argument. Want more time." + +**Outcome: APPROVED 4-0-1.** + +--- + +*Filed by Marcus Reed, 2024-06-12. Q1 2025 reassessment scheduled.* diff --git a/demos/meridian-capital/ic-memos/2024-Q4-NVDA-followon-thesis-revision.md b/demos/meridian-capital/ic-memos/2024-Q4-NVDA-followon-thesis-revision.md new file mode 100644 index 0000000000..56f90aa675 --- /dev/null +++ b/demos/meridian-capital/ic-memos/2024-Q4-NVDA-followon-thesis-revision.md @@ -0,0 +1,136 @@ +--- +type: ic-memo +firm: Meridian Capital Partners +position: NVDA +action: thesis revision (no position change) +size: maintain 4.5% of AUM +ic_date: 2024-12-04 +author: David Park (Senior PM) +reviewers: Sarah Chen (CIO), Rachel Wu (Senior PM), Marcus Reed +status: APPROVED +related_positions: [MSFT, MSFT, AVGO] +parent_thesis: 2023-Q3-AI-infrastructure-thesis.md +predictions: + - id: PRED-2023Q3-001 + claim: NVDA datacenter revenue will exceed $40B annualized by EOY 2024 + confidence: high + horizon: 15 months + resolution: CONFIRMED EARLY (Q4 2024 datacenter revenue $54B annualized) + - id: PRED-2024Q4-012 + claim: NVDA networking revenue will exceed datacenter compute revenue by 2027 + confidence: medium + horizon: 36 months + resolution: pending + - id: PRED-2024Q4-013 + claim: Hyperscaler in-house silicon will reach 25%+ of internal training compute by EOY 2025 + confidence: medium + horizon: 12 months + resolution: pending + - id: PRED-2024Q4-014 + claim: NVDA gross margin will compress 200-400 bps over the next 8 quarters as in-house silicon scales + confidence: medium + horizon: 24 months + resolution: pending +flagged_for_revision: + - parent_thesis: 2023-Q3-AI-infrastructure-thesis.md, Pillar 1 (compute scarcity) +--- + +# Investment Committee Memo — NVDA Thesis Revision (No Position Change) + +## Recommendation + +**MAINTAIN 4.5% NVDA position. NO size change. Revise underlying thesis.** + +This memo is unusual in that the position size doesn't change but the thesis does. We are flagging this explicitly because it sets up the disciplined reduction we expect to make in 2025-2026 as the revised thesis plays out. + +## Why we are revising the thesis + +Two things have happened since our 2023-Q3 initiation memo that materially change our forward-looking model. + +### Change 1: Pillar 1 (compute scarcity) is showing structural weakness + +The original thesis argued that compute scarcity would persist as long as scaling produces capability gains. The first half of that conditional remains true — frontier labs still get capability gains from scaling. The second half is where the model is breaking. + +Specifically: even though absolute compute demand is rising, the **per-unit-of-intelligence cost** is dropping faster than we modeled. Recent data points: + +- Anthropic's API pricing for Claude 3.5 dropped 40% from initial Claude 3 release (8 months elapsed) +- OpenAI's GPT-4o reduced inference cost by ~70% from GPT-4 turbo +- DeepSeek's V3 release demonstrated frontier-class capability at roughly 1/10 of GPT-4 training cost +- Open-source models (Llama 3.1, Mistral) reaching 90%+ of frontier capability at orders of magnitude less compute + +Reading these together: **compute is still scarce but its commercial value as a moat is compressing.** The per-token economics that backed our infrastructure thesis are weakening. + +This doesn't kill the position. NVIDIA still earns the revenue we predicted (PRED-2023Q3-001 confirmed early). But it changes our forward model: + +- The revenue curve is flatter than we assumed (the steepest growth was 2023-2024, not 2024-2026) +- The margin curve has new pressure (compression coming as hyperscalers scale in-house silicon) +- The duration of the cycle is shorter than we assumed (we previously modeled 36 months of structural tailwind; we now model 18-24) + +### Change 2: Pillar 3 (hyperscaler capex pre-allocation) is starting to show second-order effects + +The original thesis correctly predicted that hyperscaler capex commitments would land at $200B+ aggregate for 2025. That's confirmed (PRED-2023Q3-003 will close above target). + +What we missed in the original analysis: the capex is being increasingly allocated to **internal silicon** rather than NVIDIA chips. AWS Trainium is at 18% of Bedrock inference workloads as of Q3 2024. Google TPU v5p ramping fast. Microsoft Maia announced with $5B initial commitment. Meta MTIA scaling. + +The hyperscaler capex pie is growing, but NVIDIA's share of that pie is starting to compress. We should have flagged this risk at higher probability in the 2023 thesis (we listed it at "medium 40% probability"; the actual trajectory looks like 60%+). + +## What we are NOT changing + +The Pillar 2 argument (CUDA + networking + system design moat) is HOLDING. NVIDIA's networking revenue is growing 60%+ YoY. The InfiniBand business and Spectrum-X portfolio are now meaningful revenue contributors. The system-design integration (Grace + Hopper + InfiniBand as a unified rack) is genuinely hard to replicate. + +Our revised model treats networking and system design as the surviving moat, with raw chip pricing power as the eroding component. This is consistent with NVIDIA's own strategic communications — Jensen Huang's recent commentary emphasizes "platforms" and "data center as a unit" framing, which signals their own awareness of where the durable value is shifting. + +## Updated price model + +Original (Q3 2023) thesis target: $750-900 over 18 months. We're at $1,124 — significantly above the original upper bound, two quarters ahead of timeline. + +Revised forward target: +- 12-month: $1,150-1,300 (modest upside) +- 24-month: $1,000-1,400 (mean-reverting band, depends on in-house silicon ramp speed) +- 36-month: highly bimodal (either $1,800+ if networking story dominates, or $700-900 if in-house silicon erodes margins faster than expected) + +Given the bimodality, we think the right discipline is to take partial profits in 2025 (Q1-Q2 likely) rather than holding the full position into the bimodal outcome. We are not making that call today; flagging it for IC discussion in Q1 2025. + +## What we are watching to drive the decision + +Three leading indicators with explicit thresholds for action: + +| Indicator | Current | Trim threshold | +|---|---|---| +| AWS Trainium share of Bedrock inference | 18% | Trim 25% of NVDA position when this crosses 30% | +| Google TPU v5p deployment progress | Ramping per Q3 earnings | Trim if Google publicly attributes >40% of internal AI compute to TPU | +| NVDA gross margin trajectory | 75% (peak) | Trim if margin compresses to <72% in any single quarter | + +These thresholds make our decision rule explicit and rules-based rather than narrative. We commit to acting on them when they trigger. + +## What still kills this thesis (updated risk table) + +| Risk | Original probability | Revised probability | Why changed | +|---|---|---|---| +| Algorithmic compute reduction (>5x) | 15% | 35% | DeepSeek V3 + Mamba-style architectures + recursive models showing real compute reduction | +| AMD/Intel CUDA-equivalent | 30% | 25% | ROCm progress real but not closing fast enough to threaten 2025 | +| Hyperscaler in-house chips at scale | 40% | 60% | Materially worse than original — Trainium and TPU ramping faster than expected | +| Capex pause | 15% | 10% | Macro environment looks more supportive than we feared in 2023 | + +Two of three high-impact risks have moved adversely since 2023 thesis. We are now in a position where the thesis is functional but no longer asymmetric. That's the basis for the trim discipline we are setting up. + +## Vote + +David Park: APPROVE thesis revision, MAINTAIN position +Sarah Chen: APPROVE — "I want this revision documented because we will be referencing it in 2025-2026 when we trim. The lineage matters." +Rachel Wu: APPROVE — "Concur on revised model. The trim threshold table is the right discipline." +Marcus Reed: APPROVE — "We should also start scoping replacement positions now so we're ready to redeploy when we trim." + +**Outcome: APPROVED 4-0.** + +--- + +## Followups required + +1. Marcus Reed to draft a Q1 2025 thesis update for the parent sector thesis (2023-Q3-AI-infrastructure-thesis.md), noting Pillar 1 weakness explicitly. +2. David Park to scope alternative AI-thematic positions for Q1 2025 IC (vertical AI applications — see Q1 2026 vertical bucket initiation). +3. Priya Shah to track the three leading indicators monthly and flag if any cross threshold. + +--- + +*Filed by David Park, 2024-12-04. Thesis revision approved. Position size unchanged. Trim discipline activated for 2025.* diff --git a/demos/meridian-capital/ic-memos/2026-Q1-vertical-AI-bucket-initiation.md b/demos/meridian-capital/ic-memos/2026-Q1-vertical-AI-bucket-initiation.md new file mode 100644 index 0000000000..73e70ac51a --- /dev/null +++ b/demos/meridian-capital/ic-memos/2026-Q1-vertical-AI-bucket-initiation.md @@ -0,0 +1,191 @@ +--- +type: ic-memo +firm: Meridian Capital Partners +position: Vertical AI Applications (bucket initiation) +action: bucket initiation +size: 6-8% of AUM aggregate (target) +ic_date: 2026-02-18 +author: David Park (Senior PM) +co_author: Marcus Reed (Mid-Level Analyst) +reviewers: Sarah Chen (CIO), Rachel Wu (Senior PM) +status: APPROVED (bucket framework); position-level approvals to follow +related_positions: [NVDA - existing; SNOW - reducing] +parent_thesis: 2026-Q1-AI-infrastructure-thesis-revised.md +predictions: + - id: PRED-2026Q1-019 + claim: At least one vertical AI application company will reach $100M ARR within 18 months + confidence: high + horizon: 18 months + resolution: pending + - id: PRED-2026Q1-020 + claim: Foundation labs (OpenAI, Anthropic) will not vertically integrate into >2 of our target verticals within 24 months + confidence: medium + horizon: 24 months + resolution: pending + - id: PRED-2026Q1-021 + claim: Vertical AI customer net dollar retention will exceed 130% in best-positioned categories + confidence: medium + horizon: 24 months + resolution: pending +funding_source: + - SNOW reduction (2.5% → 1.0%) = +1.5% AUM + - NVDA further trim (3.0% → 2.0%) over Q2-Q3 2026 = +1.0% AUM + - Cash and money market = +3-5% AUM +total_capacity: ~6-7.5% of AUM +--- + +# Investment Committee Memo — Vertical AI Applications Bucket Initiation + +## Recommendation + +**APPROVE the establishment of a Vertical AI Applications position bucket sized at 6-8% of AUM aggregate.** Specific position-level memos to follow Q2-Q4 2026. + +This memo establishes the bucket framework, sourcing criteria, and position-sizing discipline. It does NOT approve specific positions — those will come through individual IC memos. + +## Why a bucket, not single-name positions + +Vertical AI is at a pre-clear-winner stage. We expect 4-6 sub-categories where one or two clear winners will emerge over the next 24 months. Our prior pattern (concentrated single-name positions like NVDA at 4.5%) is structurally wrong here because: + +1. **Category leader uncertainty.** In legal-tech, Harvey is the visible front-runner but not the only credible competitor (we are watching ~12 companies). Concentrating in Harvey at 4% would be a single-name bet on a category that's not stable yet. + +2. **Business model uncertainty.** Vertical AI applications are charging anywhere from $50K/seat/year (data analytics) to $20K/seat/year (legal research) to $5K/seat/year (clinical decision support). The unit economics that work are not yet known. + +3. **Distribution model uncertainty.** Some categories will go through systems integrators (large law firms via existing tech vendors). Others will go direct (mid-market). Some will go via foundation labs as embedded features. We don't yet know which model wins per vertical. + +The right structure is a bucket of 4-6 positions sized at 1-2% each, with the option to concentrate one or two as winners emerge. + +## Bucket sourcing criteria + +A position is eligible for this bucket if it satisfies all five criteria: + +### Criterion 1: Vertical-specific corpus + +The company's core product compresses or operates on a domain-specific corpus that incumbents cannot easily replicate. Examples: +- Legal precedent and statutory codes +- Clinical trial outcomes and medical literature +- Financial filings, earnings calls, expert call transcripts +- Patent prior art and IP litigation outcomes +- Regulatory rulings and compliance documents + +**This excludes:** generic horizontal AI tools (ChatGPT for business, generic CRM AI features). + +### Criterion 2: Architectural depth beyond LLM-wrapper + +The product cannot be replicated by a startup wrapping ChatGPT or Claude. Specifically, we look for at least one of: +- Domain-specific fine-tuning or model customization +- Knowledge graph or compression structure that adds value above naive retrieval +- Multi-agent orchestration tuned to vertical workflows +- Lineage / citation / audit infrastructure that vertical buyers require + +**Why:** wrapper products commoditize within 12 months of launch. Architectural depth is the duration moat. + +### Criterion 3: Trust requirements aligned with architectural strengths + +The vertical buyer has trust requirements that map to architectural choices the company has made. Examples: +- Legal: citation accuracy is malpractice-grade. Lineage architecture is necessary, not nice-to-have. +- Clinical: evidence grading and retraction tracking are FDA-grade. Retirement of superseded conclusions is necessary. +- Financial advisory: predictability under adversarial inputs is fiduciary-grade. Constitutional AI or equivalent is necessary. + +**Why:** trust-by-architecture is the moat we identified in the parent sector thesis. Companies whose architecture aligns with vertical trust requirements have differentiated buying criteria. + +### Criterion 4: Demonstrable customer compounding (NDR) + +The company has at least 6 months of public or available customer data showing net dollar retention above 120%. We are explicitly excluding companies whose growth is purely new-logo acquisition without expansion. + +**Why:** the NDR-as-leading-indicator lesson from our TWLO post-mortem (Q1 2025). Single-cohort expansion is the leading indicator that the moat is real. + +### Criterion 5: Founder profile match + +The company is founded by someone with deep domain credibility, not just AI/engineering credibility. Specifically: +- Legal-tech: lawyer cofounder +- Clinical: physician cofounder +- Financial advisory: ex-investment professional cofounder +- Compliance: ex-regulator or compliance officer cofounder + +**Why:** the empirical pattern (Harvey, EvenUp, Casetext) is that vertical AI without domain founder credibility loses to vertical AI with it. This is a buying-criteria match, not just a capability match. + +## Target sub-categories + +Based on the criteria above, we are evaluating positions in five sub-categories: + +### Sub-category 1: Legal-tech for mid-market firms (~$3T legal services market) + +**Front-runner candidates:** Harvey (incumbent, may be over-priced at current valuation); specialty practice-area startups (immigration, IP litigation, estate planning) that Harvey doesn't address well. + +**Sizing:** 1.5-2% of AUM if we can find the right entry. Pass if entry valuations require >40x ARR. + +### Sub-category 2: Clinical decision support for specialty practices (~$200B opportunity) + +**Front-runner candidates:** Hippocratic AI, Iambic Therapeutics (drug discovery), Atropos Health (clinical evidence). We are also evaluating private deals at the early-stage VC layer. + +**Sizing:** 1.5% of AUM. Sub-category likely needs more time to mature; we may delay. + +### Sub-category 3: Financial-services workflow AI (~$100B opportunity in advisor + family-office tooling) + +**Front-runner candidates:** This is where it gets interesting for us — the architecture we believe in (compression hierarchy + lineage + retirement + prediction tracking) maps directly to family-office and small-fund decision infrastructure. Watching: emerging companies positioning explicitly as "thesis-lifetime infrastructure" — one publicly demonstrated this architecture in early 2026 (Zuhn / Zuun). + +**Sizing:** 1-2%, possibly more if the right entry emerges. Highest conviction sub-category given alignment with our own framework. + +### Sub-category 4: Knowledge management AI for professional services (~$80B consulting + accounting firm tooling) + +**Front-runner candidates:** Glean for enterprise search; vertical-specific options emerging. + +**Sizing:** 1% of AUM. Watch list, not initiating yet. + +### Sub-category 5: Agent infrastructure for enterprise deployments + +**Front-runner candidates:** This sub-category is the boundary case — could be enterprise software rather than vertical AI. Rogo (financial services), Hebbia (institutional research). + +**Sizing:** 1% of AUM. Watch list. + +## Funding sources + +Total bucket capacity: 6-8% of AUM ($72-96M against current ~$1.2B AUM). + +Sources: +- **SNOW reduction** (2.5% → 1.0% over Q2 2026): +1.5% AUM = $18M +- **NVDA further trim** (3.0% → 2.0% over Q3 2026): +1.0% AUM = $12M +- **Cash and money market**: +3-5% AUM = $36-60M + +We are NOT trimming MSFT (the application-layer beneficiary of the platform shift remains structurally interesting). We are NOT trimming Anthropic (the application-layer thesis we already hold; this bucket extends that exposure). + +## Position-level approval workflow + +Each position within the bucket requires a separate IC memo with: +1. Mapping to all five sourcing criteria +2. Specific predictions with horizon and resolution criteria +3. Trim discipline triggers (price-based and thesis-based) +4. Position interaction with existing portfolio + +We will NOT batch-approve positions. The bucket framework is approved; specific positions go through normal IC discipline. + +## What kills this bucket thesis + +1. **Foundation labs (OpenAI, Anthropic) vertically integrate.** If GPT or Claude ship vertical-specific applications that capture the legal / clinical / financial-services market via incumbent distribution, our positions at the application layer get crushed. +2. **Vertical AI fails to compound switching costs.** If the customer-specific corpora these companies build don't actually create asymmetric switching costs, the moat is not what we think. +3. **Macro shock compresses enterprise AI spending.** Vertical AI applications are at $20K-$50K/seat/year — premium pricing that depends on healthy enterprise budgets. +4. **The architectural daylight closes faster than expected.** Incumbents (Hebbia, AlphaSense) add compression hierarchy + retirement + lineage features and the structural advantage we are betting on shrinks to 12-18 months. + +## Vote + +David Park: APPROVE bucket framework +Sarah Chen: APPROVE — "I want monthly status on the three leading indicators we set in the parent sector thesis. This bucket is the bet I'm most concerned about getting wrong." +Rachel Wu: APPROVE — "Concur on framework. Want quarterly bucket review at IC." +Marcus Reed: APPROVE — "Strong personal conviction on sub-category 3. Will draft initiation memo for Q2." +Priya Shah: APPROVE WITH RESERVATION — "Framework is right. I'm worried about being early in 2-3 of these sub-categories." +Daniel Tanaka: APPROVE — "Junior input: I'd add the agent-infrastructure sub-category sizing should probably be larger if we believe the layer-above-the-model thesis." + +**Outcome: APPROVED 6-0.** + +--- + +## Followups + +1. Marcus Reed to draft Q2 2026 IC memo for sub-category 3 (financial-services workflow AI) +2. Priya Shah to compile competitive landscape for sub-category 1 (legal-tech) +3. James Liu to track foundation lab vertical encroachment quarterly +4. Quarterly bucket review at Q2, Q3, Q4 2026 IC meetings + +--- + +*Filed by David Park and Marcus Reed, 2026-02-18. Bucket framework approved. Specific positions to follow.* diff --git a/demos/meridian-capital/knowledge-base/MASTER_INDEX.md b/demos/meridian-capital/knowledge-base/MASTER_INDEX.md new file mode 100644 index 0000000000..e3cd7b7e4c --- /dev/null +++ b/demos/meridian-capital/knowledge-base/MASTER_INDEX.md @@ -0,0 +1,10 @@ +# Zuhn Knowledge Base + +> Start by ingesting content: `npm run ingest ` + +## Domains +No domains yet. Domains are created automatically when you extract insights. + +## Quick Links +- [Flags](meta/flags.md) — learning mechanism outputs +- [Stats](meta/stats.md) — knowledge base statistics diff --git a/demos/meridian-capital/knowledge-base/archive/stale/.gitkeep b/demos/meridian-capital/knowledge-base/archive/stale/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/demos/meridian-capital/knowledge-base/decisions/.gitkeep b/demos/meridian-capital/knowledge-base/decisions/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/demos/meridian-capital/knowledge-base/mental-models/.gitkeep b/demos/meridian-capital/knowledge-base/mental-models/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/demos/meridian-capital/knowledge-base/meta/flags.md b/demos/meridian-capital/knowledge-base/meta/flags.md new file mode 100644 index 0000000000..2d44e3fa95 --- /dev/null +++ b/demos/meridian-capital/knowledge-base/meta/flags.md @@ -0,0 +1,14 @@ +# Learning Layer Flags +Generated by learn.ts + +## COMPRESS +None. + +## DISCOVER +None. + +## GAP +None. + +## TRANSFER +None. diff --git a/demos/meridian-capital/knowledge-base/meta/pending-urls.txt b/demos/meridian-capital/knowledge-base/meta/pending-urls.txt new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/demos/meridian-capital/knowledge-base/meta/pending-urls.txt @@ -0,0 +1 @@ + diff --git a/demos/meridian-capital/knowledge-base/meta/stats.md b/demos/meridian-capital/knowledge-base/meta/stats.md new file mode 100644 index 0000000000..7d5a13a32b --- /dev/null +++ b/demos/meridian-capital/knowledge-base/meta/stats.md @@ -0,0 +1,8 @@ +# Knowledge Base Stats + +> Generated: 2026-05-03 + +- **Total insights:** 0 +- **Domains:** 0 +- **Topics:** 0 +- **Tags:** 0 diff --git a/demos/meridian-capital/knowledge-base/predictions/.gitkeep b/demos/meridian-capital/knowledge-base/predictions/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/demos/meridian-capital/knowledge-base/sources/_index.md b/demos/meridian-capital/knowledge-base/sources/_index.md new file mode 100644 index 0000000000..0955c6fbac --- /dev/null +++ b/demos/meridian-capital/knowledge-base/sources/_index.md @@ -0,0 +1,3 @@ +# Source Index + +No sources yet. Run `npm run ingest ` to add your first source. diff --git a/demos/meridian-capital/knowledge-base/sources/paste/sample-spacing-effect.md b/demos/meridian-capital/knowledge-base/sources/paste/sample-spacing-effect.md new file mode 100644 index 0000000000..f68c8edfea --- /dev/null +++ b/demos/meridian-capital/knowledge-base/sources/paste/sample-spacing-effect.md @@ -0,0 +1,17 @@ +--- +id: SRC-000000-DEMO +type: paste +title: 'The Spacing Effect: Why Distributed Practice Beats Cramming' +date_ingested: '2026-05-03' +insight_count: 0 +word_count: 195 +--- +Research consistently shows that distributed practice dramatically outperforms massed practice for long-term retention. Students who space their study sessions across multiple days retain two to three times more material than those who cram the same total hours into a single session. + +The mechanism appears to be retrieval difficulty: when you revisit material after a delay, the slight effort of recalling it strengthens the memory trace. This is counterintuitive because spaced practice feels harder and less productive in the moment, even though it produces superior long-term results. + +The spacing effect applies beyond academic study. Companies that ship features in small, frequent releases build more institutional knowledge than those shipping large quarterly releases. Musicians who practice scales for ten minutes daily improve faster than those who practice seventy minutes once a week. + +The optimal spacing interval grows with expertise: beginners benefit from daily review, while experts may need only monthly refreshers. The Leitner system exploits this by sorting flashcards into boxes with increasing review intervals based on recall accuracy. + +One practical implication: if you can only do one thing to improve learning, don't change what you study — change when you study it. diff --git a/demos/meridian-capital/knowledge-base/tags/_index.md b/demos/meridian-capital/knowledge-base/tags/_index.md new file mode 100644 index 0000000000..166e844ffb --- /dev/null +++ b/demos/meridian-capital/knowledge-base/tags/_index.md @@ -0,0 +1,3 @@ +# Tag Index + +No tags yet. Tags are created automatically during insight extraction. diff --git a/demos/meridian-capital/knowledge-base/tensions/.gitkeep b/demos/meridian-capital/knowledge-base/tensions/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/demos/meridian-capital/meeting-notes/2025-Q2-pope-podcast-summary.md b/demos/meridian-capital/meeting-notes/2025-Q2-pope-podcast-summary.md new file mode 100644 index 0000000000..c494f98394 --- /dev/null +++ b/demos/meridian-capital/meeting-notes/2025-Q2-pope-podcast-summary.md @@ -0,0 +1,94 @@ +--- +type: meeting-note +firm: Meridian Capital Partners +note_type: external-content-summary +source: Reiner Pope on Dwarkesh Patel podcast +source_date: 2025-04-29 +source_url: https://youtu.be/xmkSf5IS-zw +source_duration: 133 minutes +note_author: Marcus Reed (Mid-Level Analyst) +note_date: 2025-05-08 +shared_with: David Park, Sarah Chen, Rachel Wu +tagged_principles_affected: + - '"Compute scarcity creates a durable infrastructure moat" (PRI-MERIDIAN-2023-001)' + - '"Hyperscaler capex commitments are structurally pre-allocated" (PRI-MERIDIAN-2023-002)' +priority: HIGH (potentially thesis-impacting) +--- + +# Meeting Note — Reiner Pope on Dwarkesh Patel (External Content) + +## Why this is in our research notes + +Reiner Pope is CEO of MatX (chip startup, ex-Google TPU architect). His 2hr blackboard lecture on Dwarkesh Patel's podcast contains the most rigorous public analysis I have seen of the AI infrastructure cost economics. It directly bears on the Pillar 1 argument of our parent infrastructure thesis (2023-Q3-AI-infrastructure-thesis.md). + +I am summarizing it here because David flagged it as potentially thesis-impacting and Sarah asked for written analysis before the next IC. + +## The single most important claim + +**Frontier model intelligence cost is dropping ~4x per year while total spending is rising ~10x per year.** + +If this holds, the gap between those curves is the window in which infrastructure pricing power persists. Once intelligence-cost decline outpaces spend growth (or even matches it for sustained periods), per-unit-of-intelligence revenue compresses regardless of total demand growing. + +This is a different economic argument from "compute scarcity" or "hyperscaler capex commitments." It is the deeper claim that the **commercial value** of compute as a moat depends on the cost-curve race, not on absolute scarcity. + +## Pope's quantitative arguments + +### Argument 1: Optimal training balances pretraining + RL + inference compute + +Pope walks through the cost-minimization argument at the blackboard. Total cost = pretraining cost + RL cost + inference cost. For cost functions that follow power laws, the minimum is approximately where each term is equal. Applied to frontier training: optimal split is roughly 1/3 pretraining, 1/3 RL, 1/3 inference over the model's deployed lifetime. + +**Implication for our thesis:** Frontier labs are not just demand-takers for compute. They actively optimize the training/inference balance. As inference economics improve (smaller models, better serving infrastructure, recursion-based reasoning), pretraining compute demand can plateau or decline relative to total compute spend. + +### Argument 2: Models are ~100x over-trained vs Chinchilla optimal + +Pope: with ~100B active parameters and ~150T pretraining tokens, frontier models are ~100x past Chinchilla-optimal training. Chinchilla optimum would be ~1.5T training tokens for that model size. Why? Because Chinchilla optimizes training compute alone — it ignores inference cost. When you also amortize over RL generation and 2 months of serving 50M+ tokens/second, the optimum shifts dramatically toward smaller models trained much longer. + +**Implication for our thesis:** This is a pricing efficiency argument. Frontier labs are willing to spend more on training to reduce inference cost because total system cost is what matters. As inference becomes a larger share of total cost, the "training compute scarcity" argument that backed our 2023 thesis becomes less central. The labs themselves are trading training compute for cheaper inference. + +### Argument 3: Per-token economics from API pricing + +Pope reverse-engineers API pricing to demonstrate the cost dynamics. Specifically: +- Decode is memory-bandwidth-bound; prefill is compute-bound +- Hyperscaler API providers charge ~5x more for decode tokens than prefill tokens because decode is more bandwidth-constrained +- Cache-hit pricing (10x cheaper than cache-miss) reveals provider memory-tier strategy + +**Implication for our thesis:** The cost structure of inference is much more complex than our 2023 model assumed. We treated NVIDIA as the primary economic beneficiary of the compute cycle. The reality is that memory bandwidth, networking, and cache architecture are all cost-determining, and these are areas where hyperscaler in-house silicon has more architectural freedom than pure GPU pricing. This re-prioritizes the "hyperscaler in-house chips" risk in our thesis. + +### Argument 4: Recursive architectures (HRM, TRM) as scaling-law alternatives + +Pope discusses Karpathy / Chollet work on recursive architectures. 7M parameter models can beat frontier-scale models on specific reasoning tasks via inference-time recursion. If recursion-as-a-scaling-axis holds, parameter count's dominance as the binding constraint weakens. + +**Implication for our thesis:** This is the most speculative argument but also the most thesis-impactful if it holds. If frontier capability can be achieved at orders of magnitude less compute via architectural innovation, the entire compute-as-moat argument collapses on a 24-36 month horizon. We should be tracking recursive architecture research output very carefully. + +## How this changes our forward view + +I think this analysis materially shifts our forward model on NVDA and the broader infrastructure thesis. Specifically: + +1. **The compute-scarcity argument is more time-bounded than we assumed.** Not invalidated but the window is shorter than the 36-month horizon we wrote into the 2023 thesis. + +2. **The mix of "what's scarce" is changing.** Memory bandwidth and networking are increasingly the bottleneck rather than raw FLOPs. NVIDIA's networking exposure (Mellanox / NVLink / InfiniBand) is more durable than the GPU pricing power. + +3. **The labs themselves are unlikely to remain pure compute-buyers.** They are actively optimizing training/inference economics. As inference gets cheaper through architectural innovation, training compute demand growth slows. + +## What I am recommending + +I think we need to: + +1. **Formally revise Pillar 1 of the parent thesis** to include rate-of-change of compute scarcity, not just binary scarcity. +2. **Tighten the trim thresholds we set in the Q4 2024 NVDA revision memo.** Specifically, the threshold for AWS Trainium share of Bedrock inference (currently 30%) should probably be 25% given how fast this is moving. +3. **Begin scoping the replacement thesis explicitly.** The 2026-Q1-AI-infrastructure-thesis-revised.md document should anchor on rate-of-change arguments and explicitly model when each phase of the platform shift transitions. + +I will draft a Pillar 1 revision document for the next IC. + +## Related principles affected + +Two firm principles are now in WARNING status based on this content: + +- **PRI-MERIDIAN-2023-001** ("Compute scarcity creates a durable infrastructure moat") — partially weakened. Not yet retired but on the path. +- **PRI-MERIDIAN-2023-002** ("Hyperscaler capex commitments are structurally pre-allocated through 2025") — confirmed but the implication (NVIDIA captures the pie) is weakening because the share-of-pie argument is breaking. + +The analysis is detailed enough that I think we should send Pope's full transcript to all senior PMs for direct review. I am attaching the source URL. + +--- + +*Filed by Marcus Reed, 2025-05-08. Pope content is external; we are quoting and analyzing, not original to Meridian. To be reviewed at next IC.* diff --git a/demos/meridian-capital/post-mortems/2025-Q1-TWLO-postmortem.md b/demos/meridian-capital/post-mortems/2025-Q1-TWLO-postmortem.md new file mode 100644 index 0000000000..f4bbd76bee --- /dev/null +++ b/demos/meridian-capital/post-mortems/2025-Q1-TWLO-postmortem.md @@ -0,0 +1,118 @@ +--- +type: post-mortem +firm: Meridian Capital Partners +position: TWLO +action: closed +entry_date: 2022-04-18 +entry_price: $214 +exit_date: 2025-02-20 +exit_price: $58 +holding_period: 34 months +total_return: -73% +size_at_entry: 2.8% of AUM +size_at_exit: 0.4% of AUM (after partial trims) +authors: Rachel Wu (Senior PM), Marcus Reed (Mid-Level Analyst) +related_predictions: + - 'PRED-2022Q1-009: "Communication APIs will become foundational infrastructure as every consumer app embeds messaging" — FALSIFIED' + - 'PRED-2022Q1-010: "TWLO net dollar retention will hold above 130% through 2024" — FALSIFIED (declined to 102% by Q4 2024)' + - 'PRED-2022Q1-011: "Segment acquisition will integrate cleanly within 18 months" — PARTIALLY FALSIFIED' +retired_principles: + - '"Communication API spend grows linearly with consumer app proliferation" (retired 2024-Q3)' + - '"Customer data platform consolidation favors API-first vendors" (superseded by AI-agent-native architectures)' +status: ARCHIVED +--- + +# Position Post-Mortem — Twilio (TWLO) + +## Outcome + +**Total realized loss: -73% over 34 months. $24M absolute loss against $33M peak position size.** + +Trim history: +- 2022-04: Entry at $214, 2.8% of AUM +- 2023-08: Trimmed 35% at $66 (-69%) — stop-loss discipline +- 2024-04: Trimmed another 30% at $61 (-71%) — thesis weakening +- 2025-02: Exit final 0.4% at $58 (-73%) + +## What we predicted at entry (Q1 2022) + +The original IC memo (2022-04-18) committed to three explicit predictions: + +1. **"Communication APIs will become foundational infrastructure as every consumer app embeds messaging."** + At entry, this looked structural. Stripe + Twilio were the clear winners of API-economy SaaS. We expected per-message volume to grow at 30%+ CAGR through 2025. + +2. **"TWLO net dollar retention will hold above 130% through 2024."** + Land-and-expand was the core economic argument. Twilio's enterprise customers were expanding API usage 35-45% YoY in 2021. We expected this to compress slightly to 130%+ but remain dominant. + +3. **"Segment acquisition will integrate cleanly within 18 months."** + We saw Segment as the customer data platform that would extend Twilio from messaging into a broader engagement layer. Synergies were estimated at $200M ARR by 2024. + +## What actually happened + +Each prediction failed for a related but distinct reason: + +### Prediction 1 — Communication APIs as foundational infrastructure: **FALSIFIED** + +**What we missed:** AI agents are starting to replace human-driven messaging flows. Customer service bots, transactional notifications, even consumer engagement loops are increasingly handled by agents that don't need to interact with a third-party messaging API — they live inside the application directly. + +By Q3 2024, multiple TWLO customers had begun internalizing messaging functions (or routing through OpenAI / Anthropic agent infrastructure that bundles communication primitives). The "every app embeds messaging" thesis was correct directionally but the *who provides the embed* assumption was wrong. + +**Root cause analysis:** We anchored on the API-economy frame (every primitive becomes a paid API) without asking whether the primitive itself becomes commodity in an AI-native world. The communication layer is genuinely commoditizing. + +### Prediction 2 — Net dollar retention above 130%: **FALSIFIED** + +**Actual NDR trajectory:** +- 2022 Q1: 130% (entry baseline) +- 2023 Q4: 113% +- 2024 Q4: 102% + +**What we missed:** The expansion stopped not because customers churned but because new use cases didn't materialize. AI-native applications launched in 2023-2024 chose different infrastructure. Existing customers maintained baseline TWLO usage but didn't expand into new product lines because new product lines were AI-first and bypassed Twilio entirely. + +**Root cause analysis:** We monitored the wrong leading indicator. NDR captures expansion from existing customers; it doesn't capture share of new customer cohorts choosing alternative infrastructure. By the time NDR compressed, the new-cohort capture rate had already cratered. + +### Prediction 3 — Segment integration in 18 months: **PARTIALLY FALSIFIED** + +Technical integration completed in ~14 months. But the strategic synergy did not materialize. Segment customers and Twilio customers turned out to have low overlap; cross-sell motion stalled at 8% (vs 25% projected). Twilio wrote down ~$2.4B of Segment goodwill in 2024. + +**Root cause analysis:** The "communication + customer data" bundle was a coherent product story but customers buy on different procurement cycles. Marketing/CDP buyers and developer/communication buyers don't sit in the same procurement org. We underweighted this. + +## What this teaches us (institutional learning) + +Three lessons we are encoding into firm principles: + +### Principle 1: API-economy moats erode in AI-native architectures + +**Specifically:** When a primitive (messaging, payments, search, identity) can be embedded directly into an AI agent's runtime, the API-as-product model loses pricing power. The value migrates from the API provider to whoever owns the agent. + +**Watch list:** Stripe (payments), Plaid (financial data), SendGrid (email — also TWLO), Auth0 (identity). All face similar dynamics 2-5 years out depending on AI-native displacement curves. + +### Principle 2: Net dollar retention is a lagging indicator, not a leading one + +**Specifically:** NDR captures historical cohort behavior. It doesn't capture new-cohort acquisition rates. In a market undergoing structural shift, monitoring only NDR can produce 6-12 months of false comfort while the underlying franchise erodes. + +**Operational change:** Add "new-cohort-acquisition rate" as a primary metric for any SaaS position. Specifically: % of newly-funded AI-native companies in our coverage that adopt the position's product. This is the leading indicator we missed on TWLO. + +### Principle 3: Acquisition synergies should be discounted by procurement-org alignment + +**Specifically:** When two products serve different procurement orgs (developer vs marketer, IT vs product, etc.), cross-sell synergies underperform projections by 60-80%. This is true even when the technical integration is clean. + +**Operational change:** When evaluating M&A-driven theses, explicitly map which procurement org buys each product. Cross-sell projections are only credible when both products clear the same procurement gauntlet. + +## Predictions retired by this post-mortem + +These were derivative principles in our firm corpus that we are explicitly retiring as superseded: + +- **"Communication API spend grows linearly with consumer app proliferation"** — retired 2024-Q3, formalized in this post-mortem 2025-Q1. +- **"Customer data platform consolidation favors API-first vendors"** — superseded by AI-agent-native CDP architectures (Hightouch's pivot, Census's compression). + +Future positions should not anchor on these. + +## Position-level epitaph + +We held Twilio for 34 months and lost 73% of capital deployed. The early position trim discipline (2023-08 at -69%) limited the absolute loss to $24M against a potential $44M maximum drawdown if we had held the full position. + +The thesis was reasonable at entry given 2022 information. The thesis broke for reasons we did not have a frame for in 2022 (AI-native displacement of API-economy primitives). That frame now exists in our principle library and should reduce the probability of repeating this specific mistake. + +--- + +*Filed by Rachel Wu and Marcus Reed, 2025-02-25. Reviewed by Sarah Chen 2025-03-04. Encoded as firm principles 2025-03-15.* diff --git a/demos/meridian-capital/post-mortems/2025-Q3-NVDA-mid-position-postmortem.md b/demos/meridian-capital/post-mortems/2025-Q3-NVDA-mid-position-postmortem.md new file mode 100644 index 0000000000..9cfa6961e2 --- /dev/null +++ b/demos/meridian-capital/post-mortems/2025-Q3-NVDA-mid-position-postmortem.md @@ -0,0 +1,161 @@ +--- +type: post-mortem +firm: Meridian Capital Partners +position: NVDA +action: mid-position review (not closed) +entry_date: 2023-09-14 +entry_price: $445 +current_date: 2025-09-30 +current_price: $1,180 +holding_period: 24 months (still open) +unrealized_return: +165% (peak), +132% currently +size_at_entry: 4.0% of AUM +current_size: 3.0% of AUM (after Q3 2025 trim) +authors: David Park (Senior PM), Marcus Reed (Mid-Level Analyst) +related_predictions: + - 'PRED-2023Q3-001: "NVDA datacenter revenue will exceed $40B annualized by EOY 2024" — CONFIRMED EARLY (Q4 2024, $54B)' + - 'PRED-2023Q3-002: "H100 demand will outstrip supply through Q4 2024 with allocation rationing" — CONFIRMED' + - 'PRED-2023Q3-003: "Hyperscaler capex commitments will reach $200B+ aggregate by EOY 2025" — CONFIRMED EARLY ($230B+)' + - 'PRED-2023Q3-004: "NVDA''s CUDA software moat will keep gross margins above 70% through 2026" — PARTIALLY CONFIRMED (gross margin 73% Q2 2025, trending below threshold)' + - 'PRED-2024Q4-013: "Hyperscaler in-house silicon will reach 25%+ of internal training compute by EOY 2025" — TRACKING TO CONFIRM' + - 'PRED-2024Q4-014: "NVDA gross margin will compress 200-400 bps over next 8 quarters" — TRACKING TO CONFIRM (currently 200 bps compressed)' +retired_principles: [] +status: ACTIVE position; thesis revised mid-cycle +--- + +# Position Mid-Review — NVIDIA (NVDA) + +## Why we are writing this now + +NVIDIA is our most successful single position in firm history. We are still holding 3.0% of AUM (down from 4.5% peak after Q3 2025 trim). The position is not closed. A traditional post-mortem would wait for closure. + +We are filing this mid-position review for three reasons: + +1. **The original thesis (2023-Q3-AI-infrastructure-thesis.md) is being formally retired in Q1 2026.** We owe a clear accounting of what worked and what didn't from that thesis BEFORE we close out the position. +2. **The institutional learning is more valuable while the position is still open.** Locking in lessons before we exit means we apply them to the trim/exit discipline. +3. **The lineage matters.** Future analysts joining Meridian will see NVDA as a winning position. Without this document, they will not understand WHY it worked, which conditions made it a winner, and what early signals would have predicted thesis breakdown if we had been more attentive. + +## Outcome (interim) + +Position attribution to date: +- Entry: $445, 4.0% of AUM, $48M deployed (Q3 2023) +- Peak: $1,160 (Q3 2024) +- Current: $1,180 (Q3 2025), position trimmed to 3.0% of AUM via October 2024 (5.4%→4.5%) and August 2025 (4.5%→3.0%) trims +- Realized gains from trims: ~$28M +- Unrealized gains on remaining position: ~$66M +- Total contribution to firm AUM growth: ~$94M against $48M entry, or ~196% return on capital deployed + +## What we predicted at entry — and how each played out + +The original IC memo committed to four predictions. Two years later, the resolution picture: + +### PRED-2023Q3-001: Datacenter revenue >$40B annualized by EOY 2024 — **CONFIRMED EARLY** + +Actual Q4 2024 datacenter revenue: $54B annualized. Confirmed two quarters early at 35% above target. + +**What this teaches:** The compute-scarcity argument was correct in the time horizon we held it. Revenue trajectory exceeded our model. This is the strongest single confirmation of Pillar 1 of the parent thesis. + +### PRED-2023Q3-002: H100 allocation rationing through Q4 2024 — **CONFIRMED** + +Allocation rationing intensified through Q1 2025 (extended one quarter beyond our prediction). Multi-quarter waitlists at all major hyperscalers. + +**What this teaches:** The supply-demand model was correct. NVIDIA's capacity to expand H100 production was constrained by TSMC fab availability, exactly as we modeled. + +### PRED-2023Q3-003: Hyperscaler capex >$200B by EOY 2025 — **CONFIRMED EARLY** + +Aggregate 2025 capex commitments now estimated $230B+, with continued growth in 2026 guidance. Confirmed two quarters early at 15% above target. + +**What this teaches:** The hyperscaler commitment depth was real. The capex argument carried as far as we modeled. + +### PRED-2023Q3-004: Gross margin >70% through 2026 — **PARTIALLY CONFIRMED** + +Margin trajectory: +- Q3 2023 (entry): 71% +- Q3 2024 (peak): 75% +- Q1 2025: 74% +- Q2 2025: 73% +- Q3 2025: 72.5% (anticipated) + +The 70% floor has held but the trajectory is now clearly compressing. Pillar 2 (CUDA + networking moat) is partially eroding. Hyperscaler in-house silicon is the proximate cause. + +**What this teaches:** The software moat held longer than we needed but is starting to erode at the predicted timing (2025-2026, exactly as our 2024-Q4 revision flagged). This is a clear example of correctly-modeled risk. + +## What we missed in the original 2023 thesis + +Even though the position is winning, three things were structurally underweighted in our 2023 model: + +### Miss 1: We underestimated hyperscaler in-house silicon ramp speed + +Original thesis put this risk at "medium 40% probability" of meaningful scale by 2025. Actual: AWS Trainium reached 18% of Bedrock inference workloads by Q3 2024; Google TPU v5p ramped through 2024-2025 to ~25% of internal training compute; Microsoft Maia announced and deploying. + +Probability should have been 60-70%, not 40%. This was a forecasting error. + +**Lesson:** When tracking risks to a thesis, our probability assessments tend to anchor to "reasonable doubt" levels (30-50%) rather than "honest base rates from the underlying technology trajectory." We need to discipline ourselves to use base-rate-grounded probabilities. + +**Operational change:** New IC memos must include explicit base rates for each risk where comparable historical data exists (e.g., "in prior platform shifts, what fraction of incumbent suppliers retained share when hyperscalers vertically integrated?"). When base rates aren't available, we mark the probability "[no base rate, judgment-only]" rather than fabricating a number. + +### Miss 2: We did not model the compute-cost-decline curve + +This is the deeper miss. The 2023 thesis treated compute scarcity as a binary (compute is scarce → infrastructure has pricing power). It did not model the per-unit-of-intelligence cost curve, which matters more than absolute compute scarcity. + +Reiner Pope's analysis (Q2 2025) made this explicit: model intelligence cost is dropping ~4x per year, while spend is rising ~10x per year. The narrowing gap between those curves is the time window in which infrastructure pricing power persists. We never built this model in 2023. + +**Lesson:** Binary structural arguments hide the most important dynamic — the rate at which the structural condition itself changes. Compute scarcity wasn't binary; it was a continuous variable with its own derivative. + +**Operational change:** Sector theses must explicitly include the rate-of-change of any structural argument they make. "Compute is scarce" is not enough; "compute is scarce, and that scarcity is shrinking by X% per year because Y" is the right structure. + +### Miss 3: We treated CUDA as a permanent moat rather than a time-bounded one + +The CUDA software-stack argument (Pillar 2) is HOLDING — through Q3 2025, ROCm and Trainium toolchains haven't caught CUDA at frontier scale. But we treated this as a 5+ year moat. The reality is more like a 3-4 year moat. Hyperscalers are increasingly willing to absorb 20-30% performance penalties on in-house silicon to capture the 60%+ margin that NVIDIA was earning. + +The CUDA moat erodes when buyers value cost over performance. That transition is happening earlier than we modeled. + +**Lesson:** Software moats are time-bounded, not permanent. The right framing is "how many years of pricing power does this moat buy?" not "is the moat intact?" + +**Operational change:** When evaluating software-stack moats, we now estimate moat duration in years explicitly, with leading indicators that would shorten or extend the duration estimate. + +## What we want to remember about the trim discipline + +We want to encode this into firm practice because it is the most operationally valuable lesson of the position: + +**The Q3 2024 sizing trim ($1,160 down to 4.5%) and the Q3 2025 thesis-driven trim ($1,180 down to 3.0%) were both correct decisions in retrospect.** + +The Q3 2024 trim was discipline-driven (position size exceeded soft cap). It captured ~$22M in realized gains and reduced concentration risk before the Q1 2025 thesis weakening became visible. + +The Q3 2025 trim was thesis-driven (Pope's analysis crossed our threshold for revising forward conviction). It captured another ~$6M and right-sized the position to a level consistent with the revised thesis's reduced asymmetric upside. + +Both trims happened ahead of any actual price decline. We trimmed during strength, not weakness. **This is the right pattern.** Our internal incentive in good positions is to hold longer; the discipline of trim thresholds tied to either size or thesis evolution is what counter-balances that incentive. + +## Lessons encoded as firm principles + +This mid-review is generating three principles to add to the firm corpus: + +### Principle: Base-rate-grounded risk probabilities (PRI-MERIDIAN-2025-007) + +When estimating probability of risk to a thesis, anchor to base rates from comparable historical situations rather than narrative reasoning. If no base rate exists, mark probability as "judgment-only" rather than fabricating a number. + +### Principle: Rate-of-change matters more than the structural argument (PRI-MERIDIAN-2025-008) + +Sector theses must include explicit rate-of-change models for any structural argument. "X is true" is insufficient; "X is true and is changing by Y per year because Z" is the right structure. + +### Principle: Software moats are time-bounded (PRI-MERIDIAN-2025-009) + +Software-stack moats erode when buyers value cost over performance. Estimate moat duration in years with explicit leading indicators that would shorten or extend the estimate. Treat moats as time-bounded, not permanent. + +## Predictions retired or superseded by this review + +PRED-2023Q3-004 (margin >70% through 2026) is now in PARTIALLY CONFIRMED state. The 70% floor still holds but the spirit of the prediction (durable pricing power) is breaking. Future predictions on infrastructure margin should specify which moat is producing the margin (CUDA, networking, system design) and the expected duration of each. + +The parent thesis (2023-Q3-AI-infrastructure-thesis.md) is in active retirement (see 2026-Q1-AI-infrastructure-thesis-revised.md). + +## Position-level epitaph (interim) + +NVIDIA is the position that built Meridian's 2024 returns. It is the cleanest demonstration of what the firm's discipline produces — explicit thesis, explicit predictions, disciplined trims, formalized retirement when evidence requires. + +The position will likely close in 2026-2027. We expect to capture another 20-50% upside before structural margin compression dominates. We will write a closing post-mortem when the position closes. + +For now: 196% return on capital deployed, with three firm-level lessons encoded that will improve future positions for the next decade. + +--- + +*Filed by David Park and Marcus Reed, 2025-09-30. Reviewed by Sarah Chen 2025-10-04. Encoded as firm principles 2025-10-15.* diff --git a/demos/meridian-capital/quarterly-letters/2024-Q4-letter.md b/demos/meridian-capital/quarterly-letters/2024-Q4-letter.md new file mode 100644 index 0000000000..88bebff0da --- /dev/null +++ b/demos/meridian-capital/quarterly-letters/2024-Q4-letter.md @@ -0,0 +1,129 @@ +--- +type: quarterly-letter +firm: Meridian Capital Partners +period: 2024 Q4 +author: Sarah Chen, CIO +distribution: Family Principals + Senior Investment Team +date: 2025-01-18 +length: 1,420 words +performance: + q4_2024: +9.8% + ytd_2024: +34.2% + benchmark: S&P 500 +25.0%, MSCI ACWI +17.4% +positions_initiated: [Anthropic secondary Q2, MDB Q1] +positions_closed: [] +positions_trimmed: [] +related_principles_evolved: + - '"AI infrastructure as durable moat" — STRENGTHENED (predictions confirming early)' + - '"Software-stack moats outlast hardware-spec moats" — confirmed via NVDA networking strength' +related_post_mortems: [] +--- + +# Q4 2024 Letter to Family Principals + +Dear principals, + +The portfolio returned 9.8% in Q4 and 34.2% for full-year 2024, against the S&P 500 at 25.0% and MSCI ACWI at 17.4%. This is our best full-year result since 2020 and the largest absolute outperformance vs benchmark in the firm's history. + +The full-year alpha came almost entirely from the AI infrastructure thesis we established in Q3 2023. NVIDIA contributed +1,180 bps of attribution, Microsoft +320 bps, Snowflake +210 bps. The Anthropic secondary we initiated in Q2 has not yet been marked up — we are valuing at cost pending a formal Q1 2025 round. + +I want to use this letter to make three points: what we got right, where we are concerned, and what we are watching closely. + +## What we got right + +The 2023 thesis predicted three things specifically: + +1. **NVIDIA datacenter revenue would exceed $40B annualized by EOY 2024.** Actual: $54B annualized, two quarters early. +2. **H100 demand would outstrip supply through Q4 2024 with allocation rationing.** Actual: confirmed, allocation rationing intensified through Q3 2024. +3. **Hyperscaler aggregate AI capex would reach $200B+ by EOY 2025.** Actual: 2025 commitments now estimated $230B+, also above target. + +All three predictions confirmed early or above target. The thesis worked. + +The position discipline also worked. NVDA peaked at 5.4% of AUM during Q3 2024 (above our soft cap of 5.0%) — we trimmed back to 4.5% on October 18 at $1,140 to maintain sizing discipline. We did not chase the position higher. + +## Where we are concerned + +Two risks from the original thesis have moved adversely during 2024 and require explicit acknowledgement. + +### Concern 1: Hyperscaler in-house silicon is ramping faster than we modeled + +In the original thesis (Q3 2023), we put hyperscaler in-house chips at "medium 40% probability" of reaching meaningful scale by 2025. The actual trajectory looks more like: + +- AWS Trainium: 18% of Bedrock inference workloads as of Q3 2024 +- Google TPU v5p: ramping rapidly per Q3 earnings disclosures +- Microsoft Maia: announced with $5B initial commitment, deployment starting H1 2025 +- Meta MTIA: scaling internally + +This is materially worse than we modeled. We should have flagged the probability at 60%+, not 40%. + +The implication: NVIDIA's share of hyperscaler capex is starting to compress even as the absolute capex pie grows. We expect NVDA gross margin pressure to begin showing in 2025 quarterly results. + +### Concern 2: Per-unit-of-intelligence cost is dropping faster than we modeled + +This is the deeper structural concern. Multiple data points in 2024: + +- Claude 3.5 inference cost dropped 40% from initial Claude 3 release +- GPT-4o reduced inference cost ~70% from GPT-4 turbo +- DeepSeek V3 demonstrated frontier-class capability at roughly 1/10 of GPT-4 training cost +- Open-source models (Llama 3.1, Mistral) reaching 90%+ of frontier capability at much less compute + +Reading these together: compute is still scarce in absolute terms but its **commercial value as a moat is compressing**. The per-token economics that backed our infrastructure thesis are weakening even as total tokens consumed grow. + +This doesn't kill the position. NVIDIA still earns the revenue we predicted. But it changes our forward model in three ways: +- The revenue growth curve is flatter going forward (steepest growth was 2023-2024) +- Margin curve has new pressure (in-house silicon coming online) +- Cycle duration is shorter than we modeled (we previously assumed 36 months of structural tailwind, now we model 18-24 from current point) + +We have documented this concern in detail in the Q4 2024 NVDA thesis revision IC memo (filed 2024-12-04). The position size is unchanged but we have established explicit trim discipline based on three quantitative thresholds. When any threshold trips, we will trim 25% of the position immediately. + +## What we are watching closely + +We are watching three things in 2025 with elevated attention: + +### Monitor 1: AWS Trainium share of Bedrock inference workloads + +Currently 18%. Trim threshold: 30%. This is the single highest-signal indicator that the "NVIDIA captures the hyperscaler capex pie" argument is breaking. If this crosses 30% in any quarter, we trim NVDA by 25%. + +### Monitor 2: NVIDIA gross margin trajectory + +Currently 75% (peak). Trim threshold: 72% in any single quarter. Margin compression of 300+ bps would indicate that pricing power is starting to erode, which would be the first quantitative confirmation of the per-unit-of-intelligence-cost concern above. + +### Monitor 3: Frontier algorithmic alternatives + +Specifically: any new architecture (post-Transformer) that achieves Claude 3.5 / GPT-4o capability at >5x less compute and starts being adopted by frontier labs. Mamba, retentive networks, and recursive architectures (HRM, TRM) are all in our watch set. None have crossed the threshold yet but the velocity of research output is increasing. + +## What this means for the portfolio in 2025 + +We are NOT exiting the AI infrastructure thesis prematurely. The thesis worked in 2024 and remains operationally healthy through Q4 2024. We are operating with: + +- Disciplined trim thresholds activated (above) +- Quarterly thesis review formalized (next: Q1 2025) +- Active research into Phase 2 positions (vertical AI applications, edge inference, knowledge infrastructure layer) + +We expect to: +- Maintain or modestly trim NVDA (4.5% → 4.0% if no thresholds trigger) +- Maintain MSFT +- Begin scoping replacement positions in vertical AI applications during H1 2025 +- Hold the Anthropic secondary; evaluate Q3 2025 if a follow-on tender opportunity emerges + +The strongest candidate for capital redeployment is what we are calling the "judgment infrastructure layer" — companies operating the layer above the model (compression, lineage, retirement, prediction tracking). This is a thesis we are currently developing, not yet investing against. Q2-Q4 2025 will likely produce the first positions in this space. + +## A note on the firm itself + +This is the seventh full year Meridian has operated. We have delivered consistent benchmark outperformance every full year since 2020. The discipline that produces this — explicit thesis statements, explicit predictions with horizons, explicit retirement when evidence forces it, leading indicators rather than lagging — has become the firm's identity. + +I am increasingly convinced that this discipline is itself a moat. Most family offices and investment teams operate without it. They make implicit theses, hold implicit principles, retire conclusions silently. Our explicit version has cost us roughly 15-20% more research time per position but has saved us materially more in avoided losses (the early TWLO trim discipline alone saved ~$15M against the maximum drawdown). + +I am now actively looking for tooling that would make this discipline easier to scale across the team. Junior analysts joining the firm spend their first 6 months learning our research conventions through explicit mentoring; we should be able to compress that. The current state of investment-research tooling is not promising — most of what's available either records research notes (Backstop, Notion) or aggregates portfolio data (Addepar) without operationalizing the thesis-lifecycle discipline. I will share what I find. + +The portfolio enters 2025 with conviction in the prior year's positions, an elevated set of monitored risks, and active scoping of the next thesis cycle. We expect 2025 to deliver more modest absolute returns than 2024 but with maintained alpha vs benchmark. + +As always, your questions sharpen the firm. Please reach out directly. + +Yours, +Sarah Chen +CIO, Meridian Capital Partners + +--- + +*Filed 2025-01-18. Q1 2025 IC will reassess all infrastructure positions explicitly.* diff --git a/demos/meridian-capital/quarterly-letters/2025-Q4-letter.md b/demos/meridian-capital/quarterly-letters/2025-Q4-letter.md new file mode 100644 index 0000000000..9833beafb5 --- /dev/null +++ b/demos/meridian-capital/quarterly-letters/2025-Q4-letter.md @@ -0,0 +1,120 @@ +--- +type: quarterly-letter +firm: Meridian Capital Partners +period: 2025 Q4 +author: Sarah Chen, CIO +distribution: Family Principals + Senior Investment Team +date: 2026-01-22 +length: 1,840 words +performance: + q4_2025: +6.2% + ytd_2025: +18.4% + benchmark: S&P 500 +14.1%, MSCI ACWI +12.8% +positions_initiated: [PLTR follow-on, ARM acquisition, vertical AI bucket] +positions_closed: [TWLO completed Q1, ZM completed Q2] +positions_trimmed: [NVDA -25%, MSFT -10%] +related_principles_evolved: + - '"AI infrastructure as durable moat" — under active revision' + - '"Application layer captures value during platform shifts" — strengthened' +related_post_mortems: [TWLO 2025-Q1, ZM 2025-Q2, SNOW 2025-Q4] +--- + +# Q4 2025 Letter to Family Principals + +Dear principals, + +This letter formalizes a thesis evolution we have been working through for most of 2025 and which now requires explicit articulation. + +## Performance summary + +The portfolio returned 6.2% in Q4 and 18.4% for full-year 2025, against the S&P 500 at 14.1% and MSCI ACWI at 12.8%. The full-year alpha came primarily from concentrated AI-infrastructure positions established 2023-2024 (NVDA contributed +840 bps, MSFT +220 bps, SNOW +180 bps). It also came at a cost — three closed positions (TWLO, ZM, partial PLTR) generated -310 bps of drag. + +I want to be direct about something: a meaningful portion of the 18.4% came from a thesis we are now beginning to retire. That makes the result less satisfying than the headline number suggests, because the lesson the year delivered is more important than the return. + +## What we got right in 2024-2025 + +The "compute scarcity drives the AI capex cycle" thesis we established in Q3 2023 has played out roughly as predicted through Q3 2025. NVIDIA's datacenter revenue exceeded our $40B annualized prediction (PRED-2023Q3-001) — actual was $54B annualized by EOY 2024, well above target. H100 / H200 allocation rationing held through Q1 2025 (PRED-2023Q3-002 confirmed). Hyperscaler aggregate AI capex commitments crossed $230B for 2025 (PRED-2023Q3-003 confirmed, two quarters early). + +The position contributed $94M in unrealized gains across full-year 2025 against ~$48M deployed at entry. Our concentration discipline (4-5% of AUM at peak) was correct in retrospect — though we noted in the original IC memo that we would revisit the thesis in Q4 2024, which we did, and where we should have begun reducing earlier. + +## What we got wrong, or are now beginning to recognize as wrong + +Three connected misjudgments are emerging, and we are formalizing them in this letter. + +### Misjudgment 1: "Compute scarcity = permanent moat" was time-bounded, not structural + +The argument we made in 2023 was that compute scarcity would persist as long as scaling produced capability gains, and scaling would produce capability gains for at least the duration of our 2-3 year investment horizon. That second clause is now open to question. + +Three signals from 2025: + +- **Reiner Pope's analysis on Dwarkesh Patel's podcast (April 2025)** quantified that frontier model intelligence cost is dropping ~4x per year while spending rises ~10x per year. The gap between those two curves is the window in which infrastructure pricing power persists. As models get cheaper to run for any given capability level, the per-unit-of-intelligence revenue compresses regardless of total demand growing. +- **Multiple frontier labs publicly conceded the retrieval ceiling in Q2 2025** — the leading AI memory startup said "scaling context doesn't actually mean scaling intelligence" on stage at AI Agents SF. This is a directional admission that pure-compute scaling is starting to show diminishing returns. +- **Recursive architectures (HRM, TRM)** demonstrated that 7M-parameter models can beat frontier-scale models on specific reasoning tasks via inference-time recursion rather than parameter count. If recursion-as-a-scaling-axis holds, parameter count's dominance as the binding constraint weakens. + +None of these individually invalidate the original thesis. Together they form a pattern: the "compute is the durable moat" framing was correct for 2023-2024 and is becoming less correct in 2025-2026. We were right in the time horizon we held the position. We were wrong to assume the structural argument would extend into our next investment cycle without active reevaluation. + +### Misjudgment 2: We monitored the wrong leading indicators + +This is partially the same lesson we encoded in the TWLO post-mortem (Q1 2025): NDR is a lagging indicator that gives 6-12 months of false comfort while underlying franchise erodes. We applied the lesson to TWLO. We did not initially apply it to NVIDIA. + +NVIDIA's revenue and margin trajectory through Q3 2025 looked structurally healthy — but the leading indicator we should have been watching was hyperscaler capex composition. Microsoft and Google began publicly emphasizing in-house silicon (Maia, TPU) as percentage of internal training compute starting in Q2 2025. AWS Trainium reached 18% of Bedrock inference workloads by Q3 2025. These are not yet revenue-impacting for NVIDIA, but they are the leading indicator of the second-order risk we flagged in our 2023 IC memo (Risk 3: Hyperscaler in-house chips at scale). + +We trimmed NVDA by 25% in Q4 2025 specifically on this signal. We should have begun trimming in Q2 2025 when the signal first emerged. + +### Misjudgment 3: We underweighted application-layer dynamics + +Our 2023-2024 thesis was infrastructure-first. We initiated application-layer exposure in Q1 2024 (Anthropic secondary, fund-of-fund commitments) but at smaller sizes — roughly 1.5% of AUM aggregate vs 4-5% in NVIDIA alone. + +In retrospect, the application-layer thesis was harder to underwrite (no clear winners yet) but more durable in the long run because the layer above the model captures value as the model layer commoditizes. We are now actively scaling application-layer exposure — see the new position bucket discussion below. + +## What we are doing differently + +### Formalized thesis retirement + +We are formally retiring the principle: **"Compute scarcity creates a durable infrastructure moat."** + +This principle was correct in 2023 and we held it for ~24 months profitably. It is no longer correct as a forward-looking guide. The replacement principle, encoded today: **"During AI platform shifts, infrastructure value migrates to systems / networking / vertical applications as compute itself commoditizes."** + +This is the third explicit principle retirement of 2025 (after TWLO's two retired principles in Q1). We treat retirement as a disciplined act, not a vague directional shift. The retired principle is preserved in our archive with full lineage to the IC memos and predictions that supported it. Future analysts joining the firm should be able to see why we believed this was true 2023-2024 and why we no longer do. + +### New position bucket: Vertical AI Applications + +We are establishing a bucket of 4-6 positions in vertical AI applications, sized at 6-8% of AUM aggregate. Specific positions to be announced in Q1 2026 IC. The thesis driving this bucket: judgment infrastructure (compression, lineage, retirement of conclusions, prediction-vs-outcome resolution) is the layer above the model that is currently un-built and where value will accrue. + +We are looking specifically at: +- Vertical AI for legal, clinical, financial-services workflows +- Knowledge-management AI for professional-services firms +- Agent infrastructure for enterprise-scale deployments + +This is a deliberate counter-position to our 2023-2024 infrastructure thesis. We are not exiting infrastructure entirely (NVDA remains 3.0% of AUM, MSFT remains 2.5%), but the marginal allocation goes up the stack. + +### Operational change: leading-indicator monitoring + +Effective Q1 2026, every position larger than 2% of AUM will have an explicit leading-indicator monitoring section in the IC memo, separate from the thesis section. The leading indicators must be: + +- Quantitative (not narrative) +- Measurable monthly or quarterly (not annually) +- Predictive of thesis breakdown 6+ months ahead of revenue impact +- Explicitly distinct from the lagging indicators that competitors will also be watching + +This is the operational lesson from TWLO and now from the NVIDIA experience. + +## Looking ahead + +I want to be honest about one more thing. We have run this firm for seven years on the discipline of explicit theses, explicit predictions, and explicit retirement when evidence forces it. That discipline has served us well — we have outperformed our benchmarks every full year since 2020. + +What 2025 has surfaced is that the discipline is necessary but not sufficient. We can be disciplined and still wrong if our framework for what to believe in the first place lags the structural reality. The AI-native displacement dynamics that broke our TWLO thesis, that are weakening our infrastructure thesis, that we now believe will compress further — these are framework-level changes, not position-level mistakes. + +For 2026, our highest-priority research effort is updating our framework for how AI-native displacement shapes existing franchise economics. This is a multi-quarter undertaking. The portfolio actions we are taking in Q1 2026 (vertical AI bucket initiation, continued infrastructure trim) are downstream of this framework work. + +We owe the principals visibility into this. The Q1 2026 letter will share the updated framework explicitly. + +As always, your questions and challenges sharpen our work. Please reach out directly. + +Yours, +Sarah Chen +CIO, Meridian Capital Partners + +--- + +*Filed 2026-01-22. Encoded as firm principle update 2026-01-25. Q1 2026 IC will formalize Vertical AI Applications bucket.* diff --git a/demos/meridian-capital/sector-theses/2023-Q3-AI-infrastructure-thesis.md b/demos/meridian-capital/sector-theses/2023-Q3-AI-infrastructure-thesis.md new file mode 100644 index 0000000000..88a4513581 --- /dev/null +++ b/demos/meridian-capital/sector-theses/2023-Q3-AI-infrastructure-thesis.md @@ -0,0 +1,139 @@ +--- +type: sector-thesis +firm: Meridian Capital Partners +sector: AI Infrastructure +status: ACTIVE (under quarterly review) +date_established: 2023-09-08 +authors: David Park (Senior PM), Sarah Chen (CIO) +horizon: 24-36 months +positions_implied: [NVDA, MSFT, SNOW, MDB] +related_principles_seeded: + - '"Compute scarcity creates a durable infrastructure moat" (PRI-MERIDIAN-2023-001)' + - '"Hyperscaler capex commitments are structurally pre-allocated through 2025" (PRI-MERIDIAN-2023-002)' + - '"Software-stack moats outlast hardware-spec moats" (PRI-MERIDIAN-2023-003)' +review_cadence: quarterly +last_review: 2024-Q4 (no changes) +status_2025_Q3: SECTIONS UNDER ACTIVE RETIREMENT +status_2026_Q1: SUPERSEDED (see 2026-Q1-AI-infrastructure-thesis-revised.md) +--- + +# Sector Thesis — AI Infrastructure (Q3 2023) + +## Frame + +This document establishes Meridian's investment frame for AI infrastructure as a sector. It is the parent thesis from which our individual position memos derive. Future IC memos in this sector should explicitly reference and build on (or challenge) the principles laid out here. + +## Core argument + +We believe we are entering a structural shift in computing larger than mobile and at least equivalent in magnitude to the mainframe-to-distributed transition. The companies that own the compute substrate during structural shifts capture disproportionate value over multi-decade windows. Our investment frame is to hold concentrated positions in the infrastructure layer of this shift for a 24-36 month horizon, with explicit thesis review at each quarter to detect erosion of the structural argument. + +## The three structural pillars + +### Pillar 1: Compute scarcity is the binding constraint + +The leading frontier labs (OpenAI, Anthropic, Google DeepMind, xAI, Meta AI) are gated on training compute, not on research talent or data. Empirically, every meaningful capability gain over the past 18 months has come from scaling compute, not from architectural breakthroughs that scale-substitute. This is the central observation underlying the AI capex cycle. + +As long as scaling continues to produce capability gains and the labs continue to be funded against capability targets, compute is the rate-limiting input. Scaling laws (Chinchilla, Hoffmann et al.) suggest the relationship between compute and capability is at least log-linear, which implies the marginal demand for compute increases as the labs target progressively higher capability levels. + +**This argument fails if:** algorithmic breakthroughs achieve current frontier capability at >5x less compute. We are explicitly tracking architectures like Mamba, retentive networks, and any post-Transformer alternatives. None show signs of replacing Transformers at scale through Q3 2023. + +### Pillar 2: Software-stack moats outlast hardware-spec moats + +The naive argument is that AMD, Intel, or hyperscaler in-house chips will catch NVIDIA on raw FLOPs and erode margin. We believe this misreads the actual moat. The moat is CUDA, NVLink, networking (Mellanox), and the developer ecosystem trained on NVIDIA's stack since 2012. + +Replacing NVIDIA in a frontier lab's training cluster requires re-architecting the entire workflow: +- Re-implementing performance-critical kernels for the new accelerator +- Re-validating the training recipe end-to-end at scale +- Re-training the engineering team on the new toolchain +- Re-establishing reliability characteristics across thousands of GPUs + +We estimate switching cost at 12-18 months of engineering work per cluster. For frontier labs operating on roughly 12-month training cycles, this is a binding constraint that forces continuity through the current cycle and probably the next. + +**This argument fails if:** PyTorch / TensorFlow ship first-class non-CUDA backends with comparable performance. We are tracking ROCm and Trainium toolchain maturity quarterly. Through Q3 2023, neither offers production-grade alternatives at frontier scale. + +### Pillar 3: Hyperscaler capex commitments are pre-allocated through 2025 + +Microsoft, Google, Meta, Amazon, and Oracle have publicly disclosed AI infrastructure capex commitments aggregating to ~$120B for 2024 and ~$180B+ for 2025. These commitments are not speculative — they are tied to data center construction timelines and chip allocation conversations that are happening now, in Q3 2023, for delivery in 2024-2025. + +NVIDIA has visibility into ~80% of this aggregate demand via direct allocation discussions. The revenue line is contracted, not forecast. + +**This argument fails if:** macro shock or AI ROI disappointment forces a 12+ month capex pause. We are tracking hyperscaler quarterly capex guidance and any signs of order pushouts. + +## Investment implications + +The three pillars together imply concentrated positions in: + +1. **NVIDIA (NVDA):** the substrate provider. Direct beneficiary of all three pillars. Initiating 4.0% position (see 2023-Q3-NVDA-initiation.md). +2. **Microsoft (MSFT):** the platform provider via Azure + OpenAI. Capital-light AI exposure via revenue share. Initiating 3.5% position in Q4 2023. +3. **Snowflake (SNOW):** the data platform that AI workloads run analytics against. Indirect beneficiary via data warehouse modernization tailwind. Initiating 2.5% position in Q1 2024. +4. **MongoDB (MDB):** the vector database emerging as new primitive for AI applications. Speculative position, 1.5% in Q1 2024. + +Total infrastructure-thesis-derived exposure: ~11.5% of AUM. This is the largest concentrated thesis in the portfolio. + +## Explicit risks + +We catalog the failure modes: + +| Risk | Probability | Impact | Monitor | +|---|---|---|---| +| Algorithmic compute reduction (>5x) | Low (15%) | High | Quarterly review of leading research labs | +| AMD/Intel CUDA-equivalent ships | Medium (30%) | High | ROCm + Trainium toolchain quarterly tracking | +| Hyperscaler in-house chips at scale (>30% of internal compute by 2025) | Medium (40%) | High | Hyperscaler earnings calls + chip announcements | +| Capex pause | Low (15%) | Catastrophic | Quarterly hyperscaler guidance | +| Macro recession driving discretionary AI capex cuts | Medium (35%) | Medium | Standard macro monitoring | + +We acknowledge: any TWO of these materializing in the same 12-month window would force a position reduction across the entire thesis basket. + +## Review discipline + +This thesis will be explicitly reviewed at: +- Each quarter end via a one-page status update appended to this document +- Annually via a full thesis review at Q4 IC +- Immediately if any single risk in the table above moves from low/medium to high + +The thesis will be retired (or substantially revised) if: +- Any two of the catalogued risks materialize in concert +- A new structural argument emerges that contradicts one of the three pillars + +We commit to making the retirement disciplined and explicit. The replacement thesis (if there is one) will be a separately authored document that explicitly cites this one and notes the principles that no longer hold. + +--- + +## Quarterly status updates + +### 2023-Q4 status: HEALTHY +NVIDIA datacenter revenue $14.5B for the quarter, +279% YoY. Hyperscaler 2024 capex guidance came in higher than our entry-thesis estimates. Pillar 1 strengthening. Pillars 2 and 3 unchanged. No risks elevated. + +### 2024-Q1 status: HEALTHY +H100 allocation rationing intensifying (multi-quarter waitlists at AWS and Google). Pillar 1 confirmed. Pillar 3 confirmed (hyperscaler 2024 capex now estimated $135B, above $120B baseline). Software stack moat (Pillar 2) holding — ROCm production reliability still 18+ months behind CUDA per Anthropic and OpenAI engineering disclosures. + +### 2024-Q2 status: HEALTHY +Anthropic secondary completed at $24B valuation (see 2024-Q2-Anthropic-secondary.md). Indirect AI infrastructure exposure via training compute consumption pattern. + +### 2024-Q3 status: HEALTHY +Hyperscaler 2025 capex now estimated at $230B+ (above $180B baseline). NVIDIA datacenter revenue trajectory continues. + +### 2024-Q4 status: HEALTHY (with two flags) +Two risks elevated to medium-high: +- **Hyperscaler in-house chips:** AWS Trainium and Google TPU v5p both ramping faster than expected. Microsoft Maia announced. +- **Algorithmic alternatives:** Reiner Pope's thesis on training cost compression (4x/year intelligence-cost decline) cited by multiple frontier lab engineers. +We are NOT yet retiring the thesis. We ARE adding explicit Q1 2025 review checkpoints. + +### 2025-Q1 status: WARNING +Internal debate emerging (see 2025-Q3-NVDA-trim-debate.md slack thread). The compute scarcity argument is showing structural weakness — not because demand is falling but because per-unit-of-intelligence cost is dropping faster than total compute demand is rising. This is the exact failure mode flagged in our Pillar 1 risk table. + +### 2025-Q2 status: WARNING +Pope's analysis on Dwarkesh Patel formalized the 4x/year intelligence cost decline (see 2025-Q2-pope-podcast-summary.md). Multiple frontier labs publicly conceded training compute is no longer the binding constraint. Pillar 1 is functionally falsified. + +### 2025-Q3 status: UNDER REVISION +Trim NVDA position by 25% (4.5% → 3.0% of AUM). Begin formalizing replacement thesis. Compute scarcity sub-pillar formally retired. Pillars 2 and 3 still operational but downgraded in importance. + +### 2025-Q4 status: SUPERSEDED IMMINENT +Quarterly letter (2025-Q4-letter.md) formally announces thesis evolution to family principals. Replacement thesis under construction. + +### 2026-Q1 status: SUPERSEDED +Replacement thesis published as 2026-Q1-AI-infrastructure-thesis-revised.md. This document is now archive. + +--- + +*Originally filed by David Park and Sarah Chen, 2023-09-08. Last review 2026-Q1. Superseded — preserved for archival lineage.* diff --git a/demos/meridian-capital/sector-theses/2026-Q1-AI-infrastructure-thesis-revised.md b/demos/meridian-capital/sector-theses/2026-Q1-AI-infrastructure-thesis-revised.md new file mode 100644 index 0000000000..d1e33a459f --- /dev/null +++ b/demos/meridian-capital/sector-theses/2026-Q1-AI-infrastructure-thesis-revised.md @@ -0,0 +1,152 @@ +--- +type: sector-thesis +firm: Meridian Capital Partners +sector: AI Infrastructure (Revised) +status: ACTIVE +date_established: 2026-01-30 +authors: Sarah Chen (CIO), David Park (Senior PM), Rachel Wu (Senior PM) +horizon: 24-36 months +positions_implied: [vertical AI applications, edge inference, networking layer] +supersedes: 2023-Q3-AI-infrastructure-thesis.md +related_principles_seeded: + - '"AI infrastructure value migrates up the stack as compute commoditizes" (PRI-MERIDIAN-2026-001)' + - '"Vertical AI applications capture more durable value than horizontal infrastructure post-commoditization" (PRI-MERIDIAN-2026-002)' + - '"Trust-by-architecture beats trust-by-process in regulated knowledge work" (PRI-MERIDIAN-2026-003)' +related_principles_retired: + - '"Compute scarcity creates a durable infrastructure moat" (was PRI-MERIDIAN-2023-001, retired 2026-Q1)' +review_cadence: quarterly +--- + +# Sector Thesis — AI Infrastructure (Revised, Q1 2026) + +## Why we are publishing this thesis + +In Q3 2023, we established a thesis that compute scarcity would create a durable infrastructure moat. That thesis was correct for the 24-month window we held it (see 2023-Q3-AI-infrastructure-thesis.md). It is no longer correct as a forward-looking guide. Three signals during 2025 forced the retirement: + +1. **Reiner Pope's analysis on Dwarkesh Patel (Q2 2025)** quantified frontier model intelligence cost dropping ~4x per year while spending rises ~10x per year. The narrowing gap between those curves is the window in which infrastructure pricing power persists. + +2. **Multiple frontier labs publicly conceded the retrieval ceiling in 2025** — including the leading AI memory startup explicitly stating "scaling context doesn't actually mean scaling intelligence." + +3. **Recursive architectures (HRM, TRM, demonstrated by Karpathy / Chollet)** showed that 7M-parameter models can beat frontier-scale models on specific reasoning tasks via inference-time recursion. Parameter count's dominance as the binding constraint is weakening. + +None of these individually invalidates the original thesis. Together they form a pattern: the structural argument that compute is the durable moat was correct for 2023-2024 and is no longer correct in 2025-2026. + +This document establishes the replacement. + +## Core argument (revised) + +We believe the AI platform shift is now in its second phase. Phase 1 (2022-2024) saw compute as the binding constraint and infrastructure as the value-capture layer. Phase 2 (2025-2027) will see compute commoditize and value migrate up the stack — to applications, judgment infrastructure, and integration layers. + +The companies that will own the largest economic shares of Phase 2 are not the same as Phase 1. Specifically: + +- **Phase 1 winners:** NVIDIA (CUDA + networking + system design), Microsoft (Azure + OpenAI), the hyperscaler-with-chips (Google with TPU) +- **Phase 2 winners:** vertical AI application companies, judgment infrastructure (compression / lineage / retirement / prediction tracking), workflow orchestration platforms + +This is the same pattern we saw at the application/infrastructure boundary in mobile (2008-2014) and cloud (2010-2016). Infrastructure value tops out earlier than application value because applications can extract more economic surplus once the underlying compute commoditizes. + +## The three structural pillars (revised) + +### Pillar 1: Value migrates up the stack as compute commoditizes + +Once a primitive becomes commodity, the layer above it captures the marginal economic value. This pattern is robust across platform shifts: +- Microprocessors → operating systems (Microsoft) and software applications +- Internet bandwidth → web platforms (Google, Amazon) +- Mobile chips → mobile applications and platforms (Apple, Meta) +- Cloud compute → SaaS applications + +We expect the same pattern in AI: GPU compute commoditizes → models commoditize partially → value accrues to whoever owns the layer above the model. The candidates for that layer: + +- **Vertical applications** that own a domain-specific corpus (legal, clinical, financial advisory) +- **Judgment infrastructure** that compresses unstructured intellectual capital with lineage and retirement +- **Workflow orchestration** that coordinates multi-agent systems within enterprises + +We are concentrating Phase 2 positions in these three buckets. + +### Pillar 2: Trust-by-architecture beats trust-by-process in regulated knowledge work + +In regulated industries (finance, healthcare, legal), trust requirements are real not aspirational. Sean Batman's Hinge Health AskHR example (cited at AI Agents SF panel, Q2 2025) showed that even simple HR Q&A requires extensive human-in-the-loop trust-building. Sanjmeet's IBM AskHR architecture (7 years of evolution, multi-agent system) is an architectural answer to the same problem. + +We believe the durable winners in vertical AI for regulated industries will compete on **architectural trust** — lineage on every claim, retirement of superseded conclusions, prediction-vs-outcome resolution — rather than on **process trust** (human review queues, citation tagging, hallucination mitigation as a workflow). Process trust is a feature; architectural trust is a moat. + +### Pillar 3: Switching costs in vertical AI build through accumulated firm knowledge + +Vertical AI applications that compress an organization's intellectual capital create asymmetric switching costs. Every month of usage compounds the data lock-in. After 12-18 months, migrating away means losing the firm's institutional memory. This is the same moat shape as Salesforce, Linear, Notion at smaller scales. + +The implication for investments: vertical AI companies that accumulate firm-specific compressed corpora will be more durable than horizontal AI tools that operate on commodity inputs. + +## Investment implications + +### Position bucket: Vertical AI Applications (initiating Q1 2026) + +Sized at 6-8% of AUM aggregate. Specific positions to be evaluated: + +- **Legal-tech AI** (Harvey alternative? Specialty practice areas?) +- **Clinical decision support** for specialty medical practices +- **Financial-services workflow** AI for advisors and family-office-class buyers +- **Knowledge management AI** for professional-services firms + +We are NOT picking specific positions in this thesis document. Position-level analysis will be in individual IC memos. + +### Position bucket: Edge Inference Infrastructure (evaluating) + +The implication of Pillar 1 (compute commoditization) is that inference moves to the edge as model sizes shrink and per-query cost drops. Beneficiaries: +- ARM (architecture for edge inference) +- On-device AI infrastructure +- Specialized inference accelerators + +Sizing: 2-3% of AUM aggregate, evaluating Q2 2026. + +### Position bucket: Maintained Phase 1 exposure (reduced) + +We are not exiting all infrastructure. NVIDIA remains 3.0% of AUM (down from 4.5% peak), Microsoft 2.5% (down from 3.5%). These positions reflect the residual value of Phase 1 winners through 2026-2027. + +### Position to retire from prior thesis: Snowflake + +Snowflake's value proposition was data warehouse modernization for AI workloads. The current generation of vertical AI applications and judgment infrastructure operates on customer-owned data infrastructure (often locally) rather than centralized cloud warehouses. SNOW position to be reduced from 2.5% to 1.0% over Q2 2026. + +## Explicit risks (revised) + +| Risk | Probability | Impact | Monitor | +|---|---|---|---| +| Compute commoditization slows or reverses (new architecture forces re-scaling) | Low (15%) | High | Frontier model release tracking | +| Vertical AI applications fail to compound switching costs | Medium (35%) | High | Public companies' net dollar retention metrics | +| Foundation labs vertically integrate into vertical applications | Medium (40%) | Medium | OpenAI, Anthropic, Google product roadmaps | +| Trust-by-architecture turns out to be solvable via process at sufficient scale | Low (20%) | High | AskHR-class system evolution at IBM and similar | +| Macro shock compresses enterprise AI spend before vertical AI matures | Medium (30%) | Medium | Enterprise AI spend tracking | + +## Review discipline + +Same as the original thesis: quarterly status updates appended to this document, annual full review, immediate review if any risk moves to elevated. + +We acknowledge a meta-lesson from the prior thesis: **leading indicators must be quantitative and predictive of thesis breakdown 6+ months ahead of revenue impact.** For this thesis, the key leading indicators are: + +- Vertical AI customer retention and expansion (not revenue growth) +- Foundation lab product roadmap signals (vertical encroachment) +- Per-query inference cost trajectory (compute commoditization rate) + +We will track these monthly, not quarterly. + +## Connection to firm-level lessons + +This thesis revision encodes three firm-level lessons learned during 2024-2025: + +1. **From the TWLO post-mortem (Q1 2025):** API-economy moats erode in AI-native architectures. We extend this principle to AI infrastructure: compute moats erode as compute commoditizes. + +2. **From the NVDA experience (2023-2025):** Net dollar retention and revenue trajectory are lagging indicators. We need leading indicators that predict thesis breakdown 6+ months early. + +3. **From the SNOW experience (2024-2025):** Centralized data infrastructure may not be the right substrate for AI-native applications. Local-first / customer-controlled data is becoming the new default for trust-sensitive verticals. + +## What kills this thesis + +Explicitly enumerated, as before: + +1. Compute does not in fact commoditize (e.g., a new scaling regime emerges that re-establishes scarcity) +2. Vertical AI applications fail to build durable switching costs (compression turns out to be commodity) +3. Foundation labs build vertical AI directly and compress the application-layer opportunity +4. Trust-by-architecture is not in fact a moat — incumbents add citation/lineage features and close the gap + +We expect to revisit this thesis in Q4 2026 at the latest, sooner if any of these conditions materialize. + +--- + +*Filed by Sarah Chen, David Park, Rachel Wu, 2026-01-30. Replaces 2023-Q3-AI-infrastructure-thesis.md. To be revisited Q4 2026.* diff --git a/demos/meridian-capital/slack-threads/2025-Q3-NVDA-trim-debate.md b/demos/meridian-capital/slack-threads/2025-Q3-NVDA-trim-debate.md new file mode 100644 index 0000000000..84e28c04d3 --- /dev/null +++ b/demos/meridian-capital/slack-threads/2025-Q3-NVDA-trim-debate.md @@ -0,0 +1,188 @@ +--- +type: slack-thread +firm: Meridian Capital Partners +channel: "#investment-committee" +thread_started: 2025-08-12 10:14 PT +thread_concluded: 2025-08-15 16:32 PT +participants: [Sarah Chen (CIO), David Park (Senior PM), Rachel Wu (Senior PM), Marcus Reed, Priya Shah] +related_documents: + - 2025-Q2-pope-podcast-summary.md + - 2024-Q4-NVDA-followon-thesis-revision.md + - 2023-Q3-AI-infrastructure-thesis.md +related_predictions: + - 'PRED-2024Q4-013: "Hyperscaler in-house silicon will reach 25%+ of internal training compute by EOY 2025"' +related_principles_affected: + - PRI-MERIDIAN-2023-001 (Compute scarcity moat) +outcome: NVDA trim from 4.5% → 3.0% approved at Q3 2025 IC; documented in 2025-Q3-NVDA-mid-position-postmortem.md +--- + +# Slack Thread — NVDA Trim Debate (August 2025) + +## Context + +After Marcus filed the Pope summary memo (2025-Q2-pope-podcast-summary.md), debate emerged in the IC channel about whether to act on the analysis immediately or wait for the formal Q3 IC meeting in September. This thread captures that debate. + +The thread is preserved here because the principles that came out of it (specifically: "rate-of-change matters more than the structural argument") are firm-level lessons we want to archive. + +--- + +## Thread + +**Marcus Reed** — *Aug 12, 10:14 PT* + +Pasting key excerpt from the Pope summary I just filed. The "4x/year intelligence cost decline vs 10x/year spend rise" math is the part I keep coming back to. If the gap between those curves narrows to zero in 2026-2027, the entire compute-scarcity-as-moat argument is structurally dead. We should be acting on this now, not waiting for September IC. + +--- + +**David Park** — *Aug 12, 10:38 PT* + +I read the full Pope transcript over the weekend. Marcus is right that the analysis is rigorous. But there's a question about whether we act NOW or wait for confirmation in our quantitative trim thresholds (which we set explicitly in the 2024-Q4 revision memo). + +Our published trim threshold is AWS Trainium share of Bedrock inference >30%. Currently 22% per Q2 2025 disclosures. We're not at the threshold. If we act now we are explicitly violating our own discipline. + +--- + +**Sarah Chen** — *Aug 12, 11:02 PT* + +This is exactly the question I want IC to debate explicitly. Two competing principles: + +1. The threshold-discipline principle: we set thresholds, we wait for them to trigger, we don't move the goalposts based on narrative. + +2. The rate-of-change principle (which we are encoding from this very situation): the threshold itself was set assuming a slower hyperscaler in-house silicon ramp than is actually happening. If the rate-of-change has shifted, the threshold may be wrong. + +The honest version is: we are tempted to violate (1) because (2) feels like new information. But every situation feels like new information in real time. The discipline of (1) exists specifically to prevent us from moving thresholds based on real-time rationalization. + +--- + +**Rachel Wu** — *Aug 12, 11:47 PT* + +Counter-question for the IC: when we set the 30% threshold in the Q4 2024 memo, did we set it based on rate-of-change reasoning or absolute level reasoning? + +Rereading the memo... we set it on absolute-level reasoning ("when share crosses 30% the in-house silicon argument is materially correct"). We didn't model the rate of approach to that level. + +If we had explicitly modeled rate-of-change, the threshold might have been set lower (e.g., 20%) to give us a margin of safety against trajectory error. We have a model error, not a discipline violation. + +--- + +**Sarah Chen** — *Aug 12, 12:05 PT* + +Rachel's framing is the right one. The question isn't "do we override our threshold." It's "did we set the threshold correctly in the first place." If we got the threshold wrong because we didn't model rate-of-change, then revising the threshold is correcting a methodology error, not violating discipline. + +But — and this matters — we should make the methodology fix EXPLICIT. We should say: "We are revising the trim threshold from 30% (absolute level) to 20% (level + trajectory) because we did not model rate-of-change in the original methodology." That's discipline. Silently revising the threshold downward because we want to trim is not. + +--- + +**Priya Shah** — *Aug 13, 09:18 PT* + +Pulling on this thread because I'm worried we're rationalizing. + +The Pope analysis is from Q2 2025. The trim threshold we set was Q4 2024. We had ~7 months of additional data between then and now. Was there ever a rate-of-change model we could have built BEFORE Pope wrote his analysis? + +Reading our Q4 2024 NVDA revision memo... no, there wasn't. We listed "hyperscaler in-house silicon will reach 25%+" as a prediction with 12-month horizon, but we didn't connect that prediction to the threshold we set on AWS Trainium specifically. They're related but our memo treated them as separate. + +So the methodological gap is: we set quantitative thresholds without explicitly modeling whether the threshold level captured the actual risk dynamic. That's a real lesson. + +--- + +**Marcus Reed** — *Aug 13, 10:42 PT* + +OK let me try to make this concrete. Three options for the IC: + +A. Wait for the 30% threshold to trigger before trimming. Maintains discipline, accepts that we may trim 6-12 months later than optimal. + +B. Trim now based on Pope analysis, explicitly note that we are revising the threshold from 30% to 20% retroactively, document the methodology fix. + +C. Trim now based on a NEW prediction (not the existing threshold) — specifically PRED-2025-NEW: "AWS Trainium share crosses 25% within 6 months." Set the threshold at 25% on a forward basis. This is a new threshold, not a revised one. + +I think C is the cleanest. It treats this as new information that produces a new prediction, not as a violation of the old discipline. + +--- + +**David Park** — *Aug 13, 11:15 PT* + +Marcus, that's clean. C is the right structural answer. But I want to push on one thing: if the lesson we're encoding is "rate-of-change matters more than absolute level," then any future threshold we set should explicitly include rate-of-change. So C should also commit to a methodology change going forward, not just a one-time new threshold. + +--- + +**Sarah Chen** — *Aug 13, 14:08 PT* + +Agreed with David and Marcus. Proposal for Q3 IC: + +1. Establish PRED-2025-XXX: "AWS Trainium share of Bedrock inference will cross 25% within 6 months." Trim NVDA by 25% (4.5% → ~3.4%) immediately if this prediction is set. + +2. Encode firm principle PRI-MERIDIAN-2025-008: "Rate-of-change matters more than the structural argument." All future sector theses must include rate-of-change models for any structural argument they make. + +3. Encode firm principle PRI-MERIDIAN-2025-007: "Quantitative trim thresholds must be set with explicit rate-of-change models, not just absolute-level reasoning." + +4. Document this entire thread in the 2025-Q3-NVDA-mid-position-postmortem.md so the lineage is preserved. + +This way we get the right answer (trim now), maintain discipline (new prediction, not revised threshold), and encode the lesson (methodology change going forward). + +--- + +**Rachel Wu** — *Aug 13, 14:37 PT* + ++1 to Sarah's proposal. One add: the NVDA position has gotten 4-5x in 2 years. Even setting aside the methodology debate, we should have been more aggressive on size discipline as the position grew. The fact that we're at 4.5% reflects compounding gains, not active sizing decisions. Some of the trim should be size-discipline-driven independent of thesis. + +--- + +**Sarah Chen** — *Aug 13, 14:51 PT* + +Rachel makes a fair point. I'd revise the proposal: trim 33% (4.5% → 3.0%), with the reasoning split as: +- 25% of the trim is thesis-driven (new prediction, threshold methodology) +- 8% of the trim is size-discipline (position grew above target band) + +We should document both reasons explicitly. Mixing reasons in a single trim is fine if we're transparent about the mix. + +--- + +**David Park** — *Aug 13, 15:14 PT* + ++1. Documenting the trim with split rationale is the right discipline. Locking it in for Q3 IC discussion. + +--- + +**Marcus Reed** — *Aug 14, 09:41 PT* + +For the record, I want to note something about how this debate played out. We came into the thread with: +- A trigger event (Pope analysis) +- An itch to act (mine, partially Sarah's) +- An existing discipline (30% threshold) + +The temptation was to either (a) override the discipline and call it "new information," or (b) wait for the discipline to trigger and accept being late. The actual outcome was a third path: recognize a methodology gap, encode the gap as a new principle, and let the new principle drive both this decision and future decisions. + +I think this thread is worth preserving in the post-mortem because it shows the firm's discipline working — not by following the existing rule, but by surfacing a methodology gap and encoding the lesson. + +--- + +**Sarah Chen** — *Aug 14, 10:08 PT* + +Agreed Marcus. We'll archive this thread to the post-mortem when we file it. The discipline isn't "follow rules"; it's "make rule-modifications explicit." That's the harder version and we executed it. + +--- + +**Priya Shah** — *Aug 15, 16:32 PT* + +Closing thought from me: I want to flag that we should also be revising the prior IC memo's prediction confidence levels. We marked PRED-2024Q4-013 ("Hyperscaler in-house silicon will reach 25%+") as MEDIUM confidence with 12-month horizon. Given Pope's analysis and the rate of change we now see, that should be HIGH confidence and the horizon is more like 6 months. + +Updating prediction confidence retroactively is also part of the discipline. We don't just set them and forget. We update them as new information arrives. + +--- + +**[Thread concluded. Decision documented in 2025-Q3-NVDA-mid-position-postmortem.md and Q3 2025 IC minutes.]** + +--- + +## Lessons preserved from this thread + +1. **Distinguish discipline violations from methodology corrections.** When new information reveals a methodology gap, correcting the methodology is the disciplined response, not a discipline violation. The key is making the correction explicit and documented. + +2. **Rate-of-change matters more than structural argument.** This thread surfaced the principle that became PRI-MERIDIAN-2025-008. + +3. **Trim rationale should be split when multiple reasons apply.** Documenting "25% thesis-driven, 8% size-discipline-driven" is more useful than calling it a single 33% trim. + +4. **Update predictions retroactively.** When new information changes the confidence or horizon of a prediction, update the prediction record. Don't let stale predictions sit on the books. + +--- + +*Thread filed 2025-08-15 by Marcus Reed. Decision implemented 2025-08-22 (NVDA trim from 4.5% to 3.0%).*