diff options
Diffstat (limited to 'frontend/lib')
| -rw-r--r-- | frontend/lib/overview.ts | 13 |
1 files changed, 6 insertions, 7 deletions
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) }; } - |
