schwab_get_brokerage_balances
Get the active Schwab account's current balance summary.
Pulls Schwab's account endpoint and returns four bold lines:
Cash Balance: currentBalances.cashBalance Buying Power: currentBalances.buyingPower Net Liquidation: currentBalances.liquidationValue Day P&L: currentBalances.liquidationValue − initialBalances.liquidationValue
Day P&L is the session change in mark-to-market equity (the canonical measure of "how much did I make/lose today"). Schwab's account response does not expose a single "dayProfitLoss" field — the convention is to compute the delta against the start-of-day snapshot.
Two fallback guards apply to Day P&L:
Missing snapshot — if either initialBalances or currentBalances is absent or has a zero liquidationValue, Day P&L reports 0.0 rather than treating zero as the baseline (which would print today's full equity as P&L).
Suspect snapshot — if the computed Day P&L is larger in absolute value than half of current liquidation value (e.g. $17,442 P&L on an $8,847 account), the initialBalances snapshot is treated as stale or partial and Day P&L reports 0.0. A legitimate 50%+ session change is implausible for any normal account; the tool underreports in the rare real-50% case rather than emitting nonsense in the more common stale-snapshot case.
When Day P&L reads $0.00 on a session where you expect a real number, one of those two guards fired. Cross-check against position-level P&L via get_brokerage_positions.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| dpop_token | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |