How late is Form 4 data?
Study #1 · window 2026-07-01 → 2026-07-31 · every number below regenerates from one script on a free key
A Form 4 carries two dates that are easy to conflate. transaction_date is when the insider traded. filed_date is when the filing reached EDGAR — the first moment anyone outside could know. Any analysis that joins insider trades to market data on the transaction date is using information that did not exist yet; the size of that look-ahead is exactly the distribution below. This page measures it for every Form 4 filed in July 2026.
Method. All 11,241 Form 4 filings with filed_date in July 2026, fetched from GET /v1/insider-trades with since= and until= bounding a fixed window (so the population never changes under you). Amendments (4/A, 189) are excluded — they are re-filings. Delay per filing = filed_date minus the earliest transaction date on the filing; business days exclude weekends and federal holidays. Filings with no transactions (70), no parseable transaction date (31), or a filed date before the transaction date (0) are counted separately below, not silently dropped.
Calendar-day delay
Days between the earliest transaction on the filing and the day EDGAR accepted it.
| delay | filings | share | |
|---|---|---|---|
| same day | 770 | 7.0% | |
| 1 day | 2,987 | 27.3% | |
| 2 days | 3,803 | 34.7% | |
| 3 days | 335 | 3.1% | |
| 4-5 days | 2,404 | 22.0% | |
| 6-10 days | 221 | 2.0% | |
| 11-30 days | 190 | 1.7% | |
| 31-90 days | 131 | 1.2% | |
| over 90 days | 110 | 1.0% |
Percentiles (nearest-rank): p50 = 2d · p75 = 4d · p90 = 5d · p95 = 7d · p99 = 91d · max = 3,140d.
Against the 2-business-day deadline
Section 16 requires a Form 4 before the end of the second business day after the transaction (Exchange Act Rule 16a-3(g)). Business days here exclude weekends and federal holidays. Important caveat: the rule has deemed-execution-date provisions (e.g. certain 10b5-1 plan transactions are measured from a later deemed date), so the long tail below is an observed reporting lag, not a list of violations.
| business days | filings | share | |
|---|---|---|---|
| 0 | 770 | 7.0% | |
| 1 | 3,417 | 31.2% | |
| 2 (deadline) | 5,988 | 54.7% | |
| 3 | 174 | 1.6% | |
| 4 | 75 | 0.7% | |
| 5 | 61 | 0.6% | |
| 6-10 | 118 | 1.1% | |
| over 10 | 348 | 3.2% |
10,175 of 10,951 filings (92.9%) arrived within 2 business days of their earliest transaction date.
By transaction code
Per transaction leg, each leg measured against its own date. Codes with fewer than 25 legs are folded into other.
| code | meaning | legs | median delay | within 2 bd |
|---|---|---|---|---|
| A | Grant / award from issuer | 6,897 | 2d | 92.8% |
| C | Conversion of derivative | 492 | 2d | 92.3% |
| D | Disposition to issuer | 1,163 | 1d | 98.8% |
| F | Shares withheld for tax | 1,850 | 2d | 93.8% |
| G | Gift | 216 | 2d | 95.4% |
| J | Other (see footnotes) | 822 | 2d | 79.2% |
| M | Option exercise | 4,552 | 2d | 95.4% |
| P | Open-market purchase | 1,198 | 2d | 80.9% |
| S | Open-market sale | 6,694 | 2d | 98.2% |
| U | SEC Form 4 code | 33 | 1d | 97.0% |
| X | In-the-money option exercise | 36 | 5d | 69.4% |
| other | All codes with fewer than 25 legs in the window | 37 | 5d | 46.0% |
Is the population complete?
A delay study over an incomplete population is quietly wrong, so the script cross-checks every day's filing count against SEC EDGAR's own daily master index (distinct accessions, form types 4 and 4/A). Result: 22 of 22 index days match exactly; 9 days had no published index (weekends/holidays) and zero filings in the API — consistent.
Worth knowing: the first run of this check disagreed with itself twice, both times instructively. Four filings were in EDGAR's index but not in our dataset — real Form 4s our live feed had dropped; we re-ingested them from the daily index before publishing, and the numbers on this page are from the repaired population. And one filing sat in the July 23 index with an official filed date of June 15 — EDGAR re-disseminates corrected filings under their original filed date, so counting index membership as "filed that day" quietly overstates a day's volume. The script counts only rows whose Date Filed column matches the index day.
Reproduce this
The whole study is one standard-library Python script that runs on the free tier (a one-month window is ~80 requests; at the free tier's 10 req/min expect about ten minutes). The --verify-coverage flag hits EDGAR directly and needs a contact identity in the User-Agent, per SEC fair-access policy — set your own.
# free key, no card: https://filingpulse.io/signup.html
export FILINGPULSE_API_KEY=fp_...
export EDGAR_CONTACT=you@example.com
curl -O https://filingpulse.io/examples/form4_filing_delay_study.py
python form4_filing_delay_study.py \
--since 2026-07-01 --until 2026-07-31 \
--out results.json --verify-coverage
The committed results this page renders from: form4_delay_2026-07.json. A fixed since=/until= window returns the same population on any tier, any day — that is what makes the study reproducible rather than a screenshot.
Limitations
- One month is one month. Filing behavior varies with reporting waves (quarter-end grant cycles, earnings windows); treat these numbers as a measurement of this window, not a law of nature.
- Deemed-execution-date rules mean the 2-business-day comparison is context, not a compliance determination, per the caveat above.
- The federal holiday calendar is used for business days; it differs from the market calendar on Columbus Day and Veterans Day.
- Dates are strings exactly as filed; the handful of filings with malformed or missing dates are excluded and counted in the method box.
Sources
- 17 CFR § 240.16a-3(g) — the two-business-day filing requirement
- EDGAR daily index — the per-day ground truth the coverage check reads
- FilingPulse API docs · query patterns · free screener