Fund Rule 497(j) No-Change Certifications
Rule 497(j) certifications: a fund's dated statement that its most recent registration-statement amendment is unchanged from what it would otherwise have had to re-file, together with a pointer to the filing it is unchanged since. One row per certification letter, with the registrants and fund series it covers.
edgar_fund_no_change_certifications - the dataset name to pass to the Obscura API.
What one row means
One certification filed under **Securities Act Rule 497(j)** - a fund's formal statement that its current prospectus and Statement of Additional Information **do not differ** from the ones already on file, so no new definitive prospectus is being filed under Rule 497(b)/(c). The document is one sentence and carries no financial content, so this table is deliberately narrow: it stores the FACT of the certification and the things the sentence points at - the registrant, the registration, the funds (series and share classes) it covers, and the prior filing certified against. That is the useful part. A consumer holding a fund's last `485BPOS`/`497` can read a 497J as a dated "still current" stamp WITHOUT re-reading or diffing the prospectus, and the absence of one is equally informative. The certifications cluster hard on the annual-update deadline - 582 on 2026-05-01 against 5 on a typical day - which is itself the fund industry's prospectus-refresh calendar. See `docs/datasets/edgar_fund_no_change_certifications.md`.
One row per One row per Rule 497(j) certification, keyed by its ACCESSION. One certification = ONE letter, however many registrants or funds it covers: the other registrants are a child list (co_registrants) and the funds are a child list (series_and_classes), never extra rows. The key is the accession and NOT the archive path because EDGAR indexes one filing under one path PER associated CIK - measured on master.20260501.idx (the May-1 annual-update peak, 582 497J index rows): 571 accessions have one path, one has three, and 0001999371-26-009621 has EIGHT, because T. Rowe Price certified for eight separate tax-free fund corporations in a single letter. Keying on the path would store that one certification eight times..
Point-in-time availability
Every Obscura dataset carries available_date: the calendar day the publisher made the row
available, day-of, with no session rounding. It is the one column a backtest filters on, and it means the
same thing on every dataset in the catalog.
For edgar_fund_no_change_certifications: filing_join: available_date is the EDGAR DISSEMINATION day, taken from the bronze object's own day partition, never from the header's FILED AS OF DATE. A Rule 497(j) certification IS a publication - there is no embargo and no next-day batch - so the act and its availability are the same act and there is no occurred_on. prior_filing_date is a REFERENT (the day a different filing was made) and is deliberately its own column: dating this row from it would claim the certification existed on the day of the thing it points at.
Refresh cadence
Obscura refreshes edgar_fund_no_change_certifications every 6 hours - the most frequent scheduled job that re-collects or re-exports it. This is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when a row became public is recorded per row in available_date.
Schema - 17 columns
The full public column list for edgar_fund_no_change_certifications, with the meaning of every field. The same
schema is served unauthenticated at https://api.obscura.trade/v1/catalog/edgar_fund_no_change_certifications.
| Column | Type | Description |
|---|---|---|
| accession | text · not null | PK. SEC accession number of the certification, e.g. `0001999371-24-004783`. The key is the accession, not the archive path: a fund-family certification is listed once per registrant CIK it covers. |
| filename | text · not null | The PRIMARY registrant's SEC EDGAR Archives path for this certification (`edgar/data/{cik}/{accession}.txt`), derived from the payload's own first `FILER:` block rather than from whichever index row was walked - so it is the same value on every ingestion path. The join key into `edgar_filings`. |
| available_date | date | Public availability date: the EDGAR DISSEMINATION day, recovered from the bronze object's day partition. The certification IS a publication, so this is both when it happened and when it could be read; it is the point-in-time anchor and the only date a backtest may key on. |
| accepted_at | timestamp with time zone | When SEC ACCEPTED the submission (`<ACCEPTANCE-DATETIME>`), US-Eastern wall clock stored under a UTC type. Deliberately NOT the availability date: an after-hours acceptance is disseminated the next morning (`0001580642-26-002810`, accepted 2026-04-30 17:45:54, stamped and disseminated 2026-05-01). NULL on a row ingested from the dissemination feed rather than from Archives - the feed's PDS envelope does not carry this stamp, so a NULL here is a fact about the envelope and not a decoder gap. |
| filed_as_of | date | SEC's LEGAL filing date for the certification (`FILED AS OF DATE`). Kept for parity with `edgar_filings`; never an availability date - SEC back-dates it on 4.88 % of filings corpus-wide. |
| cik | bigint | Central Index Key of the PRIMARY registrant - the trust, fund corporation or insurance separate account making the certification. From the first `FILER:` block. |
| company_name | text | Primary registrant's name as EDGAR conforms it, e.g. `WESMARK FUNDS`, `SmartTrust 654`, `VARIABLE ANNUITY ACCOUNT FIVE`. |
| state_of_incorporation | text | Primary registrant's state of organisation from its own header block, e.g. `MA`, `NY`, `DE`. NULL when the header states none, which happens on newly-formed unit investment trusts. |
| co_registrants | jsonb · not null | JSON array of `{cik, name, file_number}` for the SECOND and subsequent registrants named in the header - the other fund corporations covered by the same letter. Empty array on a single-registrant certification, which is the overwhelming majority. |
| co_registrant_count | integer · not null | Number of co-registrants (0 on a plain certification, 7 on the T. Rowe Price fund-family letter). A cheap fan-out proxy, and the guard against turning one certification into eight - the migration CHECKs it equals the array's length. |
| file_number | text | The primary registrant's Securities Act file number from the header (`SEC FILE NUMBER:`), e.g. `333-16157`, `002-73948`, `033-05609`. The registration the certification is about, and the join to the `485BPOS`/`497` filed against it and to any `EFFECT` notice on the same number. |
| investment_company_file_number | text | The registrant's **Investment Company Act** file number (`811-07925`) as the letter's own text states it. Not in the SGML header - the header carries only the 1933 Act number - so this is the one identifier that must be read out of the prose, and it is the join to `edgar_nport_filings` and the rest of the '40-Act fund universe. NULL on half the probed sample (20/40 filings across 2015/2021/2024/2026), because that many letters simply do not state it. |
| certified_form | text | The form of the REGISTRATION STATEMENT being certified, from the letter's own text: `N-1A` (open-end fund), `N-4` (variable annuity), `N-6` (variable life), `S-6` (unit investment trust), `N-14`, `N-2`. This is what separates a UIT certification from a mutual-fund one. NULL when the letter says only "the most recent amendment to the Registration Statement" without naming a form - 22 of 40 probed filings, concentrated in the insurance separate-account letters that dominate the 1 May annual-update peak. Never `497J` - that is the certification's own form, and the migration CHECKs it. |
| series_and_classes | jsonb · not null | JSON array of `{series_id, series_name, class_id, class_name, ticker, block}` - every fund and share class the certification covers, from the submission's `<SERIES-AND-CLASSES-CONTRACTS-DATA>` header block, in the header's own order. `ticker` is NULL for insurance separate-account contracts, which are not exchange-traded. `block` is `existing` | `new` | `merger`, read from the enclosing tag rather than assumed. Empty array on a unit investment trust, which has no series at all. |
| series_count | integer · not null | Number of DISTINCT series (funds) the certification covers - 0 for a UIT, 1 for a single trust, 15 for the T. Rowe Price tax-free family letter. The headline "how many prospectuses does this one sentence keep current". |
| prior_filing_date | date | The day the filing being certified against was itself filed, from the letter's text ("the most recent amendment … was filed electronically with the Commission on April 12, 2024"). A REFERENT, not this row's event date, and the migration CHECKs it is never after `available_date`. NULL on 17 of 40 probed filings, because that many letters state only that the amendment "has been filed electronically" and give no date - an absence in the source, not a parser gap. |
| prior_filing_accession | text | Accession of the filing being certified against, when the letter states one ("(Accession No. 0001580642-26-002669)"). The exact filing-level link back to the prospectus this certification says is unchanged. Rare - 5 of 40 probed filings - but exact where present, and never the certification's own accession. |
Access edgar_fund_no_change_certifications
Two delivery paths, one identifier. Both require an Obscura account and an active subscription; the catalog entry and the schema above are public.
import obscura
client = obscura.Client("obs_live_…")
df = client.query(
dataset="edgar_fund_no_change_certifications",
symbols=["NVDA", "AAPL"],
start="2024-01-01",
)
Create a free account Browse all 122 datasets
Frequently asked questions
What is in the edgar_fund_no_change_certifications dataset?
Rule 497(j) certifications: a fund's dated statement that its most recent registration-statement amendment is unchanged from what it would otherwise have had to re-file, together with a pointer to the filing it is unchanged since. One row per certification letter, with the registrants and fund series it covers. One certification filed under **Securities Act Rule 497(j)** - a fund's formal statement that its current prospectus and Statement of Additional Information **do not differ** from the ones already on file, so no new definitive prospectus is being filed under Rule 497(b)/(c). The document is one sentence and carries no financial content, so this table is deliberately narrow: it stores the FACT of the certification and the things the sentence points at - the registrant, the registration, the funds (series and share classes) it covers, and the prior filing certified against. That is the useful part. A consumer holding a fund's last `485BPOS`/`497` can read a 497J as a dated "still current" stamp WITHOUT re-reading or diffing the prospectus, and the absence of one is equally informative. The certifications cluster hard on the annual-update deadline - 582 on 2026-05-01 against 5 on a typical day - which is itself the fund industry's prospectus-refresh calendar. See `docs/datasets/edgar_fund_no_change_certifications.md`.
How do I avoid look-ahead bias with edgar_fund_no_change_certifications?
Filter on edgar_fund_no_change_certifications.available_date, the day the publisher made the row public. For this dataset that date is derived as follows - filing_join: available_date is the EDGAR DISSEMINATION day, taken from the bronze object's own day partition, never from the header's FILED AS OF DATE. A Rule 497(j) certification IS a publication - there is no embargo and no next-day batch - so the act and its availability are the same act and there is no occurred_on. prior_filing_date is a REFERENT (the day a different filing was made) and is deliberately its own column: dating this row from it would claim the certification existed on the day of the thing it points at. A query of the form WHERE available_date <= '<as-of date>' never sees a row before it existed.
In what formats can I get edgar_fund_no_change_certifications?
As a Parquet bulk export (POST https://api.obscura.trade/v1/download) or as JSON from the typed query API (POST https://api.obscura.trade/v1/query), both with dataset="edgar_fund_no_change_certifications". The column schema is public at https://api.obscura.trade/v1/catalog/edgar_fund_no_change_certifications.
Can I filter edgar_fund_no_change_certifications by company or symbol?
Yes. edgar_fund_no_change_certifications carries cik, the column the API's symbols filter resolves against.
How often is edgar_fund_no_change_certifications updated?
Obscura refreshes edgar_fund_no_change_certifications on a every 6 hours schedule - that is the most frequent scheduled job that re-collects or re-exports the table. It is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when the publisher makes a row available is described by the availability rule above, and is recorded per row in available_date.