STRASMORE/EXPLORE 2,170 QUERIES

Monthly dividend stocks - filing companies paying every month, ranked by daily traded value

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-08-22, from Monthly Dividend Stocks: The Full List.

as of table 29×6read in context →
Monthly dividend stocks - filing companies paying every month, ranked by daily traded value — 29 rows by 6 columns, computed from US exchange, SIP and OPRA data.
tickermonthly_payment_usdannual_yield_pctyears_paying_monthlyavg_daily_traded_musdpriced_through
O0.2715.1814.1213.5Aug 21
AGNC0.1213.211.8170.1Aug 21
DOC0.10175.731.576.7Aug 21
DX0.1715.597.658.2Aug 21
ADC0.2674.335.657Aug 21
ARR0.2417.626.247.1Aug 21
APLE0.085.84.633.9Aug 21
EPR0.316.15529.6Aug 21
MAIN0.2655.4513.928.3Aug 21
ORC0.117.9213.426Aug 21
PECO0.10833.3523Aug 21
SMA0.13594.761.316.3Aug 21
LTC0.195.6514.214.6Aug 21
CSWC0.19349.321.213Aug 21
EFC0.1311.417.311.6Aug 21
PSEC0.03518.113.88.1Aug 21
PFLT0.0813.0214.16.9Aug 21
LAND0.04676.4713.54.3Aug 21
GOOD0.19.2714.24Aug 21
PBT0.04361.5314.13.9Aug 21
CION0.116.350.73.5Aug 21
GLAD0.159.1514.12.8Aug 21
HRZN0.0614.8413.82.7Aug 21
GAIN0.085.8414.12.7Aug 21
SBR0.619410.2114.12.3Aug 19
SAR0.2516.311.42.2Aug 21
PNNT0.0412.892.91.7Aug 21
EARN0.0821.64.81.6Aug 21
SCM0.083311.655.61.6Aug 21
Rows × columns
29 × 6
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for Monthly dividend stocks - filing companies paying every month, ranked by daily traded value, derived from the stored result.
ColumnTypeRangeNotes
ticker text 29 distinct values (ADC, AGNC, APLE…)
monthly_payment_usd number 0.035 to 0.6194 US dollars
annual_yield_pct number 1.53 to 21.6 percent
years_paying_monthly number 0.7 to 14.2
avg_daily_traded_musd number 1.6 to 213.5
priced_through text 2 distinct values (Aug 19, Aug 21)

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

the exact SQL behind every number
SELECT m.ticker AS ticker,
       round(m.latest_payment, 4) AS monthly_payment_usd,
       round(100 * m.latest_payment * 12 / l.last_close, 2) AS annual_yield_pct,
       round(dateDiff('day', s.streak_start, s.last_ex) / 365.25, 1) AS years_paying_monthly,
       round(l.adv_usd / 1e6, 1) AS avg_daily_traded_musd,
       formatDateTime(l.last_session, '%b %e') AS priced_through
FROM (
    SELECT ticker, argMax(cash_amount, ex_dividend_date) AS latest_payment
    FROM global_markets.stocks_dividends
    WHERE ex_dividend_date > today() - 365
      AND ex_dividend_date <= today()
      AND cash_amount > 0
      AND distribution_type = 'recurring'
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 400 AND today())
    GROUP BY ticker
    HAVING count() BETWEEN 10 AND 14
       AND argMax(frequency, ex_dividend_date) = 12
) AS m
INNER JOIN (
    SELECT ticker,
           maxIf(ed, gap_days > 70) AS streak_start,
           max(ed) AS last_ex
    FROM (
        SELECT ticker, ex_dividend_date AS ed,
               dateDiff('day',
                        lagInFrame(ex_dividend_date) OVER (PARTITION BY ticker ORDER BY ex_dividend_date),
                        ex_dividend_date) AS gap_days
        FROM (
            SELECT ticker, ex_dividend_date
            FROM global_markets.stocks_dividends
            WHERE distribution_type = 'recurring' AND cash_amount > 0 AND ex_dividend_date <= today()
            GROUP BY ticker, ex_dividend_date
        )
    )
    GROUP BY ticker
) AS s ON s.ticker = m.ticker
INNER JOIN (
    SELECT ticker,
           avg(dollar_vol) AS adv_usd,
           argMax(close_px, d) AS last_close,
           max(d) AS last_session,
           count() AS sessions
    FROM (
        SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               sum(toFloat64(close) * volume) AS dollar_vol,
               argMax(toFloat64(close), window_start) AS close_px
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= toDateTime(today() - 32)
          AND toDate(toTimeZone(window_start, 'America/New_York')) < today()
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
              + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
          AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
              + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
        GROUP BY ticker, d
    )
    GROUP BY ticker
    HAVING sessions >= 15 AND adv_usd >= 1000000 AND last_close > 0
) AS l ON l.ticker = m.ticker
INNER JOIN (
    SELECT ticker
    FROM global_markets.stocks_ratios
    GROUP BY ticker
    HAVING argMax(market_cap, date) > 0
) AS f ON f.ticker = m.ticker
ORDER BY l.adv_usd DESC
LIMIT 60

Run your own version of this

The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.

More from this analysisMonthly Dividend Stocks: The Full List
Realty Income's declared monthly rate by calendar year, the raise over the prior year, and the steps up inside each year table 12×5 Monthly payers yielding above 12% - the price move and the payment move behind the number table 11×5 Yield distribution across liquid monthly payers, with each band's median 12-month price change table 5×5 Monthly payers in the dividend record, by completed calendar year ranking 21×3 Recurring cash payments per ticker over the trailing year - where the monthly band sits ranking 7×4 Recurring cash dividends by declared schedule: every payer on file, July 2025 through June 2026 table 5×5 See all 2,170 queries →