Strasmore Research
Market recaps wey dey break am down Matt ConnorBy Matt Connor · Updated 2026-07-24 · data as of July 24, 2026 · refreshed weekly

dividend increases and cuts dis week

See which US companies raise or cut dem regular dividend dis week. We go explain how stock-split fit trick eye and show you de full list for your profit.

Dividend increases plenty pass dividend cuts for most weeks for US market. For the last full Monday-to-Sunday week wey dem declare, 18 US-listed companies raise their regular cash dividend and 3 lower am. The first table below cover different window, the trailing seven days, and list the 12 largest companies inside am. Every change for this page compare company new regular payment against their old regular payment for the same schedule, after dem strip out special dividends and share splits before dem count anything.

Dividend increases wey dem declare dis week

Dem 12 biggest companies wey raise dem payment for last seven days. More names dey qualify; de week-by-week panel for bottom count every single one. De first column na de company previous regular payment, and de new column na wetin de board just declare.

QueryDividend increases wey dem declare last 7 days, biggest companies first (capped at 12 rows)
The exact SQL behind every number
WITH feed AS (
    SELECT max(declaration_date) AS latest
    FROM global_markets.stocks_dividends
    WHERE declaration_date <= today()
),
universe AS (
    SELECT ticker, argMax(market_cap, date) AS mcap
    FROM global_markets.stocks_ratios
    WHERE date >= today() - 10 AND market_cap > 0
    GROUP BY ticker
),
regular AS (
    SELECT ticker,
           ex_dividend_date,
           max(declaration_date) AS declared_on,
           argMax(cash_amount, declaration_date) AS amt,
           argMax(frequency, declaration_date) AS freq
    FROM global_markets.stocks_dividends
    WHERE distribution_type = 'recurring'
      AND cash_amount > 0
      AND currency = 'USD'
      AND frequency IN (1, 2, 4, 12)
      AND ex_dividend_date >= today() - 800
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, ex_dividend_date
),
seq AS (
    SELECT ticker, ex_dividend_date, declared_on, amt, freq,
           lagInFrame(amt) OVER w AS prev_amt,
           lagInFrame(freq) OVER w AS prev_freq,
           lagInFrame(ex_dividend_date) OVER w AS prev_ex
    FROM regular
    WINDOW w AS (PARTITION BY ticker ORDER BY ex_dividend_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)
),
splits AS (
    SELECT ticker, groupArray(execution_date) AS split_dates
    FROM global_markets.stocks_splits
    WHERE execution_date >= today() - 900
    GROUP BY ticker
)
SELECT s.ticker AS ticker,
       round(s.prev_amt, 4) AS prior_usd,
       round(s.amt, 4) AS new_usd,
       round(100 * (s.amt / s.prev_amt - 1), 1) AS pct_change,
       toString(s.declared_on) AS declared_date,
       toString(s.ex_dividend_date) AS ex_date,
       round(u.mcap / 1e9, 1) AS company_size_bn,
       toString(f.latest) AS declarations_through
FROM seq s
INNER JOIN universe u ON u.ticker = s.ticker
LEFT JOIN splits sp ON sp.ticker = s.ticker
CROSS JOIN feed f
WHERE s.declared_on > today() - 8
  AND s.declared_on <= today()
  AND s.prev_amt > 0
  AND s.freq = s.prev_freq
  AND arrayCount(x -> x > s.prev_ex, sp.split_dates) = 0
  AND dateDiff('day', s.prev_ex, s.ex_dividend_date) BETWEEN intDiv(240, s.freq) AND intDiv(520, s.freq)
  AND s.amt > s.prev_amt * 1.001
ORDER BY u.mcap DESC, s.ticker
LIMIT 12

De biggest company for de list na C, with market value around $221.2 billion, wey raise dem regular payment from $0.6 to $0.67 a share, wey na raise of 11.7%. Dat new amount na for de payment wey ex-dividend date dey de same row, and person must own de shares before dat date for collect am. De smallest company wey dem show, EHC, move dem payment 10.5%. Across de 12 names for de table, de raises dey vary plenty, and dat one na normal thing. A board fit just nudge a payment by one penny or reset am for one step.

Raise na forward commitment. De new per-share amount na de base wey dem go use measure next quarter, and boards wey dey raise tend to keep raising. De names wey get longest unbroken records dey our two decades of rising dividends page, and de upcoming ex-dividend dates calendar go list who dey go ex next.

Dem declare dividend cuts inside last 90 days

Dividend cuts no dey happen every day. Usually, one week dey bring small handful at most, so dis screen below wide reach one full quarter of all declarations. E list di 14 deepest cuts for dat quarter, and more names wey qualify for dat same window. Di declaration date for every row dey show how recent di cut be.

QueryDividend cuts wey dem declare last 90 days, the deepest 14 first (one week too small for table)
The exact SQL behind every number
WITH universe AS (
    SELECT ticker, argMax(market_cap, date) AS mcap
    FROM global_markets.stocks_ratios
    WHERE date >= today() - 10 AND market_cap > 0
    GROUP BY ticker
),
regular AS (
    SELECT ticker,
           ex_dividend_date,
           max(declaration_date) AS declared_on,
           argMax(cash_amount, declaration_date) AS amt,
           argMax(frequency, declaration_date) AS freq
    FROM global_markets.stocks_dividends
    WHERE distribution_type = 'recurring'
      AND cash_amount > 0
      AND currency = 'USD'
      AND frequency IN (1, 2, 4, 12)
      AND ex_dividend_date >= today() - 800
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, ex_dividend_date
),
seq AS (
    SELECT ticker, ex_dividend_date, declared_on, amt, freq,
           lagInFrame(amt) OVER w AS prev_amt,
           lagInFrame(freq) OVER w AS prev_freq,
           lagInFrame(ex_dividend_date) OVER w AS prev_ex
    FROM regular
    WINDOW w AS (PARTITION BY ticker ORDER BY ex_dividend_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)
),
splits AS (
    SELECT ticker, groupArray(execution_date) AS split_dates
    FROM global_markets.stocks_splits
    WHERE execution_date >= today() - 900
    GROUP BY ticker
)
SELECT s.ticker AS ticker,
       round(s.prev_amt, 4) AS prior_usd,
       round(s.amt, 4) AS new_usd,
       round(100 * (s.amt / s.prev_amt - 1), 1) AS pct_change,
       toString(s.declared_on) AS declared_date,
       toString(s.ex_dividend_date) AS ex_date
FROM seq s
INNER JOIN universe u ON u.ticker = s.ticker
LEFT JOIN splits sp ON sp.ticker = s.ticker
WHERE s.declared_on > today() - 91
  AND s.declared_on <= today()
  AND s.prev_amt > 0
  AND s.freq = s.prev_freq
  AND arrayCount(x -> x > s.prev_ex, sp.split_dates) = 0
  AND dateDiff('day', s.prev_ex, s.ex_dividend_date) BETWEEN intDiv(240, s.freq) AND intDiv(520, s.freq)
  AND s.amt < s.prev_amt * 0.995
ORDER BY pct_change ASC, ticker
LIMIT 14

Di deepest reduction wey dem record na EMBC, wey dem change regular payment from $0.15 to $0.01 a share, dat na -93.3% change. For di shallow end of di same table, GNK show change of -30%. All 14 rows na real reductions for di declared per-share amount, and dem measure each one against di same company previous payment for dat same schedule.

Two types of company dey dominate dis kind list. Di first one na operating business wey dey reset payout wey dem no fit fund again from cash flow, dat na di classic dividend cut, and e usually dey come when share price don already dey fall. Di second one na pass-through vehicle wey payment dey change by design: royalty trusts dey hand on whatever di underlying wells earn, and business development companies dey pay out wetin their loan book produce. Dem names dey move for both directions more often. For di historical view of cuts for large US companies, including di 2020 wave, see wey companies cut their dividends.

Increases dey pass cuts, week by week

One single announcement no dey show much thing. If you count names for one season, you go see how the cycle dey move. The series below show last 26 complete weeks of declarations and e count every qualifying change, without any cap.

QueryIncreases versus cuts, by week of declaration (complete weeks only)
The exact SQL behind every number
WITH universe AS (
    SELECT ticker, argMax(market_cap, date) AS mcap
    FROM global_markets.stocks_ratios
    WHERE date >= today() - 10 AND market_cap > 0
    GROUP BY ticker
),
regular AS (
    SELECT ticker,
           ex_dividend_date,
           max(declaration_date) AS declared_on,
           argMax(cash_amount, declaration_date) AS amt,
           argMax(frequency, declaration_date) AS freq
    FROM global_markets.stocks_dividends
    WHERE distribution_type = 'recurring'
      AND cash_amount > 0
      AND currency = 'USD'
      AND frequency IN (1, 2, 4, 12)
      AND ex_dividend_date >= today() - 1200
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, ex_dividend_date
),
seq AS (
    SELECT ticker, ex_dividend_date, declared_on, amt, freq,
           lagInFrame(amt) OVER w AS prev_amt,
           lagInFrame(freq) OVER w AS prev_freq,
           lagInFrame(ex_dividend_date) OVER w AS prev_ex
    FROM regular
    WINDOW w AS (PARTITION BY ticker ORDER BY ex_dividend_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)
),
splits AS (
    SELECT ticker, groupArray(execution_date) AS split_dates
    FROM global_markets.stocks_splits
    WHERE execution_date >= today() - 1300
    GROUP BY ticker
)
SELECT toString(toMonday(s.declared_on)) AS week,
       formatDateTime(toMonday(s.declared_on), '%b %e') AS week_label,
       countIf(s.amt > s.prev_amt * 1.001) AS increases,
       countIf(s.amt < s.prev_amt * 0.995) AS cuts
FROM seq s
INNER JOIN universe u ON u.ticker = s.ticker
LEFT JOIN splits sp ON sp.ticker = s.ticker
WHERE s.prev_amt > 0
  AND s.freq = s.prev_freq
  AND arrayCount(x -> x > s.prev_ex, sp.split_dates) = 0
  AND dateDiff('day', s.prev_ex, s.ex_dividend_date) BETWEEN intDiv(240, s.freq) AND intDiv(520, s.freq)
  AND s.declared_on >= toMonday(today()) - 182
  AND s.declared_on < toMonday(today())
GROUP BY week, week_label
ORDER BY week

E start for Jan 19 week with 31 increases against 4 cuts, and e finish for Jul 13 week with 18 increases and 3 cuts. The increase line dey jump up and down. Boards dey declare according to their own quarterly rhythm, and the weeks wey get plenty action dey cluster for weeks after every quarter close, while the space between dem dey thin. Quiet week na just calendar effect. The cut line dey stay near the floor throughout the year.

Who dey cut, and who no dey cut

Increase and cut dey happen differently depending on how big the company be. Every regular-dividend declaration wey dem record so far for this calendar year, we split dem into four bands based on wetin the company worth today:

QueryIncreases, cuts and the typical raise for this calendar year, by company size (bands use today's market value)
The exact SQL behind every number
WITH universe AS (
    SELECT ticker, argMax(market_cap, date) AS mcap
    FROM global_markets.stocks_ratios
    WHERE date >= today() - 10 AND market_cap > 0
    GROUP BY ticker
),
regular AS (
    SELECT ticker,
           ex_dividend_date,
           max(declaration_date) AS declared_on,
           argMax(cash_amount, declaration_date) AS amt,
           argMax(frequency, declaration_date) AS freq
    FROM global_markets.stocks_dividends
    WHERE distribution_type = 'recurring'
      AND cash_amount > 0
      AND currency = 'USD'
      AND frequency IN (1, 2, 4, 12)
      AND ex_dividend_date >= today() - 1200
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, ex_dividend_date
),
seq AS (
    SELECT ticker, ex_dividend_date, declared_on, amt, freq,
           lagInFrame(amt) OVER w AS prev_amt,
           lagInFrame(freq) OVER w AS prev_freq,
           lagInFrame(ex_dividend_date) OVER w AS prev_ex
    FROM regular
    WINDOW w AS (PARTITION BY ticker ORDER BY ex_dividend_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)
),
splits AS (
    SELECT ticker, groupArray(execution_date) AS split_dates
    FROM global_markets.stocks_splits
    WHERE execution_date >= today() - 1300
    GROUP BY ticker
),
changes AS (
    SELECT s.ticker AS ticker,
           s.declared_on AS declared_on,
           s.amt / s.prev_amt - 1 AS chg,
           u.mcap AS mcap
    FROM seq s
    INNER JOIN universe u ON u.ticker = s.ticker
    LEFT JOIN splits sp ON sp.ticker = s.ticker
    WHERE s.declared_on >= toStartOfYear(today())
      AND s.declared_on <= today()
      AND s.prev_amt > 0
      AND s.freq = s.prev_freq
      AND arrayCount(x -> x > s.prev_ex, sp.split_dates) = 0
      AND dateDiff('day', s.prev_ex, s.ex_dividend_date) BETWEEN intDiv(240, s.freq) AND intDiv(520, s.freq)
)
SELECT multiIf(mcap >= 1e11, 'Mega cap ($100B and up)',
               mcap >= 1e10, 'Large cap ($10B to $100B)',
               mcap >= 2e9,  'Mid cap ($2B to $10B)',
                             'Small cap (under $2B)') AS size_band,
       count() AS declarations,
       countIf(chg > 0.001) AS increases,
       countIf(chg < -0.005) AS cuts,
       round(100 * countIf(chg < -0.005) / count(), 1) AS cut_share_pct,
       round(100 * quantileDeterministicIf(0.5)(chg, cityHash64(ticker, declared_on), chg > 0.001), 1) AS median_raise_pct
FROM changes
GROUP BY size_band
HAVING countIf(chg > 0.001) > 0
ORDER BY max(mcap) DESC

For the top band, Mega cap ($100B and up), 53 of 210 declarations increase the payment, while dem cut only 0, which na 0% cut share. The matter change for bottom of the market: the Small cap (under $2B) band get 66 cut out of 1333 declarations, which na 5% cut share, well pass the rate for the three bigger bands. The typical raise dey similar size everywhere, near 7% for the Large cap ($10B to $100B) band and 8.9% among the small caps. The bands differ for how long the raise go last, no be for the size of the typical raise. One thing wey dem must watch out for dey under the panel: the bands dey use each company market value today, so if a payer cut dividend for spring and the company value shrink after, dem go put am for the smaller band.

Share split fit fake dividend cut?

Na here most dividend screens dey fail without anybody knowing. If company split its shares ten-for-one, dem go divide its per-share dividend by ten on that same day. Nothing cut at all, and person wey hold shares go still get the same total cash, but now dem go get ten times more shares. If screen dey compare raw per-share amounts across the split date, e go show fake cut wey big pass. 9 large payers, we measure dem based on their own split:

QueryPayers across their own share split: the raw change versus the split-adjusted change
The exact SQL behind every number
WITH sp AS (
    SELECT ticker,
           max(execution_date) AS exec_date,
           argMax(split_to / split_from, execution_date) AS ratio
    FROM global_markets.stocks_splits
    WHERE adjustment_type = 'forward_split'
      AND split_from > 0
      AND split_to >= split_from * 2
      AND modulo(split_to, split_from) = 0
      AND ticker IN ('NVDA', 'AVGO', 'WMT', 'LRCX', 'CTAS', 'ETR', 'FAST', 'ODFL', 'BKNG')
      AND execution_date >= today() - 1500
      AND execution_date <= today() - 90
    GROUP BY ticker
),
divs AS (
    SELECT ticker, ex_dividend_date, argMax(cash_amount, declaration_date) AS amt
    FROM global_markets.stocks_dividends
    WHERE distribution_type = 'recurring'
      AND cash_amount > 0
      AND currency = 'USD'
      AND ticker IN ('NVDA', 'AVGO', 'WMT', 'LRCX', 'CTAS', 'ETR', 'FAST', 'ODFL', 'BKNG')
    GROUP BY ticker, ex_dividend_date
)
SELECT sp.ticker AS ticker,
       concat(toString(toUInt32(round(sp.ratio))), '-for-1') AS split_ratio,
       toString(sp.exec_date) AS executed_date,
       round(argMaxIf(d.amt, d.ex_dividend_date, d.ex_dividend_date < sp.exec_date), 4) AS before_split_usd,
       round(argMinIf(d.amt, d.ex_dividend_date, d.ex_dividend_date >= sp.exec_date), 4) AS after_split_usd,
       round(100 * (argMinIf(d.amt, d.ex_dividend_date, d.ex_dividend_date >= sp.exec_date)
                    / argMaxIf(d.amt, d.ex_dividend_date, d.ex_dividend_date < sp.exec_date) - 1), 1) AS apparent_pct,
       round(100 * (argMinIf(d.amt, d.ex_dividend_date, d.ex_dividend_date >= sp.exec_date) * sp.ratio
                    / argMaxIf(d.amt, d.ex_dividend_date, d.ex_dividend_date < sp.exec_date) - 1), 1) AS adjusted_pct
FROM sp
INNER JOIN divs d ON d.ticker = sp.ticker
GROUP BY sp.ticker, sp.ratio, sp.exec_date
HAVING countIf(d.ex_dividend_date < sp.exec_date) > 0
   AND countIf(d.ex_dividend_date >= sp.exec_date) > 0
ORDER BY adjusted_pct DESC, sp.ticker

Look NVDA. Im last payment before the 10-for-1 split na $0.04 a share, and the first one after the split na $0.01, so raw change na -75%. If you multiply the post-split payment by the split ratio, the same thing become increase of 150%. For the other side of the table, ODFL do 2-for-1 split with raw change of -50% and adjusted change of 0%: the income per dollar invested no move at all.

Wey dem dey use measure dis screen

Dem must talk di rules well-well. If screen get hidden rules, e no be data, na just opinion.

  • Declaration date, no be ex-date. Dem dey use di day di board declare di news as di date. Ex-date column show when di new amount go separate from di share price.
  • Regular payments only. Dem only compare records wey dem type as recurring. One-off special or supplemental payment no dey part of di series. If dem compare next regular payment against special one, dem go dey invent cut wey never happen. Di mechanics dey inside wetin be special dividend.
  • Same schedule for both sides. Di two payments wey dem dey compare must get di same declared frequency, and di gap between dem ex-dates must match dat frequency. If dem compare quarterly payment against annual one, e no be cut.
  • Splits dem don remove, dem no adjust dem. Any company wey do share split for or after di first of di two payments, dem go drop dem from dis tables. Our dividend feed get vendor split-adjusted column, but we see say dem no dey use am consistent for company payment history, so dis page dey compare as-declared amounts and dem dey drop di names wey affect.
  • US dollars, US listings. Only payments wey dem declare for US dollars by companies wey our fundamentals feed cover with market capitalization. Dat one mean say dem drop exchange-traded funds, because dem distributions na pass-through income wey dey change every period, and dem drop foreign issuers wey dollar amount dey move with exchange rate.
  • Both ranked tables get cap. Di increases table show at most di twelve largest raises for di trailing seven days, di cuts table show at most di fourteen deepest for di last 90 days. Plenty more names fit qualify for each window, so neither one na complete list. Di week-by-week panel no get cap.
  • Size bands dey use today market value. Our fundamentals feed get current market-capitalization snapshot and e no get history, so company wey cut for spring and fall after dat one, dem go count dem for di smaller band. Payer wey company acquire or delist since January no get snapshot, so dem go drop from di year-to-date panel.
  • Materiality. Increase must be above one-tenth of a percent and cut must be below half a percent, so dem fit filter rounding noise for fractional-cent payments.
  • Freshness. Dem get declarations for file up to 2026-07-23. Di weekly series dey end with di last complete week, so partial current week no go ever show as collapse in activity.

FAQ

Which companies raise their dividend dis week?

18 US-listed companies raise their regular cash dividend for last complete Monday-to-Sunday week of declarations. For the trailing seven days, wey be slightly different window, the biggest raiser na C, wey lift its regular payment from $0.6 to $0.67 a share, with BX follow am for $1.29 from $1.16. The table for top rank the 12 largest by company size.

Which stocks cut their dividend for 2026?

For every regular-dividend declaration wey dem record so far for this calendar year, cuts dey plenty for the smallest companies: dem count 66 for the Small cap (under $2B) band against 0 for the largest band. The deepest cut wey dem declare for last 90 days na EMBC, wey take its regular payment from $0.15 to $0.01 a share, with SACH follow am for $0.01 from $0.05. The table for above list the 14 deepest for that quarter; more cuts qualify for the same window.

Stock split count as dividend cut?

No. 4-for-one split turn one share into four and divide the per-share dividend by four, so the total cash wey holder receive no change. The split panel for above show 9 real cases, including one wey raw comparison read -75% while the split-adjusted change na increase of 150%.

How often dividend cuts dey happen compared with increases?

Increases dey run far ahead of cuts for normal year. For the year to date, the largest payers record 53 increases against a cut count of 0, and even the small-cap band, wey cuts dey common pass, record 216 increases against a cut count of 66.

Dividend profiles by ticker

Big payers dem get dem own unique profile: current yield, full payment history, growth streak, and ex-dividend behavior. We cover JPMorgan, Morgan Stanley, Bank of America, Wells Fargo, Coca-Cola, Procter & Gamble, Johnson & Johnson, Exxon Mobil, Chevron, AT&T, Verizon and Pfizer, and how dividend yield work go explain how one per-share payment turn to the yield figure wey screen dey show.


Every table wey dey here na stored, versioned query wey dem pull from declared dividend records, and dem dey rebuild am every week. You fit expand the SQL under any panel if you wan audit one row, or you fit run the screen for Strasmore terminal.

#dividends#dividend increases#dividend cuts#income investing#market data