CONVICTION.

Pitch builder

Draft a new pitch

Fill in the note, copy the generated entry, paste it into lib/pitches.ts, and commit. The commit is the timestamp: that is the accountability model, so publishing stays a git action on purpose.

Header

Narrative

One pillar per line: Title :: supporting paragraph

One per line: time window :: event

One per line: risk :: mitigant or monitoring metric

One metric per line

Valuation

One per line: TICKER :: Name :: P/E :: EV/EBITDA :: rev growth :: note

Generated entry

Paste this object into the PITCHES array in lib/pitches.ts, then commit and deploy. Today's date is baked in as the pitch date.

  {
    slug: "",
    ticker: "",
    company: "",
    rating: "LONG",
    conviction: "Medium",
    horizon: "12 to 18 months",
    pitchDate: "2026-07-15",
    oneLiner: "",
    situation: "",
    complication: "",
    thesis: [
      { title: "Pillar title", body: "One falsifiable paragraph supporting it" },
    ],
    catalysts: [
      { window: "0 to 3 months", event: "Near-term event" },
    ],
    risks: [
      { risk: "Biggest risk", mitigant: "Mitigant or the metric you will monitor" },
    ],
    kpis: [
      "Metric to watch (frequency)",
    ],
    comps: [
      { ticker: "TICK", name: "Company", pe: 25, evEbitda: 14, revGrowth: "+8%", note: "Why it is a fair comp" },
    ],
    compsAsOf: "Multiples entered at pitch date",
    dcf: {
      revenueBase: 100,
      growthRate: 8,
      fcfMargin: 10,
      wacc: 9,
      terminalGrowth: 2.5,
      netCash: 0,
      sharesOut: 1000,
    },
    targets: { bear: 0, base: 0, bull: 0 },
  },