Methodology & About
The product
Free
- Sentindex — flagship tracked NAV. Strategic Core + Strata blend, regime-dynamic weighting, daily composition + equity curve.
- Strata — thematic portfolios, each a Living Engine of sub-theses with conviction. Headline thesis, sub-thesis breakdown, current holdings, conviction log.
- The Regime Letter — bi-weekly Substack. What changed in the engine, what just flipped, what's in the book. Free, no daily-email spam.
Paid (in development)
- Full holdings with attribution — every position, every weight, daily per-position contribution to NAV, refreshed nightly.
- Sentindex CSV download — daily composition snapshot.
- Conviction-change alerts — push notifications when a sub-thesis conviction is updated or a portfolio is killed.
- Paid Substack articles — same author, same framework, deeper cuts.
The thesis
The 1991–2020 generic-access global regime — single-pole credit, free trade as default, marginal gold, compute as a global commodity — has been replaced. We're now in a multi-polar, specific-access regime along structural axes that interact in non-stationary ways. No single composite captures it. A panel of substrates, read literally, does.
The methodology is what we sell. The current substrate set is the worked example. When the regime rotates, the substrates rotate with it — pre-registered retirement criteria, all logged publicly.
The substrate model in one sentence
A substrate is a single observable macroeconomic variable with a pre-registered classification rule. Each substrate, every refresh, produces one of a small set of states (e.g. EXPANDING, RISING, TIGHTENING, CRISIS). Those states roll up into country-level regime reads. Those regime reads drive a global trade book. The trade book drives the Sentinel Index NAV.
substrate observation
↓ percentile + slope + level computation
substrate state (per pre-registered rule)
↓ consensus across substrates in the same country × dimension
country regime read (cycle, inflation, monetary, political)
↓ composite engine (BCI, CCMI, Recession Ensemble, Energy, Dollar, Global BCI, GPR)
two-layer portfolio
├─ Strategic Core — slot-based ETF sizing from composites
└─ Strata — thematic portfolios sized basket × conviction
↓ regime-dynamic Core/Strata weight blend
Sentindex — flagship tracked NAV
The whole pipeline is deterministic. Same data in, same output. No weights are estimated from in-sample performance. No look-ahead. Every substrate, every rule, every classifier threshold is documented in the Substrate Browser.
Part 1 — Substrates
Definition
A substrate has four required components:
- A data source — FRED series, IMF cache, yfinance ticker, Caldara-Iacoviello GPR, defined provider, traceable URL.
- A pre-registered rule — how raw values map to a small discrete state vocabulary.
- An asset implication — which retail-tradeable instrument the substrate informs, in what direction, on what horizon.
- A frequency and release calendar — so we know when its state can change.
A substrate is not a model. It's not a composite. It's not a latent factor. It's one published macro variable, read literally, with a published rule on top.
State vocabularies
Each substrate emits a state from a small, dimension-specific vocabulary:
- Cycle: ACCELERATING / EXPANDING / DECELERATING / CONTRACTING
- Inflation: DISINFLATING / STABLE / RISING / SURGE
- Monetary: EASING / NEUTRAL_DOVISH / NEUTRAL_HAWKISH / TIGHTENING
- Political: STABLE / WATCHING / ELEVATED / CRISIS
- Credit: COMPLACENT / NORMAL / WIDENING / PANIC
- FX: STRENGTHENING / STABLE / WEAKENING
- Fiscal: SURPLUS / BALANCED / DEFICIT / DOMINANCE / CONCERN
- External: SURPLUS / BALANCED / DEFICIT
- Commodities / flows / supply-chain: percentile-banded with category-specific labels
Vocabularies are intentionally small. The point is to read the regime, not curve-fit it.
Computation per substrate
For each observation, three numbers feed the classifier:
- Current value — the latest observation.
- 3-month slope — direction of change.
- Long-window percentile — where the current level sits relative to its own history. 5-year percentile default; some long-history substrates use 30-year.
Each substrate's pre-registered rule consumes some subset of those three numbers and emits a state. The rule lives in the substrate's JSON file — no buried hyperparameters, no estimated weights.
Part 2 — Country regime reads
Each of 16 countries gets four dimensional reads: Cycle / Inflation / Monetary / Political. The country regime is computed two ways depending on substrate density:
- Plurality-with-confidence when the country has 3+ substrates on the dimension — the dimensional state is the modal substrate state; confidence is the share holding that state.
- Single-substrate carry when only one substrate exists — that substrate's state IS the dimensional state, with confidence labeled as derived-from-one.
The regime map renders the 16 × 4 grid live. Cells with no registered substrate render as a dash; we don't bluff coverage.
Part 3 — The active trade book
The trade book is generated by four rule families, each reading from substrate state directly:
- Substrate firing — a single substrate flips into a stressed state (RISING / SURGE / CRISIS / etc.) and its asset implication fires directly. Most of the book.
- Country composite — two or more dimensions of the same country fire stressed states together. Triggers a country-level long or short.
- Cross-country pair — two countries diverge meaningfully (e.g. India ACCELERATING vs Mexico CONTRACTING with paired inflation states). Triggers a long-short pair.
- Risk-off composite — N countries fire simultaneously on inflation SURGE or political CRISIS. Triggers a market-wide short or vol position.
Each thesis is tagged with: trigger substrate(s), conviction (HIGH / MEDIUM / LOW), direction (long / short / pair / watch), horizon (days), and the mechanism — why the thesis should work. The full active book is paid.
Part 4 — The two-layer portfolio
The Sentindex is constructed from two independent layers that combine under a regime-dynamic weight rule.
Layer A — Strategic Core
A broad-ETF book sized by the composite engine outputs. Each composite drives one or two slots:
| Slot | Driver | Range |
|---|---|---|
| US equity (SPY) | BCI phase × score | 15% (RECESSION) – 60% (EARLY) + 20% QQQ overlay in EXPANSION |
| Duration (TLT) | Recession Ensemble probability ladder | 2% – 20% |
| Hard money (GLD) | Dollar Hegemony + GPR Global percentile additives | 5% – 12% |
| Real assets (DBC) | Energy Regime phase | 0% – 8% |
| Non-US equity (VEU) | Global BCI phase × z-score | 5% – 25% |
| IG credit (LQD) | Recession probability ladder | 3% – 8% |
| REITs (VNQ) | Recession × BCI joint | 0% – 5% |
| HY credit short (HYG) | CCMI flag count | 0% to −4% |
| Sector tilt (XLE / XLI) | Energy / Cycle phase | 0% – 3% |
Slot ceilings sum > 100% then scale proportionally to a 100% gross cap. Monthly rebalance. Walk-forward backtested 2014-01 → 2026-04 (147 months): annual +11.24%, Sharpe 1.35, max drawdown −11.0%, alpha +229 bp/yr vs 60/40.
Layer B — Strata (Living Engine thematic portfolios)
Each Strata portfolio is its own micro-product:
- A headline thesis (the "why")
- 3-5 sub-theses, each with a basket of names and a conviction (0.0–1.0)
- Sub-thesis weight = conviction / Σ conviction within the portfolio
- Equal-weight within each basket
- Conviction updates re-shift weights without rebalancing the basket structure
A portfolio's included_in_sentindex flag determines whether it contributes. Conviction → 0 kills a sub-thesis without deleting the spec; conviction → 0 across all sub-theses kills the portfolio. Kill criteria are pre-registered in each portfolio's spec.
Combination — regime-dynamic Core/Strata split
The Core/Strata weight split shifts by BCI phase:
| BCI phase | Core weight | Strata weight |
|---|---|---|
| EARLY CYCLE | 50% | 50% |
| EXPANSION (score ≥ 0) | 55% | 45% |
| EXPANSION (score < 0) | 60% | 40% |
| LATE CYCLE | 70% | 30% |
| RECESSION | 80% | 20% |
Within the Strata bucket, portfolios are weighted by their average sub-thesis conviction. The Sentindex daily return = core_weight × core_return + strata_weight × Σ(portfolio_share × portfolio_return).
Part 5 — The Sentindex NAV
The Sentindex is a tracked NAV computed daily from the two-layer portfolio.
- Inception:
at $100.00. - Daily return: weighted blend of Strategic Core + each included Strata portfolio per the regime-dynamic split.
- Cost model: 1 bp daily drag per portfolio on gross long exposure.
- Rebalance cadence: Strategic Core monthly; Strata on conviction-change events (no scheduled rebalance — the basket structure is stable, only the weights respond to conviction updates).
- Current state:
. Strata portfolios contributing. Gross exposure , net .
The Sentindex NAV is the product. The substrate engine + the two-layer architecture is the methodology.
Part 6 — What this is not
- Not a forecast factory. We don't predict CPI prints. We classify regimes from observable substrates and act on them.
- Not curve-fit. No optimization over historical returns. Sizing is a rule, not a backtest result.
- Not a black box. Every input, every rule, every threshold is in the substrate browser or this page.
- Not advice. Informational and educational only. The terms are here.
Cadence
| Job | Frequency |
|---|---|
| Substrate matrix refresh (data pulls + state computation) | Nightly |
| Country regime classifier | Nightly |
| Trade book regeneration | Nightly |
| Strategic Core sizing + NAV | Nightly |
| Strata portfolio NAVs (Living Engine) | Nightly |
| Sentindex combiner (Core + Strata blend) | Nightly |
| Hit-rate scoreboard | Nightly |
| Regime Letter (publication) | Bi-weekly |
| Substack archive sync | Every 30 min via cache |
| Strata conviction updates | On signal change |
How it's different from most macro writing
- Substrate-driven, not pillar-driven. The previous version of this site was organized around seven thematic "Repricing pillars." That model has been retired. Substrates are smaller, more numerous, more falsifiable, and each one has a single published rule. The framework is the methodology, not a narrative.
- Pre-registered everything. Every substrate's classification rule is committed before being graded. Every sleeve sizing rule is locked. Rejected research isn't quietly deleted; it stays in the kill log.
- No look-ahead, no curve-fit. No weights estimated from in-sample performance. ALFRED first-release vintages where applicable. Walk-forward state computation only.
- Public when it kills itself. If a substrate or a trade family fails, the kill log is public. The product is the discipline, not the back-test.
- Free where data is free. Public data, public rules, public regime read. Paid is for depth and actionable position-level detail — not for things any reader can compute from a public source.
Contact
Reply to any Regime Letter you receive. That's the channel.