Ir para o conteúdo

Cobertura histórica do corpus

Esta página documenta — com orgulho e sem letras miúdas — até onde o corpus neutro de INAPI alcança e a partir de que ano ele é denso. A honestidade faz parte do contrato: um consumidor merece saber "até quando" os dados são confiáveis antes de construir sobre eles. O corpus é neutro — zero campos ou referências cruzadas de RMC (imposto por pnpm neutrality).

Os números abaixo foram medidos contra produção em 2026-07-08 (snapshot). São re-executáveis com a auditoria somente-leitura em scripts/data-quality-audit.sql. Total do corpus no momento do snapshot: 829.757 linhas de instancia.

A fronteira de cobertura, em uma frase

O corpus é denso a partir de ~2007-2009 e residual antes disso (1994-2006). Isto não é uma lacuna a tapar nem um defeito: é o formato real da fonte pública de INAPI, e a documentamos como é para que ninguém seja pego de surpresa.

Densidade por ano de apresentação

Faixa Cobertura Volume típico por ano
1994-2006 Residual da ordem de 1 / 3 / 6 / … 474 pedidos/ano (cresce devagar até o fim da faixa)
~2007-2009 Começa a densificar milhares de pedidos/ano
2010 → hoje Denso dezenas de milhares de pedidos/ano

Leitura-chave: a fronteira ~2007 separa "o corpus está substancialmente completo" de "a cobertura é residual". Uma análise que comece antes de ~2007 verá poucas linhas porque a fonte tem poucas linhas, não porque falte ingestão.

Como o contrato de leitura expõe essa fronteira

Sob o trabalho de honestidade do contrato (CONTRACT-01), cada resposta de insights deixa de ser um array nu e é envolvida em um envelope com metadados de frescor:

{
  "data": [ /* … as mesmas linhas da agregação, intactas … */ ],
  "dataAsOf": "2026-03-06T10:05:00.000Z",
  "coverageThrough": "2026-03-05"
}
  • data — exatamente as linhas que a agregação retornava antes (mesmas linhas, mesma ordem, mesmas contagens). O envelope envolve, nunca muta.
  • dataAsOf — timestamp ISO do último sync bem-sucedido: até quando a ingestão rodou.
  • coverageThrough — a fronteira enriquecida: a data de apresentação mais recente entre as instâncias já enriquecidas (com classe/titular). Além dessa data vivem os stubs frescos do Buscador, vistos mas ainda não enriquecidos — reportar a data mais nova DELES superestimaria a cobertura.

Ambos os campos são omitidos (nunca aparecem como null) quando não há dado, de forma aditiva e retrocompatível — a mesma convenção de detail e similar. REST e MCP retornam o mesmo envelope por construção (uma única camada na camada de consultas compartilhada), provado com um teste de paridade deep-equal.

O scoring histórico herda a fronteira

O segundo moat do produto — o scoring por histórico de decisões — se apoia no histórico de resoluções de INAPI. Por definição ele herda essa mesma fronteira: uma análise histórica anterior a ~2007 tem cobertura residual, e isso é o esperado, não uma lacuna. Quanto mais recente o período analisado, mais densa a evidência sobre a qual o score se apoia. Isto é documentado aqui para que um score histórico seja lido com o contexto de cobertura correto.

Notas de qualidade relacionadas

  • A lacuna de estado (~126k linhas sem estado no snapshot, ≈15,2%) é uma cauda longa espalhada por todos os anos, não um buraco de um ano/uma fonte específica — ver SCHEMA-MAPPING.md (referência interna de engenharia). É fechada pela varredura diária autoritativa do Sheets, não por re-raspar o Buscador.
  • A série de numeração "99x" (~20.315 linhas, majoritariamente marcas estrangeiras) é legítima — consistente com registros internacionais / Protocolo de Madri para o Chile — e é tratada igual à série normal para fins de leitura.

Em resumo: o corpus é honesto sobre sua própria fronteira. Denso a partir de ~2007, residual antes, e cada resposta de insights o diz em voz alta via coverageThrough e dataAsOf.