/* ============================================ COST TRACKING — Token burn + monthly budget ============================================ */ function CostScreen() { const budget = 18000; const spent = 12842; const pct = (spent / budget) * 100; const dailyBurn = [320, 412, 388, 401, 567, 122, 188, 478, 521, 487, 544, 612, 198, 240, 642, 698, 671, 740, 802, 287, 312, 822, 894, 901, 880, 950, 401, 412, 1024, 1082]; const W = 800, H = 180, P = 26; const max = Math.max(...dailyBurn); const stepX = (W - P * 2) / (dailyBurn.length - 1); return ( <>

Cost Tracking

May 2026 · monthly budget cycle · billing in USD

{/* Hero budget card */}
Monthly Budget vs Actual Spend
${spent.toLocaleString()} / ${budget.toLocaleString()} budgeted
{pct.toFixed(1)}% utilized
Day 23 of 31 · pacing 89%
$0 $5,000 $10,000 ${budget.toLocaleString()}
{/* Daily burn */} {/* gridlines */} {[0.5, 1].map(t => ( ))} {/* bars */} {dailyBurn.map((v, i) => { const x = P + i * stepX - stepX * 0.35; const barH = (v / max) * (H - P * 2); const isLast = i === dailyBurn.length - 1; return ( ); })} {[0, 9, 19, 29].map(i => ( May {i + 1} ))} PEAK 1,082K tok {/* Cost by model */} {[ ["claude-haiku-4.5", "44.2M", "$7,156", "$1.00 / $5.00"], ["emb-3-lg", "312.4M","$3,124", "$0.10"], ["gpt-4o-vision", "8.1M", "$1,418", "$15.00"], ["claude-haiku-4.5 (cached)", "12.8M", "$640", "$0.05"], ["reranker-2.1", "4.0M", "$120", "$3.00"], ].map(([m, t, c, r], i) => ( ))}
ModelTokensCost$/1M
{m} {t} {c} {r}
{/* Cost by team */} {[ { name: "Plant Operations", v: 4820, pct: 37.5 }, { name: "Maintenance & Reliability", v: 3140, pct: 24.5 }, { name: "Quality Assurance", v: 2090, pct: 16.3 }, { name: "Process Engineering", v: 1782, pct: 13.9 }, { name: "EHS / Safety", v: 1010, pct: 7.8 }, ].map(d => (
{d.name} ${d.v.toLocaleString()} {d.pct}%
))}
{/* Alerts */}
); } function AlertRow({ kind, title, sub }) { const colors = { warn: { bg: "#FFFBEB", fg: "#92400E", border: "#FDE68A", icon: }, info: { bg: "var(--navy-50)", fg: "var(--navy-700)", border: "var(--navy-100)", icon: }, ok: { bg: "#ECFDF5", fg: "#065F46", border: "#A7F3D0", icon: }, }; const c = colors[kind]; return (
{c.icon}
{title}
{sub}
); } window.CostScreen = CostScreen;