Como validamos o engine — e onde ele erra
Uma ferramenta de conferência só serve se puder ser conferida. Por isso validamos o engine do BRCalc contra o mercado, não contra nós mesmos: replicamos memórias de cálculo e PUs publicados por securitizadoras e agentes fiduciários, usando apenas a escritura da operação e as séries públicas do BACEN/IBGE — sem acesso ao sistema de ninguém. E publicamos o erro medido, operação por operação, inclusive nos casos que ainda não batem.
Metodologia
Cada operação vira um spec declarativo (indexador, convenções da escritura, tolerâncias) e um snapshot imutável da fonte publicada. O harness recalcula o cronograma completo no engine e compara evento a evento: cupom e juros em bps sobre o saldo, amortização e saldo em valor. Uma operação só entra como replicada se todos os eventos ficarem dentro da tolerância do spec (tipicamente 0,05 bps no cupom). Indexadores cobertos: IPCA+ 36 · CDI + 8 · Pré 2 · IGP-M+ 2 · TR 2 · % do CDI 1.
Em 0 das 54 conferências o erro máximo foi 0,0000 bps — reprodução exata, centavo a centavo, na escala publicada.
As operações
| Operação | Indexador | Fonte dos dados | Eventos | Erro máx (bps) |
|---|---|---|---|---|
| CRI Kallas (Opea CRI.275.CIA.1, memória) | % do CDI | Opea (memória de cálculo xlsx) | 26 | 0,4166 |
| COPAGRIL | CDI + | Vórtx (agente fiduciário) | 35 | 0,0000 |
| CRA NB MAQUINAS subordinada (CDI + 6%, capitalizado) | CDI + | Opea (memória de cálculo xlsx) | 7 | 0,0006 |
| CRA NB MAQUINAS sênior (Opea CRA.207.CIA.1, CDI + 1,5%) | CDI + | Opea (API pública) | 6 | 0,2628 |
| CRA ZANCHETTA (Vórtx 86144, CDI + 3%, trimestral) | CDI + | Vórtx (agente fiduciário) | 21 | 0,0000 |
| CRI HSI Granja Vianna DI via CSV Vórtx (cross-check do 41849) | CDI + | Vórtx (PU diário, CSV) | 98 | 0,0000 |
| CRI JL II (Vórtx 95623, CDI + 3%, DI D-4, saldo pós-amort) | CDI + | Vórtx (agente fiduciário) | 11 | 0,0881 |
| DEB SUHAI (Vórtx 92230, CDI + 7,5%) | CDI + | Vórtx (agente fiduciário) | 32 | 0,0000 |
| DEB SUHAI via CSV Vórtx (cross-check do suhai_deb_92230) (2ª fonte da mesma operação) | CDI + | Vórtx (PU diário, CSV) | 32 | 0,0000 |
| OUTLET BRASILIA | CDI + | Vórtx (agente fiduciário) | 82 | 0,0000 |
| CRI BRZ Sr. (True/Opea CRI.1.TRU.350, memória) | IGP-M+ | Opea (memória de cálculo xlsx) | 66 | 0,0008 |
| CRI GOLDEN II (HabitaSec 1/122, Vórtx 52831) | IGP-M+ | Vórtx (agente fiduciário) | 17 | 0,0000 |
| Almeida Júnior II (Opea CRI.539.CIA.2, IPCA + 8.5848%) | IPCA+ | Opea (API pública) | 5 | 0,0000 |
| Bauten (Opea CRI.336.TRU.9, IPCA + 10.5%) | IPCA+ | Opea (API pública) | 4 | 0,0001 |
| Bresco II (Opea CRI.560.CIA.1, IPCA + 8.1096%) | IPCA+ | Opea (API pública) | 5 | 0,0000 |
| CATUAI (Opea CRI.553.CIA.1, IPCA + 8.5671%) | IPCA+ | Opea (API pública) | 5 | 0,0000 |
| CRA Caramuru (Ecoagro 172ª, CRA022006BU, IPCA + 7,2043%) | IPCA+ | Ecoagro (PU diário) | 15 | 0,0001 |
| CRA Cerrado (Ecoagro 430, CRA02300CI1, IPCA + 9,50%, resgatado) | IPCA+ | Ecoagro (PU diário) | 31 | 0,0144 |
| CRA Comber 2ª série (Opea CRA.216.CIA.2, IPCA + 8,5%) | IPCA+ | Opea (API pública) | 5 | 0,0000 |
| CRA Dexco (Ecoagro 482, CRA02300NAX, IPCA + 6,44%) | IPCA+ | Ecoagro (PU diário) | 5 | 0,0000 |
| CRA Ecoagro 471 (CRA02300HQX, IPCA + 11%) | IPCA+ | Ecoagro (PU diário) | 6 | 0,0000 |
| CRA Ecoagro 494 (CRA02300RGX, IPCA + 8,95%) | IPCA+ | Ecoagro (PU diário) | 31 | 0,0062 |
| CRA GERIBA (Opea CRA.222.CIA.1, IPCA + 11%) | IPCA+ | Opea (API pública) | 4 | 0,0000 |
| CRA OLFAR (Vórtx 89847, IPCA + 8,9738% du/252) | IPCA+ | Vórtx (agente fiduciário) | 38 | 0,0000 |
| CRA Solinftec (Opea CRA.113.CIA.2, IPCA + 11,6971%) | IPCA+ | Opea (API pública) | 31 | 0,0000 |
| CRI Bauten (Opea CRI.336.TRU.8, IPCA + 10,5%) | IPCA+ | Opea (API pública) | 4 | 0,0001 |
| CRI Credihome (Opea CRI.1.CIA.276, IPCA + 6,00%) | IPCA+ | Opea (memória de cálculo xlsx) | 69 | 0,0003 |
| CRI DINAMO (Vórtx 86044, IPCA + 8,75% mês cheio) | IPCA+ | Vórtx (agente fiduciário) | 11 | 0,0000 |
| CRI DINAMO via CSV diário Vórtx (cross-check do dinamo_cri_86044) (2ª fonte da mesma operação) | IPCA+ | Vórtx (PU diário, CSV) | 11 | 0,0000 |
| CRI GPA (Opea CRI.1.TRU.345, IPCA + 5,30%) | IPCA+ | Opea (memória de cálculo xlsx) | 65 | 0,0605 |
| CRI LEAD FARIA LIMA (Opea 171/4, Vórtx 86241) | IPCA+ | Vórtx (PU diário, CSV) | 1 | 0,0002 |
| CRI MIDWAY (Vórtx 86986, IPCA + 5%, incorporação anual + Tai) | IPCA+ | Vórtx (agente fiduciário) | 48 | 0,0002 |
| CRI MONTANINI (Vórtx 10272, IPCA + 11% mês cheio) | IPCA+ | Vórtx (agente fiduciário) | 24 | 0,5195 |
| CRI Renner (Opea CRI.1.CIA.95, IPCA + 7,7270%, incorporação anual) | IPCA+ | Opea (API pública) | 53 | 0,0010 |
| CUNHA CAMARA | IPCA+ | Vórtx (agente fiduciário) | 65 | 0,2486 |
| DEB TRADENER 6ª série (Vórtx 54602, IPCA + 6,14%, juros capitalizados) | IPCA+ | Vórtx (agente fiduciário) | 12 | 0,0005 |
| DEB VP2 (Vórtx 85815, IPCA + 5,95% semestral, defasagem 0) | IPCA+ | Vórtx (agente fiduciário) | 12 | 0,0045 |
| JMD (Opea CRI.515.CIA.1, IPCA + 10.2235%) | IPCA+ | Opea (API pública) | 6 | 0,0001 |
| Mauá XII (Opea CRI.482.CIA.1, IPCA + 10%, amex do FIDC) | IPCA+ | Opea (API pública) | 4 | 0,0001 |
| Mirante (Opea CRI.406.TRU.11, IPCA + 12.5%) | IPCA+ | Opea (API pública) | 3 | 0,0000 |
| NLPSPE | IPCA+ | Vórtx (agente fiduciário) | 17 | 0,0000 |
| One TF (Opea CRI.572.CIA.1, IPCA + 9.1684%) | IPCA+ | Opea (API pública) | 5 | 0,0001 |
| Quartiero (Opea CRI.567.CIA.1, IPCA + 10.1%) | IPCA+ | Opea (API pública) | 5 | 0,0000 |
| SANCTA MAGGIORE 23 DE MAIO (Opea CRI.389.CIA.2, IPCA + 10.27%) | IPCA+ | Opea (API pública) | 4 | 0,0002 |
| Solinftec V (Opea CRA.191.CIA.2, IPCA + 10.7639%) | IPCA+ | Opea (API pública) | 6 | 0,0000 |
| Sompo (Opea CRI.543.CIA.1, IPCA + 7.15%) | IPCA+ | Opea (API pública) | 6 | 0,0000 |
| Verde Urbanismo (Opea CRI.498.CIA.1, IPCA + 11%, amex cash sweep) | IPCA+ | Opea (API pública) | 5 | 0,0000 |
| XP LOG (Opea CRI.499.CIA.1, IPCA + 8.76%) | IPCA+ | Opea (API pública) | 6 | 0,0000 |
| YBY NATUREZA | IPCA+ | Vórtx (agente fiduciário) | 47 | 0,0000 |
| CRI BRZ (Opea CRI.529.CIA.3, prefixado 15,5%) | Pré | Opea (memória de cálculo xlsx) | 6 | 0,0000 |
| CRI BRZ via API Opea (cross-check do brz_cri_529) (2ª fonte da mesma operação) | Pré | Opea (API pública) | 6 | 0,0000 |
| DEB Movida II (Opea DEB.36.CIA.1, prefixado 15,9%) | Pré | Opea (API pública) | 4 | 0,0002 |
| FGTS BB | TR | Vórtx (agente fiduciário) | 115 | 0,0037 |
| MATONE | TR | Vórtx (agente fiduciário) | 199 | 0,0000 |
Onde ainda não batemos
Duas operações da frota divergem de forma estrutural e ficam publicadas como gaps conhecidos até decodificarmos a convenção — porque esconder o caso ruim invalidaria todos os bons:
| Operação | Indexador | Erro (bps) | Por que diverge |
|---|---|---|---|
| edifica_cdi_309 | % do CDI | 40,0321 | cash sweep de obra: a fonte paga juros parciais e capitaliza o resto no VN (set/25: 10.122,52 pagos + 70,95 capitalizados = acrual exato do engine) + premios mensais variaveis (clausula de sweep) — eventos exogenos nao deriváveis dos termos. O acrual 80% CDI lag 4du confere ate ago/25. |
| CRI GOLDEN (HabitaSec 1/109, Vórtx 41686) | IGP-M+ | 98,9969 | fase INCC-DI (obra) + blend de troca p/ IGP-M nao decodificados: fatores mensais publicados nao batem com nenhuma serie SGS (IGPM/INCC/IPCA) com lag fixo; cupom mes-cheio 94,888 bps confere. Candidato a decode via relatorios mensais do agente fiduciario. |
| FGTS BB | TR | 636,0009 | cupom publicado salta para ~134 bps/mês constantes em 2017-04..2025-08 (engine: 62,1 bps = (1+7,7151%)^(1/12)) — convenção não decodificada; possível série subordinada com incorporação. Backlog. |
| FGTS CAIXA | TR | 664,3230 | cupom implícito ~dc/365 e saldo diverge estruturalmente (engine 462M vs fonte 179M em 2023): convenção Riza (juros e amortização FGTS) não decodificada. Backlog — decode pelo roteiro do GUIDELINES. |
Reprodutibilidade
Cada cálculo feito no BRCalc carrega a série de taxas usada e a versão do engine — dá para recalcular idêntico anos depois. E a exportação para Excel sai com as fórmulas vivas, célula a célula, para auditar contra a memória que você recebeu.
vip2026.
Abrir a calculadora