{"slug":"aapl-earnings-day-moves","qid":"implied_vs_realised","label":"implied_vs_realised","post_title":"aapl-earnings-day-moves","post_url":"/blog/lang/ur/aapl-earnings-day-moves#q-implied_vs_realised","columns":["report_date","implied_move_pct","realised_move_pct","realised_minus_implied_pct"],"rows":[{"report_date":"2025-01-30","implied_move_pct":6.28,"realised_move_pct":0.67,"realised_minus_implied_pct":-5.61},{"report_date":"2026-01-29","implied_move_pct":5.58,"realised_move_pct":0.46,"realised_minus_implied_pct":-5.12},{"report_date":"2026-07-30","implied_move_pct":11.83,"realised_move_pct":7.35,"realised_minus_implied_pct":-4.48}],"shape":"series","sql":"WITH\nreports AS\n(\n    SELECT DISTINCT filing_date AS report_date\n    FROM global_markets.stocks_8k_text\n    WHERE ticker = 'AAPL'\n      AND startsWith(form_type, '8-K')\n      AND filing_date >= '2023-09-01'\n      AND (positionCaseInsensitive(items_text, 'Results of Operations') > 0\n           OR positionCaseInsensitive(items_text, 'Item 2.02') > 0)\n),\nbars AS\n(\n    SELECT\n        date,\n        toFloat64(any(open))  AS open_px,\n        toFloat64(any(close)) AS close_px\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'AAPL'\n      AND date >= '2023-08-01'\n    GROUP BY date\n),\nseq AS\n(\n    SELECT date, open_px, close_px, row_number() OVER (ORDER BY date) AS n\n    FROM bars\n),\nper_report AS\n(\n    SELECT\n        d0.date                                  AS report_date,\n        abs(d1.close_px / d0.close_px - 1) * 100 AS abs_full_day_pct\n    FROM seq AS d0\n    INNER JOIN seq AS d1 ON d1.n = d0.n + 1\n    INNER JOIN reports AS r ON r.report_date = d0.date\n),\natm_raw AS\n(\n    SELECT\n        date,\n        days_to_expiry,\n        implied_volatility\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'AAPL'\n      AND date >= '2023-09-01'\n      AND iv_converged = 1\n      AND volume > 0\n      AND days_to_expiry BETWEEN 1 AND 10\n      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.025\n),\nnearest AS\n(\n    SELECT date, min(days_to_expiry) AS dte\n    FROM atm_raw\n    GROUP BY date\n),\natm AS\n(\n    SELECT\n        a.date                                                                   AS date,\n        round(avg(a.implied_volatility * sqrt(a.days_to_expiry / 365)) * 100, 2) AS implied_move_pct\n    FROM atm_raw AS a\n    INNER JOIN nearest AS n ON n.date = a.date AND a.days_to_expiry = n.dte\n    GROUP BY a.date\n    HAVING count() > 0\n)\nSELECT\n    toString(p.report_date)                                   AS report_date,\n    a.implied_move_pct                                        AS implied_move_pct,\n    round(p.abs_full_day_pct, 2)                              AS realised_move_pct,\n    round(p.abs_full_day_pct - a.implied_move_pct, 2)         AS realised_minus_implied_pct\nFROM per_report AS p\nINNER JOIN atm AS a ON a.date = p.report_date\nORDER BY p.report_date","computed_at":"2026-10-03T15:53:48.474599+00:00","elapsed":0.005610412}