Written 2026-09-03. A tool in service of the one goal (buy something good at a cheap price, repeatedly).
It adapts rule-003 (good is a checklist) and rule-004 (cheap is a margin of safety) to the one industry
where trailing multiples lie most often. First application: semiconductors-2026-09-03.md.
This file lives under output/ so the site serves it; resources/semiconductor-framework.md is a symlink to it.
Three facts break the generic Graham screen here:
| Model | Names here | Economics | What "good" looks like | Primary cheap gauge |
|---|---|---|---|---|
| IP / royalty | ARM | ~97% GM, no fabs, revenue = licence + royalty per chip shipped | Rising royalty rate per chip, Armv9 mix, FCF after SBC | P/(FCF−SBC) vs royalty growth; Graham on SBC-adjusted EPS |
| Fabless design | NVDA, AMD | 50-75% GM, asset-light, depends on TSMC and on customer capex cycles | Share of design wins, GM durability, SBC discipline, no customer warrants | P/(FCF−SBC), implied growth vs demonstrated growth, hyperscaler capex as demand proxy |
| Foundry | TSM, GFS | Capex 10-45% of revenue, utilisation drives GM, long-term agreements | ROIC through cycle > 15%, utilisation > 85%, pricing power (ASP up on flat wafers) | P/B vs justified P/B = (ROE − g)/(r − g); Graham on mid-cycle EPS |
| IDM turnaround | INTC | Design + fabs without scale; loss-to-profit inflection | Self-funding capex, milestone delivery, no dilution | Scenario EV/price; P/TBV; Graham fails at an inflection (rule-004) |
| Memory | MU | Commodity price-taker, capex 35-45% of revenue, GM 20-75% across a cycle | Cost-per-bit leadership, HBM share, capex discipline, net cash at peak | P/B vs own cycle range (trough 1-1.5x, peak 3-5x); P/normalised EPS; never trailing P/E |
| Equipment | ASML | Monopoly on EUV, backlog-driven, GM ~52%, lags foundry capex by 2-4 quarters | Bookings > sales, backlog > 1.5 years, China % falling without a sales hole | Graham on backlog-supported EPS; P/E vs long-run WFE growth (~7-9%) |
Five gauges, each read against the company's own 5-year history. Score the position, then decide which earnings number to normalise to.
| Gauge | Late / peak reads | Trough reads |
|---|---|---|
| Revenue vs 5-year trend line | > 20% above trend | below trend |
| Gross margin vs 5-year range | top decile | bottom quartile |
| Inventory days (company and customers) | rising 2+ quarters while revenue grows | falling from a spike |
| Capex / revenue vs history | industry capex guides rising 30%+ YoY | capex cuts announced |
| P/B vs own 5-year range | top decile | bottom quartile |
Output one word: Trough / Early / Mid / Late / Peak. Peak names take a normalisation haircut before any Graham table (memory: 5-year average EPS or mid-cycle margin × current revenue; fabless at peak GM: GM haircut to the 5-year median). Rule-005 applies in reverse at a trough: a cheap multiple on a shrinking base is only cheap once the decline decelerates.
| # | Test | Pass (2) | Amber (1) | Fail (0) |
|---|---|---|---|---|
| G1 | Through-cycle cash | FCF − SBC positive in the trough year of the last cycle | Positive on a 5-year sum, negative in the trough | Negative on a 5-year sum, or only positive with grants and partner cash |
| G2 | Moat, measured | Gross margin at trough > 40% (fabless, IP, equipment) or > 25% (foundry, memory); share rising; ASP up on flat units | One of the three | Trough GM below threshold and share falling |
| G3 | Returns on capital | 5-year average ROIC > 15%; incremental ROIC on the last capex wave positive | ROIC 10-15% | ROIC < 10% or negative |
| G4 | Balance sheet survives a bad year | Net cash, or net debt / mid-cycle EBITDA < 1x; a full capex cycle fundable from cash flow | Net debt 1-2x mid-cycle EBITDA | Needs the market to fund capex; converts or warrants outstanding |
| G5 | Not funding itself with shares | Share count flat or down over 5 years; buybacks exceed SBC; SBC < 5% of revenue (hardware) or < 15% (IP, fabless) | Share count up < 5% over 5 years, SBC above threshold but falling | Share count up > 5% over 5 years; warrants to customers or governments; ATM; converts within 2-3x |
| G6 | Insiders | Open-market buys by officers in the last 12 months, no discretionary sales | Sales only under 10b5-1 plans, no buys | Cluster selling (CEO + CFO + one more officer within 90 days). Owner's deal-breaker. |
| G7 | Story matches the numbers | The AI (or turnaround) claim shows up as disclosed segment revenue and margin, and guidance has been met 4 quarters running | Revenue shows it, margins do not (or the reverse) | The claim is absent from the filings, or two of the last four guides were missed |
| G8 | Concentration and geopolitics | No customer > 15% of revenue; China < 15%; no subsidy the P&L depends on | One exposure above threshold | Two or more, or a live export-control revenue hole |
Good = 12 or more out of 16 with no zero on G1, G5 or G6. A zero on G6 ends the analysis regardless of
score (owner's rule, 2026-09-02). Graham's 7 filters (pm graham screen) remain the coarse first pass;
they fail every quality semiconductor on P/E and P/B by construction, so their score is context, never
the verdict.
Run all seven; the verdict comes from C2, C5 and C7 together.
| # | Test | How | Cheap reads |
|---|---|---|---|
| C1 | Normalised EPS | Cyclicals: 5-year average EPS, or 5-year median operating margin × current revenue ÷ shares. Secular growers: forward consensus with a 10-15% haircut. Inflections: scenario EPS two years out | (input to C2) |
| C2 | Graham sensitivity | V = EPS × (8.5 + 2g) at g = 0 / 3 / 5 / 7.5 / 10 / 15%, on normalised and forward EPS. Read off the break-even g the price implies | Break-even g at least 5 points below the growth rate the business has delivered over the last full cycle (5-7 year revenue CAGR), with 25% margin of safety at that rate |
| C3 | Implied-growth gap | (P/E − 8.5) / 2 on trailing and forward P/E | Gap under 5 points. A gap over 10 points prices an inflection, not growth (rule-004) |
| C4 | Cash yield | (FCF − SBC) / market cap. Also EV / (FCF − SBC) | Yield above the 10-year Treasury (about 4.2%) for a mature name; above 2.5% for a name growing 20%+ |
| C5 | Reverse DCF | 10-year FCF CAGR the price needs at a 10% discount rate, 3% terminal growth, fading linearly to terminal in years 6-10 | Required CAGR below the demonstrated 5-year FCF CAGR, with room |
| C6 | Book value (capital-heavy only) | P/B vs justified P/B = (ROE − g) / (r − g) with r = 10%; P/B vs own 5-year range | P/B below justified, or in the bottom third of its own range |
| C7 | Scenario expected value | Bear / base / bull EPS two years out × a multiple that fits the model, probabilities stated, EV ÷ price | EV/price ≥ 1.25 = cheap; 0.90-1.25 = fair; < 0.90 = expensive |
Verdict rule. CHEAP requires all three of: C2 break-even growth cleared with 25% room, C5 required CAGR below demonstrated, C7 ≥ 1.25. FAIR when C7 is 0.90-1.25 and nothing in C2 or C5 is absurd. Otherwise EXPENSIVE. A name at Peak cycle position can never be CHEAP on trailing or current-year numbers, only on normalised ones.
| Good? | Cheap? | Action |
|---|---|---|
| Good | Cheap | Candidate. Same-day red-flag check (rule-007), funding source, starter tranche (rule-006) |
| Good | Fair | Write the price at which it turns cheap (C7 = 1.25). Set a pm watch REVIEW alert there. Walk away |
| Good | Expensive | Same, alert further down. This is where quality compounders spend most of their lives |
| Not good | Cheap | Usually a trap (rule-005). Ask why. No buy without a second look at G1 and G5 |
| Not good | Any | Discard, or hold-only if already owned with a kill list |
Portfolio filters that apply on top: VWCE already holds NVDA, TSM, ASML, AMD and MU at material weights, so a direct buy is a deliberate overweight and must say so; DEGIRO trades the US ADRs and ASML.AS in EUR (no TWSE access); a name already held counts against the 20% single-name cap (rule-006).
Write these into every {TICKER}_plan.json under fundamental_stops:
dividendYield and priceToBook are wrong for ADRs and for most of these names (TSM P/B 85x,
ASML P/B 1388x on 2026-09-03). Take balance-sheet ratios from the filing, not the screen.