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.

10,951
filings analyzed
2d
median delay (calendar)
5d
90th percentile
92.9%
within 2 business days

Calendar-day delay

Days between the earliest transaction on the filing and the day EDGAR accepted it.

delayfilingsshare
same day7707.0%
1 day2,98727.3%
2 days3,80334.7%
3 days3353.1%
4-5 days2,40422.0%
6-10 days2212.0%
11-30 days1901.7%
31-90 days1311.2%
over 90 days1101.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 daysfilingsshare
07707.0%
13,41731.2%
2 (deadline)5,98854.7%
31741.6%
4750.7%
5610.6%
6-101181.1%
over 103483.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.

codemeaninglegsmedian delaywithin 2 bd
AGrant / award from issuer6,8972d92.8%
CConversion of derivative4922d92.3%
DDisposition to issuer1,1631d98.8%
FShares withheld for tax1,8502d93.8%
GGift2162d95.4%
JOther (see footnotes)8222d79.2%
MOption exercise4,5522d95.4%
POpen-market purchase1,1982d80.9%
SOpen-market sale6,6942d98.2%
USEC Form 4 code331d97.0%
XIn-the-money option exercise365d69.4%
otherAll codes with fewer than 25 legs in the window375d46.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

Sources