v1.4 · Tier 1-2Live Closed-form GBM forecast with 14-asset-class profile.
Forward-looking forecast that answers "what's next" with probability + timing — not just "what is." Produces p10/p50/p90 cones, regime persistence estimates, lead indicators, and catalyst countdowns. Drives every forecast surface: /forecast, /security?ticker=X, /scenarios.
Standard geometric Brownian motion. μ per-bar drift; σ² per-bar variance; h horizon in bars. probUp via Abramowitz-Stegun erf approximation. No Monte Carlo client-side — closed-form analytical only.
Each class has a profile that adjusts the GBM parameters:
{
'Stocks': { volScale:0.78, lambdaWeeks:1.0, ceilDayPct:8, marketDaysYr:252 },
'Bonds': { volScale:0.65, lambdaWeeks:0.5, ceilDayPct:2, marketDaysYr:252 },
'Crypto': { volScale:0.92, lambdaWeeks:1.5, ceilDayPct:18, marketDaysYr:365 },
'CryptoPerp': { volScale:0.94, lambdaWeeks:1.5, ceilDayPct:22, marketDaysYr:365 },
'Leveraged ETFs': { volScale:0.78, lambdaWeeks:1.0, ceilDayPct:24, marketDaysYr:252 },
'Volatility': { volScale:0.95, lambdaWeeks:0.4, ceilDayPct:30, marketDaysYr:252,
structuralDriftAnnual: -0.55 /* contango */ },
'Income ETFs': { volScale:0.65, lambdaWeeks:0.8, ceilDayPct:4, marketDaysYr:252,
structuralDriftAnnual: 0.08 /* yield baseline */ },
// … 7 more classes
}
0.5·L·(L-1)·σ² dampens horizon muHalf-life from autocorrelation: τ = -ln(2) / ln|ρ|. Higher autocorr → mean-reversion is slower → longer half-life → wider cone.
Median ts-delta classifies bars as 60s (intraday) or 86400s (daily). Cone width scales with the appropriate horizon.
{
// Forecast cone
expectedMovePct: +5.2, // p50 from now to horizon
probUp: 0.62, // P(price > now at horizon)
horizonBars: 30, // 30 days for daily bars
halfLifeBars: 4.2, // mean-reversion half-life
sigmaBpsBar: 48, // per-bar volatility
confidence: 0.74, // sample-size + variance composite
drift: +0.0009, // per-bar μ
source: 'mixed', // 'bars'|'factors'|'mixed'
// p10/p50/p90 cone
cone: [{ day:1, p10:-1.2, p50:0.2, p90:1.6 }, …],
// Regime persistence
regimePersistence: {
state: 'risk-on',
daysInState: 18,
P_persist_5d: 0.83,
halfLifeDays: 42
},
// Lead indicators (6 firing detectors)
leadIndicators: [
{ name:'breadth-divergence', value:0.7, direction:'down', message:'…' },
…
],
// Catalyst countdowns
catalysts: [
{ type:'earnings', daysOut:3, severity:'caution', description:'…' },
{ type:'fda', daysOut:14, severity:'positive', description:'…' }
],
// Trajectory
trajectory: 'improving', // 'improving'|'declining'|'stable'
trajectoryStrength: 0.6
}
Forward calibration target (Bible §15.112): when prescience says "30% probability of -8% over 30 days," roughly 30% of those events should hit -8%. Tracked weekly via engine/calibrationLive.js; populates after 30 days of decision data. See live calibration metrics.
In addition to the point estimate expectedMovePct, the forecast engine computes 95% confidence bands via bootstrap resampling of historical returns. This accounts for estimation uncertainty in drift and volatility.
Wider CI bands indicate higher estimation uncertainty (sparse history, high volatility, or regime instability). Narrow bands indicate high confidence in the expected move.
Over time, calibration accuracy varies by asset class. The Calibration dashboard tracks per-class Brier scores (lower is better):
| Asset class | Typical Brier | Status |
|---|---|---|
| Stocks (liquid) | < 0.20 | Excellent (tight historical σ) |
| Bonds / rates | 0.18–0.24 | Good (slow regime changes) |
| Crypto spot | 0.22–0.28 | Fair (high vol regime shifts) |
| Crypto perp | 0.24–0.32 | Fair–caution (funding-rate drift) |
| Commodities | 0.26–0.34 | Caution (event-driven jumps) |
When a class Brier exceeds 0.30, prescience predictions for that class become less reliable — widen your position sizing or increase required conviction.
| Version | Date | Change |
|---|---|---|
| v1.4 | 2026-04-26 | 14-class profile + leverage drag + contango + funding |
| v1.3 | 2026-04-25 | Layer-conditional integration with v76 |
| v1.2 | 2026-04-24 | scenarioCone + regimePersistence + catalystCountdown |
| v1.1 | 2026-04-24 | leadIndicators (6 firing detectors) |
| v1.0 | 2026-04-24 | Initial GBM forecast + half-life |
engine/prescience.js (~370 lines), engine/v110-prescience-ensemble-v2.js (scaffolded), tests/run.js (cone + class + cadence tests)
Reviewed: 2026-04-26 · Next: 2026-07-26 · Per Bible §15.61