美股股息率:预扣税10%与30%的到手差别
券商行情页显示的美股股息率是税前的过去12个月数字。这里用真实派息数据算出10%与30%两种预扣税率下的到手净股息率,并说明为什么香港和澳门税务居民拿不到10%。
美股股息率在富途、老虎、IBKR 这类行情页上显示的是一个税前数字:过去12个月每股现金派息除以当前股价。真正落进账户的是扣掉美国预扣税之后的部分。中国内地税务居民在提交有效的 W-8BEN 之后适用中美税收协定的10%,香港和澳门税务居民不在这份协定的覆盖范围内,按30%预扣。下面用真实派息数据把这两个税率算成具体的净股息率。
行情页上的“股息率”是税前、回看的数字
股息率(有的券商写成股息收益率)的算法是:过去12个月已经派出的每股现金股息,除以当前股价。分子随公司调整派息而变,分母每天随收盘价变,所以同一只股票的这个百分比在行情页上天天不同。定义层面的细节在 什么是股息率 里已经写过。用已派的过去12个月,还是用预告的未来一年派息,两种口径的差别在 过去12个月股息率与预期股息率 里单独讲,这里不重复。
这一页只处理一件行情页不告诉你的事:那个百分比是税前的,而且对不同税务居民身份的人,税后剩下的比例不一样。
30% 和 10%:美国对非居民股息怎么预扣
美国对支付给非居民个人的股息,法定预扣税率是30%。扣缴动作发生在付款链条上,托管行或券商在派息当时直接扣走,投资者看到的入账金额已经是净额,不需要自己另外申报这一笔。中美税收协定把普通现金股息的预扣税率降到10%。
协定税率不会自动生效。它取决于一份声明税务居民身份的 W-8BEN 表:开户流程里通常会有这一步,表格填写的居住地址与税务居民身份要一致,有效期一般是三年,失效之后按30%预扣直到重新提交。年度还会收到一份 1042-S,上面记着全年被扣走的金额。各家券商的界面和提示位置不同,这里不展开具体操作路径。预扣税的整体机制,包括表格失效和退税这类情况,在 非美国投资者的股息预扣税 里有更完整的一遍。
顺带说清楚范围:被预扣的是股息这一类收入,非居民个人卖出美股的价差通常不在美国的征税范围内。所以股息率这个指标,对非居民来说被税收改写的程度,比总回报里的任何其他部分都大。
香港和澳门税务居民为什么还是30%
中美税收协定的适用范围不包括香港特别行政区和澳门特别行政区,两地各有自己的税收安排。同一份简体中文开户说明,同一份 W-8BEN,填香港或澳门税务居民身份的投资者,美股股息的预扣税率仍然是30%。
判断依据是税务居民身份,不是国籍,也不是券商注册地。一位持内地税务居民身份、通过香港券商交易的投资者,与一位香港税务居民、通过同一家券商交易的投资者,同一天收到同一只股票的派息,到账金额并不相同。这条区别决定了下面每一栏数据该看哪一列。
把税前股息率换成到手的净股息率
下面这一栏把五家常见派息公司放在一起:过去12个月的每股现金派息、税前股息率,以及按10%和按30%预扣之后剩下的净股息率。
| ticker | dps_ttm_usd | gross_yield_pct | net_yield_10_pct | net_yield_30_pct |
|---|---|---|---|---|
| PEP | 5.805 | 4.51 | 4.06 | 3.15 |
| CVX | 7.05 | 3.44 | 3.09 | 2.41 |
| IBM | 6.74 | 3.06 | 2.75 | 2.14 |
| KO | 2.1 | 2.41 | 2.17 | 1.69 |
| JNJ | 5.28 | 1.97 | 1.77 | 1.38 |
每个数字背后的完整 SQL
WITH
ttm AS
(
SELECT
ticker,
round(toFloat64(sum(amount)), 4) AS dps_ttm_usd
FROM
(
SELECT
ticker,
id,
any(cash_amount) AS amount
FROM global_markets.stocks_dividends
WHERE ticker IN ('KO', 'JNJ', 'IBM', 'CVX', 'PEP')
AND ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
GROUP BY ticker, id
)
GROUP BY ticker
),
px AS
(
SELECT
ticker,
toFloat64(argMax(close, date)) AS last_close
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('KO', 'JNJ', 'IBM', 'CVX', 'PEP')
AND date > today() - 30
GROUP BY ticker
)
SELECT
t.ticker AS ticker,
t.dps_ttm_usd AS dps_ttm_usd,
round(100 * t.dps_ttm_usd / p.last_close, 2) AS gross_yield_pct,
round(100 * t.dps_ttm_usd * 0.90 / p.last_close, 2) AS net_yield_10_pct,
round(100 * t.dps_ttm_usd * 0.70 / p.last_close, 2) AS net_yield_30_pct
FROM ttm AS t
INNER JOIN px AS p ON p.ticker = t.ticker
ORDER BY gross_yield_pct DESC税前股息率排在最前面的是 PEP,过去12个月每股派了 $5.805,对应税前 4.51%。同一只股票,按10%预扣之后是 4.06%,按30%预扣之后只剩 3.15%。5 只股票里排在末位的 JNJ,税前 1.97%,30%预扣之后是 1.38%。
这里有一个容易被忽略的算术关系:两种税率之间的距离,永远是税前股息率的两成。税前越高的股票,这条距离就越宽。屏幕上那个百分比看着差不多的两只股票,对内地居民和对香港居民来说,实际到手的顺序可以完全一致,但差额的绝对值不一样。想知道整个美股市场的税前水位大概在哪,标普500股息率 那一页有长期序列。
同一只股票,逐年看这条差距
单看一个时点容易以为这是个静态数字。下面这一栏取 KO 已经结束的完整年度:当年全年派息合计,除以当年最后一个交易日的收盘价,再各自按10%和30%扣一遍。
| year | dps_usd | gross_yield_pct | net_yield_10_pct | net_yield_30_pct |
|---|---|---|---|---|
| 2019 | 1.6 | 2.89 | 2.6 | 2.02 |
| 2020 | 1.64 | 2.99 | 2.69 | 2.09 |
| 2021 | 1.68 | 2.84 | 2.55 | 1.99 |
| 2022 | 1.76 | 2.77 | 2.49 | 1.94 |
| 2023 | 1.84 | 3.12 | 2.81 | 2.19 |
| 2024 | 1.94 | 3.12 | 2.8 | 2.18 |
| 2025 | 2.04 | 2.92 | 2.63 | 2.04 |
每个数字背后的完整 SQL
SELECT
toString(y.year) AS year,
round(y.dps_usd, 4) AS dps_usd,
round(100 * y.dps_usd / p.year_close, 2) AS gross_yield_pct,
round(100 * y.dps_usd * 0.90 / p.year_close, 2) AS net_yield_10_pct,
round(100 * y.dps_usd * 0.70 / p.year_close, 2) AS net_yield_30_pct
FROM
(
SELECT
toYear(ex_dividend_date) AS year,
toFloat64(sum(amount)) AS dps_usd
FROM
(
SELECT
id,
ex_dividend_date,
any(cash_amount) AS amount
FROM global_markets.stocks_dividends
WHERE ticker = 'KO'
AND ex_dividend_date >= '2019-01-01'
AND ex_dividend_date < toStartOfYear(today())
GROUP BY id, ex_dividend_date
)
GROUP BY year
) AS y
INNER JOIN
(
SELECT
toYear(date) AS year,
toFloat64(argMax(close, date)) AS year_close
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'KO'
AND date >= '2019-01-01'
AND date < toStartOfYear(today())
GROUP BY year
) AS p ON p.year = y.year
ORDER BY year2019 年全年每股派息 $1.6,年末价对应的税前股息率是 2.89%。到 2025 年,税前是 2.92%,按30%预扣之后落到 2.04%。7 个完整年度里,三条曲线始终保持同样的比例关系,中间那条和最下面那条之间的缝隙,就是协定税率能不能用的价值。KO 自己的派息节奏与每一笔除息日在 KO 的派息记录 里逐笔列着。
这一栏也顺手说明了行情页那个数字为什么天天动:分子一年只调整一次,分母每天收盘都换一个。
一万美元持仓,一年差多少
百分比读起来钝,换成金额直观一些。假设在每只股票上各放一万美元(按各自最近的收盘价折算成股数),下面这一栏给出按现行派息水平一年的税前股息金额、按10%与按30%预扣之后的到手金额,以及两者之间的差额。
| ticker | gross_div_usd | net_10_usd | net_30_usd | extra_withheld_usd |
|---|---|---|---|---|
| VZ | 606.29 | 545.66 | 424.4 | 121.26 |
| PEP | 450.66 | 405.6 | 315.46 | 90.13 |
| CVX | 343.63 | 309.26 | 240.54 | 68.73 |
| HD | 321.98 | 289.78 | 225.39 | 64.4 |
| MCD | 317.85 | 286.06 | 222.49 | 63.57 |
| IBM | 306.04 | 275.44 | 214.23 | 61.21 |
| ABBV | 258.28 | 232.45 | 180.8 | 51.66 |
| KO | 241.31 | 217.18 | 168.92 | 48.26 |
| JNJ | 197.01 | 177.31 | 137.91 | 39.4 |
| CSCO | 155.32 | 139.79 | 108.73 | 31.06 |
每个数字背后的完整 SQL
WITH
ttm AS
(
SELECT
ticker,
round(toFloat64(sum(amount)), 4) AS dps_ttm_usd
FROM
(
SELECT
ticker,
id,
any(cash_amount) AS amount
FROM global_markets.stocks_dividends
WHERE ticker IN ('KO', 'JNJ', 'IBM', 'CVX', 'PEP', 'MCD', 'HD', 'CSCO', 'ABBV', 'VZ')
AND ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
GROUP BY ticker, id
)
GROUP BY ticker
),
px AS
(
SELECT
ticker,
toFloat64(argMax(close, date)) AS last_close
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('KO', 'JNJ', 'IBM', 'CVX', 'PEP', 'MCD', 'HD', 'CSCO', 'ABBV', 'VZ')
AND date > today() - 30
GROUP BY ticker
)
SELECT
t.ticker AS ticker,
round(10000 * t.dps_ttm_usd / p.last_close, 2) AS gross_div_usd,
round(10000 * t.dps_ttm_usd / p.last_close * 0.90, 2) AS net_10_usd,
round(10000 * t.dps_ttm_usd / p.last_close * 0.70, 2) AS net_30_usd,
round(10000 * t.dps_ttm_usd / p.last_close * 0.20, 2) AS extra_withheld_usd
FROM ttm AS t
INNER JOIN px AS p ON p.ticker = t.ticker
ORDER BY gross_div_usd DESC10 只股票里,VZ 的一万美元持仓年度税前股息最高,$606.29。适用10%协定税率的投资者到手 $545.66,按30%预扣的投资者到手 $424.4,一年的差额是 $121.26。十万美元的组合把这个数乘十,长期持有再乘上持有年数。这不是一个可以四舍五入掉的项目。
10% 是预扣的下限,不是全部税负
把10%理解成“最终税率”是这一页最需要避免的误读。10%和30%描述的是美国这一端在付款时扣走多少,它是整条链的第一段。
中国内地个人所得税法把境外所得列入应税范围,境外取得的股息属于其中一类,境外已经缴纳的税款在限额内可以抵免。具体的申报口径、抵免计算和时间要求由主管税务机关的规定决定,个人情况差异很大,本文只说明机制,不构成税务或投资建议。落到这一页的数字上,意思是:表里“按10%”那一列是美国端扣完之后的金额,不等于最终落在口袋里的金额。
还有几项本文的数字没有覆盖:券商的派息手续费、美元与本币之间的汇兑成本,以及特别分红、部分 REIT 分派中被视为资本返还的部分、合伙企业类证券的分派,后面这几类的税务处理与普通现金股息不同。
数据说明与口径
- 每股派息:除息日落在最近365天窗口内的现金派息合计,按派息记录去重后相加。逐年那一栏改为按自然年合计,且只取已经结束的完整年度。
- 股价:最近30天内最后一个日收盘价;逐年那一栏用当年最后一个交易日的收盘价。
- 净股息率与净金额只扣美国预扣税这一项,没有计入券商费用、汇兑成本,也没有计入投资者所在地的其他税负。
- 一万美元持仓是按上述收盘价折算的名义金额,用来把百分比换成可读的美元数,不含任何交易成本。
- 10% 与 30% 是两种预扣情形的算例,适用哪一种取决于投资者自己的税务居民身份与表格状态。
FAQ
美股股息率是税前还是税后?
券商行情页上的股息率是税前数字,分子用的是公司宣告并派出的每股现金股息全额。非居民投资者实际入账的是扣掉美国预扣税之后的金额,所以到手的净股息率一定低于屏幕上那个百分比。
中国内地税务居民的美股股息预扣税是多少?
法定税率是30%,中美税收协定把普通现金股息降到10%。适用10%需要有一份有效的 W-8BEN 在券商那里,表格通常三年到期,失效期间按30%预扣。
香港投资者的美股股息税率是10%还是30%?
30%。中美税收协定不覆盖香港和澳门两个特别行政区,判断依据是投资者的税务居民身份,与券商注册在哪里无关。澳门税务居民同理。
W-8BEN 过期会发生什么?
表格失效之后,扣缴方按30%的法定税率预扣,直到收到新的有效表格。重新提交只对之后派发的股息生效,已经按30%扣走的部分要另走退税流程,规则见预扣税那一页。
卖出美股的价差也要被美国预扣吗?
通常不会。非居民个人处置美股的价差一般不在美国的征税范围内,被预扣的是股息这类收入,这也是股息率这个指标对非居民而言被税收改写得最明显的原因。
每一栏下面都带着算它的完整 SQL,展开就能看到口径。想换成自己的持仓名单重算这三栏,可以在 Strasmore 终端里用中文直接把问题问出来。