Appearance
Changelog
Project FIN
[2.12.0] — 2026-09-09
Added
- "What if I invested" simulator card — a new dashboard card lets you backtest a hypothetical trading strategy driven by the prediction signals. Adjust the investment amount, lookback period, confidence threshold, position sizing, conviction floor, and fee, then see the simulated portfolio value over time with buy/sell/hold trade markers.
- Thesis re-evaluation — when live market conditions (RSI, price level, volume, sentiment) contradict the thesis direction, the model now gets one advisory pass to reconsider. It may keep its direction but must justify it, making the thesis more robust to stale or one-sided reasoning.
- Walk-forward validation — ML model evaluation now uses walk-forward (rolling origin) splits instead of fixed train/test splits, giving a more realistic picture of how models will perform in live trading.
- Trend-following ML features — moving-average slope, MACD, VWAP ratio, and OBV slope are now included in the ML training feature set, giving the models direct momentum and volume-flow signals alongside the existing oscillators.
Changed
- Sentiment relevance gating — article weighting now factors in ticker relevance: articles with indirect coverage (relevance 15–39) are down-weighted on the ticker dimension and momentum/re-acceleration metrics, while macro dimensions (economy, country) keep full weight. Missing buzz scores default to a neutral 0.9 so the absence of engagement data no longer outweighs a weak real signal.
- Neutral-thesis signal preserved — a neutral thesis with moderate conviction now participates in the distribution pool as a near-zero-return leg instead of being silently replaced by a statistical-only baseline. This makes the "AI vs model" reconciliation visible even when the thesis is directionless.
- Heuristic probability handling — the drift formula now uses the raw bull-bear probability difference directly (no synthetic floor for tight splits). Balanced or directionless theses land below the materiality gate and carry no material signal instead of fabricating a deterministic pseudo-directional move.
- Surprise attribution — surprises are now split into "ticker-direct" (relevance ≥ 40) and "market-wide" signals. Only ticker-direct surprises can drive a ticker bull/bear case; market-wide beats appear as context only, preventing macro events from being misattributed to a specific stock.
Fixed
- Fixed the headline confidence band appearing wider than the model's own Q10–Q90 forecast range.
- Fixed the live band and daily close framing being shown without reconciling the underlying math.
- Fixed the statistical forecast's half-width being displayed as a shadow value instead of its actual contribution to the live band.
- Fixed reconciliation badge labels not matching their stated values.
- Fixed a type mismatch in variable handling that could cause prediction failures.
- Fixed incorrect parameter counts in a few calculation paths.
[2.11.0] — 2026-09-04
Added
- Trend-following indicators — the price feed now computes ADX (trend strength), Donchian channel breakouts, moving-average alignment, the Hurst exponent (trend-persistence), and trend slope/R² quality, giving the model concrete, momentum-based trend signals alongside the existing oscillators.
- HMM regime detection — a 4-state hidden Markov model (bullish trend / bearish trend / mean-reverting / high-volatility, fit on returns + ADX) now classifies the market regime, complementing the older ADF stationarity test. It snaps out of action (falls back) gracefully when data is too sparse or the library isn't available, so it never blocks a prediction.
Changed
- Smarter primary signal — a continuous expected return (predicted vs. current price, in %) is now the main driver of the Buy / Hold / Sell decision, replacing the older categorical bullish/bearish label. The thesis direction still acts as a quality filter (a weak thesis softens a directional call to Hold).
- Confidence is now calibrated — each prediction's confidence is passed through an isotonic-regression calibrator (per user/ticker/horizon) trained on how often similar-confidence predictions were actually right, so the headline number tells a truer story. It kicks in once enough resolved history exists and otherwise leaves the score unchanged.
- Bands widen with move size — the confidence band now widens (and confidence is discounted) based on how large the expected move is, replacing the old "AI and model agree or disagree on direction" check. A bigger expected swing gets a proportionally wider band, so the range stays honest on large moves.
[2.10.0] — 2026-08-29
Added
- Track record card on the dashboard now shows the accuracy percentage for each ticker at a glance.
- Thesis monitors now expire automatically, so stale checks are retired instead of lingering forever.
- Monitor provenance — fuses carried over from a previous thesis are now labeled on the dashboard ("carried over from the {date} thesis ({direction})"), and each fuse shows when it goes dark ("fuse expires {date}").
Changed
- Dashboard cards redesigned — cleaner layout, better use of space, and a fresh look across the whole dashboard.
Fixed
- Corrected the percent display on the track record card so numbers are always shown consistently.
[2.9.0] — 2026-08-27
Added
- Options market insight is now a full participant in the reconciliation — implied volatility is weighed alongside the AI and the model when setting the final confidence range.
- Statistical forecast view added — an independent statistical opinion is now surfaced for every prediction.
Changed
- Confidence is now honest about overlap: when the AI and the model disagree on direction, the gap is spot-checked so the same conflict isn't silently counted more than once.
- Confidence haircuts are now more predictable — bounded and consistent with how the range widens.
- When the statistical opinion was an active voter, its influence is applied fairly instead of being over-weighted.
- The pooled confidence score is now calibrated against the same historical coverage data the confidence bands use, so the score and the range tell the same story.
Fixed
- The confidence band could render ~4× wider than the report's own Q10–Q90 forecast range.
- A thesis header marked BULLISH that directly contradicted its own reasoning text.
- The final prediction value could look wrong on the dashboard after reconciliation — now rendered correctly.
[2.8.0] — 2026-08-23
Added
- Admin page — manage users, disable accounts, and see more account detail in one place.
- ML disagreement as a learning signal: when the AI and the model disagree, that disagreement is now captured as a training feature, so the machine learner gets sharper about when to trust (or distrust) each forecaster.
- Stats forecast — a statistics-based forecast joins the pipeline as an extra cross-check.
- Thesis visualization — the thesis reasoning is now presented in a clearer, more visual layout.
Changed
- Reconciliation visuals improved and the wording updated so "how the AI and the model agreed" is easier to follow.
- Snapshot records now store richer context, including the disagreement features, so past predictions stay explainable.
Fixed
- The distribution pooling and weight-shrinkage logic now handles low-sample training sets without blowing up the confidence bands.
- Fixed NaN values appearing in accuracy metrics (MAE/MAPE).
[2.7.0] — 2026-08-18
Added
- Proper market signals — the dashboard now surfaces a set of meaningful, clearly-labeled signals: flow strength, model-versus-actual accuracy, valuation percentile, regime changes, and sentiment uncertainty.
- Signal context is shown with each prediction so you can see what drove the ranking.
- Feed filters — filter your news feeds to show main feeds vs. competitor feeds.
- Prediction logging — prediction runs record detailed progress logs, making it easier to see what happened at every step.
Changed
- ML quality gating refined — models with poor recent accuracy are now more reliably downgraded or retired (tier promotion/demotion logic cleaned up).
- Options data fetching is more robust and better handles bad or missing data.
- Backfill of training snapshots now includes the prediction horizon, preventing past snapshots from being overwritten by newer, similar ones.
Fixed
- Fixed a bug where different predictions resolved within the same run were counted as one.
- The operational confidence number now matches the documented spec.
[2.6.0] — 2026-08-10
Added
- Currency normalization — payments and balances are now handled consistently regardless of currency.
- Top-up after limit exceeded — you can still top up your token balance even after hitting your plan's limit.
- Multicurrency support for billing display.
Changed
- Buzz scoring for non-Reddit articles — article "buzz" is now computed for regular news too, not just social posts.
- Scheduler and prediction-resolution schedules now align with the actual market close times.
- Payment providers updated for the latest API versions, with clearer error handling.
Fixed
- Top-up payments now correctly unlock the user after payment.
[2.5.0] — 2026-08-05
Added
- ML Status page — a dedicated page showing the state of your machine-learning models (trained, pending, retired).
- Financial metrics depth — EV/EBITDA, price-to-sales, debt levels, and quarterly free cash flow are now shown for each ticker.
Changed
- Checkout and top-up flow updated to unlock users instantly after a successful payment.
- Richer financial data fetching with caching to keep things fast and reliable.
- Removed the default ticker after upgrading so you start fresh with your own tickers.
Fixed
- Billing page flicker and layout issues.
- User resolution for feature snapshots so training counts are attributed to the right account.
[2.4.0] — 2026-07-31
Added
- Psych pattern export/import — export or import your psychology-bias configuration as a file, for backup or sharing.
- Stripe webhook handling — payment events are processed reliably in the background.
Changed
- The in-memory knowledge store (Chroma) location and mounts updated for stable data persistence.
- Redis/RSSHub config tuned with sensible memory and connection timeouts.
- Mobile experience improved across dashboard and docs pages.
- Docs pages polished (tables, citation colors, responsiveness).
Fixed
- Database deadlocks under load.
- Retrospective links now include intermediate predictions.
- Test suite now auto-detects the Docker environment.
[2.3.0] — 2026-07-24
Added
- Billing & plans — Free, Starter, and Pro pricing plans with token allowances, plus a billing page.
- Financial statements feed the forecast — income, balance sheet, and cash-flow data are pulled in for each ticker.
- OAuth sign-in for the dashboard — log in with your identity provider instead of only passwords.
Changed
- User creation flow cleaned up (no more duplicate accounts for the same email).
- Dashboard cards reworked for a clearer overview.
- Adding/removing tickers now includes better handling of the underlying data sources.
Fixed
- Several fixes where the user identifier was missing from some requests.
- Mobile layout issues on the prediction pages.
[2.2.0] — 2026-07-16
Added
- Dashboard overview card — a high-level snapshot of your predicted tickers on the home screen.
- Retrospectives — a dedicated page reviewing how past predictions performed, with the retrospective card available right from the dashboard.
- Scheduling by exchange timezone — predictions and jobs now run on the stock exchange's own clock, not a fixed server time.
Changed
- The prediction report flow reorganized for a cleaner reading order.
- Junior (tier 3) model logic fixed so peer transfer models only promote when genuinely useful.
Fixed
- Regression that broke the one-week OHLCV display after a model change.
- Dashboard card database structure issue.
[2.1.0] — 2026-07-12
Added
- Automated deployment — CI/CD workflows now build and deploy the API, scheduler, database, RSSHub, and Redis images, plus the docs site.
- Monitoring metrics — extra health metrics with unit tests for validation and coercion.
- Default RSS feeds are seeded automatically for new instances.
Changed
- Rolling both fixes and feature work into robust, repeatable deployment pipelines.
- Chart and dashboard fixes for stable daily operation.
Fixed
- Stale OHLCV data can no longer be used for a prediction.
- Various prediction-flow and dashboard bugs from early July.
[2.0.0] — 2026-07-04
Added
- Two brains, one honest verdict — the biggest change to how FIN predicts. An AI forecaster (news + thesis reasoning) and a machine-learning forecaster (your personal history) now run side by side, and a statistical opinion cross-checks both.
- Model Reconciliation — every prediction now shows how the AI and the model were reconciled: when they agree, confidence gets a small boost; when they disagree, the confidence range widens and confidence drops proportionally to the gap.
- Thesis monitoring — falsifiable hypotheses ("if RSI > 70, this thesis weakens") are tracked day over day and flag when a thesis is being proven wrong.
- Self-critique — a second AI pass reviews each thesis for consistency, plausibility, and feasibility before the prediction is saved.
- Options data fed into reasoning — put/call ratios and implied volatility inform the AI's thesis.
- Currency awareness — forecasts correctly account for the ticker's currency.
Changed
- The LLM↔ML pipeline is now the core prediction path (previous single-forecaster flow replaced).
- The public documentation website launched — this is it, and the dashboard is now fully responsive on mobile.
Fixed
- The confidence formula now matches documented behavior; thesis direction can no longer contradict its own reasoning.
[1.9.0] — 2026-06-30
Added
- Market correlation computation — measures how your ticker moves relative to the broader market and factors it into analysis.
- Fallback data provider — if the primary stock-data source is unavailable, a backup provider keeps prices flowing.
- Surprise signal configuration — tune how surprise events are detected and weighted.
- CI/CD pipeline — builds and pushes nginx and docs images automatically.
Changed
- Predictor optimized for speed and lower cost.
- Config options added for stationarity checks and band calibration so you can tune the statistics to your tickers.
[1.8.0] — 2026-06-16
Added
- Competitor tickers — track peer stocks alongside yours, with a competitor comparison (price, valuation, news sentiment).
- DB caching for feeds and prices — RSS and stock data are cached in the database, cutting down on repeated external calls.
- OAuth2 sign-in — secure identity-provider login for user management.
- Statistical checks — stationarity tests, band-calibration fitting, and competitor significance tests backed by real statistical libraries.
[1.7.0] — 2026-06-10
Added
- Prompt configuration UI — tune the AI's prompts for each pipeline stage from the dashboard without touching config files.
- Feed management in the UI — add, remove, and configure RSS feeds from the dashboard.
- Prediction filter — filter predictions by final vs. intermediate results.
Changed
- Scheduling now supports multi-user mode correctly.
[1.6.0] — 2026-06-05
Added
- Machine learning arrives. The system began training quantile models on your resolved predictions to produce q10–q90 return forecasts.
- Learning knowledge base — the foundation for storing snapshots of every prediction's inputs and outcomes so models can learn from your actual track record.
- Prediction tiers — the forecast automatically picks the best available method, from your personal model down to a thesis-based heuristic.
[1.5.0] — 2026-05-31
Added
- Schedulers in the database — automated jobs now run on schedules you can configure and inspect.
- Financial data in AI reasoning — income statement, balance sheet, and cash-flow figures are included when the AI builds its thesis.
- Structured data migrated to PostgreSQL — the system's core data now lives in a proper relational database.
[1.4.0] — 2026-05-18
Added
- Docker support — the API and dashboard can now be deployed with Docker.
Changed
- AI prompts are now sized appropriately per pipeline stage, and psychology raw data was removed from prediction text in favor of clean conclusions.
- RSS feeds scheduled more intelligently with a proper status call.
[1.3.0] — 2026-05-17
Added
- Article ingestion queue — incoming articles are queued and processed without blocking the pipeline.
- LLM caching for article analysis — repeated analyses of the same article are served from cache, saving tokens.
[1.2.0] — 2026-05-12
Added
- Surprise handling — detection and flagging of surprise events (unexpected earnings, macro surprises) tuned and expanded.
Changed
- Dashboard shows the current price and lets you filter predictions while browsing.
[1.1.0] — 2026-05-11
Added
- Current price + prediction filtering on the dashboard so you can instantly compare today's price against the forecast.
[1.0.0] — 2026-05-10
Added
- Initial release of FIN — an intelligent financial prediction and learning system.
- Dashboard UI — a web dashboard to explore predictions, prices, articles, and system health.
- News collection — pulls thousands of articles daily from multiple RSS feeds and scores each for sentiment, relevance, and bias.
- Psychology insights — measures 12 cognitive biases (FOMO, herding, loss aversion, and more) from the news.
- Stock price data — daily open/high/low/close/volume for your tickers.
- Surprise detection — spots unexpected events that could move the market.
- PostgreSQL database — reliable storage for all collected data.
- Prediction engine — generates price forecasts with reasoning, confidence ranges, and falsifiable hypotheses.
- Accuracy tracking — after each forecast window, FIN checks how far off it was and records the error.

