{"slug":"cum-date-vs-ex-date","qid":"latest_ex_gap","label":"latest_ex_gap","post_title":"cum-date-vs-ex-date","post_url":"/blog/lang/id/cum-date-vs-ex-date#q-latest_ex_gap","columns":["ticker","tanggal_ex","dividen_usd","dividen_pct","gap_open_pct"],"rows":[{"ticker":"PG","tanggal_ex":"23 Okt 2026","dividen_usd":1.0885,"dividen_pct":0.66,"gap_open_pct":-0.96},{"ticker":"XOM","tanggal_ex":"17 Agu 2026","dividen_usd":1.03,"dividen_pct":0.64,"gap_open_pct":0},{"ticker":"KO","tanggal_ex":"15 Sep 2026","dividen_usd":0.53,"dividen_pct":0.59,"gap_open_pct":-0.92},{"ticker":"JNJ","tanggal_ex":"25 Agu 2026","dividen_usd":1.34,"dividen_pct":0.49,"gap_open_pct":-0.75},{"ticker":"MSFT","tanggal_ex":"20 Agu 2026","dividen_usd":0.91,"dividen_pct":0.19,"gap_open_pct":-0.21},{"ticker":"AAPL","tanggal_ex":"10 Agu 2026","dividen_usd":0.27,"dividen_pct":0.09,"gap_open_pct":-2.07}],"shape":"table","sql":"WITH\n    bars AS\n    (\n        SELECT\n            ticker,\n            toDate(date)          AS hari,\n            any(toFloat64(open))  AS harga_buka,\n            any(toFloat64(close)) AS harga_tutup\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker IN ('AAPL', 'MSFT', 'KO', 'JNJ', 'PG', 'XOM')\n          AND date >= today() - 230\n        GROUP BY ticker, hari\n    ),\n    bars_lag AS\n    (\n        SELECT\n            ticker,\n            hari,\n            harga_buka,\n            lagInFrame(harga_tutup, 1) OVER (PARTITION BY ticker ORDER BY hari ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS tutup_cum\n        FROM bars\n    ),\n    terbaru AS\n    (\n        SELECT\n            ticker,\n            toDate(max(ex_dividend_date))                    AS exd,\n            toFloat64(argMax(cash_amount, ex_dividend_date)) AS dividen\n        FROM global_markets.stocks_dividends\n        WHERE ticker IN ('AAPL', 'MSFT', 'KO', 'JNJ', 'PG', 'XOM')\n          AND ex_dividend_date >= today() - 200\n          AND ex_dividend_date <  today() - 3\n        GROUP BY ticker\n    )\nSELECT\n    t.ticker                                                AS ticker,\n    concat(toString(toDayOfMonth(t.exd)), ' ',\n           transform(toMonth(t.exd),\n                     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],\n                     ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agu', 'Sep', 'Okt', 'Nov', 'Des'],\n                     ''),\n           ' ', toString(toYear(t.exd)))                    AS tanggal_ex,\n    round(t.dividen, 4)                                     AS dividen_usd,\n    round(t.dividen / b.tutup_cum * 100, 2)                 AS dividen_pct,\n    round((b.harga_buka / b.tutup_cum - 1) * 100, 2)        AS gap_open_pct\nFROM terbaru AS t\nINNER JOIN bars_lag AS b ON b.ticker = t.ticker AND b.hari = t.exd\nWHERE b.tutup_cum > 0\nORDER BY dividen_pct DESC","computed_at":"2026-11-01T01:51:32.192701+00:00","elapsed":1.429521693}