diff --git a/app/services/schwab_service.py b/app/services/schwab_service.py index 7b62e61..92ad911 100644 --- a/app/services/schwab_service.py +++ b/app/services/schwab_service.py @@ -247,14 +247,18 @@ def sync_account_snapshot(schwab_account): instrument = pos.get('instrument') or {} asset_key = instrument.get('assetType', '') symbol = (instrument.get('symbol') or '').upper().strip() - long_qty = float(pos.get('longQuantity') or 0) + # Use longQuantity; fall back to settledLongQuantity for positions that + # were just purchased and haven't fully settled yet (T+1 / T+2). + long_qty = float(pos.get('longQuantity') or + pos.get('settledLongQuantity') or 0) pfm_type = ASSET_TYPE_MAP.get(asset_key) log.debug('[schwab] position: symbol=%s assetType=%s longQty=%s pfm_type=%s', symbol, asset_key, long_qty, pfm_type) - # Skip unknowns, empty symbols, and zero-quantity positions + # Skip empty symbols and zero-quantity positions if not symbol or long_qty <= 0: + log.debug('[schwab] skipping %s — qty=%s symbol=%r', asset_key, long_qty, symbol) continue # Fall back to 'other' if the asset type isn't in our map if not pfm_type: