Core mantras (run through everything)
- Pin down the single most important industry trend first. What drives a company is
often not its surface industry but the megatrend behind it (NVDA is AI, not the chip
cycle).
- Focus on the core business. Only dig into the segments that are the bulk of
revenue; ignore <10% side businesses.
- Certainty > upside. Prefer the most durable business model with the most assured
demand.
- The reason for success, flipped, is the biggest risk (the lens for step ⑦).
- End humbly. 5+2 is the start of understanding a company, not a buy/sell signal.
Don't fake a precise score.
Workflow
Step 0 — Pull the hard numbers (financials / valuation). Needs pip install yfinance.
python3 scripts/factsheet.py TICKER --json
(Human-readable: drop --json. The adapter only collects facts; it makes no judgement.)
Step 0.5 — Classify the company archetype (this is what makes 5+2 universal).
See references/06-archetype-router.md. Tag the company along 5 axes (profitability state /
business model / capital intensity / growth stage / leadership & coverage) → look up the
main routing table to get the right playbook for ④ financials, ⑤ valuation, ② moat lens,
⑥ bull archetype, ⑦ risk cluster. If it matches none of the 8 archetypes, use the
"universal fallback" playbook — do NOT force-fit the closest case. The [TICKER] tags in
the rubric are examples, not hard rules.
Step 1 — Work the 7 steps. ①②③ are qualitative → combine with web search (industry
TAM/growth, moat, management, latest developments); ④⑤ use the adapter numbers plus the
playbook chosen in Step 0.5 (don't pick the wrong valuation method — banks use P/B, story
stocks use SOTP, consumption-SaaS uses EV/Sales); ⑥⑦ synthesize the first five.
Step 2 — Output the brief in the author's voice (label the archetype up top).
The 7-step framework (each step: what he asks / data source / judgement)
① Industry 〔web-led〕
- Classify by source of profit, not surface industry (NVDA = AI, not chips; META =
digital ads, not social) → pin the most impactful trend → TAM + CAGR + adoption +
geography + key customers + industry-level risk.
- 🔴 Always refresh the TAM live: pull market size / CAGR from a named research firm
(Grand View / Mordor / Gartner / IDC), the latest figure, the correct narrow market
definition. Never reuse stale numbers or hand-wave "hundreds of billions".
- Enumerate the competitive landscape by category (don't just name the biggest rival).
- Judgement: many players racing in + high growth = tailwind; growth peaking / export bans /
weak monetization = headwind. Strong-cyclical (banks/ads) → structural valuation discount,
cliff-like downside. Consumer/retail → spending power (PCE/taxes) + willingness (sentiment).
Actively hunt the expectation gap (where consensus misjudges a structural change).
② Business model 〔web + adapter evidence〕
- History → how it makes money (revenue/customer mix) → name the specific moat type →
durability → share/stickiness.
- For SaaS, first identify "the one thing rivals structurally cannot do" (e.g. a
multi-cloud-neutral data platform is something the cloud vendors' own warehouses can't be)
— then list switching costs / data gravity. Don't default to "network effect".
- Moat library: network effect (CUDA-style ecosystem) / switching costs + vertical depth /
scale + capital intensity "winner-keeps-winning" (foundry) / data & content flywheel /
culture / one-stop platform / membership flywheel / cross-cloud neutrality.
- value-driver ≠ revenue-driver: the business that drives the stock may not be the
revenue bulk (a carmaker's value can sit in its self-driving option, not car sales).
- Data: web (moat narrative/share) + adapter
moat.roic, gross margin as moat evidence.
③ Management 〔web-led〕
- Core: technical background + long tenure + stable culture (need not be a founder).
- Founder-led = a plus (higher ceiling, suited to disruptive innovation); check
dual-class control.
- Double-edged: a strong personality / concentrated control → over-reliance is a tail
risk (write into ⑦).
- Judge professional (non-founder) CEOs by track record, NOT by a mechanical "non-founder =
question mark" penalty. A pro CEO can be a clear net positive — look at the actual
execution (e.g. a sales-led → product-led culture switch that the latest results validate;
"risk removed, trust restored").
- Negative tilt: short-seller "great marketer, profits don't follow" claims, prior baggage,
spread too thin → management can be a net risk.
④ Financials 〔adapter-driven, pick metrics by archetype〕
- Universal base (any stock): revenue growth + gross margin (level + trend +
benchmark; S&P 500 avg ~32%) + Debt / Total Assets < 40% (Buffett line; adapter's
statements.debt_to_assets_pct = TOTAL debt incl. leases, which matches the ~20% read on
AMZN — bond-only understates lease-heavy names like AMZN/retail/airlines; NOT D/E) + FCF persistently positive + net
margin. ⚠️ Over-high margins are themselves fragile → also a ⑦ risk.
- Semis/hardware: gross margin = a supply/demand thermometer (high = demand >> supply);
heavy-asset → check capex is covered by operating cash flow.
- Software SaaS: revenue growth + is it accelerating + NRR (>120% healthy); for
GAAP-loss names, strip out SBC first (
statements.sbc_pct_revenue; add it back to see real
profit) + check if buybacks offset the dilution + judge profitability by FCF margin
(>20%); asset-light → low capex; debt on a net-cash basis (converts vs cash).
- Capital-intensive / AI-infra: capex/revenue + net leverage (net debt/EBITDA; >3 = downgrade
risk) + whether FCF turned negative on capex + watch the rating agencies.
- Banks/financials: efficiency ratio (opex/revenue, lower better) + ROTCE + CET1
(gross margin / debt ratio / FCF do NOT apply).
- Retail/consumer: gross margin may be deliberately low (membership ~11%, so "GM = moat"
fails) → look at stable net margin + renewal rate (90%+) + same-store growth + inventory turns.
- Turnaround / heavy-asset IDM: read the repair slope / inflection, not the absolute level.
- ⚠️ Compare margins on a like-for-like basis (don't pit one firm's gross margin against
another's operating margin).
- Data: adapter
growth.*, quality.*, statements.* (debt/assets incl. leases, gross-margin trend,
SBC), valuation.ev_to_sales.
⑤ Valuation — method chosen by archetype (see the decision tree in 06-archetype-router.md)
- Relative: profitable large-cap → forward PE (never trailing), triangulate vs market
(SPX fwd ~22–25x) / own history / peers. Profitable high-growth software → high forward PE +
P/S. GAAP-loss / consumption SaaS → EV/Sales (better than P/S) + the Meritech rule
(sustaining >10x EV/Sales needs growth >20% AND FCF margin >20%) + quality-adjusted peer
comp (don't judge cheap/expensive against a single rival). Story/option stocks → don't use
relative multiples (distorted).
- Banks → P/B × BPS (ROTCE-driven), not PE.
- Turnaround / trough earnings → "market-cap headroom" build-up (TAM × share × net margin ×
PE + option value), because DCF and historical PE both break.
- Absolute DCF: give base / bull / bear vs current price. Story stocks → sum-of-parts
SOTP-DCF (discount each line, see where value concentrates).
- ⚠️ Universal valuation discipline: ① anchor the DCF base BELOW the analyst mean (he
runs conservative); ② target price ∈ [base, bull] — it can sit above base on high
conviction, it is not simply the base; ③ conclusion is a range: undervalued / fair /
overvalued / "neither cheap nor expensive".
- ⭐ Valuation ⊥ risk: ⑤ answers "cheap or not", ⑦ answers "dare to buy or not". A stock can
be "somewhat cheap" and "high risk". "Expensive" can itself be the #1 risk (slow to
digest + no downside protection).
- Data: adapter
forward_pe, ev_to_sales, price_to_sales, reverse_dcf_implied_growth,
analyst_target_asymmetry. ⚠️ For story stocks don't over-trust these multiples → go SOTP +
qualitative.
⑥ Investment logic (why buy) 〔synthesis〕
One-line bull thesis + the precondition (he stresses certainty). First test/falsify the
popular bear narrative with data. Common bull archetypes: growth + moat → certainty / a
"toll booth" independent of who wins downstream / mature compounder (Costco-style: stickiness +
price hikes + buybacks) / defensive counter-cyclical compounder / cyclical recovery + structural
improvement / turnaround (new CEO + catalyst + sector beta + expectation gap) / high ceiling,
firm floor. Story stocks → write a conditional bull ("only if you believe X gets
commercialized"). Often cites authorities (Munger/Buffett).
⑦ Investment risk (why not buy) 〔synthesis〕
Bear case. Mantra: the reason for success, flipped, is the risk (find the single most
important metric, ask when it deteriorates). Risk archetype library: ① core driver disappoints
(supplier-type → watch downstream customers' capex) ② competition / share loss ③ supply
chain / geopolitics / single point ④ high-multiple growth stock: growth peaks → multiple
compresses ⑤ founder/strong-man concentration & key-man dependence ⑥ heavy-asset depreciation
lag squeezing margins ⑦ macro / cyclical demand ⑧ regulation / antitrust / privacy ⑨ capital
misallocation / overspend ⑩ subsidy roll-off ⑪ story-stock tech that never ships ⑫ customer
concentration ⑬ balance-sheet / capex spiral ⑭ strong-cycle downturn (non-linear) ⑮ systemic
(e.g. private-credit) ⑯ valuation itself too high ⑰ slow innovation/AI adoption ⑱ post-rally
pullback / yield-ramp / can the turnaround become systemic ⑲ the business model gets bypassed
by a new paradigm (e.g. AI agents reading raw data directly → the "middle layer" is skipped) —
⑦ must always include this paradigm-disruption layer.
⚠️ Don't pile on risks the company has already neutralized (e.g. SBC offset by buybacks =
controllable, not a standalone risk). Tone: contextualize, don't catastrophize.
Productized conclusion: the rating card (see references/05-rating-system.md)
🔴 Coverage gate first. The free 5+2 write-up is the understanding layer; a full rating
card (rating + tier + target + range) is the paid/tracking layer. Only produce a rating
card if the name is in the tracking universe. For a name that isn't covered, end at
"fairly valued + valuation range + risks to monitor" — don't fabricate a card (if the user
explicitly wants a prediction, label it "⚠️ prediction, not yet covered").
- Rating STRONG BUY / BUY / HOLD (no SELL in the covered set) ≈ upside-to-target × conviction:
STRONG BUY = high upside (≥~28%) + high conviction; BUY = moderate upside, or high upside
suppressed by risk; HOLD = limited upside and/or thesis unproven.
- Tier 1–4 = risk/certainty tier (driven by ⑦ + moat depth + balance-sheet safety):
1 = safest/deepest moat → 4 = most speculative.
- Target ∈ [DCF base, bull]; the bear/bull range = the DCF bear/bull scenarios.
Output template (research brief)
📊 5+2 · {TICKER} {Name} ({industry})
〔Archetype: {1-8 or universal fallback} | ⑤ valuation method: {forward PE / EV-Sales / SOTP-DCF / P-B×BPS / cap-headroom}〕
〔Coverage gate: only show the【Verdict】card if the name is covered; otherwise drop it, keep just the ⑤ valuation range + note "not yet covered"〕
【Verdict】{STRONG BUY/BUY/HOLD} · Tier {1-4} · Target ${} (range ${bear}–${bull}) · Price ${} ({+upside}%)
① 【Industry】 {key trend}; size {TAM/CAGR}; structure {…}; tailwind/headwind: {…}
② 【Business model】 how it earns: {…} | moat: {type + durability} (ROIC {x}%) | share {…}
③ 【Management】 {founder? technical? reputation? succession? track record?}
④ 【Financials】 {metrics by archetype} GM/efficiency {x}% (trend {↑/↓}) | net margin/ROTCE {x}% | LT-debt/assets {x}% ({safe?}) | FCF {+/−}
⑤ 【Valuation】 {method by type} fwd PE/EV-Sales {x}x vs market/own history | DCF/SOTP base/bull/bear → {under/fair/over}
──────────
⑥ 【Why buy】 {one-line bull + precondition}
⑦ 【Why not】 ① {…} ② {…} ③ {paradigm-disruption} (core: success rides on X, failure too)
💡 Takeaway: {his voice — balanced, humble}
⚠️ Data: factsheet.py @ {date}; {missing/qualitative items}. Reproduces an analytical
framework, not investment advice; "5+2 is only the start."
Voice (see references/voice.md)
Loves analogies ("selling shovels in a gold rush"), plain-spoken, a "takeaway" after each step,
always pairs opportunity with risk, humble ("just a starting point, for reference"), often
cites research houses (Grand View / ARK / Mizuho, etc.).
Data & limits
- The adapter needs only
pip install yfinance; it collects facts, makes no calls.
- ④⑤ lean on the adapter; ①②③ require web search (industry/moat/management need the latest
qualitative info).
- Always stamp the data date + missing items; close with "not investment advice".
- Adapter provides:
statements.debt_to_assets_pct (total debt incl. leases, <40%), gross_margin_trend_q (5q),
sbc_pct_revenue, valuation.ev_to_sales, ROIC, reverse-DCF implied growth, analyst-target
asymmetry. Not available: NRR, forward EPS (use web).