去年你卖出了一些股票。你的券商寄给你一份 Form 1099-B。你把数字输入报税软件,点击提交,然后继续过你的生活。几个月后,你盯着一张异常庞大的税单,或者更糟的是,收到国税局 (IRS) 的 CP2000 通知,声称你漏报了收入。
这里有一个大多数投资者从未了解的残酷事实:1099-B 表格上打印的成本基准 (cost basis) 数字,有时是券商实际告知国税局的基准,有时则不是。无论哪种情况,表格看起来都是一样的。如果你不知道其中的区别,最终可能会为你已经作为工资纳税的金额再次缴纳资本利得税——这是一个典型的双重征税问题,在每个申报季都会悄悄让拥有限制性股票单位 (RSU)、员工股票购买计划 (ESPP) 和股票期权的员工损失数千美元。
本指南将详细介绍 Form 1099-B 的实际运作方式、Box 1e 和 Box 5 的含义、“已申报与未申报” (covered vs. noncovered) 区别的由来,以及如何使用 Form 8949 调整代码来修正券商错误,且不会引发审计风险。
Form 1099-B 究竟申报了什么
Form 1099-B(券商和易货交易所得)是每当你出售股票、ETF、共同基金、期权、债券或类似证券时,券商向你和国税局发送的信息申报表。它记录了销售所得 (proceeds)——即进入你账户的总金额——以及对于某些证券,券商记录在案的成本基准 (cost basis)。两者的差额即为你的资本利得或损失。
券商还会报告持股是短期(持有一年或以下)还是长期,以及一些特殊情况:他们检测到的虚假销售 (wash sales)、应计市场折价 (accrued market discount)、扣缴的联邦税以及公司行动调整。
你不需要在报税时提交 1099-B 表格本身。相反,每笔交易都会汇总到 Form 8949(资本资产销售和其他处置),在该表格中你列出每笔销售并进行修正。Form 8949 的总额随后进入 Schedule D,用于核对全年的整体资本利得情况。
“已申报证券” (Covered Security) 的概念
在券商历史的大部分时间里,券商没有义务追踪或报告成本基准。你卖出股票,他们报告总收益,而你根据旧的成交确认单或电子表格计算自己的基准。意料之中的是,投资者经常出错,国税局也因为无心的错误或不诚实的“创意”损失了真实的税收收入。
2008 年的《紧急经济稳定法案》改变了这一点。它要求券商开始追踪并向国税局报告“已申报证券” (covered securities) 的调整后成本基准。这一类别是分几年逐步引入的:
- 2011 年 1 月 1 日:在此日期或之后获得的股票成为已申报证券。
- 2012 年 1 月 1 日:在此日期或之后获得的共同基金份额和股息再投资计划 (DRIP) 份额成为已申报证券。
- 2014 年 1 月 1 日:在此日期或之后授予或获得的期权、债券和其他“较不常见”的证券成为已申报证券。
在各自的分阶段实施日期之前获得的证券——你父亲 1989 年持有的可口可乐股份,你祖母在 2010 年购买的债券——都是未申报证券 (noncovered)。券商可能仍会在你的对账单上显示基准数字(特别是如果你转入了股份并带入了基准),但他们并没有告诉国税局这个基准是多少。
这一个区别是导致纳税人困惑的主要原因。无论哪种情况,1099-B 表格看起来都一样。但国税局对这两栏的处理方式截然不同。
解读关键栏位
一份标准的 Form 1099-B 有十几个栏位,但成本基准核对主要涉及以下几个:
- Box 1a — 描述 (Description):股数和代码(例如,“100 sh. AAPL”)。
- Box 1b — 获得日期 (Date acquired):你购买股份的时间。基金份额可能显示为“Various”(多种)。
- Box 1c — 出售日期 (Date sold):销售结算的时间。
- Box 1d — 销售所得 (Proceeds):销售所得的总额,通常已扣除佣金。
- Box 1e — 成本或其他基准 (Cost or other basis):基准数字。对于已申报证券,这是券商已报告给国税局的数字。对于未申报证券,这仅供参考。
- Box 1f — 应计市场折价 (Accrued market discount):主要与折价债券有关。
- Box 1g — 不允许扣除的虚假销售损失 (Wash sale loss disallowed):券商根据虚假销售规则认定不可扣除的损失。
- Box 2 — 短期或长期 (Short-term or long-term):持有期限分类。
- Box 5 — 未申报证券 (Noncovered security):改变一切的标志。如果勾选此项,则该证券为未申报证券,无论 Box 1e 显示什么数字,该数字都没有报告给国税局。
- Box 12 — 报告给国税局的基准 (Basis reported to IRS):许多券商还会包含一个明确的指示符(有时标记为“适用复选框”或“Box A/B/C/D/E/F”),显示该交易所属的 Form 8949 类别。
陷阱在于:投资者看到 Box 1e 中填写了一个数字,就假设国税局也看到了这个数字。如果 Box 5 被勾选,这个假设就是错误的。国税局只看到了 Box 1d(收益)——除非你在 Form 8949 上另行说明,否则他们会将你的整个销售额视为收益。
1099-B 交易如何流向 8949 表格
8949 表格将销售分为六个类别,通常标记为 A 到 F:
| 持有期 | 成本依据已报告给 IRS | 成本依据未报告 | 不在 1099-B 上 |
|---|---|---|---|
| 短期 | A 栏 | B 栏 | C 栏 |
| 长期 | D 栏 | E 栏 | F 栏 |
在实际操作中:
- A 和 D 是申报证券(covered securities)——经纪商已报告了成本依据,你通常只需确认即可。
- B 和 E 是仍出现在 1099-B 上的非申报证券(noncovered securities)——你必须自行提供或修正成本依据。
- C 和 F 是对账单之外的销售(私有股票、收藏品、经纪商未处理的外国证券)。
每笔交易占用一行。你需要填写的列包括:(a) 描述,(b) 获得日期,(c) 出售日期,(d) 卖出收入 (proceeds),(e) 成本依据 (cost basis),(f) 调整代码,(g) 调整金额,(h) 收益或亏损。
当经纪商报告的成本依据正确时,(f) 和 (g) 列保持空白。当成本依据错误或不完整时,你就需要在这里进行对账工作。
你实际会用到的调整代码
IRS 发布了 8949 表格的一长串调整代码,但大多数投资者只会遇到其中几个。每个代码都是填入 (f) 列的一个字母,通常在 (g) 列配有一个带正负号的美元金额调整。
代码 B —— 报告给 IRS 的成本依据错误
这是 RSU、ESPP 和股票期权持有者的“主力”代码。当经纪商显示的成本依据你已知是错误的——通常是因为他们没有包含已经计入你 W-2 表格的薪酬收入而导致金额偏低——代码 B 允许你进行修正。
操作方法:在 (e) 列输入经纪商报告的成本依据,然后在 (g) 列输入差额的负值。其结果在 (h) 列中显示为你的实际收益。例如,经纪商报告的一笔卖出收入为 $500 的交易,其成本依据为 $100,但你的实际成本依据(包括 W-2 薪酬)是 $450。那么 (e) 列显示 $100,(f) 列显示 "B",(g) 列显示 ($350),你在 (h) 列的收益是 $50 —— 而不是 $400。
调整非申报证券(Box B / E 交易)
对于非申报证券,IRS 尚未收到任何成本依据信息,因此你通常根本不需要代码。你只需在 (e) 列输入正确的成本依据即可。例外情况:如果经纪商在你的对账单上印错了成本依据,而你正在记录这一修正,为了清晰起见,你可以输入代码 B 并将调整金额设为零。
代码 W —— 虚抛售亏损不予承认 (Wash Sale Loss Disallowed)
代码 W 标记虚抛售(洗售)。如果你的经纪商已经检测到虚抛售并在 Box 1g 中报告了不予承认的亏损,你的软件通常会自动带入该代码。如果你触发了经纪商无法看到的虚抛售——例如,因为你在不同的账户或你的 IRA 账户中购买了替代股票——你必须自行识别不予承认的金额,并输入代码 W,同时在 (g) 列填入正向调整金额以抵消该亏损。
代码 Q —— 合格小型企业股票排除 (Qualified Small Business Stock Exclusion)
如果你出售的股票符合第 1202 条款关于 QSBS 收益排除的规定,代码 Q 允许你剔除排除的部分。该排除项在 (g) 列中显示为负向调整。
代码 O —— 其他调整
兜底代码。请谨慎使用代码 O,且仅在有书面说明的情况下使用;它往往会引起 IRS 的注意。常见的合理用途包括:对经纪商未应用升值后的成本依据(stepped-up basis)的继承证券销售进行调整,或者针对从另一个账户转入成本依据的转账进行调整。
其他值得了解的代码
- 代码 T —— 成本依据已报告给 IRS,但 1099-B 上的持有期(短期 vs 长期)错误。
- 代码 N —— 你作为免税交换的一部分收到了该证券,而经纪商未追踪结转成本依据。
- 代码 D —— 你以赠与形式收到该证券,需要调整为赠与人的成本依据或公平市场价值。
- 代码 H —— 你出售了主要住所,但部分收益根据第 121 条款是可排除的。
如果你需要在单行中输入多个代码,请在 (f) 列中列出它们,中间不留空格或逗号(例如 "BW")。
RSU 和 ESPP 的双重征税陷阱
这是现实中损失金钱最多的地方。想象一位软件工程师,她的 RSU 在 3 月份归属:100 股,每股 $50。这 $5,000 的归属价值作为普通收入计入她的 W-2,她的雇主预扣了税款。她在这些股票中的实际成本依据是 $5,000 —— 也就是已经缴过税的金额。
5 月份,她以 $5,200 的价格卖出了这 100 股。她赚取了 $200 的资本利得。
她的经纪商只看到交易的经纪端,尽职地在 1099-B 上报告了这笔销售。Box 1d 显示 $5,200。Box 1e 显示……可能是 $0,可能是 $50(ESPP 的期权授予价格),也可能是部分成本依据。Box 5 通常会被勾选,因为经纪商通常将员工股权销售分类为“非申报”。
如果她在不进行调整的情况下将这些数字输入报税软件,IRS 会看到 $5,200 的“收益”——她实际上对同样的 $5,000 支付了两次税,一次作为工资,一次作为资本利得。这一个错误可能轻易地让每个归属批次损失 $1,000–$2,000。
修复方法是使用代码 B(或者对于非申报证券,直接输入正确的成本依据):将经纪商的成本依据数字替换为实际成本依据,该依据等于已经报告在 W-2 上的普通收入加上任何自付的购买成本。IRS 不会反对——他们预期来自雇主股权的补偿收入会出现在 W-2 上,而不是 1099-B 上。
对于 ESPP 和激励性股票期权 (ISO),计算会变得更加复杂(合格处置与不合格处置会改变计入普通收入的部分),但原则是完全相同的:经纪商很少知道补偿部分,因此你 1099-B 上的成本依据几乎总是过低的。
导致真金白银损失的常见错误
在每个申报季节,总会反复出现以下几种情况:
- 盲目相信非覆盖证券的 Box 1e。 即使勾选了 Box 5,表格上仍可能印有成本基础。投资者在填写纳税申报表时直接照抄该基础,认为 IRS 会接受它。有时该基础是正确的;有时则是旧账户转移遗留的错误数据。务必核实。
- 忽略“Various”(各种日期)的取得日期分录。 共同基金批次和股息再投资计划(DRIP)的股份在 Box 1b 中经常显示为“Various”。对于区分短期与长期分类而言这没问题,但它可能掩盖了一个事实:该次销售中的某些批次是非覆盖的,而另一些是覆盖的。请从你的经纪商处获取批次级别的详细信息。
- 遗漏跨账户的洗售(Wash Sales)。 经纪商只看得到自家的账目。如果你在 Schwab 亏损卖出,并在 Fidelity(或 IRA 账户中)重新买入,追踪该洗售交易是你的责任。
- 忘记继承股份的升值成本基础(Stepped-up basis)。 继承的股份在被继承人去世之日会获得升值至公平市场价值的成本基础。如果这些股份早于“覆盖证券”阶段性实施日期,你的经纪商可能会显示被继承人的原始基础,甚至完全不显示。
- 未汇总到 Box A 或 D 摘要中。 当某一类别的所有销售都向 IRS 报告了正确的成本基础且无需调整时,你可以将总额汇总在 Schedule D 上,而无需在 Form 8949 上逐行列出。许多申报者仍然逐一列出,浪费了大量时间。
如何在实践中对账 1099-B
一个规范的工作流程如下:
- 同时下载 1099-B 和补充声明(Supplemental Statement)。 经纪商通常在正式的 1099-B 之外还会发布一份“补充信息”PDF。补充声明通常会显示修正后的成本基础(例如,“包含补偿在内的调整后成本基础”),即使该调整后的数值并未发送给 IRS。你需要这两份文件。
- 根据 Box 5 和 Box 12 将交易分为 Form 8949 的六个类别(A 到 F)。
- 对于 Box A 和 D 交易(已覆盖,成本基础正确),确认数值与你自己的记录相符,直接输入且无需调整。
- 对于 Box B 和 E 交易(未覆盖),直接在 (e) 列中输入来自补充声明或你自己记录的正确成本基础。
- 对于员工股权销售(RSU、ESPP、期权),请对照你的 W-2(Box 1)和年终工资单进行核对,确认有多少补偿收入(compensation income)已经被征税。该数值即为你的成本基础底线。
- 仅在以下情况应用调整代码:经纪商报告的基础错误,或者存在洗售、排除项或其他特殊规则。
- 核对总额到 Schedule D。 来自 Form 8949 的短期总额填入 Schedule D 的第 1b、2 或 3 行(取决于类别)。长期总额填入第 8b、9 或 10 行。
- 保存你的证明文件。 IRS 可以在申报后三年内(如果怀疑存在重大漏报,则为六年)要求提供证据。保存经纪对账单、W-2、授予归属报告以及任何证明成本基础的往来信件。
准确的成本基础记录也是将投资活动保存在纯文本会计账簿(而非电子表格)中的最强有力理由之一。当你的买入、卖出、股息再投资和公司行为都作为受版本控制的交易存在时,年终对账 1099-B 就会变成运行一份报表,而不是考古。
当 IRS 给你发送 CP2000 时
如果你遗漏了一项调整,IRS 的计算机匹配程序最终会发现。CP2000 通知通常在你申报后的 12 到 24 个月内寄达,并根据经纪商报告的数值提议补缴税款。这不是账单——它是一个提议,你有 30 天的时间做出回应。
在大多数成本基础不匹配的情况下,正确的做法是提交 Form 1040-X(修正申报表)及修正后的 Form 8949,附上经纪商的补充声明,并写下清晰的说明:“1099-B 上的成本基础未包含 [日期] 归属的 RSU 的 $X 元 W-2 补偿。随附修正后的基础。” 当文档清晰齐全时,大多数 CP2000 成本基础争议都会以有利于纳税人的方式解决。
如果你完全不予回应,提议的评估将变为最终结果,IRS 会加收罚金和利息,届时要追回多缴的税款将变得困难得多。
关于加密货币和数字资产
对于 2025 纳税年度及以后,IRS 为数字资产经纪商引入了 Form 1099-DA,许多相同的覆盖/非覆盖概念同样适用。从 2025 年 1 月 1 日开始分阶段实施收益报告,随后在 2026 年实施成本基础报告。如果你在多个钱包和交易所持有加密货币,预计会遇到十年前 RSU 持有者所面临的那种成本基础不匹配的头痛问题——以及同样的解决方法。
全年保持你的投资记录处于审计就绪状态
对账 1099-B 最难的部分不是规则,而是在四月从一整年的经纪对账单、工资发放记录和公司行为中重建交易。Beancount.io 提供纯文本会计,为你提供每笔买入、卖出、股息和基础调整的透明、受版本控制的记录,没有供应商绑定,并拥有完整的审计轨迹,你可以将其交给注册会计师(CPA)或使用文本编辑器进行修改。免费开始使用,将明年的 1099-B 对账从三个晚上的法务调查项目变成五分钟的报表任务。