Skip to content

Handle Schwab interest withholding taxes#704

Open
lgyanf wants to merge 6 commits intoKapJI:mainfrom
lgyanf:fix/interest-tax-handling
Open

Handle Schwab interest withholding taxes#704
lgyanf wants to merge 6 commits intoKapJI:mainfrom
lgyanf:fix/interest-tax-handling

Conversation

@lgyanf
Copy link

@lgyanf lgyanf commented Jan 11, 2026

This PR fixes issue #705

Summary

  • Treat Schwab NRA Tax Adj rows without symbols and with SCHWAB1 INT as account-level interest tax.
  • Report interest tax totals as positive values and surface them in text/PDF outputs.
  • Add regression tests for interest tax handling and update expected outputs.

Testing

  • uv run pytest
  • uv run pytest tests/general/test_calc.py::test_interest_tax_totals_are_positive
  • uv run pytest tests/schwab/test_schwab_interest_tax.py

@lgyanf lgyanf force-pushed the fix/interest-tax-handling branch from 3a887b1 to bc08688 Compare January 11, 2026 14:01
@lgyanf lgyanf marked this pull request as ready for review January 11, 2026 14:07
@vmartinv vmartinv self-assigned this Jan 12, 2026
@vmartinv
Copy link
Collaborator

I think this is safe, I'm a bit curious on the motivation. Schwab has recently sent an email saying:

Effective January 2026, the Schwab One® Interest feature on your account is no longer subject to U.S. tax withholding. To be exempt from U.S. tax withholding, you must have a current, valid Form W-8BEN on file with Schwab.

Which will make this PR not very useful at least for this particular fund from now on. On top of paying foreign tax, the interest paid is also very low, I never received enough to justify worrying about these transactions.
It could be useful for other funds and to get rid of errors though, so worth merging.

@vmartinv
Copy link
Collaborator

After merging, looks like the new test needs fixing

@vmartinv
Copy link
Collaborator

@lgyanf any chance you can rebase and fix this ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants