Quantitative Risk Methodology · Research Model

The Systemic & TAM Risk Model

A probabilistic framework that reads the macro economy first — the envelope every market lives inside — and then asks, name by name, two separate questions: how deep can it fall, and whether (and how fast) it climbs back.

Universe AI-semiconductor & tech equities + sector ETFs Engine regime-switching Monte Carlo, ~150k paths × 7yr Output drawdown × recovery probability matrix Validation 101 invariant tests · 7-crash backtest
MACRO ENVELOPE — the boundary that contains every market systemic collapse: the envelope crushes all sub-markets together
What this document covers
  1. Why we read the macro economy first — the envelope — the organizing idea
  2. How the envelope presses sub-markets — transmission
  3. Systemic failure is the dominant risk — the keystone & the freeze
  4. Why we reject the Warren Buffett indicator — the aggregate fallacy
  5. The growth premium is real — why you can’t price everything the same
  6. The spine: depth and recovery are different questions
  7. The engine: regime-switching Monte Carlo
  8. Recovery dynamics — the differentiated layers
  9. The headline output: drawdown × recovery matrix
  10. ETFs: baskets diversify execution, not the envelope
  11. Your portfolio: combined risk & effective bets
  12. The decision layers — ranking, valuation & the forward cone
  13. The options layer — calls, spreads (legs), gates & execution cost
  14. Validation and honest limits
01
The organizing idea

Why we read the macro economy first — the envelope

Every market lives inside an envelope drawn by the macro economy. Think of it the way an engineer thinks of a signal: individual stocks oscillate, rise, and fall on their own news, but the envelope — growth, rates, liquidity, credit, leverage — sets the ceiling and the floor that contain all of that motion. Sub-markets are the signal; the macro economy is the boundary curve. You cannot understand where the signal can go without first knowing the shape of the envelope it is trapped inside.

That is why the model computes the macro state before it looks at a single company. The macro reading sets the regime probabilities for everything downstream — how often the market enters a crisis, how hard correlations spike, whether a collapse freezes recovery for years. No amount of individual quality protects a name when the envelope itself collapses: when the macro economy deteriorates enough to take down the S&P and the broad market, that collapse presses down on all markets at once. So the first question is never “is this stock good?” It is “what is the envelope doing, and how much room does it leave?”

The macro stress index splits its inputs into two families, because they behave differently in time. Structural signals are slow-burn fragility — stretched valuations, high real rates, leverage build-up, debt loads — the conditions that make a fall deeper and a recovery slower if something tips. Acute signals are the trigger — credit spreads, volatility, a liquidity drain — the things that fire when the system is actually seizing. A market can slide into a long de-rating from structural fragility while the acute triggers stay fast asleep; that decoupling was the lesson of 2022, and the model encodes it by driving the slow grind regime from structural stress and the sharp crisis regime from acute stress.

Macro stress — current reading
Composite stress score0.482
  Structural (slow-burn fragility)0.583  elevated
  Acute (seizure trigger)0.246  dormant
margin-debt growth (leverage)+45% YoY  · score 1.00
valuation — Shiller CAPE39.4  · score 0.73
real 10-year yield2.25%  · score 0.85
high-yield credit spread312 bps  · score 0.02
equity volatility (VIX)24  · score 0.39

Read it as: the powder is dry (high valuations, leverage, real rates) but no match is lit (credit and volatility calm). The structural channel widens the tail; the acute channel decides whether it fires.

This is the reason the whole model is ordered the way it is. The macro envelope is computed first because it is the constraint within which every other calculation happens. Everything that follows — depth, recovery, the growth premium, the systemic freeze — is downstream of the envelope.

02
Transmission

How the envelope presses sub-markets

The macro state does not stay abstract — it flows into every name through four mechanisms, each modeling a different way the envelope reaches down and squeezes.

Regime-switching. The market occupies one of four moods at any moment — calm, stress, crisis, or a slow de-rating grind. Macro stress raises the probability of entering the bad regimes: acute stress feeds crisis-entry, structural stress feeds grind-entry. The worse the envelope, the more time the market spends in regimes that fall hard and heal slowly.

Correlation spike. In calm times, names move on their own stories and diversification works. In a macro crisis, cross-correlations jump toward 0.9 — everything falls together because the shock is to the envelope itself, not to any one company. This is the envelope pressing every signal down at once, and it is why “I’m diversified across ten tech names” offers far less protection in a true macro event than in a normal pullback.

The systemic freeze. At the extreme — a total collapse — the envelope does not just push prices down, it freezes the recovery of the entire market for a period, because the financial plumbing seizes. This is the dominant tail risk and it gets its own section below.

The liquidity gate. Whether a collapse becomes a multi-year freeze or a months-long scare depends on the macro authorities. Draining liquidity (2008) lets the freeze run; a central-bank flood (2020) breaks it. The same panic produces a very different recovery depending on the backstop.

The envelope reaches down through the layers calm: each layer moves on its own  |  collapse: the envelope crushes them together, unevenly by dependence CALM ENVELOPE AI-infra (keystone) AI-platform disruptive defensive collapse SYSTEMIC COLLAPSE ~62 mo ~57 mo ~52 mo ~45 mo
FIG 2 — Recovery time after a 2008-type collapse scales with each layer’s dependence on the keystone. The plumbing (AI-infra) stays frozen longest; the defensive layer thaws first. “All layers, but unevenly.”
03
The keystone & the freeze

Systemic failure is the dominant risk

Most recovery logic in the model assumes no total collapse — each name heals at its own fundamental speed once the dust settles. But that assumption breaks in the one case that matters most. When the macro envelope causes a true systemic collapse — the broad market down past roughly 55% — the financial system itself freezes. Credit stops rolling, intermediation breaks, and even healthy companies cannot reclaim their value, not because anything is wrong with them, but because the market they trade in is broken. This is the 2008 case: frozen for years, across all layers.

The model represents this explicitly as a systemic-freeze layer. On the paths where the broad market collapses past the threshold, recovery is suspended market-wide — the recovery clock is paused while the plumbing is seized, then resumes. Three properties make it faithful to how systemic failures actually behave:

It propagates by dependency on the keystone. A systemic collapse does not freeze every sector equally. It freezes hardest the markets most dependent on the broken core. In this universe the keystone is the compute / data-center / AI-infrastructure layer — the plumbing that the platform and application layers run on. So the freeze length scales by dependence: AI-infra at full weight, the platform layer somewhat less, disruptive names less again, and defensive names least. This is the literal meaning of “a financial collapse affects all layers” — but it affects them unevenly, in proportion to how much each one leans on the frozen core.

The liquidity gate decides 2008 from 2020. Panic alone does not freeze a system — the response does. In 2008 liquidity was draining as the crisis hit, so the freeze ran for years. In 2020 the same magnitude of panic was met by a massive central-bank flood, and the freeze was averted — months, not years. The model computes freeze severity as panic multiplied by a liquidity-backstop gate, so a deep collapse with draining liquidity produces a long freeze, while the same collapse with a flood produces a short one.

It is causal. A freeze can only delay a recovery that is still in progress when the freeze starts. A collapse in year five cannot reach back and delay a recovery that already completed in year one — there is no look-ahead. The delay is precisely the part of the freeze that overlaps the recovery window.

Systemic-freeze — the liquidity gate
2008 seizure — liquidity drainingseverity 0.71 → ~25 mo freeze
2020 crash — central-bank floodseverity 0.12 → ~14 mo, averted
today — calm, no credit stressseverity 0.02 → dormant
collapse trigger (broad-market drawdown)≥ 55%
keystone → defensive dependency1.00 → 0.35

Calibration check: on a 2008-state path the keystone takes ~62 months to recover, against the S&P’s real ~66 months to reclaim its 2007 peak. The layer is dormant today and only shapes the deep tail.

Why this is the dominant risk

Individual fundamentals govern the ordinary case. But a systemic collapse overrides them — it presses every market down together and freezes them all from healing. That is why the model checks the macro envelope first and treats systemic failure as the risk that, when it fires, matters more than anything specific to any one name.

04
The aggregate fallacy

Why we reject the Warren Buffett indicator

The Buffett indicator — total stock-market capitalization divided by GDP — is the best-known “is the market overvalued” gauge. It draws one line across the whole market and says: when the ratio is high, stocks are expensive and must revert. The model does not use it as a signal, and the reason is the same reason the model exists: treating the entire market as one undifferentiated asset measured against one fixed fair line throws away everything that actually determines risk.

What the indicator ignores

  • Composition. Today’s index is dominated by high-margin, capital-light, high-growth businesses — software, platforms, AI infrastructure. They legitimately earn higher multiples than the asset-heavy industrial economy the ratio was calibrated on. Comparing 2026 to the 1970s compares different organisms.
  • Interest rates. Valuation is rate-dependent. At low real rates a higher multiple is justified; at high real rates, less. The ratio has no rates term at all.
  • Globalization. US large-caps earn a large share of revenue abroad. Dividing global earnings (the numerator) by domestic output (GDP) is a mismatch that widens every year.
  • Its own track record. It has read “overvalued” for over a decade while the market compounded. A signal that has been wrong for ten years is not a timing tool.

What we do instead

  • We never ask whether the aggregate sits above a fixed line.
  • We decompose each name’s valuation into a base (what an average business is worth, set by a rates-aware fair multiple), a justified premium (earned by growth, margins, TAM, dominance), and an unsupported premium (the floating, speculative part).
  • Only the unsupported float is treated as fragility. The justified premium is not a sin to be punished — it is value the business has earned.
  • The fair multiple itself moves with real rates, so the baseline is honest about the macro environment rather than frozen in a single historical average.
The rates-aware fair multiple, vs. a fixed line
fair base multiple today (real rate 2.25%)15.8×
fair base multiple at a 1.5% real-rate anchor18.0×
fair base multiple in 2020 (near-zero real rates)~24.6×
market CAPE today (the “expensive” headline)39.4

A single fixed line would call the market uniformly expensive. The model instead moves its own baseline with rates and then asks, per name, how much of the premium above that baseline is earned versus floating.

05
Why you can’t price everything the same

The growth premium is real

Some assets deserve a premium, and pretending they don’t is the mistake the aggregate view makes. The clearest analogy is real estate. A home with an ocean view, or one in a scarce prime district, sells for far more than the median price per square foot — and that premium is real, not overvaluation. It reflects a scarce, durable, desirable attribute that buyers compete for. No one prices every house at the city average and calls the waterfront homes “overpriced” for trading above it.

Equities work the same way. A company with a large and growing TAM (total addressable market), strong execution, high margins, and durable demand deserves a higher multiple than the average company. It is supply and demand applied to growth itself: high-quality compounding is scarce, so the market bids it up. In a good economy that premium expands — risk appetite is high and growth is scarce, so the scarce thing commands more. In a crisis the floating part of it deflates. But the earned core of the premium is not fragility; it is the equity-market equivalent of the ocean view.

Every valuation is decomposed, not compared to one line base = average business (rates-aware)  |  justified = earned by TAM/growth/margins  |  unsupported = speculative float (the only fragile part) base justified unsupported Secular leader large durable TAM, fat margins Average business market-average growth Speculative name story > fundamentals
FIG 5 — The secular leader carries a large earned premium and only a thin float; the speculative name is mostly float. Same headline “expensive,” opposite fragility. This is why they cannot be modeled the same way.

The TAM does double duty. It justifies the premium on the way up, and it powers the recovery on the way back: a company with a large serviceable runway recovers because demand keeps growing into it, while a name whose story has outrun its market does not. This is the bridge between the valuation side of the model and the recovery side — the same quality that earns the premium is the quality that brings the price back.

The principle

You cannot model every name on one multiple any more than you can price every house at the city average. The model respects the earned premium, isolates the speculative float, and lets the size and durability of the TAM drive both the premium and the recovery.

06
The spine

Depth and recovery are different questions

The single principle that holds the whole model together is that how deep a name falls and whether it recovers are governed by different forces, and must never be crossed.

Depth is market-driven. How far a name falls in a shock is set by its beta to the market and by how correlations spike in a crisis — it is a property of the envelope and the name’s sensitivity to it. A high-beta name falls hard in a crisis whether it is the best company in the world or the worst.

Recovery is fundamental. Whether the name climbs back, and how fast, is set by its TAM, growth, demand cycle, balance sheet, and — in the extreme — whether a systemic freeze has the whole market locked. Two names can fall exactly as far and have completely different futures: one reclaims its peak in a year, the other never does.

Two orthogonal questions DEPTH → set by beta & crisis correlation (the envelope) RECOVERY → set by TAM, growth, cycle deep fall, fast recoverysecular leader, big TAM deep fall, no recoverybroken thesis / impaired shallow fall, fast recoverylow-beta defensive shallow fall, slow recoverycyclical, demand-cycle wait
FIG 6 — Beta places a name left-to-right; fundamentals place it top-to-bottom. The two are independent, so a deep fall says nothing on its own about whether the name comes back.
07
The engine

Regime-switching Monte Carlo

The model does not produce a forecast — it produces a distribution. It rolls the market forward roughly 150,000 times, each a distinct seven-year future, and counts what happens. A “probability” in this model is a frequency over those futures, the way a rain forecast is a frequency over similar weather days — not a guess about one outcome.

Each simulated future is built in layers. First the market mood walks through the four regimes, with transition odds set by the macro stress reading. Then each name reacts: its price moves with the market factor scaled by its beta, plus its own idiosyncratic noise, with fat tails so extreme moves are not understated and a crisis correlation spike so names move together when the envelope is hit. From each path the model measures the deepest drawdown inside each horizon — 6, 12, and 18 months — and then searches forward for the day the name reclaims its prior peak. Aggregated over all paths, that becomes a probability of falling and, conditional on falling, a probability of having recovered by each later horizon.

The four regimes
calmdrift up, low volatility — the default
stresselevated volatility, mild negative drift
crisissharp drawdown, correlations → 0.9 (acute-driven)
grindslow de-rating, sticky negative drift (structural-driven)

The grind regime is what stops a crisis from always V-shaping; the crisis regime is what makes the deep falls. Both entry rates rise with macro stress.

08
The differentiated layers

Recovery dynamics

Once a name has fallen, the model does not let it heal on a single generic curve. Recovery is shaped by what kind of business it is — the same differentiation that runs through the valuation side.

Crash-conditional growth. A secular business (durable, growing TAM) keeps compounding through a selloff and recovers smoothly. A cyclical business sees its actual demand fall during the down-cycle, so it recovers later and along a different shape. A broken business — whose demand thesis is invalidated — steps down and may not recover at all.

Per-theme cyclical demand troughs. Cyclical recovery is not merely slower — it is back-loaded, because demand keeps falling for a period after the price rolls over and the price cannot reclaim its peak until the cycle clears. The wait is calibrated per theme: memory is the deepest and longest cycle, optical and broad-semis are shorter. The result is a recovery curve that is flat early and steep late, which is the demand-rebound picture rather than a constant slowdown.

Solvency and dilution. The growth-premium logic also runs on the downside. A company with weak financials survives a deep crash if its revenue stays durable, but becomes a permanent impairment if revenue craters at the same time — and a cash-poor, levered name forced to raise equity at the lows takes a permanent per-share haircut. Durable-revenue businesses are spared; the fragile ones are not. This is why a levered name with sticky enterprise revenue is treated very differently from a levered name with cyclical revenue.

Conditional recovery, given a >25% fall P(reclaimed prior peak) over months since the fall — current model output 80% 40% 0% 06m12m 18m24m36m NVIDIA — secular (smooth) Marvell — broad-semis Micron — memory (back-loaded)
FIG 8 — Three names that fall to similar depths recover on very different curves. The secular leader climbs from the start; the broad-semis name waits out a short cycle; the memory name is flat for over a year while demand bottoms, then catches up. Same depth, different recovery — the spine of the model.
09
The headline output

The drawdown × recovery matrix

The model’s primary output, per name, is a matrix that answers exactly the two questions in the order they matter. For each drawdown horizon — 6, 12, 18 months — it gives the probability of a fall, and then, conditional on that fall, the probability that the name has reclaimed its prior peak within 6, 12, 18, 24, or 36 months, plus the residual that is still underwater past three years (the slow, cyclical-wait, impaired, or permanent tail). These are probabilities; the model makes no claim about exact timing.

NVIDIA — if it falls >25%P(fall)rec ≤6m≤12m≤18m≤24m≤36m
within 6 months13%17%34%45%51%61%
within 12 months34%~45%~51%~61%
within 18 months53%~45%~51%~61%

The names are then ranked, and the ranking is deliberately not a single number — it carries the kind of recovery with it, because a high expected return that depends on a cyclical rebound is a different proposition from one backed by secular compounding.

Rank labelMeaningExamples
HIGHsecular growth, clean recovery — earns the premium and climbs back smoothlyNVIDIA, Astera Labs
HIGH*high growth but rebound-dependent — recovery waits on a demand cycleMicron, AMD, Marvell
AVOIDbroken thesis — does not rank high regardless of how cheap it looksspeculative pre-revenue names

The asterisk is doing real work: a cyclical name can screen as cheap precisely because its earnings are at a cyclical peak, right before they roll over. The model prices it on through-cycle earnings and flags the recovery as conditional, rather than waving it through as a clean value name.

10
Baskets

ETFs diversify execution, not the envelope

An ETF is treated as a holdings-weighted basket, and the key insight is about which risks a basket removes and which it cannot. A basket diversifies away idiosyncratic execution and survival risk — the “did I pick the one company that mismanaged the cycle or got disrupted” risk. Owning all the memory makers instead of one means you no longer carry the bet on which of them executes best; their individual stumbles are largely independent and wash out.

But a basket does not diversify two things. It cannot diversify the macro envelope — when the broad market collapses, the whole basket falls with it, because that risk is common to every holding. And it cannot diversify a cyclical theme’s demand cycle — a pure memory ETF is exposed to the memory cycle no matter how many memory names it holds, because the down-cycle hits all of them at once. So a thematic ETF is more predictable on the recovery side (execution noise averages out) while still carrying the full envelope and the full theme cycle. The model damps each basket’s idiosyncratic risk in proportion to how concentrated it is — a three-name basket gets far less diversification credit than a thirty-name one — and classifies baskets by predictability from broad index down to narrow or leveraged.

10·b
Your portfolio

Combined risk & effective bets

The same basket logic is applied to your own holdings on the portfolio page. Rather than re-running the full engine, it combines each name’s already-simulated per-name numbers — down-25% odds, permanent-loss tail, two-year recovery, expected growth — weighted by how much you hold, into a single read on the basket you actually own.

Effective bets is the headline. Holding five names that all move together is not five bets — it is closer to one. We quantify that with an effective-N: 1 ÷ (ρ + (1−ρ)·Σwᵢ²), where the wᵢ are your weights and ρ is the universe’s crisis correlation (≈0.91 for AI/semis, read from the model’s correlation lens). At high ρ the figure collapses toward 1 no matter how many names you add — the page’s way of saying that diversifying within the sector barely lowers a crash, and only spreading across uncorrelated sectors does.

The joint big-drop is simulated, not assumed. To capture the chance that most of the basket falls together — the thing simple averaging hides — a Gaussian copula draws a shared market factor plus an idiosyncratic shock for each holding (thousands of paths), counts the paths where names summing to at least half your weight breach their own down-25% threshold, and reports that probability. It is correlation-aware by construction: the higher the crisis ρ, the more often the whole basket tips at once. The expert view exposes the raw ρ, the effective-N arithmetic, the path count and a per-holding contribution table; the beginner view shows only the plain-language cards. This layer reuses published per-name odds and the crisis correlation — it is not a fresh full-engine run.

11
The decision layers

Ranking, valuation & the forward cone

The simulation produces the raw probabilities; a thin set of decision layers turns them into something you can read and act on — all built on the same engine, none of them new models.

The headline ranking is reward-vs-S&P. For each name it is (its growth ÷ the S&P’s growth) × (the S&P’s long-run tail ÷ its own tail), with the S&P itself defined as 1.00. Above 1.00 means more growth earned per unit of permanent-loss risk than simply owning the index. Sorting by this gives a deliberately different order than sorting by growth alone — it can float a lower-tail name above a faster grower.

That ranking drives a fixed-size league. Every priced name competes; the board keeps the top 125 and the dashboard highlights the top 50. The S&P and SCHD benchmarks are pinned for reference and leveraged vehicles are excluded. Crucially, membership uses hysteresis: a challenger only displaces an incumbent when it out-ranks it by a margin, so Monte-Carlo noise near the cut-off cannot churn the list. The whole AI/semis market is re-screened on each run, but the board only moves when the standings genuinely move.

Valuation is decomposed, not asserted. Each price is split into a base (an ordinary business at today’s real rate), an earned premium (justified by growth duration, margins, market size and moat) and a floating premium (the unsupported remainder). The valuation gap is the share of the multiple sitting above the model’s justified level; the earn-back clockT = ln(P/Enow ÷ P/Efloor) ÷ ln(1 + g) — is how many years of growth it would take to absorb a reset to that floor, flagging “dead-money” names whose multiple cannot be grown back inside a reasonable horizon. Only the floating part is treated as fragile.

The forward cone is a distribution, not a forecast. Each name’s detail shows the 10th-percentile, median and 90th-percentile of its simulated price over 36 months — the spread the Monte-Carlo actually produces, recomputed every run. It is explicitly a range of simulated futures, never a single price target.

Two horizon-aware views sit alongside. The ETF horizon ranking scores each basket independently at 1-, 2-, 3- and 5-year holds — expected growth path discounted by the chance of an unrecovered loss within that window — so the same fund ranks low for a short hold and high for a long one if it heals slowly. The stress ladder re-runs the engine across macro environments from benign to critical and reports how each exposure’s fall-probability widens, with today’s reading marked.

12
Options

Calls, spreads (legs) & gates

The options layer prices a call as the discounted average payoff over the same simulated paths: fair = e−rT · average of max(ST − K, 0). This is a physical-measure, thesis-conditional value — what the move is worth if the model’s judgment is right — and it is deliberately blind to implied volatility. A consequence the page states plainly: P(profit) ≠ P(in-the-money) — the chance the stock clears strike + premium is what matters, not merely finishing above the strike.

Gates come before ranking, as hard vetoes. A broken-thesis name is rejected outright (a longer expiry does not repair a broken story); cyclical names reject short-dated calls (the demand trough can keep them down past expiry); survivability-flagged names are limited to defined-risk spreads. Only survivors are ranked, by P(profit) — a large edge can never buy back a failed gate.

The “legs” are the multi-leg structures. A spread buys one call and sells a higher one — the two strikes are its legs — which lowers cost but caps the gain at the upper strike. The model prices debit verticals, butterflies (1–2–1) and tail-kickers, governed by a tail-give-up rule: cyclicals tolerate spreads (their rebound is bounded), while durable secular names draw caution above 35% give-up (large above 55%), because selling their far upside cheaply forfeits exactly what makes them worth holding. Net-naked upside shorts are banned.

The Top-picks board ranks the AI/semis league’s optionable names, placing the live option market price beside the model’s fair value and an edge, refreshed daily. The core lens stays IV-blind; a separate broker overlay can veto a model-positive trade on real implied-volatility, liquidity or event risk when a live quote is supplied. The layer covers calls and call-spreads only — no puts. Each board row expands into a detail view — beginner-simple or full-data depending on the mode toggle.

Execution cost is checked per spread, not assumed away. A model edge is only real if you can actually enter without surrendering it to the bid-ask. The execution-cost check pulls the live quote on both legs of the suggested spread, sums the half-spread you cross on each, and expresses the total as a percentage of the share price — flagging 🟢 cheap (≤2%), 🟡 meaningful (≤5%) or 🔴 costly (>5%, where a liquid sector ETF — a few basis points wide — is often the better expression of the same view). It runs server-side so the data key stays off the browser, and reports each leg’s open interest so a thin contract is visible before you trade.

13
Honesty

Validation and limits

The model is checked, and it is checked honestly — including about what the checks do not prove.

The seven-crash backtest validates depth, not timing. Setting the macro dial to the eve of each of seven historical crises — 2000, 2008, 2011, 2015–16, 2018-Q4, 2020, 2022 — the simulated 90th-percentile tail brackets the realized fall in six of seven, with 2008 grazing the edge (a realized −57% against a −56% tail). This validates that the stress-to-depth mechanism behaves across very different regimes. It does not validate recovery timing, and it is not a claim of foresight — the macro inputs are historical, documented approximations used to test the mechanism, not predictions made in advance.

The recovery side is where the systemic-freeze layer earns its place. The reason 2008 is interesting is not the one-point miss on depth — it is that a systemic collapse takes years to heal, and a model that lets every name bounce independently would understate that. The systemic-freeze layer is precisely what represents the long, frozen, all-layers recovery, calibrated so a 2008-type keystone collapse reads as roughly the S&P’s real five-and-a-half-year heal. The model represents the systemic recovery explicitly; the depth backtest simply does not score it.

Other checks: the solvency-impairment channel is validated against real 2021–2024 outcomes (it separates the companies that became permanent impairments from those that recovered, keyed on revenue durability). The whole system is held in place by 101 invariant tests that fail loudly if any mechanism drifts.

The recovery-timing backtest — the deferred "A+ data project", now run. Using real daily price history back to 2008, we found every >25% drawdown in the long-lived names and measured how long each actually took to reclaim its prior peak, versus the model's predicted recovery curve.

What this model is — and isn’t

It is a probability engine: it tells you how likely a fall is over a horizon, and how likely a recovery is given a fall, with the macro envelope read first and each name’s growth premium and recovery treated on its own terms. It is not a price target, not a market-timing signal, and not a promise. It is a disciplined way to reason about depth, recovery, and the one collapse that overrides everything.