/* ============================================================================ VIEW 4 — PERFORMANCE LEDGER (does the engine actually work?) ============================================================================ */ const { useMemo:useMemoLedger } = React; function KpiCard({ label, value, accent, sub, big }){ return (
{accent &&
} {label} {value} {sub && {sub}}
); } /* tiny win/loss distribution bar for 1w returns */ function HitBar({ rows }){ const sorted = [...rows].sort((a,b)=>a.ret_1w-b.ret_1w); const max = Math.max(...rows.map(r=>Math.abs(r.ret_1w)))||1; return (
{sorted.map(r=>{ const pos = r.ret_1w>=0; return (
{r.ticker} {fmtPct(r.ret_1w)}
); })}
); } function PerformanceLedger({ rows }){ const k = useMemoLedger(()=>ledgerKpis(rows),[rows]); const [sortKey, setSortKey] = React.useState("recommended_at"); const [dir, setDir] = React.useState(-1); const sorted = useMemoLedger(()=>{ return [...rows].sort((a,b)=>{ const av=a[sortKey], bv=b[sortKey]; if(typeof av==="string") return avbv?dir:0; return (av-bv)*dir; }); },[rows,sortKey,dir]); const setSort = (key)=>{ if(sortKey===key) setDir(d=>-d); else { setSortKey(key); setDir(-1); } }; const cols = [ {k:"ticker", label:"Ticker", align:"left"}, {k:"recommended_at", label:"Recommended", align:"left"}, {k:"tier", label:"Tier", align:"left"}, {k:"entry", label:"Entry", align:"right"}, {k:"ret_1d", label:"1D", align:"right"}, {k:"ret_1w", label:"1W", align:"right"}, {k:"ret_1m", label:"1M", align:"right"}, {k:"status", label:"Status", align:"left"}, ]; return (

Performance Ledger

Forward returns on past verdicts · {k.n} records

{/* KPIs */}
=60?"#15bd80":k.hit>=50?"#b9870c":"#ee3f5f"} sub="% positive after 1 week" big /> =0?"#17a86a":"#ee3f5f"} sub="mean across records" big />
{/* distribution */}
1-Week return distribution
win loss
{/* table */}
{cols.map(c=>( ))} {sorted.map(r=>( ))}
setSort(c.k)} className={"select-none cursor-pointer text-[10.5px] uppercase tracking-[0.1em] font-medium py-3 px-4 hover:text-white transition-colors "+(c.align==="right"?"text-right":"text-left")} style={{color: sortKey===c.k?"var(--accent)":"var(--muted)"}}> {c.label} {sortKey===c.k && {dir<0?"▼":"▲"}}
{r.ticker} {r.recommended_at} {fmtPrice(r.entry)} 0?"rgba(70,211,154,0.1)":"rgba(245,85,109,0.1)"}}> {r.status}

Illustrative track record for demonstration — past performance does not guarantee future results.

); } Object.assign(window, { PerformanceLedger });