| name | thesis-tracker |
| category | strategy |
| description | Buy-side discipline system. For each holding, maintain a written investment thesis — core thesis in 5 sentences, falsifiable assumptions, red lines, valuation anchors — and re-check it each quarter against new earnings/events. Scores thesis health 1-10 from assumption breakage and red-line triggers, and recommends hold / add / trim / exit. Use it right after buying a stock (to write the thesis) and every earnings season (to check it). Bridges the research→buy→monitor gap that most investors skip. |
Investment Thesis Tracker: Post-Buy Discipline
Track an investment thesis for a holding. First use on a company → build the thesis; later uses → quarterly check.
Supported input: company name (auto-decide build vs track); company build (force rebuild); company quarterly check (against latest earnings).
"Buying is only the beginning. The real work is continuous tracking through the holding period." — Li Lu
"When the facts change, I change my mind. What do you do, sir?" — Keynes
Design Philosophy
Most investors' process is: research → buy → pray. Without systematic post-buy tracking, they: refuse to sell when they should ("wait, it'll come back"); panic-sell when they shouldn't ("down 20%, was I wrong?"); forget why they bought ("why did I buy this again?").
Buffett and Li Lu write down sell conditions before buying, then check the thesis each quarter.
Step 1: Decide the Mode
Check whether a thesis file already exists (use read_file on reports/{company}-thesis.md): not found → Build (Mode A); found → Track (Mode B).
Mode A: Build the Investment Thesis
A0: Data Collection
Use web_search to get the current price, valuation (PE/PB/dividend yield), and latest financials. If a research report exists, read_file it first. Use financial_rigor (command=verify_valuation) to verify valuation, financial_rigor (command=verify_market_cap) to sanity-check market cap.
A1: Core Thesis (must be writable in ≤200 words)
The thesis must answer 5 questions, one sentence each:
I bought {Company} at {price} because:
1. The essence of this business is ___, and I understand how it makes money.
2. Its moat is ___, and it's widening / stable.
3. Management is ___, trustworthy because ___.
4. The current price is a {discount}% to intrinsic value; the margin of safety comes from ___.
5. Even if I'm wrong, downside is contained because ___.
If you can't fill 5 sentences, the thesis itself is flawed — the buy decision isn't clear enough.
A2: Core Assumptions List
Break the thesis into verifiable assumptions (3-7 typically; too few = shallow thinking, too many = unfocused):
| # | Core Assumption | How to verify | Frequency | Status |
|---|
| 1 | e.g. revenue growth stays >15% | Quarterly revenue growth | Quarterly | 🟢 Holding |
| 2 | e.g. gross margin stable >60% | Quarterly gross margin | Quarterly | 🟢 Holding |
A3: Red Lines (triggering any one = must re-evaluate)
| # | Red-line condition | Severity | Action on trigger |
|---|
| 1 | Management integrity problem (fraud, related-party) | Fatal | Exit immediately |
| 2 | Core business revenue down 2 consecutive quarters | Severe | Trim 50%, re-evaluate |
| 3 | Moat explicitly breached (competitor reaches parity) | Severe | Deep research, consider exit |
| 4 | Regulatory change fundamentally alters the business model | Severe | Re-value intrinsic value |
| 5 | Management large unplanned disposal | Warning | Investigate |
| 6 | Macro trend reversal for this name's end-market — e.g. demographic clock (population decline) for consumer/property/education names; consumption downgrade (居民边际消费下降); generational shift away from the category | Severe | Re-evaluate the long-term demand base; for consumer-dependent names, this is often a slow-moving but fatal headwind — assess whether the thesis still holds at a structurally lower growth path |
The red line on macro trends (demographic clock / consumption / generational) is deliberately explicit: a value-investing thesis that picks a consumer name without weighing population decline and consumption-trend headwinds is incomplete. For non-consumer names (e.g. pure B2B industrial), this red line may be loose; for consumer/retail/education/property names, weight it heavily.
Duan Yongping: "There are only three reasons to sell: 1. you got the buy wrong; 2. the fundamentals changed; 3. you found something better."
A4: Valuation Anchors
| Metric | At buy | Optimistic target | Neutral target | Pessimistic |
|---|
| Price | | | | |
| PE (TTM) | | | | |
| Market cap | | | | |
| Intrinsic value estimate | | | | |
| Margin of safety | | | | |
A5: Save the Thesis
Use write_file to write reports/{company}-thesis.md, including: build date, buy price and position, core thesis (5 sentences), assumptions list, red lines, valuation anchors, tracking table (empty initially).
Mode B: Tracking Check
B1: Read the Existing Thesis
Use read_file to load core thesis, assumptions, red lines, last check record.
B2: Gather Latest Data
Use web_search / get_stock_news / get_financial_statements: ① latest earnings (if new quarter/year); ② recent material events (management, regulation, competition); ③ current price and valuation; ④ insider transactions (major shareholder changes).
B3: Check Each Assumption
| # | Core Assumption | Last status | Latest evidence | Current status | Change |
|---|
| 1 | Revenue growth >15% | 🟢 Holding | Q4 revenue growth 12% | 🟡 Weakening | ⚠️ |
Status definitions:
- 🟢 Holding — latest data supports
- 🟡 Weakening — still acceptable, but trend is unfavorable
- 🔴 Impaired — data clearly does not support
- ⚫ Broken — assumption has been overturned
B4: Red-Line Check
Check each red line; any triggered → flag prominently in the report + clear action recommendation.
B5: Valuation Update
Use financial_rigor (command=verify_valuation) to recompute PE/PB/ROE; compare against buy-time and last check:
| Metric | At buy | Last check | Current | Change |
|---|
| Price | | | | |
| PE (TTM) | | | | |
| Intrinsic value estimate | | | | |
| Margin of safety | | | | |
B6: Output the Tracking Report
Structure: ① Thesis health score (out of 10); ② Assumption check table; ③ Red-line check table; ④ Key changes this period (≤500 words); ⑤ Valuation update; ⑥ Conclusion and action; ⑦ Focus for next check.
Health formula: 10 - (⚫broken × 3) - (🔴impaired × 2) - (🟡weakening × 1) - (red-lines triggered × 5), min 1, max 10.
| Score | Meaning | Action |
|---|
| 9-10 | All assumptions hold, thesis stronger than at buy | Consider adding |
| 7-8 | Core assumptions hold, some weakening | Continue holding |
| 5-6 | 1-2 assumptions impaired, core logic intact | Hold but raise alertness |
| 3-4 | Multiple assumptions impaired, foundation shaken | Consider trimming |
| 1-2 | Red line triggered or core assumption broken | Strongly consider exit |
The conclusion must clearly answer: ① Is the thesis still intact? (intact / weakening / impaired / broken); ② What to do? (add / hold / trim / exit); ③ Next check timing (next earnings / a specific event).
B7: Update the Thesis File
Use write_file to append this check to the tracking table in reports/{company}-thesis.md:
| Check date | Health | Key change | Action |
|---|
| 2026-04-09 | 7/10 | Revenue growth slowed to 12%, but margins improved | Hold |
Key Principles
- Write sell conditions before buying — decisions made calmly beat decisions made in panic.
- Assumptions must be verifiable — "a great company" is not a thesis; "ROE>25% and stable" is.
- Act when a red line triggers — "let's wait and see" is how big losses happen.
- Thesis breaking ≠ stock falling — a 30% price drop doesn't force a sell; a broken thesis does.
- Be honest about mistakes — if the thesis was wrong, admit it; don't defend it to save face.
- Weigh macro headwinds for consumer names — demographic decline and consumption downgrade are slow but can be fatal for consumer/property/education theses; bake them into red lines, not just quarterly checks.