Benchmark de validação — NT 2025.002-RTC
Benchmark parcial — registro de 2026-08-27. pendente — coluna vazia até execução com certificado digital.
Nas 96 fixtures do corpus, o ACBr não emite nenhum código de rejeição da Reforma e o Portal da Conformidade deixa passar 5 casos.
Metodologia
96 fixtures XML sintéticas (48 regras da NT 2025.002-RTC, cada uma com um par: um XML que passa e um que fere a regra), submetidas às mesmas ferramentas, com critérios de seleção e classificação congelados por escrito ANTES de qualquer execução.
Corpus de 60 regras congelado em 2026-07-25 a partir da NT 2025.002-RTC v1.50 (população: 262 regras completas extraídas da tabela oficial). Delas, 48 têm par de fixtures construível; 12 são declaradas não-testáveis por limitação da própria fonte oficial (campo ausente de todo schema publicado, garantia duplicada do XSD, norma circular ou tabela ainda não publicada) e ficam fora da contagem de cobertura.
Das 48 regras com par, 43 são decidíveis offline e formam a base de comparação; as 5 restantes dependem de dado externo (cadastro, tabelas) e são registradas como "não decidimos" por construção, não como acerto.
Ferramentas e coordenadas de versão
| Ferramenta | Versão coordenada | Execução |
|---|---|---|
| fiscalspec | ruleset nfe-rtc@2025.002-v1.50 (fixado, byte-determinístico) | 2026-08-04 |
| ACBr (ValidarNFeRegraNegocios) | ACBrMonitorPLUS 1.4.0.478-x86 demo, modo TXT | 2026-08-20 |
| Portal da Conformidade Fácil | sem versão declarada pelo portal — única coordenada é a data de acesso | 2026-08-05 |
| SEFAZ homologação | pendente | pendente |
Resultados agregados
Só agregados: o benchmark não publica resultado por regra nem associa código de rejeição a observação individual.
fiscalspec
- Fails detectados com o código esperado
- 43 de 43 decidíveis offline
- Falsos positivos
- 0 de 43
- Falsos negativos
- 0 de 43
- Não decididos declarados
- 10 execuções (5 regras dependentes de dado externo × par)
- Fixação de versão
- sim — mesmo ruleset, mesmos bytes em execuções repetidas
ACBr (ValidarNFeRegraNegocios)
- Fails detectados com o código esperado
- Nas 43 regras RTC avaliadas: 0 de 43 — nenhum código de rejeição da Reforma emitido em 96 execuções.
- Falsos positivos
- A taxa bruta de reprovação dos casos pass é dominada por ruído de preenchimento sintético das fixtures (CNPJ/IE/dígito verificador de teste) e não é usada como comparação de desempenho — ver limitação de assimetria de filtro abaixo.
- Falsos negativos
- 2 de 48
- Não decididos declarados
- 0 — a ferramenta sempre responde, nunca declara indecisão
- Fixação de versão
- não — única coordenada é a versão do binário e a data de download
Portal da Conformidade Fácil
- Fails detectados com o código esperado
- 43 de 48
- Falsos positivos
- 0 de 48 (após filtro de ruído sintético, declarado linha a linha)
- Falsos negativos
- 5 de 48 — auditados um a um no registro interno
- Não decididos declarados
- 0
- Fixação de versão
- não — nem a página nem a resposta declaram versão de NT; a página declara uma versão enquanto o motor aplica regras mais novas.
Limitações
- A coluna SEFAZ homologação ainda não existe. O benchmark sustenta comparações entre ferramentas locais sobre fixtures sintéticas; não mede o comportamento do autorizador real nem sustenta comparações de cobertura em produção.
- As fixtures são 100% sintéticas: preenchimento de identificação de teste pode fazer ferramentas externas reprovarem antes das regras de negócio. Falso positivo em XML real de cliente ainda não foi medido.
- O zero de divergência de código do fiscalspec não é mérito: ele reporta o código da própria regra do corpus, então divergência é impossível por construção. Só ferramentas que produzem código de forma independente podem revelar erro do próprio corpus.
- A contagem bruta de reprovações dos casos pass do ACBr não passou pelo filtro de ruído sintético aplicado ao portal — assimetria de método declarada no registro interno; por isso ela não entra como métrica comparativa.
- 12 das 60 regras não são testáveis por nenhuma ferramenta, por limitação da fonte oficial — isso é um resultado do benchmark, não uma lacuna escondida.
Regras documentadas · rejeições documentadas · página inicial
