Publicado 10 de octubre de 2026 · 8 min de lectura

NetSuite ARM vs Soluqube: redondeo en calendarios ASC 606

Por qué el redondeo por período deja centavos residuales en calendarios lineales de varios años, cómo probar cualquier sistema y cómo lo corrige una regla de período terminal.

Soluqube Editorial
Contenido técnico contable

¿De dónde salen los centavos residuales?

Si se divide un contrato de $100,000 entre 36 períodos mensuales, el importe mensual ideal no termina:

100,000 / 36 = 2,777.7777777...

Si cada asiento mensual se redondea al centavo ($2,777.78), los 36 asientos suman más que el contrato:

$2,777.78 × 36 = $100,000.08

Son ocho centavos de ingresos sin contrato que los respalde. Proviene de la regla de redondeo, no de un producto en particular: lo mismo ocurre en una hoja de cálculo, un ERP o un script propio que redondea cada período de forma independiente. La forma en que una configuración dada de NetSuite Advanced Revenue Management (ARM) lo maneja depende de su configuración, así que pruébela en lugar de suponerlo.


¿Cómo crece el remanente en contratos con múltiples elementos?

Aparece en cada paso que divide:

  1. Asignación: un paquete de $150,000 repartido entre suscripción, implementación y soporte por SSP relativo rara vez da centavos enteros por obligación.
  2. Calendarización: cada obligación se divide luego en su propio período de servicio (36 meses de forma lineal, un hito, 12 meses de soporte).
  3. Modificaciones: si un calendario se reconstruye tras una enmienda sin una regla de remanente, los centavos sobrantes del primer calendario no pasan al nuevo.

Los importes siguen siendo pequeños, pero dejan saldos diferidos que no llegan a cero, y cada uno es una partida conciliatoria que explicar en el cierre.


Cuatro verificaciones para cualquier calendario

Ejecútelas igual sobre una exportación de plan de ingresos de ARM o sobre una hoja de cálculo:

  1. Las asignaciones entre obligaciones suman el precio de la transacción, al centavo.
  2. El calendario de cada obligación suma su asignación.
  3. El saldo diferido de cada obligación es $0.00 después de su último período.
  4. Volver a ejecutar las mismas entradas da los mismos centavos.

Si alguna verificación falla, documente una regla de remanente y aplíquela de forma consistente. La guía de política del centavo residual tiene una redacción ilustrativa.


NetSuite ARM vs Soluqube

Resuelven problemas distintos. ARM es el módulo de ingresos de un ERP; Soluqube es un motor independiente para la asignación, el calendario y la evidencia de los contratos que usted quiere defender.

DimensiónNetSuite ARMSoluqube
AlcanceMódulo de ingresos del ERP con facturación y contabilización en el libro mayorAsignación, calendario y papel de trabajo de evidencia; solo exportación, sin sincronización en vivo con el ERP
Regla de redondeoDepende de la configuración; documente lo que hace la suyaTrunca cada período; el último período absorbe el remanente
Evidencia de cláusulasCampos de memorando y referenciaPágina, extracto textual y resaltado de línea por obligación
Modificaciones del contratoSe manejan en el flujo de trabajo del ERPAún no automatizadas (en la hoja de ruta)
GST de Ind AS 115Mediante la configuración de impuestosGST aislado antes de la asignación en contratos en INR
SalidaAsientos en el libro mayor e informesExcel/CSV que usted revisa y contabiliza, con hash SHA-256

¿Cómo funciona la absorción del remanente en el período terminal?

Dos mecanismos, ambos lo bastante simples para reejecutarlos a mano.

1. Importes enteros

Los importes se mantienen como enteros a 10^6 unidades por dólar y se redondean a centavos, por lo que no hay fracción binaria que redondear:

const SCALE = 10n ** 6n;
const total = 100_000n * SCALE;   // $100,000.00
const months = 36n;

2. El último período toma el remanente

Cada período recibe el importe truncado; el último recibe lo que queda:

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

El calendario suma siempre el valor del contrato. Pruebe otros importes en el simulador de calendarios.


Qué entregar al auditor

  • Un calendario que cuadra: las asignaciones y cada período suman el precio de la transacción, y el saldo diferido termina en $0.00.
  • Evidencia de cláusulas: la página y el extracto detrás de cada obligación y precio.
  • Un papel de trabajo con hash: hashes SHA-256 y una raíz de Merkle en la exportación, para que una nueva ejecución pueda compararse.

Los centavos son la parte fácil. El juicio que prueban los auditores es el SSP detrás de la asignación; véase el ejemplo de asignación del SSP. Para procesar sus propios contratos, véase el programa de socios de diseño (design partner).

Etiquetas contables:NetSuite ARMASC 606Rounding PolicyRevenue SchedulesExternal Audit

Preguntas frecuentes

¿Por qué los calendarios de ingresos pueden diferir en unos centavos del valor del contrato?

Porque cada período se redondea al centavo por separado. $100,000 / 36 son $2,777.777...; redondear cada mes a $2,777.78 suma $100,000.08. La diferencia proviene de la regla de redondeo, sin importar qué sistema haga la aritmética. Una regla escrita que asigne el remanente a un período lo elimina.

¿Cómo maneja Soluqube el remanente?

Soluqube usa aritmética entera (BigInt) a escala 10^6, redondeada a centavos, y absorción del remanente en el período terminal. En el último período reconoce la contraprestación total menos todo lo reconocido antes, de modo que el calendario cuadra exactamente con el valor del contrato.

¿Les importan a los auditores unos pocos centavos?

No como un error de la información: unos pocos centavos están muy por debajo de la materialidad. El costo es mecánico: un saldo diferido que nunca llega a cero requiere un ajuste manual de cuadre, y cada ajuste necesita una explicación. Los auditores dedican su tiempo al juicio sobre el SSP, las modificaciones, el corte de operaciones y los controles; un calendario que cuadra al centavo elimina una distracción.