Market Data Warehouse
yfinance → dbt → a dimensional (star-schema) warehouse: dim_date,
dim_security, dim_exchange, and a fact-table family sharing that grain
(fct_security_price, fct_security_technical_daily,
fct_security_risk_daily, fct_corporate_action). This page reads straight
off the built warehouse -- a live DuckDB query, not canned numbers. Runs on DuckDB or MotherDuck's
free tier, and the same dbt code has been run end to end on Snowflake too (a trial account,
with key-pair auth, a least-privilege role and a transactional load).
Relative performance
Adjusted close, indexed to 100 at each security's earliest point in the selected window, so
tickers at very different price levels are comparable on one chart. Straight off
fct_security_price, joined to dim_security.
Latest snapshot
Most recent trading day on record for each security, from the same fact table.
| Ticker | Name | Sector | Exchange | As of | Close | Day change | Volume |
|---|---|---|---|---|---|---|---|
| AAPL | Apple Inc. | Technology | Nasdaq Stock Market | 2026-09-10 | 326.57 | +3.56% | 69,925,100 |
| AMZN | Amazon.com, Inc. | Consumer Cyclical | Nasdaq Stock Market | 2026-09-10 | 251.89 | -0.20% | 25,443,300 |
| GOOGL | Alphabet Inc. | Communication Services | Nasdaq Stock Market | 2026-09-10 | 332.60 | +0.59% | 23,508,500 |
| JPM | JPMorgan Chase & Co. | Financial Services | New York Stock Exchange | 2026-09-10 | 353.56 | -0.32% | 4,184,200 |
| KO | The Coca-Cola Company | Consumer Defensive | New York Stock Exchange | 2026-09-10 | 87.83 | +0.32% | 12,019,900 |
| MSFT | Microsoft Corporation | Technology | Nasdaq Stock Market | 2026-09-10 | 492.44 | +0.16% | 16,018,200 |
| NVDA | NVIDIA Corporation | Technology | Nasdaq Stock Market | 2026-09-10 | 218.36 | -2.26% | 105,482,000 |
| SPY | State Street SPDR S&P 500 ETF Trust | -- | NYSE Arca | 2026-09-10 | 757.83 | -0.60% | 42,679,700 |
| XOM | ExxonMobil Holdings Corporation | Energy | New York Stock Exchange | 2026-09-10 | 165.23 | +0.61% | 16,615,300 |
Technical & risk indicators
From fct_security_technical_daily and fct_security_risk_daily -- two
more fact tables at the same (security, trading day) grain as the price fact, kept separate
because they serve a different question and change at a different rate. RSI here is a simplified,
SMA-based approximation, not the canonical Wilder-smoothed formula. Beta is versus SPY.
Sharpe/Sortino assume a 0% risk-free rate (no real T-bill data source in this project) --
directionally useful, not precise.
| Ticker | SMA-20 | SMA-50 | SMA-200 | RSI-14* | 52w range | Volatility (ann.) | Sharpe | Sortino | Beta (vs SPY) | Max drawdown |
|---|---|---|---|---|---|---|---|---|---|---|
| AAPL | 315.28 | 317.22 | 284.65 | 64.7 | 226.79–340.08 | 25.2% | 1.46 | 2.15 | 0.68 | -13.8% |
| AMZN | 259.38 | 254.95 | 239.62 | 40.5 | 198.79–284.02 | 34.4% | 0.33 | 0.54 | 1.41 | -21.7% |
| GOOGL | 341.45 | 347.63 | 336.62 | 42.5 | 236.57–402.62 | 31.5% | 1.21 | 1.96 | 1.36 | -21.1% |
| JPM | 357.08 | 351.30 | 319.15 | 53.2 | 282.84–365.18 | 22.1% | 0.97 | 1.38 | 0.78 | -15.5% |
| KO | 89.04 | 86.41 | 78.70 | 36.1 | 65.67–91.99 | 18.7% | 1.62 | 2.77 | -0.26 | -11.1% |
| MSFT | 494.50 | 451.44 | 431.14 | 56.9 | 352.83–542.07 | 32.4% | 0.15 | 0.23 | 0.95 | -34.9% |
| NVDA | 220.51 | 212.17 | 197.28 | 51.0 | 165.17–235.74 | 38.1% | 0.84 | 1.27 | 1.93 | -20.2% |
| SPY | 767.56 | 758.25 | 713.71 | 45.1 | 631.97–777.88 | 12.8% | 1.34 | 1.97 | 1.00 | -9.1% |
| XOM | 161.96 | 154.58 | 145.42 | 48.4 | 110.64–171.47 | 25.7% | 1.80 | 2.74 | -0.56 | -20.6% |
*Simplified RSI (SMA-based), not the canonical Wilder-smoothed formula.
Price projection
From fct_security_price_projection -- every method x lookback-window combination is
precomputed by dbt; the pickers below just select which already-tested rows to show, no math runs
in the browser or in this Flask app. 95% confidence band, widening with time, driven by recent
volatility (same treatment for all three methods, so only the central assumption differs).
Full-refresh every warehouse build -- always today's projections, not a record of past ones.
Autonomous stock analysis
Pick a ticker and watch each step as the model actually takes it -- a live call each time, capped the same way a normal assistant turn is. Limited to the tickers this warehouse has projections for.
This is the actual LangGraph the assistant runs -- each box lights up the moment that step really happens, not a canned replay. Hover a tool chip for its full result.