Charles Schwab CSV 至 Beancount
将 Schwab 券商的 Transactions 导出转换为平衡的复式记账 Beancount 交易——美元符号、千位分隔符和结算调整日期均能正确读取。
已针对真实的 Charles Schwab 导出验证列映射
如何导出你的 Charles Schwab 交易记录
- 1
登录 schwab.com,前往 Accounts,然后点击 History。
- 2
选择账户,然后选择 Transactions 视图,而非报表。
- 3
设置日期范围,然后使用交易表格上方的 Export 控件并选择 CSV。
- 4
下载文件以账户名称和请求时间命名,类似于 Individual_XXX980_Transactions_20260724-173507.csv。
- 5
如果文件以“Transactions for account …”横幅开头或包含“Transactions Total”行结尾,请删除这两行;然后将剩余部分复制并粘贴到下方。
十行中可能有四行被跳过,这并非异常
在一个真实的 1,491 行 Schwab 导出中,有 610 行的 Amount 为空:既有股份、股份转让及其他股票计划活动仅涉及证券变动而非资金变动,因此没有现金侧需要记录。所有这些行都会被报告并跳过,这意味着在券商文件中出现一长串被跳过的行是预期结果,而非转换器故障。返回的是账户的现金侧——转入、买入、卖出、股息和利息。交易仅转换其现金部分,因此购买 $995.00 的 VTI 变成 $995 从账户支出,且不附带任何股份过账;商品侧请手动记录。
Beancount 输出
Charles Schwab 导出常见问题
什么是“Transactions for account…”和“Transactions Total”行?
横幅 Schwab 放在列标题上方,汇总行放在下方。两者都不是交易,且并非每次导出都包含——某些下载路径包含它们,某些则不包含。如果你的文件包含它们,请删除,运行结果将干净;保留它们会导致两条被报告的行,但不会改变任何转换金额。
我的文件有 Withdrawal 和 Deposit 列,而不是 Amount——这是错误的文件吗?
对于 Schwab Bank Investor Checking 账户,这是正确的文件,它导出 Date、Status、Type、CheckNumber、Description、Withdrawal、Deposit 和 RunningBalance,而非券商布局。请按列名选择,而非按位置计数:Debit 和 Credit 配对需要 Withdrawal 和 Deposit。较旧的 Schwab 银行导出没有 Status 列,因此其后所有内容都会偏移一位——这正是此页面映射券商文件并将其余部分留给选择器的原因。
我的一个日期显示为“04/17/2023 as of 04/15/2023”。使用的是哪一个?
使用第一个。Schwab 在结算调整行写入该双重形式,前导日期是其历史屏幕排序所用的过账日期——因此转换后的交易与你在网站上查看时一致。单元格的尾随部分将被丢弃,该行仍正常转换,而非被跳过。
保留你刚刚转换的账本
Beancount.io 托管你的纯文本账本,自动导入未来的账单,并保持每一笔数字可审计。
免费开始→