STRASMORE/EXPLORE 2,648 QUERIES

monthly_payers

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-09-26, from monthly-dividend-stocks-for-russian-investors.

as of ranking 12×4read in context →
monthly_payers — 12 rows by 4 columns, computed from US exchange, SIP and OPRA data.
tickerissuer_reportsavg_payment_usdannual_usd
SLJYнет0.59117.0932
ECATнет0.27683.3212
BCATнет0.26073.1287
CRFнет0.11731.408
CLMнет0.12181.4616
MSFYнет0.37924.55
DFIIнет0.25163.019
XPAYнет0.917311.0077
ARRесть0.242.88
AMZPнет0.4255.1
TLTXнет0.33974.0766
NHSнет0.09051.086
Rows × columns
12 × 4
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_payers, derived from the stored result.
ColumnTypeRangeNotes
ticker text 12 distinct values (AMZP, ARR, BCAT…)
issuer_reports text 2 distinct values (есть, нет)
avg_payment_usd number 0.0905 to 0.9173 US dollars
annual_usd number 1.086 to 11.0077 US dollars

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.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

WITH monthly AS (
    SELECT
        ticker,
        ex_dividend_date,
        max(cash_amount) AS amount
    FROM global_markets.stocks_dividends
    WHERE ex_dividend_date >= addMonths(toStartOfMonth(today()), -12)
      AND ex_dividend_date <  toStartOfMonth(today())
      AND currency = 'USD'
      AND cash_amount > 0
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, ex_dividend_date
),
payers AS (
    SELECT
        ticker,
        round(toFloat64(avg(amount)), 4) AS avg_payment_usd,
        round(toFloat64(sum(amount)), 4) AS annual_usd
    FROM monthly
    GROUP BY ticker
    HAVING count() = 12
       AND countDistinct(toStartOfMonth(ex_dividend_date)) = 12
),
last_price AS (
    SELECT
        ticker,
        toFloat64(argMax(close, date)) AS last_close
    FROM global_markets.stocks_daily_aggs
    WHERE date >= today() - 30
      AND ticker IN (SELECT ticker FROM payers)
    GROUP BY ticker
),
filers AS (
    SELECT DISTINCT arrayJoin(tickers) AS filer_ticker
    FROM global_markets.stocks_income_statements
    WHERE period_end >= addMonths(today(), -30)
)
SELECT
    p.ticker                                                         AS ticker,
    if(p.ticker IN (SELECT filer_ticker FROM filers), 'есть', 'нет') AS issuer_reports,
    p.avg_payment_usd                                                AS avg_payment_usd,
    p.annual_usd                                                     AS annual_usd
FROM payers AS p
INNER JOIN last_price AS x ON x.ticker = p.ticker
WHERE x.last_close >= 5
  AND 100 * p.annual_usd / x.last_close BETWEEN 2 AND 25
ORDER BY 100 * p.annual_usd / x.last_close DESC
LIMIT 12
⌘/Ctrl + Enter

Работайте с этими данными в своём ИИ-ассистенте

Открывается готовым к запросам, с данными этой страницы. Бесплатно, без аккаунта.