From 3d6bc3695571b0fcf5026de5c98cb912c4bb961e Mon Sep 17 00:00:00 2001 From: momentum dev Date: Thu, 30 Jul 2026 13:44:49 -0500 Subject: [PATCH] feat: Equity/Avail funds tile in dashboard P&L strip MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Shows total_equity and buying_power (settled available cash) from the latest account snapshot. On the Tradier live cash account these diverge for days after a deposit or sale (T+1) — the bot sizes off equity but buys need settled cash, so the gap explains rejected entries at a glance. Co-Authored-By: Claude Fable 5 --- api/static/dashboard.html | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/api/static/dashboard.html b/api/static/dashboard.html index fd32cb7..03bcc3d 100644 --- a/api/static/dashboard.html +++ b/api/static/dashboard.html @@ -498,6 +498,7 @@
Win Rate
—
Avg R
—
Open / Closed
—
+
Equity / Avail
—
Day Curve
—
@@ -1450,6 +1451,15 @@ function render(d) { $("pnl-avgr").className = "value num " + (p.avg_r_multiple > 0 ? "pos" : p.avg_r_multiple < 0 ? "neg" : ""); $("pnl-counts").textContent = (p.open_positions != null ? p.open_positions : 0) + " / " + (p.closed_trades != null ? p.closed_trades : 0); $("pnl-counts").className = "value num"; + // equity + settled/available funds (cash account: buys need settled cash, + // so available can lag equity by days after a deposit or sale) + if (acct0.account_id) { + const eq = acct0.total_equity != null ? acct0.total_equity : acct0.net_liquidating_value; + const avail = acct0.buying_power; + $("pnl-funds").textContent = money(eq) + " / " + (avail != null ? money(avail) : "—"); + } else { + $("pnl-funds").textContent = "—"; + } // portfolio risk strip + naked-position alarm — the conditions that silently // cost money this session, now visible.