Publicado 12 de octubre de 2026 · 9 min de lectura

Errores de redondeo en Excel y ERP en calendarios ASC 606

Por qué los calendarios en hojas de cálculo y ERP terminan unos centavos por encima o por debajo del valor del contrato, por qué es un problema de política de redondeo y cómo una regla de remanente hace que cuadren.

Soluqube Editorial
Contenido técnico contable

El centavo fantasma

Quien haya ejecutado un calendario ASC 606 de varios años en Excel, en un ERP como NetSuite Advanced Revenue Management (ARM) o Workday, o en un script propio, lo ha visto: un contrato de $1,000,000.00 a 36 meses reconoce $1,000,000.08 o $999,999.72, según si cada mes se redondea hacia arriba o hacia abajo.

Unos pocos centavos no son una incorrección. Son una molestia con un costo:

  • El calendario no cuadra con el valor del contrato.
  • El saldo diferido nunca llega a cero, por lo que alguien registra un ajuste de cuadre.
  • Cada ajuste es una partida conciliatoria que hay que explicar al revisor y al auditor.
  • Los ajustes manuales recurrentes generan preguntas sobre los controles en torno al calendario.

¿Qué hace el punto flotante y qué no?

La mayoría del software almacena los números en punto flotante binario, y las fracciones decimales como 0.10 no tienen una forma binaria exacta. Ese error de representación es de aproximadamente una parte en 10^16, demasiado pequeño para modificar una cifra redondeada al centavo. Los centavos provienen de redondear cada período por separado:

// Rounding each month to the cent
const contractTotal = 100000.00;
const periods = 36;
const monthly = contractTotal / periods;          // 2777.777...

let sum = 0;
for (let i = 0; i < 36; i++) {
  sum += Number(monthly.toFixed(2));               // 2777.78 every month
}
console.log(sum.toFixed(2));                       // "100000.08": eight cents over

La aritmética decimal da los mismos ocho centavos. La solución es una regla para el remanente, no solo un tipo de número distinto.


¿Cómo se acumula el redondeo en contratos de múltiples elementos?

Tome un contrato con:

  1. Suscripción a la plataforma ($120,000 durante 12 meses)
  2. Servicios de implementación ($35,000, basados en hitos)
  3. Soporte premium ($15,000 durante 12 meses)
  4. Venta adicional a mitad del plazo ($25,000, prorrateada)

La asignación del SSP relativo divide el precio de la transacción según la participación de cada obligación: asignación a la obligación i = precio de la transacción × SSP de i ÷ suma de todos los SSP. Si cada asignación se redondea al centavo por separado antes de elaborar el calendario, las asignaciones ya pueden diferir del precio de la transacción en un centavo, antes de registrar el primer mes. Luego cada calendario vuelve a dividir. La guía del centavo residual desarrolla un ejemplo con tres obligaciones.


Aritmética de enteros con una regla de remanente

Soluqube calcula en aritmética de enteros (BigInt) a escala 10^6, redondeada a centavos, con absorción del remanente en el último período:

  1. Importes enteros: los valores se escalan por 1,000,000 y se calculan únicamente con aritmética de enteros (BigInt de JavaScript).
  2. Conservar el remanente: para cualquier división P / N, se conservan tanto el cociente Q como el resto R, de modo que P = N × Q + R.
  3. Asignar el remanente: el último período de cada obligación absorbe R.
// Amounts in cents; the final period absorbs the remainder
export function buildSchedule(totalCents: bigint, periods: bigint): bigint[] {
  const base = totalCents / periods;
  const remainder = totalCents % periods;

  const schedule: bigint[] = [];
  for (let i = 0n; i < periods; i++) {
    schedule.push(i === periods - 1n ? base + remainder : base);
  }
  return schedule; // sums to totalCents exactly
}

Pruebe otros valores y plazos de contrato en el simulador de calendarios.


¿Qué cambia en la auditoría?

  • Calendarios que cuadran: las asignaciones y todos los períodos suman el precio de la transacción, y cada obligación termina con un saldo diferido de $0.00.
  • Menos ajustes que explicar: sin ajustes de redondeo al cierre de mes en estos contratos.
  • Resultado recalculable: los mismos datos de entrada dan los mismos centavos, y la exportación incluye hash SHA-256 con una raíz de Merkle para que un revisor pueda confirmar que no ha cambiado.

Los centavos son la parte fácil; los auditores dedican su tiempo al SSP que respalda la asignación. Para una visión sistema por sistema, consulte NetSuite ARM vs Soluqube y el centro de ASC 606, o traiga tres contratos al programa de socios de diseño (design partner).

Etiquetas contables:Revenue RoundingASC 606ExcelNetSuite ARMAudit Workpapers