Appearance
Predictions
Every price forecast the system has ever made, sorted with the most recent first.
How a Prediction Is Made
The system doesn't just ask the AI for a number. It follows a multi-step process:
1. Thesis First
Before any price prediction, the LLM produces a qualitative thesis — a reasoning document that answers:
- Direction: Is the stock likely to go up or down?
- Conviction: How strong is the evidence? (0–100 scale)
- Regime: Is the stock trending, mean-reverting, volatile, or range-bound?
- Scenarios: What are the bull case and bear case, with probabilities?
- Falsifiable hypotheses: Specific, testable predictions like "If RSI crosses below 30, the thesis is wrong"
The thesis is the foundation. Everything else builds on it.
2. Tiered Pricing
Once the thesis is set, the system picks the best available method to produce a numeric price:
| Tier | What's Used | When Available |
|---|---|---|
| Tier 1 | Your personal quantile ML model (5 models predicting q10/q25/q50/q75/q90 of returns) | After ~100+ resolved snapshots |
| Tier 2 | Pooled model trained across all users (single q50 median model) | After enough data accumulates |
| Tier 3 | Sector-transfer model (from a similar company, single q50 median model) | When another ticker in the same sector is trained |
| Tier 4 | Thesis heuristic (direction + rough magnitude from the thesis) | Always available — no training needed |
Tier 3 details: The sector-transfer model first looks for a model trained on another company in the same sector, then a pooled model trained for your specific stock, and finally any pooled model across all stocks. Because only a central estimate is available at this tier, the wider range around it (the confidence band) is estimated from how volatile the stock has been. Predictions from this tier also carry a lower confidence than Tiers 1–2.
Each tier is automatically performance-gated: it's downgraded one level if its recent band coverage drops below 40%, or if its interval score regresses well beyond that stock's own historical norm (either by a factor of 1.5× or above a 50% default for new setups). In plain terms: you never see a bad model's output.
How Predictions Improve Over Time
When you first add a ticker, predictions start at Tier 4 — the system has no historical data to learn from, so it relies on the thesis heuristic (direction + rough magnitude from the LLM). These predictions are immediately available, but their accuracy improves as the system accumulates experience.
The first retrain cycle triggers a backfill — historical snapshots are reconstructed from existing stock price data and resolved with their known outcomes. This can generate hundreds of resolved snapshots in a single run, moving the system to Tier 1 (your personal quantile ML model) on the same cycle. From there, every new prediction the system makes and every accuracy check it runs adds another resolved snapshot to the training pool. Models are retrained automatically, incorporating the latest patterns.
The result: predictions are useful from day one, tighten over the first few weeks, and continue improving as more data accumulates.
Prediction Sources
Each prediction is tagged with a prediction source — a label that tells you exactly which method produced the price. This helps you understand the quality and origin of any given forecast:
| Source | Tier | What It Means | Quality |
|---|---|---|---|
| Trained model | 1–3 | A trained ML model produced the price. This is the best-case scenario — the system has enough historical data to make data-driven forecasts. | Best |
| Thesis-based price | 4 | No trained model was available, so the system derived a price from the AI's reasoning. It looked at the conviction, probability skew, and direction of the thesis to estimate a numeric target. This only happens when the thesis is confident enough to produce a meaningful move. | Good (with trained thesis) |
| AI's own estimate | 4 fallback | The thesis-based method decided the expected move was too small to be meaningful, so it stepped aside and the AI's original numeric estimate was kept as-is. Think of it as "the system didn't have a strong enough signal to override the baseline." | Baseline |
| Sentiment-based price | 4 | Intermediate predictions only. No thesis existed, or the thesis-based method fell below the minimum meaningful move, so the price came from short-term sentiment drift instead. | Baseline (intermediate) |
| Price-history estimate | 4 | Neither a trained model nor a usable thesis was available (for example, an AI outage), so the price-history-based statistical forecast became the estimate. This is a statistically grounded fallback, more trustworthy than a rough sentiment placeholder. | Grounded fallback |
In practice: Tiers 1–3 always use a trained model. Tier 4 predictions use one of the fallback methods above, and intermediate updates within the day may use the sentiment-based or price-history estimate. As your tickers accumulate training data, you'll see fewer fallback labels and more trained-model predictions over time.
Reconciling the AI and the Model
When a trained model is available, the final forecast isn't produced by one method blindly overruling the other. The system blends up to five views, weighted by how confident each one is. The practical effects you'll see:
- They agree on direction → confidence gets a small boost.
- The expected move is large → the confidence band is widened and confidence is reduced in proportion to how big the forecast move is. The larger the expected swing (beyond a small threshold), the wider the range and the lower the confidence (with a floor, so it never collapses to zero) — because uncertainty scales with move size, a big projected move gets a proportionally honest band.
- Uncertain evidence → the combined forecast is pulled toward a flat, neutral estimate rather than a confident bet.
The result is summarised for you in the Model Reconciliation panel on the Reasoning page: it shows which method produced the price (a blended pool, a model override, an error-correction nudge, a heuristic price, a statistical-baseline fallback, or an AI-only estimate when no model exists). Only views that actually contributed are listed. The panel also shows the expected return, the final price, and — when the extra AI views took part — their own slices in the weight bar (residual in pink, agreement in yellow) plus their prices. A larger expected move means wider bands and lower confidence by design.
At a glance: how the AI, the ML model, and the market-based checks combine into your final forecast:
The panel also shows a third, independent view: a statistical layer computed from the stock's own price history (no news, no ML). Most of the time it appears as a quiet "shadow" record used to improve FIN over time; occasionally — when the model and thesis are both unavailable — it becomes the actual fallback price. When it disagrees sharply with the published forecast, treat that as a useful counter-signal rather than noise.
Two extra AI views: correction and agreement
Beyond the main AI baseline price, FIN asks the AI two follow-up questions and blends the answers in as their own slices of the final forecast:
- Residual correction (pink slice) — "Given the statistical view's price, what small % fix does the thesis justify?" The answer is bounded (a few percent, growing modestly with longer horizons), so it can nudge but never hijack the forecast. Useful when the AI's big-picture call differs from what price history alone suggests.
- Agreement check (yellow slice) — the AI is asked for its number three times (the original plus two extra passes with more creative freedom). The average becomes an additional view; wide spread between the three means the AI is unsure of itself, so that slice automatically gets less weight and the band widens.
Both are advisory: each is capped (correction ≤20%, agreement ≤15% of the blend), and if either step fails the forecast proceeds exactly as before. You'll see their prices and weights in the Model Reconciliation panel whenever they took part. They run on final predictions for every ticker; the lightweight intra-day updates skip them to stay fast.
The Options-Market Band Floor (IV Floor)
There's one more check on the band, and it comes from the options market rather than the model or the statistics.
Every prediction already pulls the stock's 30-day at-the-money implied volatility — the options market's own forward-looking bet on how much the stock will move. FIN turns that volatility into an expected-move range over the forecast horizon (an 80% range, matched to the model band's coverage) and compares it to the band it actually produced:
- If FIN's band is already as wide as (or wider than) the market expects → nothing happens.
- If FIN's band is tighter than the options market is pricing in → the band is widened to at least the implied-move range — a hard floor that the band can never be narrower than.
This is a hard one-sided floor: it can only ever make the band wider (never narrower), and it never moves the point price — implied volatility is a measure of scale, not direction. It is independent of the statistical plausibility anchor (which looks at the stock's own price history), so the two don't double-count.
There is also an empirical-error floor: if the model's band is tighter than the stock's own observed error rate, it is widened to match the historical error — so a narrow band can't over-promise against past performance.
You'll see this in action as an "IV floor" flag in the Reasoning report whenever the check fires — watch when the band is only mildly inside the market's move (a small confidence trim), and violation when it is far inside (a larger trim and a wider band). A wide band carrying an IV floor note is FIN being honest that the options market expects more turbulence than the model alone assumed.
3. Self-Critique
A second LLM pass reviews the thesis for:
- Direction consistency — Does the direction match the technical regime?
- Scenario plausibility — Do the bull/bear probabilities add up?
- Falsifiability — Are the hypotheses actually testable?
- Horizon alignment — Does the narrative fit the prediction timeframe?
If the critique finds issues, the thesis is revised before the prediction is saved.
4. Feature Snapshots
Every prediction run saves a complete feature snapshot — all the raw data that went into it:
- Technical indicators (RSI, ATR, trend, volatility)
- Sentiment scores
- Psychology bias scores
- Fundamental data (P/E, earnings growth, etc.)
- Market context (beta, correlation vs SPY)
- Options data (put/call ratios, implied volatility)
- Rates & FX context (USD/EUR sovereign yields at 2Y/5Y/10Y, EUR/USD exchange rate)
- The thesis features (conviction, regime probabilities, etc.)
When the target date passes, the accuracy tracker resolves the snapshot with the actual outcome. Resolved snapshots become training data for the ML models — which means the system gets smarter over time.
What's in the Table
| Column | What It Means |
|---|---|
| Date | When the prediction was made |
| Target Date | The future date the prediction is for |
| Current Price | The stock price at the time of prediction |
| Predicted | What the system thinks the price will be on the target date |
| Diff | Difference between predicted and current price. Up arrow (↑) = predicted to rise, down (↓) = predicted to fall |
| Band | The confidence range [low, high] — the system expects the price to land somewhere in this range. The band is centered on the predicted price (the midpoint of the range equals the point estimate) so the headline return and the band agree. It can be widened by several independent checks — a large expected move (uncertainty scales with move size), the options-market floor (see above), and the statistical anchor — not just by one factor |
| Confidence | How sure the system is (0 to 1). Higher numbers = more confident. It is also capped by data quality — if the input data was stale or incomplete, the score is lowered even when the model itself is certain — and it can be trimmed further by the options-market floor or the statistical anchor when those checks fire |
| Horizon | Short (1–2 days), medium, or long (~10 days) |
| Type | Final = complete prediction / Intermediate = provisional update during the day (clearly marked as not final) |
| Reasoning | Click "View" to see the AI's explanation for this prediction |
| After | Which step of the pipeline produced this prediction (Thesis, Critique, etc.) |
How to Read a Prediction
A good prediction has:
- A clear direction — the Diff should show a meaningful gap (up or down), not tiny noise
- A narrow band — a tight price range shows confidence
- A high confidence score — above 0.7 is strong
- A detailed reason — the reasoning text should make sense given the current news
The Accuracy Context Block
The reasoning text includes a self-calibration block — rolling MAE, MAPE, and confidence-band hit rate for the relevant horizon — plus a "resolved predictions" count. A few things to keep in mind when reading it:
- Reports sharing a prediction date are not directly comparable. Predictions for the same day can be produced in different pipeline runs, and the accuracy context is a snapshot of that run's view of the system. When the accuracy tracker resolves new outcomes (usually once a day), the "resolved predictions" count goes up — so an earlier report for the same date can legitimately show fewer resolved predictions than a later one.
- The count matches the displayed MAE. The MAE/MAPE shown are rolling statistics over the accuracy tracker's most recent ~20 validations per horizon. The "resolved predictions" number is capped to the same rolling population, so a new batch of high-error validations can raise the MAE sharply while the count changes only slightly.
- The snapshot decays. Context only covers the last configured accuracy window (default 60 days), so older validations fall out of the count over time.
Filtering Options
- Horizon tabs (short / medium / long): Focus on predictions for a specific timeframe
- Time range picker: Show predictions from the last 1 day up to the last year
Prediction Gating
FIN uses a MAPE-based gating system to automatically withhold predictions when recent accuracy is poor, preventing false outputs from reaching the dashboard.
How It Works
Each prediction horizon (short / medium / long) is gated independently:
- MAPE is computed — a rolling mean of the absolute percentage error over the most recent 20 accuracy-validation records, within a configurable time window (default 60 days).
- If MAPE exceeds the threshold (default 8.0%), that horizon enters gated mode — predictions are skipped and recorded as withheld rows with the reason "MAPE exceeds confidence threshold".
- A cooldown mechanism prevents permanent lockout: after a configurable number of consecutive skips (default 5), the system forces a retry. This gives accuracy a chance to recover.
- When MAPE drops back below the threshold (because new low-error predictions age out the old high-error ones), gating lifts automatically.
What You'll See
- Gating banner at the top of the Predictions page — green when inactive, yellow when gating is disabled, red when any horizon is actively gated. The red banner shows each gated horizon, current MAPE vs. threshold, and a cooldown progress bar.
- Skipped predictions in the table display a label like "MAPE 12.3% > 8%".
Configuration
Gating can be tuned per ticker in the Prompt Config page:
| Setting | Default | Range | Description |
|---|---|---|---|
| Master toggle | On | On/Off | Enables or disables gating entirely |
| MAPE threshold | 8.0% | 1–50% | MAPE above this triggers gating per horizon |
| Skip cooldown | 5 | 1–30 | Consecutive skips before a forced retry |
| Accuracy window | 60 days | 7–365 | Rolling window for MAPE computation |
Stale-Data Gating
In addition to MAPE gating, if no price data has been received in 3+ days (accounting for weekends/holidays), predictions are withheld with a "stale data" reason.
Reading the AI's Price Estimate
Each prediction shows an "LLM baseline" — the AI's direct numeric price estimate for each horizon, which appears as one of the views blended into the final forecast.
One thing to keep in mind when reading it: on weaker-conviction theses, this AI estimate can be nearly flat — close to the current price, with only a very small expected move. That's normal. It means the AI saw mixed or conflicting signals and produced only a mild view, rather than a confident directional call. Treat a near-flat AI estimate as a neutral placeholder rather than a strong signal.
The final forecast is still weighted against the trained model when one is available, so a weak AI estimate is blended down rather than published on its own — but the reasoning panel can still show an AI estimate that is only slightly different from today's price.

