Saltar al contenido principal

Contabilidad para Firmas de Auditoría de Código: Cómo Registrar Auditorías Estáticas, Remediación por Hora y Suscripciones SAST Revendidas

Publicado Actualizado por última vez 11 min de lecturaMike ThriftMike Thrift
Contabilidad para Firmas de Auditoría de Código: Cómo Registrar Auditorías Estáticas, Remediación por Hora y Suscripciones SAST Revendidas

Pregúntale al fundador de una pequeña firma de auditoría de código cuál es su modelo de ingresos y, por lo general, obtendrás una pausa confundida antes de un "bueno... ¿ambos?" Un taller de auditoría de análisis estático rara vez elige un único camino. Un cliente paga $6,500 por una revisión estática de dos semanas de una aplicación Rails heredada. Otro paga $40 por desarrollador al mes por una suscripción SAST continua que la firma revende y configura. Un tercero paga una tarifa personalizada por un "paquete de auditoría completo" que combina análisis estático, pruebas dinámicas y trabajo de remediación facturado por hora. Tres acuerdos, tres reglas diferentes de reconocimiento de ingresos y un plan de cuentas que, por lo general, no está diseñado para distinguirlos.

Esta es una forma genuinamente común para las empresas de servicios técnicos en la actualidad: las consultorías de seguridad y calidad de código que comenzaron como simples talleres de proyectos están revendiendo o utilizando la marca blanca de herramientas SAST (Pruebas Estáticas de Seguridad de Aplicaciones) junto con su trabajo de auditoría, porque los clientes quieren tanto una opinión única como un escáner continuo en CI. El problema contable que esto crea es lo suficientemente específico como para que la mayoría de los consejos generales para "firmas de consultoría" lo pasen por alto.

Las Tres Fuentes de Ingresos Ocultas en un Solo Negocio

Antes de que puedas registrar algo correctamente, necesitas separar lo que realmente estás vendiendo, porque cada uno se comporta de manera diferente en los libros contables.

1. Auditorías estáticas (alcance fijo, en un momento puntual). Una revisión de código fuente — cumplimiento de estándares, verificaciones de dependencias y pipeline CI/CD, revisión de arquitectura — suele tener un precio en el rango de $5,000–$8,000 por un alcance definido. Esto es un entregable discreto: un informe, entregado en una fecha, con un final definido.

2. Auditorías dinámicas y paquetes de auditoría completos (alcance fijo o por hora, a menudo basados en hitos). Probar el comportamiento del sistema bajo carga o condiciones adversas cuesta entre $8,000 y $16,000, y un "paquete de auditoría completo" que combina estático, dinámico y remediación suele cotizarse de forma personalizada y facturarse contra hitos u horas. La antigüedad del auditor, el tamaño del código base y la calidad de la documentación, el alcance regulatorio (las auditorías de atención médica y finanzas requieren un rastreo de datos y verificación de permisos más profundos) y la presión del cronograma influyen en el precio, lo que significa que dos auditorías con la misma etiqueta pueden tener estructuras de costos muy diferentes en su interior.

3. Suscripciones SAST (recurrentes, revendidas o con margen de reventa). El lado de las herramientas de este mercado se ha consolidado en torno a precios SaaS por usuario: las plataformas amplias que combinan SAST, SCA, escaneo de secretos y verificaciones de IaC comienzan alrededor de $15–20 por usuario al mes, las herramientas específicas para una sola capacidad se sitúan en el rango de $10–15/usuario, y los contratos empresariales de los grandes proveedores pueden superar los $100,000 al año para unos cientos de aplicaciones. Cuando una firma de auditoría revende o agrupa una de estas plataformas — configurándola, ajustando las reglas de falsos positivos y obteniendo un margen sobre la suscripción — ese ingreso es recurrente, no basado en proyectos, y puede o no ser tu ingreso dependiendo de si actúas como principal o agente en el contrato.

Agrupar los tres en "ingresos de consultoría" es exactamente cómo un P&L deja de decirte algo útil sobre el negocio.

Por Qué el Reconocimiento de Ingresos Realmente Difiere

Bajo la ASC 606 (o sus equivalentes internacionales cercanos), la cuestión contable es cuándo se transfiere el control del bien o servicio prometido al cliente — y la respuesta es diferente para cada flujo anterior.

  • Una auditoría estática o dinámica de alcance fijo generalmente se reconoce en el momento puntual de la entrega y aceptación del informe — o, si se factura contra hitos, a medida que se completa cada hito. Si estás facturando el 50% por adelantado y el 50% a la entrega, el depósito es un pasivo (ingreso no devengado) hasta que se entregue el informe, no un ingreso el día que se cobra el cheque.
  • El trabajo de remediación e implementación por hora se reconoce a medida que se realizan las horas, lo que significa que necesitas un mecanismo para el tiempo no facturado — trabajo realizado en un período pero aún no facturado — que aparezca como un activo (cuenta por cobrar no facturada / WIP) en lugar de desaparecer hasta la fecha de la factura. Esta es la distorsión más común en la contabilidad basada en proyectos: una firma parece no rentable en el mes de facturación y enormemente rentable al siguiente, únicamente debido al desfase de facturación, no porque el trabajo subyacente haya cambiado.
  • Una suscripción SAST revendida se reconoce de forma prorrateada durante el plazo de la suscripción — mensual o anualmente, coincidiendo con el período en que el cliente tiene acceso real a la herramienta. Si eres el revendedor y actúas como agente (organizando que el proveedor proporcione el software) en lugar de principal (prometiendo proporcionar el software tú mismo), solo debes reconocer tu margen, no el precio bruto de la suscripción — registrar el monto total de transferencia como ingreso cuando económicamente eres solo un conducto de facturación exagera tu línea superior y tergiversa tu porcentaje de margen real.

Acertar con la distinción principal vs agente importa más allá de la corrección GAAP: es la diferencia entre un P&L que muestra $180,000 en ingresos por suscripción con un margen del 8% y uno que muestra correctamente $14,400 en ingresos por comisión con un margen del 100%. Los prestamistas, aseguradoras y cualquier persona que construya un múltiplo de valoración sobre tus números leerán esos dos P&L de manera muy diferente, y solo uno de ellos se acerca a la realidad.

El Plan de Cuentas Práctico

Una firma de auditoría de código que ejecuta los tres flujos de ingresos se beneficia de dividir los ingresos (y a menudo el COGS) a nivel de cuenta, no solo etiquetando cosas en una hoja de cálculo después del hecho:

  • Income:Audits:Static
  • Income:Audits:Dynamic
  • Income:Consulting:Remediation (por hora)
  • Income:Subscriptions:SAST-Margin (solo tu comisión/margen, si eres un agente)
  • Income:Subscriptions:SAST-Gross (si eres el principal y revendes el contrato completo)
  • Liabilities:UnearnedRevenue:Audits
  • Assets:UnbilledReceivables:Consulting

Aquí es donde la contabilidad en texto plano y controlada por versiones demuestra su valor para una empresa de servicios técnicos: los mismos ingenieros que configuran los conjuntos de reglas SAST para los clientes suelen sentirse cómodos revisando un diff de un libro mayor .beancount, y un historial de Git en tus libros te brinda la misma auditabilidad que le vendes a tus propios clientes. Es un poco irónico que un taller de auditoría de código mantenga sus propios registros financieros en un formato opaco y no diferenciable.

Dónde se Equivocan las Firmas Realmente

Algunos patrones aparecen repetidamente en este modelo de negocio:

  1. Registrar los depósitos de suscripción como ingresos de inmediato. Si un cliente paga por adelantado una licencia SAST anual que estás revendiendo, ese efectivo es un pasivo hasta que finalice el período de cobertura; reconocerlo todo en el primer mes exagera el trimestre en el que cae y subestima todos los trimestres siguientes.
  2. Nunca realizar un seguimiento de las horas no facturadas. El trabajo de remediación por horas realizado cerca del final de un mes pero facturado al mes siguiente aún debe aparecer como un activo en el período correcto, o tus márgenes parecerán fluctuar drásticamente sin una razón operativa.
  3. Tratar el pase de facturación del revendedor como ingreso bruto. Como se mencionó anteriormente, esto infla las cifras de la línea superior de una manera que se ve bien hasta que el equipo de diligencia debida de un comprador (irónicamente, haciendo el mismo tipo de diligencia técnica que vende tu firma) lo deshace y reevalúa el negocio.
  4. No realizar un seguimiento separado para compromisos en industrias reguladas. Las auditorías de atención médica y servicios financieros conllevan un alcance materialmente mayor (rastreo de datos, verificación de control de acceso) y, por lo general, una mayor exposición a responsabilidades; si tus libros no separan esos ingresos y su costo asociado, no puedes saber si tus compromisos con alto cumplimiento normativo son realmente rentables en comparación con tus revisiones estáticas generales.

Un Ejemplo Práctico: Una Factura, Tres Registros Diferentes

Supongamos que tu firma firma un cliente en marzo para una auditoría estática de $7,000 (50% de depósito, 50% a la entrega), 20 horas de remediación por hora a $175/hora para facturar en abril, y una suscripción SAST revendida a $18/asiento/mes para su equipo de 40 desarrolladores, donde tu firma se queda con un margen de $4/asiento y pasa el resto al proveedor.

  • Depósito de marzo ($3,500): Débito a Efectivo, crédito a Liabilities:UnearnedRevenue:Audits. Aún no hay ingresos, no has entregado el informe.
  • Entrega del informe en abril: Débito a Liabilities:UnearnedRevenue:Audits y a los $3,500 restantes por cobrar, crédito a Income:Audits:Static por los $7,000 completos. Los ingresos se registran en el mes en que el trabajo fue realmente aceptado, no en el mes en que se cobró cualquiera de los cheques.
  • Horas de remediación de marzo (trabajadas pero aún no facturadas): Si 8 de las 20 horas se realizaron en marzo pero la factura se emite en abril, débito a Assets:UnbilledReceivables:Consulting y crédito a Income:Consulting:Remediation por esas 8 horas ($1,400) en marzo; las 12 horas restantes ($2,100) se registran normalmente en abril cuando tanto el trabajo como la factura caen en el mismo mes.
  • Suscripción SAST mensual: Si actúas como agente, solo el margen mensual de $160 (40 asientos × $4) se registra en Income:Subscriptions:SAST-Margin; los $720 de pase de facturación (40 × $18) se mueven a través de una cuenta de compensación contra lo que le debes al proveedor, sin tocar nunca tu estado de resultados. Si tu contrato, en cambio, te convierte en el principal (eres la parte que promete el software al cliente, incluso si un proveedor lo entrega internamente), los $720 completos se reconocen como ingresos con el costo del proveedor de $560 registrado como COGS, dando como resultado el mismo resultado final pero cifras de línea superior muy diferentes (y, si no eres el principal, materialmente engañosas).

Tres transacciones, tres reglas de sincronización diferentes y, críticamente, la segunda es la razón por la que muchas pequeñas firmas de auditoría parecen haber tenido un abril difícil cuando nada en el negocio cambió realmente. El registro de horas no facturadas es lo que mantiene honestas las cifras de marzo.

Por Qué Esto Importa Más Que Antes

La demanda del servicio subyacente está creciendo por una razón que vale la pena señalar: los compradores que realizan diligencia debida técnica tratan cada vez más el código y la postura de seguridad como material para los términos del acuerdo, no como una formalidad; los hallazgos técnicos mueven rutinariamente las discusiones de valoración en un 15–30%, y una parte significativa de las sinergias esperadas del acuerdo ahora dependen de la calidad de la integración que una auditoría de código es lo que realmente saca a la luz antes del cierre. Si tu propia firma es adquirida, recapitalizada o llevada a un pipeline de diligencia debida más grande algún día, lo primero que hará el equipo financiero de un comprador es exactamente lo que tu equipo de auditoría hace con los códigos fuente de los clientes: desglosar el libro mayor y verificar si las cifras se mantienen bajo escrutinio. Un negocio con un plan de cuentas que ya separa los ingresos de tarifa fija, por hora y margen de suscripción responde a esa pregunta en minutos en lugar de semanas.

Mantén Tus Propios Libros Tan Limpios Como el Código que Auditas

Dirigir un negocio híbrido de auditoría y suscripción significa que tu reconocimiento de ingresos tiene tres reglas diferentes viviendo bajo el mismo techo, y las hojas de cálculo rara vez hacen cumplir esa distinción de manera consistente a lo largo del tiempo. Beancount.io ofrece contabilidad en texto plano que es transparente, controlada por versiones y fácil de comparar: un ajuste natural para un equipo técnico que ya piensa en términos de historial auditable. Comienza gratis y mantén tus propios registros financieros tan rigurosos como las auditorías que vendes.

Comparte este artículo