From 7a267bc3c28bc7a77e84eaa400667a7b4c0d5adf Mon Sep 17 00:00:00 2001 From: Tyler Date: Thu, 2 Apr 2026 00:10:06 -0700 Subject: Refactor valuation models tab --- services/data_service.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'services/data_service.py') diff --git a/services/data_service.py b/services/data_service.py index c278a2f..e3f46cc 100644 --- a/services/data_service.py +++ b/services/data_service.py @@ -212,6 +212,22 @@ def get_insider_transactions(ticker: str) -> pd.DataFrame: return pd.DataFrame() +@st.cache_data(ttl=3600) +def get_revenue_ttm(ticker: str) -> float | None: + """Return trailing-twelve-month revenue from the last 4 reported quarters.""" + try: + t = yf.Ticker(ticker.upper()) + inc_q = t.quarterly_income_stmt + if inc_q is None or inc_q.empty or "Total Revenue" not in inc_q.index: + return None + vals = inc_q.loc["Total Revenue"].iloc[:4].dropna() + if len(vals) != 4: + return None + return float(vals.sum()) + except Exception: + return None + + @st.cache_data(ttl=3600) def compute_ttm_ratios(ticker: str) -> dict: """Compute all key financial ratios from raw yfinance quarterly statements. -- cgit v1.3-2-g0d8e