Modelo econômico
O objetivo da classificação econômica não é entregar uma lista de CNAEs. Ela é uma pista auditável para chegar a uma entidade real capaz de comprar, adotar ou financiar uma tecnologia.
flowchart LR
S["Setor"] --> M["Mercado"]
M --> A["Atividade"]
A --> R["Receptor"]
R --> E["Estabelecimento / CNPJ"]
R --> D["Demanda + evidências"]
P["Funções da patente"] --> D
Entidades
- Setor é o agrupamento amplo e estável usado para navegação e análise.
- Mercado é um recorte semântico próprio do lapis. Pode reunir atividades de diferentes grupos CNAE e, no domínio compartilhado, não é sinônimo de uma divisão CNAE.
- Atividade referencia uma subclasse e uma edição oficial do CNAE, mantendo código normalizado, hierarquia, descrição, vigência e proveniência.
- Receptor é a entidade do mundo real — empresa, órgão, associação ou outra instituição — que pode manifestar uma demanda. Uma empresa pode possuir vários estabelecimentos e atividades principal/secundárias.
- Demanda liga necessidade, contexto e evidências a um Receptor; ela é o ponto comparado às funções e efeitos técnicos da patente.
Identificadores internos são estáveis e não usam o CNPJ como chave do Receptor. O CNPJ completo identifica um estabelecimento; a raiz pode relacionar unidades da mesma entidade jurídica. A publicação de receptores guarda snapshot de origem e instante de observação; uma análise registra a edição CNAE, a publicação de receptores e a versão do motor usadas.
Catálogo de produção e domínio curado
O worker percorre a estrutura pública da CNAE 2.3 no IBGE/CONCLA, normaliza a hierarquia, calcula o SHA-256 do snapshot e guarda o artefato de execução no Storage. A edição só se torna ativa no SQL dentro de uma transação.
No primeiro release, a API expõe uma taxonomia-base integralmente derivada da
CNAE: seção como Setor, divisão como Mercado-base e subclasse como
Atividade. Isso permite navegar por todos os níveis oficiais sem antecipar uma
curadoria própria que ainda não existe. O lib/lapis já contém o contrato
versionado de Setor, Mercado e suas relações muitos-para-muitos; uma edição
curada futura pode ser publicada sem mudar Receptor ou Atividade.
Resultados históricos referenciam a edição CNAE e a publicação de receptores que os produziram, de modo que uma atualização concorrente não altere silenciosamente a análise.
Cobertura reduzida
Uma política de cobertura registra percentual, teto por atividade, seed e a
versão sha256-v1 do algoritmo. A seleção por hash é determinística, independente da ordem e
monotônica: aumentar o percentual ou o teto preserva os CNPJs já escolhidos. O
sampler consome a fonte por streaming e mantém memória proporcional apenas aos
limites da amostra, não ao tamanho da base.
O modo inicial limita a até dois estabelecimentos por atividade e 3.000 no total. No snapshot de demonstração atual, isso corresponde a 2.658 estabelecimentos ativos distribuídos por 1.332 subclasses CNAE. O snapshot CNPJ normalizado é publicado em um blob cujo nome contém seu SHA-256; dele o fluxo percorre raw, validação, SQL, índice físico por geração e promoção do alias. A interface de fonte permanece a mesma para trocar a amostra por um adaptador completo de Empresas + Estabelecimentos da RFB.