What the book can lose, and the rules that cut it.
A quantitative check on the current holdings — concentration, duration, volatility, correlation, VaR and drawdown — and the kill levels and position rules run against the latest prices and the Treasury curve. Generated by scripts/risk-check.py from the site data; nothing on this page is a forecast.
Rule checks
Position and sleeve caps, kill levels and stops, run against the latest close. A breach means the rule says sell; a review means the rule says look and record the decision.
| Rule | Status | Value | Detail |
|---|---|---|---|
| Single position ≤ 35% of NAV | Pass | TLT 35% | Largest position against the cap; at the cap counts as a pass. |
| One macro view (sleeve) ≤ 50% of NAV | Pass | rates 50% | TLT + IEI share one view: lower long-end yields into a credit slowdown. |
| Top two positions ≤ 60% of NAV | Pass | 50% | The August book ran at 60%; the cap is set there. |
| Cash ≥ 10% of NAV | Pass | 36% | Dry powder for the re-entry rules without selling the Treasury sleeve. |
| Low-conviction positions ≤ 5% combined | Pass | 4% | INTC and AMAT are 2% each. |
| TLT kill: 10y close > 5.31% or 30y close > 5.67% | Pass | 10y 4.94% · 30y 5.31% (2026-10-30) | Margin 37bp on the 10-year and 36bp on the 30-year. Closest approach: 10y 5.31% on Oct 5 and 30y 5.67% on Oct 7 — at, not through. |
| IEI kill: 2y close > 5.00% | Pass | 2y 4.56% | Margin 44bp. |
| OSCR hard stop 26.00 | Pass | last 31.36 | Cushion 21% above the stop. |
| INTC hard stop 45.00 | Pass | last 60.40 | Cushion 34% above the stop. |
| INTC drawdown vs cost > 25% → review | Review | -36% | Reviewed Nov 2, 2026 after the Oct 29 results (−36% vs cost). Decision: hold at 2% under the position-note rules — gross margin must be guided above 38% within two quarters and the external-foundry ramp must stay in 2027; no adding; $45 hard stop. Recorded on the INTC thesis card. |
| Portfolio 1-day 99% VaR ≤ 3% of NAV | Pass | 0.94% | Parametric, fixed weights, last 60 trading days. |
Positions
| Ticker | Sleeve | Weight | Entry | Last | vs cost | NAV effect | Vol (ann.) | Beta | Corr SPY |
|---|---|---|---|---|---|---|---|---|---|
| TLT | rates | 35% | ≈78.00 | 81.82 | +4.9% | +1.71% | 11% | 0.16 | 0.15 |
| IEI | rates | 15% | ≈113.40 | 115.00 | +1.4% | +0.21% | 4% | 0.04 | 0.10 |
| OSCR | repriced | 10% | ≈32.00 | 31.36 | -2.0% | -0.20% | 45% | 1.05 | 0.23 |
| INTC | repriced | 2% | ≈95.00 | 60.40 | -36.4% | -0.73% | 86% | 5.05 | 0.58 |
| AMAT | semicap | 2% | ≈439.71 | 377.95 | -14.0% | -0.28% | 52% | 2.12 | 0.40 |
| Book | cash 36% | 64% | +0.71% | 6% | 0.31 | 0.48 |
vs cost is the price return against the (approximate) average cost; NAV effect is weight × return, so it is the unrealised contribution of each position on current weights. Vol, beta and correlation use the window below.
Concentration
| Sleeve | Weight | What it shares |
|---|---|---|
| rates | 50% | One macro view — lower long-end yields into a credit slowdown (Issue #9). Both positions lose on the same move; the kill levels are on the curve, not the price. |
| repriced | 12% | Two positions taken after a price reset (OSCR after the 2025 ACA losses, INTC after the September high). Independent businesses, but both are equity beta and both report inside the next quarter. |
| semicap | 2% | The remainder of the August wafer-fab position; shares the memory-capex cycle with any Micron re-entry (cap 35% for the whole cycle). |
| cash | 36% | Earns the bill rate; not in the risk statistics. |
Duration and rate shocks
Assumed effective durations: TLT 16.0 years, IEI 4.4 years. Book duration 6.3 years on NAV. Curve on 2026-10-30: 2y 4.56% · 5y 4.71% · 10y 4.94% · 30y 5.31%.
| Shock | TLT | IEI | Book (NAV) |
|---|---|---|---|
| +25bp parallel | -4.0% | -1.1% | -1.56% |
| +50bp parallel | -8.0% | -2.2% | -3.13% |
| +100bp parallel | -16.0% | -4.4% | -6.26% |
| To the kill levels (30y +36bp, 2y +44bp) | -5.8% | -1.9% | -2.31% |
Price effect of a parallel shift, no convexity, no carry. The last row is what the book loses if yields rise to the kill levels — the rule cuts TLT at the 10-year/30-year levels and IEI at the 2-year level, so this is the budgeted loss on the Treasury sleeve.
Volatility, correlation and VaR
| TLT | IEI | OSCR | INTC | AMAT | SPY | SOXX | Vol | |
|---|---|---|---|---|---|---|---|---|
| TLT | 1.00 | 0.80 | 0.08 | -0.11 | -0.32 | 0.15 | -0.18 | 11% |
| IEI | 0.80 | 1.00 | -0.03 | -0.15 | -0.18 | 0.10 | -0.11 | 4% |
| OSCR | 0.08 | -0.03 | 1.00 | -0.06 | -0.10 | 0.23 | -0.07 | 45% |
| INTC | -0.11 | -0.15 | -0.06 | 1.00 | 0.60 | 0.58 | 0.83 | 86% |
| AMAT | -0.32 | -0.18 | -0.10 | 0.60 | 1.00 | 0.40 | 0.80 | 52% |
| SPY | 0.15 | 0.10 | 0.23 | 0.58 | 0.40 | 1.00 | 0.67 | 10% |
| SOXX | -0.18 | -0.11 | -0.07 | 0.83 | 0.80 | 0.67 | 1.00 | 42% |
Correlation matrix of daily returns, 2026-08-10 to 2026-11-02. The number that matters for this book is TLT against SPY: +0.15 over the window. Positive: Treasuries did not hedge the equity sleeve over this window, so the book is one macro bet with equity beta on top.
Equity shocks
| Shock | TLT | IEI | OSCR | INTC | AMAT | Book (NAV) |
|---|---|---|---|---|---|---|
| SPY -10% (via 60-day beta, gap days removed) | -1.6% | -0.4% | -10.5% | -33.6% | -21.2% | -2.78% |
| SPY -20% (via 60-day beta, gap days removed) | -3.3% | -0.8% | -20.9% | -67.3% | -42.3% | -5.56% |
Beta-implied moves using each name's regression with its own gap days (|return| above 15%, i.e. earnings sessions) removed: TLT 0.16, IEI 0.04, OSCR 1.05, INTC 3.36, AMAT 2.12. Single-name risk is not captured this way — INTC on Oct 30 was a −29% day against −1.8% for SPY; the hard stop and the 2% cap are the control for that.
The rules
- Single position ≤ 35% of NAV; the top two positions together ≤ 60%.
- One macro view (a sleeve whose positions lose on the same move) ≤ 50% of NAV; one capex cycle (memory: MU + AMAT + LRCX) ≤ 35%.
- Cash ≥ 10% of NAV so that a re-entry rule can be acted on without selling the Treasury sleeve.
- Low-conviction positions ≤ 5% of NAV combined, and never added to in a drawdown.
- Every thesis position carries a kill rule written when it is opened: a business measure (the thesis is wrong) and a price level (the sizing is wrong). Treasury kill levels are on the curve: 10y > 5.31% or 30y > 5.67% closes TLT; 2y > 5.00% closes IEI.
- Every tactical trade carries a stop at entry; the tactical sleeve is scored separately from the thesis sleeve.
- A position more than 25% below cost is reviewed the same week and the decision is recorded on its thesis card; the review cannot add to the position.
- When my own published screen rates a holding 'avoid', the position is reviewed the same week.
- This page is regenerated whenever weights change or a kill level is approached; the check is mechanical and the decision is mine.
- Window: the last 60 trading days to 2026-11-02; daily simple returns; volatility annualised by √252. Correlations and betas are sample statistics over the same window and move with it.
- Weights are the Oct 16 snapshot (TLT 35, IEI 15, OSCR 10, INTC 2, AMAT 2, cash 36) held fixed over the window, so the VaR and drawdown describe today's book run back over the window, not the realised history.
- Durations are assumed (TLT 16, IEI 4.4 years) from the funds' published effective durations; the rate shocks are price effects of a parallel move with no convexity and no carry.
- Parametric VaR assumes normal daily returns; the historical 95% figure is the 5th-percentile day of the fixed-weight book over the window. With one quarter of data these are order-of-magnitude numbers, not limits.
- INTC's 60-day statistics include the Oct 30 and Nov 2 sessions (−29% and −8%), which dominate its volatility and the book's worst day.
To refresh: add new closes and curve rows to data/risk-prices.json, update weights in data.json, run python3 scripts/risk-check.py and deploy. The script has no dependencies beyond Python 3.