Écart dans l'index SEC EDGAR fin de mois
Analyse des lacunes de filings dans l'index SEC EDGAR pour trois fins de mois en 2026. Étude des preuves d'ingestion et comparaison avec les données de 2025.
Le dernier jour de trading d'un mois est normalement l'un des plus chargés de l'index de la SEC — le registre de tous les documents déposés par les entreprises auprès du régulateur. En 2026, ce volume est presque nul à trois reprises. Le 31 mars, le 30 avril et le 30 juin ne comptent qu'une poignée de filings à deux chiffres, alors que les jours adjacents en totalisent des milliers. Ce phénomène suit le calendrier : chaque dernier jour CALENDRIER de 2026 tombant un jour de semaine présente un déficit massif, tandis que chaque dernier jour tombant un week-end reste normal. Vous trouverez ci-dessous les relevés, les horodatages d'arrivée indiquant l'origine du problème, le jour précédent présentant une tendance similaire, et le volume de filings pour ces dates.
Cet écart est apparu comme un problème de fin de trimestre lors de la rédaction du récapitulatif du Q2 et du récapitulatif du H1 — d'où l'URL de cette page. Une analyse plus approfondie a montré qu'il s'agissait d'un problème de fin de mois ; la page est mise à jour sur la même adresse.
Quels jours sont manquants
Le SQL exact derrière chaque chiffre
SELECT d, filings, month_ends_on FROM (
SELECT '2026-01-30' AS d, (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-01-30')) AS filings, 'Saturday' AS month_ends_on, 1 AS ord
UNION ALL SELECT '2026-02-27', (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-02-27')), 'Saturday', 2
UNION ALL SELECT '2026-03-31', (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-03-31')), 'weekday (the gap day)', 3
UNION ALL SELECT '2026-04-30', (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-04-30')), 'weekday (the gap day)', 4
UNION ALL SELECT '2026-05-29', (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-05-29')), 'Sunday', 5
UNION ALL SELECT '2026-06-30', (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-30')), 'weekday (the gap day)', 6
UNION ALL SELECT '2025-09-30', (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2025-09-30')), 'weekday, full in the prior year', 7
UNION ALL SELECT '2025-12-31', (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2025-12-31')), 'weekday, full in the prior year', 8
) ORDER BY ordLe schéma suit une progression verticale sur le graphique. Le dernier jour ouvré de janvier affiche 4332 dépôts et celui de février affiche 7870 — pour ces deux mois, le dernier jour du calendrier était un samedi, le dernier jour ouvré tombait donc un ou deux jours avant la fin du mois. Ensuite, on observe 55 le 31 mars, 34 le 30 avril, un retour à 5527 le 29 mai (mai se terminait un dimanche), et 31 le 30 juin. Les valeurs de contrôle de l'année précédente s'établissent à 3460 et 2289 dépôts — avec la même configuration jour ouvré/fin de mois, et des données complètes. Les volumes sont quasi nuls précisément lorsque, et uniquement lorsque, le dernier jour calendaire d'un mois de 2026 est lui-même un jour ouvré.
Quelle est l'ampleur de la baisse, en termes simples
Les chiffres bruts sous-estiment la violence de cette tendance. Voici chaque fin de mois (en semaine) depuis 2020 ayant enregistré moins de mille dépôts, comparée à la moyenne de l'indice sur les cinq jours entourant la date.
Le SQL exact derrière chaque chiffre
WITH daily AS (
SELECT
filing_date,
uniqExact(accession_number) AS filings,
uniqExact(cik) AS companies,
max(_ingest_time) AS last_arrived
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date >= toDate('2019-12-20') AND filing_date <= toDate('2026-07-06')
GROUP BY filing_date
),
month_ends AS (
SELECT arrayJoin(arrayMap(i -> toLastDayOfMonth(addMonths(toDate('2020-01-01'), i)), range(78))) AS me
),
sparse AS (
SELECT
e.me AS me,
toUInt32(ifNull(d.filings, 0)) AS filings,
toUInt32(ifNull(d.companies, 0)) AS companies,
d.last_arrived AS last_arrived
FROM month_ends AS e
LEFT JOIN daily AS d ON d.filing_date = e.me
WHERE toDayOfWeek(e.me) <= 5 AND toUInt32(ifNull(d.filings, 0)) < 1000
)
SELECT
toString(s.me) AS month_end,
any(s.filings) AS filings,
any(s.companies) AS companies,
toUInt32(round(avgIf(n.filings, abs(dateDiff('day', n.filing_date, s.me)) <= 5 AND n.filing_date != s.me))) AS neighbour_day_avg,
round(100 * any(s.filings) / avgIf(n.filings, abs(dateDiff('day', n.filing_date, s.me)) <= 5 AND n.filing_date != s.me), 1) AS pct_of_normal,
toString(toDate(any(s.last_arrived))) AS last_row_arrived
FROM sparse AS s
CROSS JOIN daily AS n
GROUP BY s.me
ORDER BY s.me6 jours sur six ans et demi. Le trio de 2026 présente les valeurs les plus basses : le 30 juin affiche 31 dépôts contre une moyenne des jours voisins de 4443 — soit 0.7% d'une journée normale, un déficit supérieur à 99 %. Le 30 avril s'établit à 0.6% et le 31 mars à 1.2%. Si l'on parle en nombre d'entreprises plutôt qu'en documents : l'ensemble des noms de l'indice au 30 juin 2026 compte 27 déposants distincts.
Les trois autres lignes expliquent pourquoi ce phénomène ne se limite pas à l'année 2026. Deux correspondent à des fermetures fédérales classiques : le 31 mai 2021 était le Memorial Day, et le 31 décembre 2021 correspondait à l'observation fédérale du Nouvel An 2022 (le 1er janvier tombait un samedi). EDGAR suit le calendrier des jours fériés fédéraux ; des volumes proches de zéro — 0 et 1 dépôts — correspondent donc à une fenêtre de dépôt fermée et non à une anomalie.
Le troisième cas est le plus significatif. Le 30 avril 2025 affiche 928 dépôts, soit 19.1% de la moyenne de ses voisins — une baisse partielle, et non une absence totale. C'est la seule fin de mois en semaine depuis 2020 qui s'écarte autant de la normale sans jour férié pour l'expliquer. Ce cas précède d'un an les chutes de 2026 : une version plus modérée du même comportement limite, représentant environ un cinquième d'une journée normale plutôt qu'un centième.
Chaque fin de mois depuis 2020
Le SQL exact derrière chaque chiffre
WITH month_ends AS (
SELECT arrayJoin(arrayMap(i -> toLastDayOfMonth(addMonths(toDate('2020-01-01'), i)), range(78))) AS me
),
daily AS (
SELECT filing_date, uniqExact(accession_number) AS filings
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date >= toDate('2020-01-01') AND filing_date <= toDate('2026-06-30')
GROUP BY filing_date
)
SELECT toString(e.me) AS month_end, toUInt32(ifNull(d.filings, 0)) AS filings
FROM month_ends AS e
LEFT JOIN daily AS d ON d.filing_date = e.me
WHERE toDayOfWeek(e.me) <= 5
ORDER BY e.meCette série longue sert de point de contrôle pour l'ensemble de l'argumentation. Sur l'ensemble des fins de mois en jours ouvrés 55 entre janvier 2020 et juin 2026, la courbe reste stable dans les milliers avant de chuter brutalement à l'extrémité droite. La dernière journée ouvrée d'un mois n'explique pas la rareté des dépôts — les échéances s'y concentrent.
Contenu réel de la journée manquante
Le SQL exact derrière chaque chiffre
SELECT
form_type,
uniqExactIf(accession_number, filing_date = toDate('2026-06-29')) AS normal_day_jun29,
uniqExactIf(accession_number, filing_date = toDate('2026-06-30')) AS gap_day_jun30
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date IN (toDate('2026-06-29'), toDate('2026-06-30'))
GROUP BY form_type
ORDER BY gap_day_jun30 DESC, normal_day_jun29 DESC, form_type
LIMIT 14Ce tableau identifie l'anomalie. Les formulaires contenant des données au 30 juin se situent en haut de liste : les avis 15 EFFECT — les confirmations de la SEC indiquant qu'une déclaration d'enregistrement est devenue effective — ainsi que les enregistrements de conseillers municipaux, les qualifications professionnelles et les avis de plateformes de négociation. Il s'agit de documents générés par les systèmes de la SEC, et non de documents soumis par les entreprises. Chaque type de formulaire constituant le volume habituel affiche 0 lignes : 926 424B2 suppléments de prospectus le 29 juin et aucun le lendemain, 595 formulaires de transactions d'initiés 4 et aucun le lendemain, 223 8-K rapports d'événements sur les entreprises et aucun le lendemain. Un mardi de fin de trimestre sans aucun formulaire 8-K ni aucun formulaire d'initié n'est pas une réalité de marché. C'est un fichier manquant.
Quand les lignes sont arrivées
Le SQL exact derrière chaque chiffre
SELECT
toString(filing_date) AS d,
uniqExact(accession_number) AS filings,
formatDateTime(min(_ingest_time), '%Y-%m-%d %H:%i') AS first_arrived
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date >= toDate('2026-06-26') AND filing_date <= toDate('2026-07-10')
GROUP BY filing_date
ORDER BY filing_dateLes horodatages d'arrivée sont l'indicateur le plus précis ici. Tous les jours de juin jusqu'au 29 sont arrivés dans l'entrepôt en un seul lot — 2026-07-01 09:38 UTC, un lot unique regroupant tout le mois. Le 30 juin est arrivé seul le lendemain matin, à 2026-07-02 09:12, avec ses 31 lignes administratives, tandis que son voisin de la veille transportait 4439. Les jours de transition de mars et avril présentent la même configuration, un mois plus tôt.
Le SQL exact derrière chaque chiffre
SELECT
(SELECT toString(toDate(min(_ingest_time))) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-04-01')) AS apr1_first_arrived,
(SELECT toString(toDate(min(_ingest_time))) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-04-30')) AS apr30_first_arrived,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-03-31')) AS mar31_filings_now,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-04-30')) AS apr30_filings_now,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-30')) AS jun30_filings_now,
(SELECT uniqExact(form_type) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-30')) AS jun30_form_typesLes lignes du 1er avril sont arrivées pour la première fois le 2026-05-01 — le lot mensuel d'avril, traité lors du passage au mois de mai. Les lignes du 30 avril sont arrivées le 2026-05-02, soit un jour APRÈS le lot qui aurait dû les contenir. Ce décalage d'un seul jour constitue le diagnostic complet : le processus de chargement mensuel s'arrête un jour avant la fin du mois, et le jour de transition est ensuite récupéré par un autre flux, manifestement incomplet. Lorsque le dernier jour calendaire du mois est un week-end, l'erreur n'a pas d'impact (aucun document n'est à transmettre) ; en revanche, lorsqu'il s'agit d'un jour de trading, l'une des sessions les plus actives du mois est remplacée par quelques avis de la SEC répartis sur 6 types de formulaires.
Il est impossible de déterminer, depuis cet entrepôt, si ce décalage d'un jour provient du pipeline du fournisseur ou de notre processus d'ingestion. Pour trancher, il faudrait comparer les fichiers d'index quotidiens bruts de la SEC pour ces trois dates, une analyse que cette page ne peut pas effectuer. Ce que les données confirment : trois dates spécifiques sont inutilisables pour le décompte des dépôts.
État à la date de cette révision
Non corrigé. Chaque décompte sur cette page est recalculé lors de chaque génération. À ce jour, les données incluent encore les dépôts de 55, 34 et 31, correspondant aux chiffres enregistrés lors de la rédaction initiale de l'écart. L'index est par ailleurs conforme : 2026-07-10 contient 2198 dépôts, avec un calendrier respecté. Les limites de contrôle maintiennent les valeurs des trois jours à un niveau proche de zéro ; un remplissage rétroactif (backfill) déclenche donc une régénération avec les chiffres corrigés.
Manque-t-il d'autres éléments ?
Un bug de limite dans un loader n'impacte pas les autres. La journée du 30 juin présente-t-elle des lacunes ailleurs dans le warehouse ?
Le SQL exact derrière chaque chiffre
SELECT dataset, jun29, jun30 FROM (
SELECT 'SEC filing index (filings)' AS dataset,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-29')) AS jun29,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-30')) AS jun30, 1 AS ord
UNION ALL SELECT 'Minute bars (tickers)',
(SELECT uniqExact(ticker) FROM global_markets.delayed_stocks_minute_aggs WHERE window_start >= toDateTime('2026-06-29 04:00:00') AND window_start < toDateTime('2026-06-30 04:00:00')),
(SELECT uniqExact(ticker) FROM global_markets.delayed_stocks_minute_aggs WHERE window_start >= toDateTime('2026-06-30 04:00:00') AND window_start < toDateTime('2026-07-01 04:00:00')), 2
UNION ALL SELECT 'Dividends (ex-div records)',
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = toDate('2026-06-29')),
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = toDate('2026-06-30')), 3
UNION ALL SELECT 'News articles',
(SELECT count() FROM global_markets.stocks_news WHERE toDate(published_utc) = toDate('2026-06-29')),
(SELECT count() FROM global_markets.stocks_news WHERE toDate(published_utc) = toDate('2026-06-30')), 4
UNION ALL SELECT 'Treasury curve rows',
(SELECT count() FROM global_markets.treasury_yields WHERE date = toDate('2026-06-29')),
(SELECT count() FROM global_markets.treasury_yields WHERE date = toDate('2026-06-30')), 5
) ORDER BY ordNon. Le tape en barres de une minute couvre 11982 tickers le 30 juin contre 11903 la veille ; 704 enregistrements ex-dividend, 215 articles de presse et une courbe Treasury complète tombent également ce jour-là. Seul l'index des filings — 31 lignes contre 4439 — présente cette lacune. Le récapitulatif hebdomadaire contient les données de la session : le 30 juin 2026 était un mardi et une journée de trading complète.
Interprétation selon le décompte des dépôts
Tout décompte incluant les dates du 31 mars, 30 avril ou 30 juin 2026 est sous-estimé de manière significative : trois journées de forte activité de dépôt sont remplacées par un volume quasi nul. Cela réduit les totaux mensuels de mars, avril et juin, les totaux trimestriels du 5527 et du 5527, ainsi que le total semestriel. Notre récapitulatif de juin publie ses décomptes de dépôts avec les informations de divulgation intégrées. La même réserve s'applique à toute question relative au nombre de dépôts posée à un terminal — le nôtre inclus — concernant ces dates. Si vous demandez le nombre de dépôts par mois pour 2026, trois des six réponses seront inférieures d'environ une journée complète de documents.
Les types de formulaires (un par ligne)
- 8-K — rapport d'événement survenu dans la société : une entreprise informe le marché d'un événement important.
- Form 4 — déclaration d'un initié (dirigeant, administrateur, actionnaire important) concernant une transaction sur ses propres actions.
- 10-Q — rapport financier trimestriel.
- 424B2 — supplément au prospectus : le document de tarification pour une émission de titres.
- NPORT-P — rapport mensuel des positions du portefeuille d'un fonds.
- EFFECT / QUALIF / MA-I / ATS-N — avis administratifs générés par les systèmes de la SEC : une inscription devient effective, une offre est qualifiée, un conseiller municipal s'enregistre, ou un lieu de négociation dépose des informations. Ce sont les éléments ayant survécu aux jours d'écart. Quels formulaires SEC apparaissent le plus souvent détaille la distribution complète.
FAQ
Le décalage des filings SEC EDGAR est-il résolu ?
Pas à la date de cette révision. Les dates du 31 mars, 30 avril et 30 juin 2026 comportent toujours respectivement les filings 55, 34 et 31 dans notre copie de l'index. Cette page se régénère lors de chaque mise à jour. Les limites de contrôle (sanity bounds) sont configurées pour signaler une erreur si un backfill est détecté — l'objectif est de publier les preuves réelles plutôt qu'une simple note.
Cela signifie-t-il que la SEC a perdu les filings ?
Non. Les documents sont présents sur EDGAR. Il manque une journée complète de lignes INDEX dans la copie en aval. Les horaires d'arrivée indiquent que le loader s'est exécuté normalement, mais avec une journée presque vide. Pour déterminer si l'erreur de décalage (off-by-one) provient du fournisseur de données ou de notre propre chargement, il faut attendre la stabilisation des fichiers d'index quotidiens de la SEC pour ces trois dates.
Qu'est-ce que l'index des filings SEC EDGAR ?
EDGAR est le système de dépôt public de la SEC. Son index quotidien répertorie chaque document déposé : l'entreprise, le type de formulaire, le numéro d'accession (identifiant unique du filing) et le lien. C'est l'élément central de tout outil de suivi des filings — scanners de transactions d'insiders, flux d'événements 8-K ou trackers de prospectus.
Quels types de formulaires manquaient le 30 juin 2026 ?
Tous les formulaires déposés par les entreprises. Cette journée contient 6 types de formulaires, tous des avis administratifs générés par la SEC. Les filings 926 424B2 de la session précédente, les rapports d'insiders 595 Form 4 et les rapports d'événements 223 8-K sont tous réduits à 0 lors de cette journée de rupture.
Cela est-il déjà arrivé avant 2026 ?
Une fois, de manière moins marquée. Le 30 avril 2025 affiche 19.1% d'une journée normale — un volume partiel et non vide, sans lien avec un jour férié. Les seuls autres mois avec moins de 1 000 lignes en semaine depuis 2020 sont le 31 mai 2021 (Memorial Day) et le 31 décembre 2021 (férié fédéral du Nouvel An), qui étaient de véritables fermetures de marché et non des erreurs de données.
Méthodologie
- Tous les décomptes sont dédoublonnés par numéro d'accession : un dépôt peut indexer plusieurs entités.
- La « moyenne des jours adjacents » est la moyenne des décomptes des jours de l'index situés dans les cinq jours calendaires entourant le jour concerné, hors ce dernier.
- Les heures d'arrivée correspondent aux valeurs
_ingest_timede cet entrepôt, et non celles de la SEC — elles mesurent le flux réel subi par le lecteur de cette page. - Les fins de mois en semaine correspondent au dernier jour CALENDAIRE de chaque mois tombant du lundi au vendredi ; deux d'entre eux sont des jours fériés fédéraux et sont signalés comme tels ci-dessus.
- Cette note est mise à jour directement ; son cadrage initial de fin de trimestre a été remplacé par les données de fin de mois, sur la même URL. Chaque chiffre est le résultat d'une requête stockée, exécutée via le chemin de lecture seule lors de chaque régénération — vous pouvez exécuter les mêmes requêtes sur le terminal Strasmore.