Strasmore Research
学习 Matt Connor作者: Matt Connor · data as of September 30, 2026 · refreshed weekly

美股股息率:预扣税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%预扣之后剩下的净股息率。

查询五家常见派息公司:税前股息率与按10%、30%预扣后的净股息率
tickerdps_ttm_usdgross_yield_pctnet_yield_10_pctnet_yield_30_pct
PEP5.8054.514.063.15
CVX7.053.443.092.41
IBM6.743.062.752.14
KO2.12.412.171.69
JNJ5.281.971.771.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%扣一遍。

查询KO 逐年:全年每股派息与税前、税后股息率
yeardps_usdgross_yield_pctnet_yield_10_pctnet_yield_30_pct
20191.62.892.62.02
20201.642.992.692.09
20211.682.842.551.99
20221.762.772.491.94
20231.843.122.812.19
20241.943.122.82.18
20252.042.922.632.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 year
自己运行这个查询

2019 年全年每股派息 $1.6,年末价对应的税前股息率是 2.89%。到 2025 年,税前是 2.92%,按30%预扣之后落到 2.04%。7 个完整年度里,三条曲线始终保持同样的比例关系,中间那条和最下面那条之间的缝隙,就是协定税率能不能用的价值。KO 自己的派息节奏与每一笔除息日在 KO 的派息记录 里逐笔列着。

这一栏也顺手说明了行情页那个数字为什么天天动:分子一年只调整一次,分母每天收盘都换一个。

一万美元持仓,一年差多少

百分比读起来钝,换成金额直观一些。假设在每只股票上各放一万美元(按各自最近的收盘价折算成股数),下面这一栏给出按现行派息水平一年的税前股息金额、按10%与按30%预扣之后的到手金额,以及两者之间的差额。

查询每只股票各一万美元持仓:年度股息的税前、税后与两种税率的差额(美元)
tickergross_div_usdnet_10_usdnet_30_usdextra_withheld_usd
VZ606.29545.66424.4121.26
PEP450.66405.6315.4690.13
CVX343.63309.26240.5468.73
HD321.98289.78225.3964.4
MCD317.85286.06222.4963.57
IBM306.04275.44214.2361.21
ABBV258.28232.45180.851.66
KO241.31217.18168.9248.26
JNJ197.01177.31137.9139.4
CSCO155.32139.79108.7331.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 DESC
自己运行这个查询

10 只股票里,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 终端里用中文直接把问题问出来。

#股息#dividend-yield#withholding-tax#us-stocks#china