GhostRegime Methodology

How the regime classification and allocation system works. No finance bro language, just the facts.

Overview

GhostRegime is a rules-based system that classifies market conditions and adjusts portfolio exposure accordingly. It outputs a daily Regime (macro backdrop: growth/inflation mix) and Risk Regime ("risk on" or "risk off" translation).

From these classifications, GhostRegime computes scales (how much exposure to take today) and applies them to targets (baseline weights like 60/30/10) to produce actual allocations.

This is a daily model. Humans usually rebalance on a cadence, not every time a number twitches.

Regimes at a glance

Inflation
Disinflation
Risk Off
Risk On
GOLDILOCKS
Risk On / Disinflation
REFLATION
Risk On / Inflation
DEFLATION
Risk Off / Disinflation
INFLATION
Risk Off / Inflation
GOLDILOCKS
Risk On + Disinflation. Markets are brave and prices are calm.
REFLATION
Risk On + Inflation. Markets are brave but prices are rising.
INFLATION
Risk Off + Inflation. Markets are cautious and prices are rising.
DEFLATION
Risk Off + Disinflation. Markets are cautious and prices are falling.

How the map is chosen

The regime map is determined by a simple 3-step flow:

  1. Signals vote on risk and inflation directions
  2. Axis scores determine which quadrant
  3. Quadrant maps to a regime (GOLDILOCKS, REFLATION, INFLATION, DEFLATION)

Signals vote on risk and inflation directions independently. The combination of these two axes determines which quadrant (regime) we're in.

Option B Voting

We look at several market signals and vote on risk and inflation directions. Each signal contributes a score, and the scores map to regime buckets (GOLDILOCKS, REFLATION, INFLATION, DEFLATION for inflation; RISK ON / RISK OFF for risk).

Signal inputs (nerd stuff)
Risk axis signals:
  • SPY trend (equity momentum)
  • Credit vs Treasuries (HYG/IEF ratio)
  • VIX stress (volatility regime)
  • EM vs US (EEM/SPY relative strength)
Inflation axis signals:
  • Commodities (PDBC trend)
  • Rates (TIP/IEF ratio)
  • Dollar (UUP trend)
  • Duration (TLT trend)

VAMS Scaling

VAMS (Volatility-Adjusted Momentum Score) is a trend and volatility sanity check. It looks at whether an asset is trending favorably and whether volatility is manageable. The output is a scale value: 1.0 (full size), 0.5 (half size), or 0.0 (off).

The scale multiplies the target to produce the actual allocation. If target is 60% stocks and scale is 0.5 → actual becomes 30%.

Example

If target is 60% stocks and scale is 0.5 → actual becomes 30%. The remaining 30% sits as Schwab cash (unallocated) until you rebalance.

How allocations are produced

Allocations flow through a simple pipeline:

  1. Targets: Baseline weights (e.g., 60/30/10 for stocks/gold/Bitcoin)
  2. Scales: How much exposure to take today (1.0 = full, 0.5 = half, 0.0 = off)
  3. Actual: Target × Scale (what you'd allocate if rebalancing today)
  4. Cash: Leftover after scaling down (sits unallocated until rebalance)

Important: This cash is Schwab cash, not Voya Stable Value (cash-like). They're different things.

Targets vs Scales vs Actual vs Cash

Target = baseline weights (like 60/30/10 for stocks/gold/Bitcoin). These are the "normal" allocations when everything is fine.

Scale = how much exposure to take today (1.0 = full, 0.5 = half, 0.0 = off). Comes from VAMS and regime conditions.

Actual = target × scale. This is what you'd allocate today if rebalancing.

Cash = leftover after scaling. When something is scaled down, the difference sits as Schwab cash (unallocated) until your next rebalance.

Important: This cash is Schwab cash, not Voya Stable Value (cash-like). They're different things.

Flip Watch

Flip Watch prevents whipsaw and one-day head fakes. Sometimes the model sees a regime change signal, but it requires confirmation unless the signal is very strong. It's basically: "cool story bro, show me tomorrow too."

This means you might see a regime "brewing" or "pending confirmation" status before it flips. The model waits for persistence before committing to a new regime.

Stale Data

When you see a "stale" badge in the UI, it means the model is showing the last good snapshot instead of failing hard. This happens when market data is missing or incomplete (e.g., a holiday, data provider hiccup, or tie-breaker inputs unavailable).

This is intentional. The model degrades gracefully rather than breaking. You'll see the last computed regime and scales, marked as stale, until fresh data is available.

Data Sources & Update Timing

Data Sources

  • ETF prices(SPY, GLD, HYG, IEF, EEM, TLT, UUP, TIP, etc.): daily close data from Stooq
  • VIX: CBOE data
  • Bitcoin (BTC-USD): Stooq
  • Commodities (PDBC): typically AlphaVantage, with DBC fallback from Stooq

Important: GhostRegime uses close-to-close price returns, not total return — so dividends can cause differences vs brokerage total-return charts.

Why my broker won't match perfectly

Different pricing timestamps (your broker might use intraday vs. close)

Dividends/total return vs. price return (we use price return)

Holiday/weekend gaps (data might lag on non-trading days)

Data revisions (providers sometimes backfill corrections)

Update Timing

GhostRegime is designed to update once per weekday after market close. Current job runs around 03:30 UTC (Mon–Fri), which is roughly evening in US Central time.

It's a daily model — most humans rebalance on a cadence, not every time a number twitches.

If a data source is unavailable, we mark the snapshot stale and keep showing the last good result rather than face-planting.

FAQ

Do I need to rebalance daily?

No. This is a daily model, but humans usually rebalance on a cadence (monthly, quarterly, etc.), not every time a number twitches. Pick a cadence you'll actually stick with.

Why is there cash?

When GhostRegime scales an asset down (e.g., stocks from 60% to 30%), the unused portion (30%) sits as Schwab cash (unallocated) until you rebalance. This is Schwab cash, not Voya Stable Value.

Why do targets look like 60/30/10?

This is a post-60/40 allocation. 60% stocks for growth, 30% gold for inflation/monetary weirdness hedge, 10% Bitcoin as an asymmetric "call option on chaos." It's diversified… but still admits we live in interesting times.

What if I'm Voya-only?

GhostRegime scaling applies to house presets (Schwab ETFs). If you're Voya-only, you'll use core funds to approximate the Ghost sleeves. In Voya, "Stable Value Option" is your cash-like holding.

Is this financial advice?

No. This is a rules engine that classifies market conditions and suggests allocations. It's a tool, not advice. Use it as part of your own decision-making process.