De onde vêm os centavos residuais?
Divida um contrato de $100,000 em 36 períodos mensais e o valor mensal ideal não tem fim:
100,000 / 36 = 2,777.7777777...
Arredonde cada lançamento mensal ao centavo ($2,777.78) e os 36 lançamentos somam mais do que o contrato:
$2,777.78 × 36 = $100,000.08
São oito centavos de receita sem contrato por trás. Isso vem da regra de arredondamento, não de um produto específico: o mesmo ocorre em uma planilha, em um ERP ou em um script próprio que arredonda cada período de forma independente. Como uma determinada configuração do NetSuite Advanced Revenue Management (ARM) trata isso depende de sua parametrização, portanto teste em vez de presumir.
Como o resto cresce em contratos com múltiplos elementos?
Ele aparece em cada etapa que divide:
- Alocação: um pacote de $150,000 dividido entre assinatura, implementação e suporte pelo SSP relativo raramente resulta em centavos inteiros por obrigação.
- Cronograma: cada obrigação é então dividida ao longo de seu próprio período de serviço (36 meses de forma linear, um marco, 12 meses de suporte).
- Modificações: se um cronograma é refeito após um aditivo sem uma regra de resto, os centavos que sobraram do primeiro cronograma não são levados para o novo.
Os valores continuam pequenos, mas deixam saldos diferidos que não chegam a zero, e cada um é um item de conciliação a explicar no fechamento.
Quatro verificações para qualquer cronograma
Execute-as tanto em uma exportação de plano de receita do ARM quanto em uma planilha:
- As alocações entre as obrigações somam o preço da transação, ao centavo.
- O cronograma de cada obrigação soma a sua alocação.
- O saldo diferido de cada obrigação é $0.00 após o último período.
- Reexecutar as mesmas entradas dá os mesmos centavos.
Se qualquer verificação falhar, escreva uma regra de resto e aplique-a de forma consistente. O guia da política do centavo residual traz um texto ilustrativo.
NetSuite ARM vs Soluqube
Resolvem problemas diferentes. O ARM é o módulo de receita de um ERP; a Soluqube é um motor independente para a alocação, o cronograma e a evidência dos contratos que você quer defender.
| Dimensão | NetSuite ARM | Soluqube |
|---|---|---|
| Escopo | Módulo de receita do ERP com faturamento e lançamento no razão geral (GL) | Alocação, cronograma e papel de trabalho de evidência; apenas exportação, sem sincronização ao vivo com ERP |
| Regra de arredondamento | Depende da configuração; documente o que a sua faz | Trunca cada período para baixo; o último período absorve o resto |
| Evidência de cláusula | Campos de memorando e referência | Página, trecho literal e destaque de linha por obrigação |
| Modificações de contrato | Tratadas no fluxo de trabalho do ERP | Ainda não automatizadas (no roteiro de desenvolvimento) |
| GST da Ind AS 115 | Via configuração de tributos | GST isolado antes da alocação em contratos em INR |
| Saída | Lançamentos no GL e relatórios | Excel/CSV que você revisa e lança, com hash SHA-256 |
Como funciona a absorção do resto no período terminal?
Dois mecanismos, ambos simples o bastante para serem refeitos à mão.
1. Valores inteiros
Os valores são mantidos como inteiros a 10^6 unidades por dólar e arredondados ao centavo, de modo que não há fração binária a arredondar:
const SCALE = 10n ** 6n;
const total = 100_000n * SCALE; // $100,000.00
const months = 36n;
2. O último período fica com o resto
Cada período recebe o valor truncado para baixo; o último recebe o que sobrar:
function finalPeriod(total: bigint, perPeriod: bigint, periods: bigint): bigint {
return total - perPeriod * (periods - 1n); // absorbs the remainder
}
// 35 × $2,777.77 + $2,778.05 = $100,000.00
O cronograma soma o valor do contrato todas as vezes. Experimente outros valores no simulador de cronograma.
O que entregar ao auditor
- Um cronograma que fecha: as alocações e todos os períodos somam o preço da transação, e o saldo diferido termina em $0.00.
- Evidência de cláusula: a página e o trecho por trás de cada obrigação e preço.
- Um papel de trabalho com hash: hashes SHA-256 e uma raiz de Merkle na exportação, para que uma nova execução possa ser comparada.
Os centavos são a parte fácil. O julgamento que os auditores testam é o SSP por trás da alocação; veja o exemplo de alocação do SSP. Para rodar seus próprios contratos, veja o programa de parceiros de design (design partner).
Perguntas frequentes
Por que os cronogramas de receita podem ficar alguns centavos diferentes do valor do contrato?
Porque cada período é arredondado ao centavo isoladamente. $100,000 / 36 é $2,777.777...; arredondar cada mês para $2,777.78 soma $100,000.08. A diferença vem da regra de arredondamento, seja qual for o sistema que faz a aritmética. Uma regra escrita que atribui o resto a um período a elimina.
Como a Soluqube trata o resto?
A Soluqube usa aritmética de inteiros (BigInt) na escala 10^6, arredondada ao centavo, e absorção do resto no período terminal. No último período, ela reconhece a contraprestação total menos tudo o que foi reconhecido antes, de modo que o cronograma fecha exatamente com o valor do contrato.
Os auditores se importam com alguns centavos?
Não como distorção: alguns centavos estão muito abaixo da materialidade. O custo é mecânico: um saldo diferido que nunca chega a zero exige um ajuste manual de acerto, e todo ajuste precisa de uma explicação. Os auditores gastam seu tempo com o julgamento do SSP, modificações, corte (cutoff) e controles; um cronograma que fecha ao centavo remove uma distração.