{"slug":"how-to-read-a-form-4","qid":"filing_lag","label":"Calendar days from transaction date to Form 4 filing date","post_title":"How to Read a Form 4 Insider Trading Filing","post_url":"/blog/how-to-read-a-form-4#q-filing_lag","columns":["lag_bucket","transaction_count","share_pct"],"rows":[{"lag_bucket":"Same day","transaction_count":111504,"share_pct":8.5},{"lag_bucket":"1 calendar day","transaction_count":282927,"share_pct":21.6},{"lag_bucket":"2 calendar days","transaction_count":452531,"share_pct":34.6},{"lag_bucket":"3 calendar days","transaction_count":107353,"share_pct":8.2},{"lag_bucket":"4 to 7 days","transaction_count":316357,"share_pct":24.2},{"lag_bucket":"More than 7 days","transaction_count":37155,"share_pct":2.8}],"shape":"ranking","sql":"SELECT\n    multiIf(\n        f.lag_days = 0, 'Same day',\n        f.lag_days = 1, '1 calendar day',\n        f.lag_days = 2, '2 calendar days',\n        f.lag_days = 3, '3 calendar days',\n        f.lag_days <= 7, '4 to 7 days',\n        'More than 7 days')                             AS lag_bucket,\n    count()                                             AS transaction_count,\n    round(100 * count() / any(t.total_lines), 1)        AS share_pct\nFROM\n(\n    SELECT dateDiff('day', transaction_date, filing_date) AS lag_days\n    FROM global_markets.stocks_form4\n    WHERE filing_date >= toDate('2025-08-01')\n      AND filing_date <  toDate('2026-08-01')\n      AND form_type = '4'\n      AND transaction_date >= toDate('2025-06-01')\n      AND transaction_date <= filing_date\n) AS f\nCROSS JOIN\n(\n    SELECT count() AS total_lines\n    FROM global_markets.stocks_form4\n    WHERE filing_date >= toDate('2025-08-01')\n      AND filing_date <  toDate('2026-08-01')\n      AND form_type = '4'\n      AND transaction_date >= toDate('2025-06-01')\n      AND transaction_date <= filing_date\n) AS t\nGROUP BY lag_bucket\nORDER BY min(f.lag_days)","computed_at":"2026-08-08T15:31:35.516657+00:00","elapsed":0.007262823}