How Market Engine builds Bull / Bear forecasts, grades them, and benchmarks against naive baselines.
Numbers are deterministic Python. GPT may explain the outlook but does not move probabilities or grades.
1. Features
Technical, macro, on-chain, derivatives, catalysts, and tokenomics layers feed one outlook.
2. Structure score
Weighted bias 0–100 (descriptive) plus structure probabilities for Bull / Range / Bear. Derivatives are a real score layer — not decoration.
3. Public direction
Public call is Bull or Bear only (directional %). Range is Consolidation Risk — never a directional win.
4. Grading windows
4H → 24h · 1D → 7d · 1W → 30d. Actual = close return vs ATR band. Each grade locks forever.
5. What counts as a hit
Directional hit = Bull/Bear call matches Bull/Bear actual. Range actual = miss for AI. Key levels and MFE/MAE are scored separately.
6. Live benchmark
Same windows for everyone: AI Model vs Random (50/50 Bull/Bear) vs Always Range (hits only on sideways).
7. Calibration
After 30 independent grades we publish Probability Calibration and mean Brier Score. Lower Brier is better.
Home and Market track record use the same public story — not research Scenario Hit Rate.
Directional Accuracy
Primary KPI: did the Bull / Bear call match the realized directional move?
Key Level Accuracy
Did expected support, resistance, or invalidation behave as forecast?
Probability Calibration
Do forecast probabilities match outcomes? Shown after 30 graded forecasts.
AI vs Baselines
Who wins over time: AI, Random, or Always Range — honest sample, no vanity % before 30.
Market scheduler refreshes near candle closes (4H / 1D / 1W) and grades due forecasts on the same loop.
Separately: news with importance ≥ 80 get a short CRITICAL Telegram ping, then the normal digest post.
Pulse is a transparent 0–100 index from deterministic subscores. AI does not invent the number.
63.5
Weighted average of live deterministic subscores only. Developer activity is omitted from the score until GitHub metrics are connected. Missing provider inputs keep related subscores conservative.
Hybrid LIVE architecture: Monad on-chain staking is canonical. Official validator-info supplies identity. Huginn enriches uptime. ASN source of truth is Susano cryptographic Monad peer discovery (SECP → signed NameRecord → advertised IPv4 → independent IP→ASN) — never BitCtrl. Geography is Infrastructure location of the advertised endpoint, not operator location. BitCtrl Geo remains a secondary cross-check for country/provider only. Coverage and confidence are first-class. SDS v1.0 and concentration metrics are Susano-derived.
Precedence: on-chain for set/stake/commission/keys · validator-info for name/logo/website · Huginn for observed uptime · Susano peer-discovery + AsnLookupProvider for ASN/provider/infra geography · BitCtrl Geo API (optional) cross-check only · Susano for HHI, concentration, SDS, opportunities. Raw validator IPs are never exposed via API/frontend. Missing infrastructure stays Unknown — never inferred from validator name. Disable BitCtrl with VALIDATOR_BITCTRL=0.