| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Use TTM EBITDA (from compute_ttm_ratios) as the single canonical source
for both Key Ratios and DCF EV/EBITDA — eliminates disagreement between tabs
- Remove "Total Equity Gross Minority Interest" from minority_interest fallback
in get_balance_sheet_bridge_items; that yfinance row is total equity (not just
minority portion) and would have massively over-deducted from DCF equity value
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- add Organized/Raw toggle for income statement, balance sheet, and cash flow
- group line items into expandable sections for easier navigation
- add Prism Net Debt row to annual balance sheet using valuation bridge logic
- keep full raw statement tables and CSV download support
|
|
- compute EV consistently as market cap + debt - cash
- derive DCF/EV bridge inputs from balance-sheet rows
- centralize latest price, shares outstanding, and computed market cap helpers
- relabel negative net debt as net cash in valuation UI
- self-compute historical ratios/key metrics instead of relying on vendor ratios
- guard against nonsensical historical EV/EBITDA values
- add methodology/source notes in DCF tab
|
|
The slider tooltip still read info["enterpriseToEbitda"] (the bad yfinance
pre-computed value showing 4998x for DDOG). Now computed as enterpriseValue
/ income statement EBITDA, consistent with the Key Ratios tab fix.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Added compute_ttm_ratios() which derives all 16 TTM ratios directly from
yfinance quarterly income statements, balance sheets, and cash flow:
Valuation: P/E, P/S, P/B, EV/EBITDA, EV/Revenue
Profitability: Gross/Operating/Net Margin, ROE, ROA, ROIC
Leverage: D/E, Current Ratio, Quick Ratio, Interest Coverage
Dividends: Yield, Payout Ratio
get_key_ratios() no longer calls FMP's /ratios-ttm or /key-metrics-ttm
endpoints, saving ~2 FMP API calls per ticker load (including each Comps
peer). Forward P/E still comes from yfinance info dict (analyst estimate).
This also fixes EV/EBITDA for all tickers (DDOG was 4998x from FMP/yfinance
pre-computed values, now correctly 194x from income statement EBITDA).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
FMP and yfinance both return the same bad EV/EBITDA value (4998x for DDOG)
because their pre-computed multiples use a miscalculated EBITDA. Removed
the FMP preference fallback — EV/EBITDA is now always computed directly as
enterpriseValue / get_ebitda_from_income_stmt().
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
yfinance's info["ebitda"] is a miscalculated TTM value for many tickers
(e.g. DDOG shows $7.5M when the correct TTM EBITDA is $193.8M). Added
get_ebitda_from_income_stmt() which reads directly from t.income_stmt,
matching the annual and quarterly figures. Key Ratios and DCF EV/EBITDA
valuation now both use this source, with FMP as the preferred override.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- Corrected existing labels that didn't match yfinance output
(e.g. 'research development' → 'research and development',
'income tax expense' → 'tax provision',
'selling general administrative' → 'selling general and administration')
- Added balance sheet debt/liability rows: net debt, total debt, long/current
debt, capital lease obligations, all liability subtotals, payables
- Added cash flow rows: debt issuance (increase = bad), equity dilution
(issuance of capital stock = bad), taxes/interest paid (more = bad),
buybacks (repurchase of capital stock = inverse so more buybacks = green)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Overview:
- Score card: green/yellow/red signals for valuation, growth, profitability,
leverage, momentum (vs 52W high), and short interest
- 52W high/low visual range bar with current price marker and % context
- Short interest metrics row: % of float, days to cover, shares short vs
prior month
- Replaced static 52W High/Low metrics with volume and avg volume
Options tab (new):
- Expiry selector across all available expirations
- Put/call ratio by volume and open interest with bullish/bearish label
- IV smile chart (calls + puts) with ATM marker
- Open interest by strike (calls above, puts mirrored below axis)
- Full chain table (calls/puts) in expandable section
CSV exports:
- Download button on each financial statement (income, balance, cash flow)
- Download button on earnings history table
Also fix top padding cut-off: block-container padding-top 1rem → 3.5rem
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
FMP stable /analyst-estimates returns revenueAvg, epsAvg, ebitdaAvg, etc.
but the code was looking for estimatedRevenueAvg, estimatedEpsAvg, etc.
Updated _build_estimates_table and the EPS chart to read both field name
variants so the Forward Estimates tab now renders correctly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
FMP free tier caps at 250 req/day; hitting the limit caused the Historical
Ratios tab to show an error. get_historical_ratios_yfinance now computes
margins, ROE, ROA, D/E, P/E, P/B, P/S, and EV/EBITDA directly from
yfinance income statements, balance sheets, and price history. FMP
functions fall back to this automatically when they receive an empty
response.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
FMP v3 insider-trading and sec_filings endpoints are legacy-gated.
Switch to yfinance (t.insider_transactions, t.sec_filings) which
provides the same data for free with no API key required.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- services/fmp_service.py: add get_historical_ratios, get_historical_key_metrics,
get_analyst_estimates, get_insider_transactions, get_sec_filings
- components/valuation.py: add Historical Ratios and Forward Estimates subtabs
- components/insiders.py: new — insider buy/sell summary, monthly chart, detail table
- components/filings.py: new — SEC filings with type filter and direct links
- app.py: wire in Insiders and Filings top-level tabs
|
|
Green for improvement, red for decline. Cost/expense rows use
inverse logic (decline = green). Value cells retain neutral styling.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
|
|
|
|
|
|
override
- DCF model: user-adjustable FCF growth rate slider (defaults to historical median)
- EV/EBITDA valuation section with target multiple slider and implied price
- Analyst Targets tab: price target summary + recommendation breakdown chart
- Earnings History tab: EPS actual vs estimate table and line chart with next earnings date
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Streamlit app with market bar, price chart, financial statements,
DCF valuation engine, comparable companies, and news feed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|