The Predictor
Vizzor's directional forecast engine — four calibrated tiers, every horizon from 5m to 7d, six fused signal families, transparent abstention when the data isn't there.
The Predictor is the directional surface every Vizzor surface reads from. Telegram /predict, the REST /v1/chronovisor/:symbol endpoint, the CLI predict command, the Discord slash command — they all return the same record shape, generated by the same engine.
Every forecast is a record, not a chat reply: tier badge, calibrated probability, horizon, target price (with slippage), trade plan (TP1 / TP2 / SL), and a full trigger snapshot showing which of the six signal families fired.
The four prediction tiers
Every emitted prediction is tagged with one of four tiers. They're qualification gates, not marketing labels — the Predictor's headline win-rate is computed only over the tracked + above cohort.
| Tier | Badge | What earned it | Counts toward WR? |
|---|---|---|---|
| high-conviction | high-conviction | ≥ 4-of-6 signal agreement + composite confidence ≥ 75 + horizon proven (WR ≥ 0.65 on ≥ 30 samples) | Yes |
| whale-confirmed | whale-confirmed | Passes high-conviction AND the on-chain whale flow confirms direction | Yes |
| tracked | tracked | Passes every qualification gate; the operator KPI cohort | Yes |
| advisory | advisory | Passes soft gates only — feeds the calibrator but is excluded from headline WR | No |
high-conviction and whale-confirmed are subsets of tracked — every higher tier necessarily passes the lower tier's gates. The badge on the emission tells you the highest tier the record earned, not the only one it passed.
Horizons
The Predictor supports every standard horizon plus arbitrary durations:
Pass a horizon arg to /predict and the engine routes it through the same pipeline as the legacy slots. Scalp horizons (≤ 30m) flip the FOL rule pack to the scalping ruleset and tilt the signal-family weights toward technical indicators.
Per-horizon calibration is durable: the horizon_calibration table tracks samples × WR × probability_cap × multiplier per (slot, horizon, family) tuple. As a horizon proves out, its probability cap lifts from the default 0.7 ceiling toward 0.85 — the Predictor stops dampening forecasts on a horizon that has earned its accuracy floor.
The six fused signal families
Each prediction is a composite of six independent signal families combined through certainty-factor algebra and Bayesian update:
The deep dive on each family lives in Signal families; the math behind the fusion lives in ChronoVisor engine.
Calibrated probabilities (Platt scaling)
When the Predictor says 63%, it means 63%. Calibration is enforced by Platt scaling sharded per (family × symbol × regime) — each shard learns its own logistic transform via online SGD as resolutions land. A miscalibrated family that historically over-reports 75% confidence to mean 52% realized has its outputs flattened back to reality automatically.
The aggregate calibration is checked weekly: predictions in each 5%-confidence bucket should resolve at within ±5% of the bucket's headline number. Persistent drift triggers an alert; calibration coefficients are versioned so a regression can be rolled back without re-training.
When the engine refuses to predict
Abstention is a feature, not a bug. The Predictor returns a no_emission outcome (silent on Telegram; explicit null on the API) when any qualification gate fires:
- Manipulation guard — squeeze pattern (BB pinch + volume spike), spoofing, funding stampede (multi-venue z > 3σ), whale contradiction (on-chain flow opposite price), thin-liquidity pump (< 1% of daily volume)
- Data-availability gate — fewer than 4 of 6 families have valid data
- Engine abstention — composite confidence below floor (~40%) or signal disagreement exceeds threshold (3+ families contradicting)
- Pre-event hard veto — high-impact macro event within 3 hours (CPI, FOMC, fed-speak) blocks directional emission
- Pre-prediction self-check — last 3 predictions on the symbol missed → probability dampened toward 0.5 (regime-change implicit detector)
/diagnose <symbol> opens the per-prediction trigger snapshot: which families fired, the CF values, the Bayesian priors, the qualification gate that aborted (if any). Always available — no hidden contributors.
Resolution + feedback loop
Every emitted prediction is resolved against the actual price at the horizon mark. Wins / losses / neutrals flow back into:
- The per-symbol weight learner (online, exponential decay — recent resolutions outweigh all-time)
- The per-rule accuracy tracker (FOL rules dropping below
0.45accuracy get their CF halved) - The per-horizon calibrator (each
(slot, horizon, family)tuple'ssamples × WR × capupdates) - The per-session WR aggregator (Asia / EU / US / overlap / weekend / off-hours bucketing)
The next emission on the same symbol-horizon reads the new state. The engine improves continuously without retraining; calibration is closed-loop, not pre-baked.
What /predict returns
Every surface gets the same record. Trimmed example:
{"symbol": "ETH","horizon": "4h","direction": "long","tier": "tracked","probability": 0.66,"entry": 2143.20,"targets": { "tp1": 2178.50, "tp2": 2210.00, "sl": 2114.80 },"triggerSnapshot": { "families": { "onChain": { "cf": 0.62, "direction": "up", "meta": { "whales": "7 net buyers" } }, "mlEnsemble": { "cf": 0.34, "direction": "up", "meta": { "rsi": 64 } }, "predictionMarkets": { "cf": 0.18, "direction": "up", "meta": { "poly": "58% UP" } }, "socialNarrative": { "cf": 0.22, "direction": "up", "meta": { "articles": 14 } }, "patternMatch": { "cf": 0.41, "direction": "up", "meta": { "pattern": "BOS+OB" } }, "logicRules": { "cf": 0.55, "direction": "up", "meta": { "rules": "4/14 fired" } } }, "calibratedProbability": 0.66, "abstentions": []}}The triggerSnapshot is the audit trail. It's signed and stored — every emission is reproducible from its inputs, and the snapshot rides every downstream message (the emission DM, the alert-trigger DM, the resolved DM, the /diagnose reply).
Reading more
- Signal families — the six families in depth
- ChronoVisor engine — the math layer (CF algebra, Bayesian, Platt)
- Cross-venue intelligence — premium spreads + funding-z divergence
- Pre-news signals — SEC EDGAR, token unlocks, options IV, LLM catalyst