METHODOLOGY · AUTONOMOUS RISK INTELLIGENCE

How Fahali sees
what markets hide.

A judged ensemble of detection engines. An adaptive-weighted consensus. A signal-to-outcome ledger that grades its own calls. This is the architecture — described honestly, including what it does and does not see.

18
Detection engines
~600
Live markets scanned
2
Asset classes (crypto + US equities)
72h
Forward horizon (early-warning)

The data we actually use

Fahali runs on real-time public market data: Binance for crypto (price, volume, funding rates) and Alpaca for US equities and ETFs (price, volume). Its detection engines infer institutional-style activity — quiet absorption, one-sided pressure, regime shifts, contagion — from statistical patterns in that data.

We're precise about this on purpose: Fahali does not claim privileged dark-pool prints, Level-2 order-book feeds, options chains, or on-chain settlement data. The edge is in the methods applied to public data and in the self-scoring ledger that proves them — not in claiming feeds we don't have.

The detection pipeline

Every scan of every instrument passes through the same pipeline. Each stage adds confidence before a read is produced.

Ingest
Real-time price, volume & funding from Binance + Alpaca
Detect
Engines run independently
Weigh
Adaptive-weighted consensus by market regime
Narrate
Plain-language read with the drivers
Resolve
Logged to the outcome ledger, scored later

The detection engines

Each engine applies a distinct method to detect a specific class of market behavior. No single engine decides alone — outputs are combined by the adaptive-weighted consensus, which leans on the engines that are informative in the current regime.

FLOW & LIQUIDITY · 01

Dark Pool Proxy

Quiet absorption — large volume that doesn't move price the way normal volume would — inferred from price/volume dynamics.

FLOW & LIQUIDITY · 02

Order Flow

Buy vs sell pressure estimated from tick direction (a candle-based proxy), often leading price.

FLOW & LIQUIDITY · 03

Market Depth

Liquidity-thinning proxy from volume behavior — a setup for sharp moves.

FLOW & LIQUIDITY · 04

Volume Anomaly

Statistical volume spikes and drains via regime-aware rolling Z-scores.

RISK & CRASH · 05

Risk Intelligence

Flash-crash precursors and outsized volume and liquidity events.

RISK & CRASH · 06

Crash Predictor

A dedicated market-crash probability engine.

RISK & CRASH · 07

Early Warning

A 72-hour forward-looking crash / pump warning signal.

RISK & CRASH · 08

Leverage

Liquidation cascades and margin-call waterfalls building under the surface.

RISK & CRASH · 09

Funding Stress

Stress in crypto funding rates and perpetual-futures basis.

STRUCTURE & REGIME · 10

Market Regime

A Hidden Markov Model classifying four regimes — calm, trending up, trending down, high-volatility — and detecting when it flips.

STRUCTURE & REGIME · 11

Pattern Recognition

Accumulation / distribution and institutional chart structures (Wyckoff-style).

STRUCTURE & REGIME · 12

Momentum

Momentum shifts across multiple timeframes (rate-of-change).

STRUCTURE & REGIME · 13

Volatility

Realized-volatility expansion and term-structure stress; flags regime change.

CROSS-ASSET · 14

Tail Dependence

When normally-unrelated assets begin to move together in their extreme moves — a contagion warning.

CROSS-ASSET · 15

Correlation

Established cross-asset correlations breaking — a structural-change signal.

CROSS-ASSET · 16

Stablecoin

Stablecoin de-pegs and unusual stablecoin flows — a liquidity-stress vector.

MACHINE LEARNING · 17

ML Ensemble

An ensemble that combines the other engines' signals.

MACHINE LEARNING · 18

Walk-Forward

Rolling-window, out-of-sample validation so models are tested on data they haven't seen.

Reasoning traces — every signal carries an institutional analysis

Every detection is enriched by the Oracle Chain Analysis (OCA) — an LLM-generated reasoning trace that transforms raw sensor output into a structured, audit-ready note. Each trace includes four fields:

This means every Fahali signal arrives as a reasoned judgment, not a raw alert. The desk reads the note, not the sensor output. The analysis is generated by Mistral AI and constrained to institutional tone — no recommendations to buy or sell, no hallucinated data, no financial advice.

Capital flow — inferred, honestly

Fahali estimates the direction and magnitude of net flow from volume and tick-direction dynamics across the markets it covers. When buying consistently outweighs selling on rising volume, that's accumulation; the reverse is distribution.

This is an inference from public market data, not a feed of dark-pool prints or on-chain settlement. It's a proxy — useful for spotting one-sided pressure early, and honest about its limits. The order-flow estimate is derived from candle tick-rule logic, not a privileged Level-2 book.

Contagion mapping

Fahali models cross-asset relationships as a dynamic structure: when stress flares in one asset, which others tend to move with it, and in what order. Two engines drive this — tail-dependence and correlation.

Key methodology

How the record is judged — the complete rules

Judgment methodology version: v3-path-aware-2026-07-11. Every judged outcome row carries this version stamp plus the exact thresholds used, so any era of the record can be re-derived deterministically. If a rule here and the product ever disagree, that is a bug — report it.

Only claims are judged, and only the claim actually made. A directional call ("PROM is distributing") is judged on the sign of the endpoint move at that engine's disclosed horizon. An event flag ("unusual volume on ARKM") is judged on whether a real move followed within the window. A probabilistic forecast (crash/neutral/pump over 72h) is Brier-scored on its full distribution. Market-state observations that predict nothing are judged on nothing. Stablecoin pairs never register — a pegged asset cannot move any bar. Unknown signal types are never guessed into a scoring model.

The judgment bar is a volatility-scaled move threshold: 2× trailing hourly volatility, scaled to the engine's own horizon, floored at 2% with no upper cap. (The prior 6% cap was removed in July 2026 — at long horizons it capped the bar so low that most windows cleared it regardless of skill, a confound between horizon tiers. Judgment version v5-horizon-2sigma-2026-07-20.) Directional calls on a quiet tape are unresolved — never wins, never losses. Magnitude flags are judged path-aware: the largest close-to-close move within the window (wicks excluded, so a one-tick spike cannot fabricate a win); a decisively quiet tape (<2%) counts as a false positive — deliberately, because if quiet were "unresolved," precision could never be false and the metric would be fabricated; the zone between the floor and the bar is unresolved.

The trichotomy is published in full — correct / wrong / unresolved with coverage — so the record cannot quietly improve itself by judging less. Baselines, or nothing: raw hit rates are never published alone; every figure is a lift versus its matched baseline with sample sizes shown. Published confidence intervals use the effective sample — signals clustered by symbol and hour, because correlated re-fires are not independent evidence — and engines below the minimum effective sample are marked unpublishable. We also measure recall: of all moves ≥6% across the scanned universe, what fraction we flagged in the prior 24 hours — because precision alone rewards silence.

Known gaps, disclosed permanently: rows before 2 July 2026 carried fabricated direction labels and win-only scoring; they are permanently excluded and never re-judged — a claim that was never made cannot be recovered. Judgment bugs found 2–10 July were corrected by deterministic replay where possible and voided to unresolved where not, with backups retained; the API discloses the exact windows.

The live scorecard at /accuracy and the API (/api/track-record/scorecard) carry these rules in force. One replay is an anecdote; agreement percentages are engine consensus, not probabilities; nothing here is investment advice.

Verified Lead Time — how much warning, before the move

Detection is worth nothing without time to act. Verified Lead Time (VLT) measures how many hours of warning an engine actually delivered before an adverse move crossed the judgment bar — and it is pre-registered here, in public, before any figure is quoted, because pre-registration is what makes the figure credible.

It is always three linked numbers, never one. Recall — of every qualifying adverse event, the fraction that had any prior warning at all (lead time measured only on the hits it caught would be survivorship). Lead time — for warned events, the distribution (25th / median / 75th percentile) of hours from the first qualifying warning to the moment the move crossed the bar — the onset, not the eventual trough, so the clock is not padded by the size of the move. Precision — the same lift-over-base-rate the rest of the record uses, because an engine that fires on everything "warns" about everything.

Pre-registered rules. A qualifying event is a close-to-close move that crosses the same bar defined above. A qualifying warning must precede the event, be directionally consistent with it (a bullish call before a sell-off is never counted as a warning), and fall within the engine's own disclosed horizon — a 60-minute engine can never claim 40 hours of foresight. Re-fires of the same engine on the same symbol in the same hour collapse to one observation, timed from the earliest. Figures are reported per engine × horizon × volatility regime and never pooled across them. No stratum publishes a lead time unless its precision beats its base rate on a sufficient sample; below that, it abstains rather than flatter itself. Events with no warning are counted in full — they are the denominator, and dropping them would be the one dishonesty this metric exists to prevent.

Live per-engine VLT is at the API (/api/track-record/lead-time). Where the honest number is small, we publish the small number with its sample size attached.

See it read the market live.

The daily plain-language market read is free — no signup wall.