Lacuna no índice SEC EDGAR em 2026
Três fechamentos de mês em 2026 apresentam volumes vazios no índice SEC EDGAR. Analisamos os dados de ingestão e o precedente de 2025 para entender a falha.
O último dia de negociação de um mês costuma ser um dos mais movimentados no índice de registros da SEC — o registro de todos os documentos que as empresas entregam ao regulador. Em 2026, o volume estará quase vazio em três ocasiões. 31 de março, 30 de abril e 30 de junho apresentam apenas uma pequena quantidade de registros de dois dígitos, enquanto os dias vizinhos registram milhares. O padrão segue o calendário: cada mês de 2026 cujo último dia CALENDAR cair em um dia útil terá uma queda brusca, enquanto cada mês cujo último dia cair em um fim de semana manterá o volume normal. Abaixo: os comprovantes, os horários de chegada que delimitam onde está a falha, o dia anterior que apresenta padrão similar e o valor do volume de registros nessas datas.
A lacuna surgiu inicialmente como um problema de fechamento de trimestre enquanto elaborávamos o recap do Q2 e o recap do H1 — por isso a URL desta página. Análises posteriores redefiniram o cenário como um problema de fechamento de mês; a página é atualizada no mesmo endereço.
Quais dias estão faltando
O SQL exato por trás de cada número
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 ordO padrão segue verticalmente pelo painel. O último dia útil de janeiro apresenta 4332 registros e o de fevereiro apresenta 7870 — ambos meses cujo último dia do calendário caiu em um sábado, portanto o último dia útil ocorreu um ou dois dias antes do fim do mês. Depois, temos 55 em 31 de março, 34 em 30 de abril, voltando para 5527 em 29 de maio (maio terminou em um domingo), e 31 em 30 de junho. Os controles do ano anterior apresentam 3460 e 2289 registros — com o mesmo formato de dia da semana e fim de mês, totalmente preenchidos. O volume fica quase vazio exatamente quando, e apenas quando, o último dia do calendário de um mês de 2026 é um dia útil.
Qual o tamanho do buraco, em termos simples
Os números brutos subestimam a gravidade da situação. Abaixo estão todos os últimos dias úteis de cada mês desde 2020 que registraram menos de mil protocolos, comparados à média dos dias do índice em um intervalo de cinco dias ao redor da data.
O SQL exato por trás de cada número
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 dias em seis anos e meio. O trio de 2026 apresenta os menores valores: 30 de junho registra 31 protocolos contra uma média de 4443 nos dias vizinhos — 0.7% de um dia normal, um déficit superior a 99%. 30 de abril registra 0.6% e 31 de março registra 1.2%. Convertendo para empresas em vez de documentos: o índice de 30 de junho de 2026 lista 27 emissores distintos.
As outras três linhas explicam por que este não é um problema exclusivo de 2026. Duas são fechamentos federais comuns: 31 de maio de 2021 foi Memorial Day, e 31 de dezembro de 2021 foi a observância federal do Ano Novo de 2022 (1º de janeiro caiu em um sábado). O EDGAR segue o calendário de feriados federais, portanto, contagens próximas de zero nesses dias — 0 e 1 protocolos — representam apenas o funcionamento de uma janela de protocolo fechada, não um defeito.
A terceira é a mais relevante. 30 de abril de 2025 registra 928 protocolos, 19.1% de seus vizinhos — uma queda parcial, não total. É o único último dia útil de mês desde 2020 que fica tão abaixo do normal sem um feriado para justificar, e ocorre um ano antes das quedas de 2026: uma versão mais leve do mesmo comportamento de limite, com aproximadamente um quinto de um dia normal, em vez de um centésimo.
Todo final de mês desde 2020
O SQL exato por trás de cada número
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.meA longa série serve como controle para todo o argumento. Entre os 55 finais de mês em dias úteis entre janeiro de 2020 e junho de 2026, a linha permanece estável na casa dos milhares e depois cai abruptamente na extremidade direita. O fato de ser o último dia útil do mês não torna os registros escassos — os prazos se concentram nessa data.
O que realmente consta no dia ausente
O SQL exato por trás de cada número
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 14Este painel identifica o defeito. Os formulários com qualquer linha em 30 de junho aparecem no topo: avisos de 15 EFFECT — as próprias confirmações da SEC de que uma declaração de registro tornou-se efetiva — além de registros de consultores municipais, qualificações de oferta e avisos de locais de negociação. Esses são documentos emitidos pelos sistemas da SEC, não documentos enviados pelas empresas. Cada tipo de formulário que compõe o volume de um dia normal apresenta 0 linhas: 926 424B2 suplementos de prospecto em 29 de junho e nenhum no dia seguinte, formulários de transações de insiders 595 4 e nenhum no dia seguinte, relatórios de eventos corporativos 223 8-K e nenhum no dia seguinte. Uma terça-feira de fechamento de trimestre com zero 8-Ks e zero formulários de insiders não é um fato de mercado. É um arquivo ausente.
Quando as linhas chegaram
O SQL exato por trás de cada número
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_dateOs timestamps de chegada são o que mais se aproxima de uma impressão digital aqui. Todos os dias de junho até o dia 29 chegaram ao warehouse em um único job — 2026-07-01 09:38 UTC, um lote único com o mês inteiro acumulado. O dia 30 de junho chegou sozinho na manhã seguinte, às 2026-07-02 09:12, trazendo suas 31 linhas administrativas, enquanto seu vizinho, um dia antes, trouxe 4439. Os dias de transição de março e abril apresentam o mesmo padrão, um mês antes.
O SQL exato por trás de cada número
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_typesAs linhas de 1º de abril chegaram primeiro em 2026-05-01 — o lote mensal de abril, processado na virada de maio. As linhas de 30 de abril chegaram em 2026-05-02, um dia DEPOIS do lote que deveria contê-las. Esse único dia de separação é o diagnóstico completo em um único número: o job que carrega um mês termina um dia antes do fim do mês, e o dia de transição é então capturado por um caminho diferente e, evidentemente, incompleto. Quando o último dia do mês é um fim de semana, o erro não tem custo (não há nada para registrar), mas quando é um dia de negociação, uma das sessões mais movimentadas do mês é trocada por um punhado de avisos emitidos pela SEC distribuídos em 6 tipos de formulários.
Não é possível determinar se esse erro de um dia de diferença está no pipeline do fornecedor ou em nossa ingestão a partir deste warehouse — para resolver isso, são necessários os arquivos de índice diários brutos da SEC para essas três datas, uma comparação que esta página não consegue realizar. O que os recibos estabelecem: três datas específicas são inutilizáveis para contagens de registros.
Status conforme esta revisão
Não corrigido. Cada contagem nesta página é recalculada sempre que a página é gerada; até esta execução, em 31 de março, ainda constam os registros de 55, em 30 de abril, 34, e em 30 de junho, 31 — as contagens registradas quando a lacuna foi relatada pela primeira vez. O índice está normal: 2026-07-10 apresenta 2198 registros, chegando conforme o cronograma. Os limites de integridade mantêm os três dias com seus valores próximos de zero; portanto, um preenchimento retroativo os ultrapassa e força uma regeneração com os números corrigidos.
Falta algo mais?
Um erro de limite em um carregador não diz nada sobre os outros. Há alguma outra lacuna em 30 de junho no armazém?
O SQL exato por trás de cada número
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 ordNão há. O tape de minuto-a-minuto cobre 11982 tickers em 30 de junho contra 11903 o dia anterior; 704 registros de dividendos, 215 artigos de notícias e uma curva de Treasury completa também caem no mesmo dia. Apenas o índice de arquivos — 31 linhas contra 4439 — apresenta a lacuna. O resumo semanal contém os dados da sessão: 30 de junho de 2026 foi uma terça-feira e um dia completo de negociação.
O que isso significa ao contabilizar os registros
Qualquer contagem cujo período inclua 31 de março, 30 de abril ou 30 de junho de 2026 apresenta um valor abaixo do real, superando um erro de arredondamento: três dias de alto volume de registros foram substituídos por quase zero. Isso reduz os totais mensais de março, abril e junho, os totais trimestrais do Q1 e Q2, e o total do semestre. Nosso próprio resumo de junho publica suas contagens de registros com a divulgação integrada, e a mesma ressalva se aplica a qualquer consulta de contagem de registros feita em um terminal — incluindo o nosso — que envolva essas datas. Ao solicitar os registros por mês em 2026, três das seis respostas estarão incompletas por aproximadamente um dia inteiro de documentos.
Tipos de formulários (um por linha)
- 8-K — relatório de evento corporativo: uma empresa comunicando um fato relevante ao mercado.
- Form 4 — um insider (executivo, diretor ou grande acionista) reportando uma operação com suas próprias ações.
- 10-Q — o relatório financeiro trimestral.
- 424B2 — um suplemento de prospecto: o documento de precificação para uma oferta de valores mobiliários.
- NPORT-P — o relatório mensal de composição da carteira de um fundo.
- EFFECT / QUALIF / MA-I / ATS-N — avisos administrativos gerados pelos sistemas da SEC: um registro que entra em vigor, uma oferta qualificada, um consultor municipal registrando-se ou um local de negociação apresentando divulgações. Estes são os que sobreviveram aos dias de intervalo. Quais SEC filings aparecem com mais frequência detalha a distribuição completa.
FAQ
O gap nos registros do SEC EDGAR já foi corrigido?
Ainda não, conforme esta revisão. Os dias 31 de março, 30 de abril e 30 de junho de 2026 ainda apresentam os registros 55, 34 e 31, respectivamente, em nossa cópia do índice. Esta página é atualizada quando houver mudanças. Os limites de integridade são configurados para falhar caso ocorra um backfill — que é o objetivo de publicar os comprovantes em vez de um memorando.
Isso significa que a SEC perdeu os registros?
Não. Os documentos existem no EDGAR; o que falta é o volume de linhas do INDEX correspondente a um dia na cópia derivada. Os horários de chegada mostram o carregamento ocorrendo conforme o cronograma, mas entregando um dia quase vazio. Para saber se o erro de contagem é do fornecedor de dados ou da nossa carga, é necessário aguardar a consolidação dos arquivos de índice diários da própria SEC para essas três datas.
O que é o índice de registros do SEC EDGAR?
O EDGAR é o sistema de registros públicos da SEC. Seu índice diário lista todos os documentos protocolados no dia: a empresa, o tipo de formulário, o número de acesso que identifica o registro de forma única e o link. É a base para qualquer ferramenta de monitoramento de registros — como filtros de insider-trade, feeds de eventos 8-K e rastreadores de prospectos.
Quais tipos de formulários estavam faltando em 30 de junho de 2026?
Todos os tipos protocolados por empresas. O dia apresenta 6 tipos de formulários, todos avisos administrativos gerados pela SEC. Os registros 926 424B2 da sessão anterior, os relatórios de insider 595 Form 4 e os relatórios de evento 223 8-K caem para 0 no dia do gap.
Isso já aconteceu antes de 2026?
Uma vez, de forma mais leve. O dia 30 de abril de 2025 registrou 19.1% de um dia normal — parcial, em vez de vazio, e sem explicação por feriados. Os únicos outros fechamentos de mês em dias úteis com menos de mil registros desde 2020 são 31 de maio de 2021 (Memorial Day) e 31 de dezembro de 2021 (feriado federal de Ano Novo), ambos fechamentos reais e não falhas de dados.
Metodologia
- Todas as contagens são desduplicadas pelo número de acesso: um registro pode indexar várias entidades.
- A "média de dias vizinhos" é a média das contagens dos dias do índice dentro de cinco dias corridos do dia em questão, excluindo-o.
- Os horários de chegada são os valores
_ingest_timedeste armazém, não os da SEC — eles medem o fluxo que o leitor desta página realmente experimenta. - Os fechamentos de mês em dias úteis são o último dia CALENDAR de cada mês entre segunda e sexta-feira; dois deles são feriados federais e estão sinalizados como tal acima.
- Esta nota é atualizada no mesmo local; seu enquadramento original de fim de trimestre foi substituído pelas evidências de fim de mês, na mesma URL. Cada número é o resultado de uma consulta armazenada, executada novamente através do caminho de leitura restrito em cada regeneração — execute as mesmas consultas você mesmo no terminal Strasmore.