From 4fdcb4ce0f00bc8f62d50ba5d352dd2fe01cd7e7 Mon Sep 17 00:00:00 2001 From: Openclaw Date: Sun, 29 Mar 2026 13:21:39 -0700 Subject: Add historical ratios, forward estimates, insider transactions, SEC filings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- app.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'app.py') diff --git a/app.py b/app.py index a470213..b1638cd 100644 --- a/app.py +++ b/app.py @@ -59,6 +59,8 @@ from components.market_bar import render_market_bar from components.overview import render_overview from components.financials import render_financials from components.valuation import render_valuation +from components.insiders import render_insiders +from components.filings import render_filings from components.news import render_news from services.data_service import get_company_info, search_tickers @@ -138,10 +140,12 @@ st.divider() # ── Main Content ────────────────────────────────────────────────────────────── -tab_overview, tab_financials, tab_valuation, tab_news = st.tabs([ +tab_overview, tab_financials, tab_valuation, tab_insiders, tab_filings, tab_news = st.tabs([ "📈 Overview", "📊 Financials", "💰 Valuation", + "👤 Insiders", + "📁 Filings", "📰 News", ]) @@ -163,6 +167,18 @@ with tab_valuation: except Exception as e: st.error(f"Valuation failed to load: {e}") +with tab_insiders: + try: + render_insiders(ticker) + except Exception as e: + st.error(f"Insider data failed to load: {e}") + +with tab_filings: + try: + render_filings(ticker) + except Exception as e: + st.error(f"Filings failed to load: {e}") + with tab_news: try: render_news(ticker) -- cgit v1.3-2-g0d8e