# Financeiro / contas a receber-pagar — armadilhas e opiniões default

| Armadilha | Pergunta | Opinião default da skill |
|---|---|---|
| Competência vs caixa | "O relatório deve refletir quando a obrigação foi gerada (competência) ou quando o dinheiro efetivamente entrou/saiu (caixa)?" | Default: não são dois filtros do mesmo fato — são dois GRAINS e dois fatos diferentes (`fact_contas_competencia` e `fact_movimento_caixa`). Modelar como um fato só com uma coluna "regime" produz uma métrica que ninguém consegue reconciliar com o financeiro, porque competência e caixa nem sempre têm a mesma contagem de linhas. |
| Saldo em aberto | "O saldo de uma conta num dia é a soma de tudo que está pendente até aquela data?" | Default: saldo é sempre semi-aditivo — nunca `SUM` ao longo do tempo (soma o mesmo saldo repetido em cada corte e dobra a contagem). Sempre snapshot de uma data (LAST) ou agregação explícita por corte, igual a estoque e MRR. |
| Baixa parcial | "Um título pode ser pago em partes? O fato registra o título inteiro ou cada baixa?" | Default: grain no nível de BAIXA (evento de pagamento), não no título — grain de título perde o histórico de parcelas e impede reconstruir o saldo por soma incremental das baixas, que é o teste de aditividade mais simples de validar. |
| Atraso / inadimplência | "'Em atraso' é calculado dinamicamente (hoje − vencimento) ou vem de uma flag gravada no sistema de origem?" | Default: calcule dinamicamente na camada de métrica (idade do título na data de referência do dashboard) — herdar uma flag do ERP costuma ficar desatualizada e congela um estado que devia ser recalculado a cada consulta. |
| Multa e juros de atraso | "Juros e multa entram na métrica de receita principal ou são conta separada?" | Default: são naturezas de receita distintas (operacional vs financeira) — somar as duas na mesma métrica infla o indicador principal e esconde a análise de rentabilidade real da operação, que é exatamente o tipo de mistura que uma métrica bem definida deveria evitar. |
| Duplicidade entre sistemas | "Um mesmo pagamento pode aparecer registrado em mais de um sistema (ERP e extrato bancário)?" | Default: sem uma chave única de conciliação entre as duas fontes, duplicidade é o risco nº1 deste vertical — o grain check da Fase 1 (`fonte-profiling.md`, query 2) é ainda mais crítico aqui do que nos demais, porque o erro não aparece como número errado, aparece como número certo vindo de duas linhas. |

## Perguntas de abertura recomendadas

1. "Este dashboard é sobre competência (obrigação gerada) ou caixa (dinheiro que entrou/saiu)?"
2. "O saldo em aberto de hoje é recalculado do zero, ou existe uma flag de status no sistema que pode estar desatualizada?"
3. "Existe risco de o mesmo pagamento aparecer em mais de uma fonte que vamos consumir?"
