跳转到主要内容
CSV 转 Beancount 转换器

Charles Schwab → Beancount

Charles Schwab CSV 至 Beancount

将 Schwab 券商的 Transactions 导出转换为平衡的复式记账 Beancount 交易——美元符号、千位分隔符和结算调整日期均能正确读取。

已针对真实的 Charles Schwab 导出验证列映射

所有处理都在你的浏览器本地完成。

已保存的映射

配置文件仅保存在此浏览器中。您的交易数据不会离开浏览器。

还没有已保存的映射。粘贴 CSV、设置好列后,可在此保存配置以便日后重复使用。

Beancount 输出

粘贴 CSV 后,你的交易将显示在这里。

如何导出你的 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 从账户支出,且不附带任何股份过账;商品侧请手动记录。

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 托管你的纯文本账本,自动导入未来的账单,并保持每一笔数字可审计。