Expectations Dashboard · mikefromcornell

Near 52-wk low Earnings ≤7d Has signals Fair value set
Ticker Price Earnings % from High % from Low 52-wk Range P/E 2y avg P/S 2y avg ROIC Analyst Target Signals Score ▾
Funds have no earnings, insiders, P/E, ROIC or reverse-DCF — so they get only the columns that apply, and are excluded from Expectations Score ranking.
FundPriceDay % from High% from Low52-wk Range
Position sizing Weights come from config/watchlist.yaml — currently equal-weight across all 74. Edit them there, or use python -m src.watchlist weights.

🥧 Allocation by position top 15 + other

🏭 Allocation by sector

📐 Risk & concentration weighted by your position sizes

Asset type split
How these are computed — Beta from 5 years of daily returns vs. SPY. 30-day volatility is annualised stdev of daily returns. Sharpe = (portfolio return − risk-free) ÷ total volatility; Sortino uses downside deviation only, so it doesn't penalise upside — generally the more useful of the two for a long-only book. Risk-free rate is the 3-month T-bill (DGS3MO) from FRED, free and keyless.

⚠️ Weighted volatility is Σ(wᵢ·σᵢ) and ignores correlation, so it overstates true portfolio risk — meaning these Sharpe and Sortino figures are conservative and your real ratios are likely better. The covariance-matrix fix is free (we already pull 5 years of history) and is the top v1.1 item.

⚠️ Concentration flags rules-based

⚠️ What this tab is — and what it is not

This applies Buffett's publicly stated, written criteria — durable moat, high returns on capital, low leverage, consistent cash generation, circle of competence, margin of safety — as a deterministic checklist. It is not a prediction of what Buffett would do, not affiliated with Berkshire, and not investment advice. No LLM is involved, which keeps it free, reproducible and auditable — and means it never invents a rationale. Thresholds are editable in config/buffett.yaml.

📋 Portfolio-level observations rules-based

✅ Seven-test checklist click a row for the full breakdown

TickerMoatROICD/EFCF margin StabilityCircleMargin of safetyPasses

🧠 Mauboussin Lens — on-demand, rendered when you open this tab

Paste a free Google AI Studio key once. It is stored in your browser's localStorage — never committed, never in the repo, never sent anywhere except Google. Analysis is generated live and cached 24h per ticker. Free tier is ~1,500 requests/day on Flash, no credit card. The app tries gemini-flash-latest first and falls back through other Flash models if one is quota-limited. The key is per-device, and Google may use free-tier inputs to improve their models — only public market data is sent, never your weights or positions.
Get a free key at aistudio.google.com/apikey — Google account only, no card.

Analysis cached 24h per ticker

Watchlist tickers autocomplete and use live metrics from this dashboard. Any other US ticker works too — it is fetched on demand, and if we cannot price it the prompt still runs with whatever is known.

📝 The prompt exactly what gets sent — edit before running if you want

Edits apply to the next Analyse. Template lives in config/prompts/mauboussin.md.

💼 Conviction clusters ≥3 tracked managers buying the same name

TickerConvictionManagers

📈 Recent superinvestor activity Dataroma · refreshed every 72h

TickerManagerActionPeriodDetail

🗣 r/wallstreetbets sentiment context — not a signal

💬 Daily Discussion Thread ↗ 🔥 Top posts ↗
Mention counts require Reddit's OAuth API (free, non-commercial). Add REDDIT_CLIENT_ID and REDDIT_CLIENT_SECRET as repo secrets to enable the daily summary — unauthenticated .json has returned 403 from datacenter IPs since May 2026. Deliberately excluded from the Expectations Score and alerts.

🔗 Research & manual follow login-walled or no free data source

📊 Value Line · library barcode ↗ 𝕏 @PCM_bio ↗ 📊 Joseph Carlson · M1 ↗ 𝕏 @michaeljburry ↗
Excluded from automation: Value Line (redirects to an authenticated account page — nothing scrapeable), PCM_bio (X API ~$100/mo), Joseph Carlson (M1 is a JS app needing headless Chromium), Michael Burry (Scion deregistered from the SEC on 10 Nov 2025 — no 13Fs exist to read). Ideas you spot manually go in config/manual_ideas.yaml.