STRASMORE/EXPLORE 3,293 QUERIES

latest_ex_gap

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-11-01, from cum-date-vs-ex-date.

as of table 6×5read in context →
latest_ex_gap — 6 rows by 5 columns, computed from US exchange, SIP and OPRA data.
tickertanggal_exdividen_usddividen_pctgap_open_pct
PG23 Okt 20261.08850.66-0.96
XOM17 Agu 20261.030.640
KO15 Sep 20260.530.59-0.92
JNJ25 Agu 20261.340.49-0.75
MSFT20 Agu 20260.910.19-0.21
AAPL10 Agu 20260.270.09-2.07
Rows × columns
6 × 5
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 latest_ex_gap, derived from the stored result.
ColumnTypeRangeNotes
ticker text 6 distinct values (AAPL, JNJ, KO…)
tanggal_ex text 6 distinct values (10 Agu 2026, 15 Sep 2026, 17 Agu 2026…)
dividen_usd number 0.27 to 1.34 US dollars
dividen_pct number 0.09 to 0.66 percent
gap_open_pct number -2.07 to 0 percent

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
    bars AS
    (
        SELECT
            ticker,
            toDate(date)          AS hari,
            any(toFloat64(open))  AS harga_buka,
            any(toFloat64(close)) AS harga_tutup
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN ('AAPL', 'MSFT', 'KO', 'JNJ', 'PG', 'XOM')
          AND date >= today() - 230
        GROUP BY ticker, hari
    ),
    bars_lag AS
    (
        SELECT
            ticker,
            hari,
            harga_buka,
            lagInFrame(harga_tutup, 1) OVER (PARTITION BY ticker ORDER BY hari ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS tutup_cum
        FROM bars
    ),
    terbaru AS
    (
        SELECT
            ticker,
            toDate(max(ex_dividend_date))                    AS exd,
            toFloat64(argMax(cash_amount, ex_dividend_date)) AS dividen
        FROM global_markets.stocks_dividends
        WHERE ticker IN ('AAPL', 'MSFT', 'KO', 'JNJ', 'PG', 'XOM')
          AND ex_dividend_date >= today() - 200
          AND ex_dividend_date <  today() - 3
        GROUP BY ticker
    )
SELECT
    t.ticker                                                AS ticker,
    concat(toString(toDayOfMonth(t.exd)), ' ',
           transform(toMonth(t.exd),
                     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
                     ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agu', 'Sep', 'Okt', 'Nov', 'Des'],
                     ''),
           ' ', toString(toYear(t.exd)))                    AS tanggal_ex,
    round(t.dividen, 4)                                     AS dividen_usd,
    round(t.dividen / b.tutup_cum * 100, 2)                 AS dividen_pct,
    round((b.harga_buka / b.tutup_cum - 1) * 100, 2)        AS gap_open_pct
FROM terbaru AS t
INNER JOIN bars_lag AS b ON b.ticker = t.ticker AND b.hari = t.exd
WHERE b.tutup_cum > 0
ORDER BY dividen_pct DESC
⌘/Ctrl + Enter

Olah data ini di asisten AI Anda

Terbuka siap dikueri, dengan data halaman ini. Gratis, tanpa akun.