What SEC timestamps mean

- Filing Date - (usually) the date when the filing's SGML file became public.
- Acceptance Datetime - timestamp when EDGAR accepted the filing.
- SGML file last modified time - timestamp when SGML file (containing filing's content) became public.
- Period of Report - the period in which the filing contains information for.
- Detected time - this is when a service (such as datamule) detects a filing.
- Date as of change - tbh, not sure.
These are all stored in a filing's SGML metadata.

The SEC is buggy
A filing can be considered to mostly, generally quite correct. This is a convoluted way to express:
"If you use SEC endpoints that are based of filings such as the SEC's submissions.json endpoint for Acceptance Datetime it has absurd numbers in it that must be wrong"
And
"Filings do have errors. I have found them. But they are much rarer. I plan to start fixing them at scale in 2027."
Quotes are mine.
What SEC timestamps actually mean (when derived from filings)
Acceptance Datetime: This is when EDGAR accepts a filing. I have detected this as early as 6:00 AM, and as late as some minutes past 10:00 PM. Times eastern. Check for yourself here.

When a filing is accepted, the index page is created (the screenshot above). The etag last modified tag, has in all my spot checks, been the same as acceptance datetime.
This is not the same as when the filing content (such as financial statements) become public. That might occur seconds, minutes or even days later. From the filing above, the content became available about 15 seconds later. That is common for small filings, like form 3s (couple kb). 
This filing was accepted at 2026-10-03 01:34:36 GMT. Its sgml file became public on Mon, 05 Oct 2026 10:02:56 GMT. It was detected by datamule on October 5, 2026, at 10:02:59 AM GMT. 
If you would like to explore this further, datamule's SEC Filing Feed provides an interactive way.
SGML file last modified time
This is when the content of a filing, hosted on sec.gov, became public. It is generally seconds to minutes before the filing is detected. It is possible to get this filing content early through url prediction.
Note: I generally trust sec.gov SGML etag lmt as when resource became public. Not for the ones in 1994.
Filing Date
The date the filing's information became public and was accessed by people who pay attention to SEC filings. At least, that is the behavior I have seen so far. Use this as a rough anchor for when a filing's content was publicly accessible.
Addendum

Period of Report
Duration the filing is supposed to report for. idk, not terribly interesting.
Detected time
This is when a service (e.g. datamule) detects a filing. There are two common methods:
EFTS is complete, but generally slower. RSS misses some filings but is faster. RSS should be faster than the SEC's PDS system.
This method is complicated due to how the SEC caches the feeds. Essentially, the RSS serves some users data 1min30s+ faster than others. See How to make a fast SEC filing detection system for more info.

Use detection_time, as an approximate for when most people hooked into the rss feed got filings.
What this implies for when information became public.
timeline
- Information in filings is usually released on company investor relations pages or newswires before hitting the SEC. I am told this is generally minutes faster. I don't know if that is true. If you know, please email me: [email protected].
- Filing content made public (SGML LMT): ballpark 3-30s before it is detected by rss. Fair to assume few people have access to this.
- Filing content detected by rss users (lucky caching): ballpark 5s faster on average, 1min30s at max then unlucky rss users.
more stuff
- There is a belief that companies attempt to hide bad news by releasing on Friday night after 5:30 PM ET.
- Many people get processed filings. This processing often takes minutes or more, e.g. calcbench.
- probably other stuff that I am forgetting.
Future
I will soon release a dataset of:
- filing-date (extracted from SEC filings)
- acceptance datetime (from index url page)
- LMT (from index url page)
- LMT_SGML (from sgml url page)
- detected_time (from datamule)
This should be helpful to researchers.