aboutsummaryrefslogtreecommitdiff
path: root/app.py
diff options
context:
space:
mode:
authorOpenclaw <openclaw@mail.tylerhoang.xyz>2026-03-29 13:21:39 -0700
committerOpenclaw <openclaw@mail.tylerhoang.xyz>2026-03-29 13:21:39 -0700
commit4fdcb4ce0f00bc8f62d50ba5d352dd2fe01cd7e7 (patch)
tree35dc4234751521d5a89a124f53eeaa827813be07 /app.py
parentfc55820f5128f97e231de5388e59912e4a675782 (diff)
Add historical ratios, forward estimates, insider transactions, SEC filings
- 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
Diffstat (limited to 'app.py')
-rw-r--r--app.py18
1 files changed, 17 insertions, 1 deletions
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)