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 },
},