From c3f19f79f66054dc3b3a98999ea38b0f05248e06 Mon Sep 17 00:00:00 2001 From: Tyler Hoang Date: Sun, 17 May 2026 13:36:57 -0700 Subject: Refine overview ratios and shell --- frontend/lib/overview.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'frontend/lib') diff --git a/frontend/lib/overview.ts b/frontend/lib/overview.ts index efbd9f9..d02c5d3 100644 --- a/frontend/lib/overview.ts +++ b/frontend/lib/overview.ts @@ -41,14 +41,14 @@ export function buildKpis(overview: TickerOverview): KpiItem[] { { key: "P / E", value: overview.stats.trailing_pe == null ? "Unavailable" : `${fmtNumber(overview.stats.trailing_pe)}x`, - sublabel: `EPS ${fmtCurrency(overview.stats.trailing_eps)}`, + sublabel: `P/B ${overview.ratios.price_to_book == null ? "-" : `${fmtNumber(overview.ratios.price_to_book)}x`}`, missing: overview.stats.trailing_pe == null }, { - key: "Prev Close", - value: fmtCurrency(overview.quote.prev_close), - sublabel: `Day chg ${fmtCurrency(overview.quote.change)}`, - missing: overview.quote.prev_close == null + key: "EPS ยท TTM", + value: fmtCurrency(overview.stats.trailing_eps), + sublabel: `Net margin ${fmtPct(overview.ratios.net_margin_ttm)}`, + missing: overview.stats.trailing_eps == null }, { key: "52W Position", @@ -95,7 +95,7 @@ export function availableFieldSummary(overview: TickerOverview): string { const fields = Object.values(overview.meta.field_availability); if (!fields.length) return "Availability metadata unavailable"; const available = fields.filter(Boolean).length; - return `${available}/${fields.length} tracked fields available`; + return `${available} of ${fields.length} tracked fields filled`; } export function watchlistSubtitle(item: WatchlistItem): string { @@ -131,4 +131,3 @@ export function marketClock(now = new Date()) { }).format(now) }; } - -- cgit v1.3-2-g0d8e