Salta al contenuto principale

Contabilità per Studi di Audit del Codice: Come Registrare Audit Statici, Correzione a Ore e Abbonamenti SAST Rivenduti

Pubblicato Ultimo aggiornamento 11 minuti di letturaMike ThriftMike Thrift
Contabilità per Studi di Audit del Codice: Come Registrare Audit Statici, Correzione a Ore e Abbonamenti SAST Rivenduti

Chiedete al fondatore di un piccolo studio di audit del codice qual è il loro modello di ricavo, e di solito otterrete una pausa confusa prima di "beh... entrambi?" Un'azienda di audit di analisi statica raramente sceglie una sola strada. Un cliente paga 6.500 perunarevisionestaticadiduesettimanediunavecchiaappRails.Unaltropaga40per una revisione statica di due settimane di una vecchia app Rails. Un altro paga 40 per sviluppatore al mese per un abbonamento SAST in corso che lo studio rivende e configura. Un terzo paga una tariffa personalizzata per un "pacchetto di audit completo" che combina analisi statica, test dinamici e lavoro di correzione fatturato a ore. Tre affari, tre diverse regole di riconoscimento dei ricavi e un piano dei conti che di solito non è costruito per distinguerli.

Questa è una forma davvero comune per le aziende di servizi tecnici in questo momento: le società di consulenza sulla sicurezza e sulla qualità del codice che sono iniziate come puri studi di consulenza stanno sempre più rivendendo o white-labeling strumenti SAST (Static Application Security Testing) insieme al loro lavoro di audit, perché i clienti vogliono sia un'opinione una tantum sia uno scanner continuo nella CI. Il problema contabile che questo crea è abbastanza specifico da essere trascurato dalla maggior parte dei consigli generici per "società di consulenza".

I Tre Flussi di Ricavo Nascosti in un'unica Attività

Prima di poter registrare correttamente qualsiasi cosa, è necessario separare ciò che si sta effettivamente vendendo, perché ognuno si comporta diversamente nei libri contabili.

1. Audit statici (perimetro definito, puntuale). Una revisione del codice sorgente — conformità agli standard, controlli delle dipendenze e della pipeline CI/CD, revisione dell'architettura — ha in genere un prezzo compreso tra 5.000 e 8.000 $ per un perimetro definito. Questo è un prodotto discreto: un rapporto, consegnato in una data, con una fine definita.

2. Audit dinamici e pacchetti di audit completi (perimetro definito o a ore, spesso basati su tappe). Il test del comportamento del sistema sotto carico o in condizioni avverse costa tra 8.000 e 16.000 $, e un "pacchetto di audit completo" che combina statico, dinamico e correzione è solitamente quotato su misura e fatturato in base a tappe o ore. L'anzianità del revisore, la dimensione del codebase e la qualità della documentazione, l'ambito normativo (gli audit sanitari e finanziari richiedono una tracciatura dei dati e una verifica delle autorizzazioni più approfondite) e la pressione delle scadenze influenzano tutti il prezzo, il che significa che due audit con la stessa etichetta possono avere strutture di costo radicalmente diverse al loro interno.

3. Abbonamenti SAST (ricorrenti, rivenduti o a margine di rivenditore). Il lato strumentale di questo mercato si è consolidato attorno a prezzi SaaS per utente: piattaforme ampie che raggruppano SAST, SCA, scansione dei segreti e controlli IaC partono da circa 15-20 perutentealmese,strumentipuntualiperunasingolacapacitaˋsiattestanonellintervallo1015per utente al mese, strumenti puntuali per una singola capacità si attestano nell'intervallo 10-15/utente, e i contratti enterprise dei grandi fornitori possono superare i 100.000 $ all'anno per poche centinaia di applicazioni. Quando uno studio di audit rivende o raggruppa una di queste piattaforme, configurandola, ottimizzando le regole di falsi positivi e trattenendo un margine sull'abbonamento, quel ricavo è ricorrente, non basato su progetti, e può essere o meno il vostro ricavo a seconda che agiate come principale o agente nel contratto.

Raggruppare tutti e tre in "ricavi da consulenza" è esattamente il modo in cui un conto economico smette di dirvi qualcosa di utile sull'attività.

Perché il Riconoscimento dei Ricavi è Effettivamente Diverso

Secondo l'ASC 606 (o i suoi equivalenti internazionali), la questione contabile è quando il controllo del bene o servizio promesso viene trasferito al cliente — e la risposta è diversa per ciascuno dei flussi sopra descritti.

  • Un audit statico o dinamico a perimetro definito viene solitamente riconosciuto puntualmente, quando il rapporto viene consegnato e accettato — o, se fatturato in base a tappe, man mano che ogni tappa viene completata. Se fatturate il 50% in anticipo e il 50% alla consegna, il deposito è una passività (ricavo non maturato) fino alla consegna del rapporto, non un ricavo il giorno in cui l'assegno viene incassato.
  • Il lavoro di correzione e implementazione a ore viene riconosciuto man mano che le ore vengono prestate, il che significa che è necessario un meccanismo per le ore non fatturate — lavoro svolto in un periodo ma non ancora fatturato — che appaia come un'attività (credito non fatturato / WIP) piuttosto che scomparire fino alla data di fatturazione. Questa è la singola distorsione più comune nella contabilità basata su progetti: un'azienda sembra non redditizia nel mese di fatturazione e selvaggiamente redditizia il mese successivo, puramente a causa del ritardo di fatturazione, non perché il lavoro sottostante sia cambiato.
  • Un abbonamento SAST rivenduto viene riconosciuto ratealmente durante il periodo di abbonamento — mensilmente o annualmente, corrispondendo al periodo in cui il cliente ha effettivamente accesso allo strumento. Se siete il rivenditore e agite come agente (organizzando affinché il fornitore fornisca il software) piuttosto che come principale (impegnandovi a fornire voi stessi il software), dovreste riconoscere solo il vostro margine, non il prezzo lordo dell'abbonamento — registrare l'intero importo del pass-through come ricavo quando siete economicamente solo un canale di fatturazione gonfia i vostri ricavi lordi e dichiara in modo errato la vostra reale percentuale di margine.

Ottenere la corretta distinzione tra principale e agente è importante al di là della correttezza GAAP: è la differenza tra un conto economico che mostra 180.000 diricavidaabbonamentoconunmarginedell8di ricavi da abbonamento con un margine dell'8% e uno che mostra correttamente 14.400 di ricavi da commissione con un margine del 100%. Finanziatori, assicuratori e chiunque costruisca un multiplo di valutazione basato sui vostri numeri leggeranno questi due conti economici in modo molto diverso — e solo uno di essi è vicino alla verità.

Il Piano dei Conti Pratico

Uno studio di audit del codice che gestisce tutti e tre i flussi di ricavo trae vantaggio dalla suddivisione dei ricavi (e spesso del COGS) a livello di conto, non solo etichettando le cose in un foglio di calcolo a posteriori:

  • Income:Audits:Static
  • Income:Audits:Dynamic
  • Income:Consulting:Remediation (a ore)
  • Income:Subscriptions:SAST-Margin (solo la vostra commissione/margine, se siete agente)
  • Income:Subscriptions:SAST-Gross (se siete principale e rivendete l'intero contratto)
  • Liabilities:UnearnedRevenue:Audits
  • Assets:UnbilledReceivables:Consulting

È qui che la contabilità in testo semplice e con controllo versione dà il meglio di sé per un'azienda di servizi tecnici — gli stessi ingegneri che configurano i ruleset SAST per i clienti sono di solito a proprio agio nel rivedere un .beancount diff del libro mastro, e una cronologia Git sui vostri libri contabili vi dà la stessa verificabilità che vendete ai vostri stessi clienti. È un po' ironico che un negozio di audit del codice mantenga le proprie registrazioni finanziarie in un formato opaco e non diffabile.

Dove le Aziende Sbagliano Realmente

Alcuni modelli si ripresentano ripetutamente in questo modello di business:

  1. Registrare i depositi degli abbonamenti come ricavi immediatamente. Se un cliente paga in anticipo per una licenza SAST annuale che state rivendendo, quel denaro è una passività fino alla scadenza del periodo di copertura — riconoscerlo tutto al primo mese gonfia il trimestre in cui cade e sottostima ogni trimestre successivo.
  2. Non tracciare mai le ore non fatturate. Il lavoro di correzione a ore svolto vicino alla fine di un mese ma fatturato il mese successivo dovrebbe comunque apparire come un'attività nel periodo corretto, altrimenti i vostri margini sembreranno oscillare selvaggiamente senza una ragione operativa.
  3. Trattare il pass-through del rivenditore come ricavo lordo. Come sopra — questo gonfia i ricavi lordi in un modo che sembra buono fino a quando il team di due diligence di un acquirente (ironicamente, facendo lo stesso tipo di due diligence tecnica che la vostra azienda vende) non lo analizza e riclassifica l'attività.
  4. Nessuna tracciatura separata per gli incarichi in settori regolamentati. Gli audit sanitari e finanziari comportano un ambito materialmente maggiore (tracciatura dei dati, verifica del controllo degli accessi) e di solito una maggiore esposizione alla responsabilità — se i vostri libri contabili non separano quei ricavi e i relativi costi, non potete dire se i vostri incarichi ad alta conformità sono effettivamente redditizi rispetto alle vostre revisioni statiche generali.

Un Esempio Pratico: Una Fattura, Tre Registrazioni Diverse

Supponiamo che il vostro studio firmi un cliente a marzo per un audit statico di 7.000 (50(50% di deposito, 50% alla consegna), 20 ore di correzione a ore a 175/ora da fatturare ad aprile, e un abbonamento SAST rivenduto a 18 /utente/meseperilloroteamdi40sviluppatori,doveilvostrostudiotrattieneunmarginedi4/utente/mese per il loro team di 40 sviluppatori, dove il vostro studio trattiene un margine di 4 /utente e passa il resto al fornitore.

  • Deposito di marzo (3.500 $): Dare Cassa, Avere Liabilities:UnearnedRevenue:Audits. Nessun ricavo ancora — non avete consegnato il rapporto.
  • Consegna del rapporto ad aprile: Dare Liabilities:UnearnedRevenue:Audits e i restanti 3.500 dicrediti,AvereIncome:Audits:Staticperlinteroimportodi7.000di crediti, Avere `Income:Audits:Static` per l'intero importo di 7.000. Il ricavo si concretizza nel mese in cui il lavoro è stato effettivamente accettato, non nel mese in cui uno degli assegni è stato incassato.
  • Ore di correzione di marzo (lavorate ma non ancora fatturate): Se 8 delle 20 ore sono state svolte a marzo ma la fattura viene emessa ad aprile, dare Assets:UnbilledReceivables:Consulting e avere Income:Consulting:Remediation per quelle 8 ore (1.400 )amarzo;lerestanti12ore(2.100) a marzo; le restanti 12 ore (2.100 ) vengono registrate normalmente ad aprile quando sia il lavoro che la fattura cadono nello stesso mese.
  • Abbonamento SAST mensile: Se agite come agente, solo il margine mensile di 160 (40utenti×4(40 utenti × 4) viene registrato in Income:Subscriptions:SAST-Margin; il pass-through di 720 (40×18(40 × 18) transita attraverso un conto di compensazione contro ciò che dovete al fornitore, senza mai toccare il vostro conto economico. Se il vostro contratto invece vi rende principale — siete voi la parte che promette il software al cliente, anche se un fornitore lo fornisce dietro le quinte — l'intero importo di 720 vienericonosciutocomericavoconilcostodelfornitoredi560viene riconosciuto come ricavo con il costo del fornitore di 560 registrato come COGS, arrivando allo stesso risultato finale ma a numeri lordi molto diversi (e, se non siete principale, materialmente fuorvianti).

Tre transazioni, tre diverse regole di tempistica, e — criticamente — la seconda è la ragione per cui molti piccoli studi di audit sembrano aver avuto un aprile difficile quando nulla dell'attività è effettivamente cambiato. La registrazione delle ore non fatturate è ciò che mantiene onesti i numeri di marzo.

Perché Questo Conta Più di Prima

La domanda per il servizio sottostante è in crescita per una ragione che vale la pena notare: gli acquirenti che fanno due diligence tecnica trattano sempre più il codice e la postura di sicurezza come elementi materiali per i termini dell'affare, non una formalità — i risultati tecnici spostano di routine le discussioni di valutazione del 15-30%, e una quota significativa delle sinergie previste dall'affare ora dipende dalla qualità dell'integrazione che un audit del codice è ciò che effettivamente porta alla luce prima della chiusura. Se la vostra azienda viene un giorno acquisita, ricapitalizzata o inserita in un più ampio percorso di due diligence, la prima cosa che il team finanziario dell'acquirente farà è esattamente ciò che il vostro team di audit fa con i codebase dei clienti: smontare il libro mastro e verificare se i numeri reggono a un esame approfondito. Un'azienda con un piano dei conti che separa già i ricavi a tariffa fissa, a ore e da margine di abbonamento risponde a quella domanda in minuti invece che in settimane.

Tenete i Vostri Libri Contabili Puliti Quanto il Codice che Auditate

Gestire un'attività ibrida di audit e abbonamento significa che il vostro riconoscimento dei ricavi ha tre regole diverse che vivono sotto lo stesso tetto, e i fogli di calcolo raramente impongono questa distinzione in modo coerente nel tempo. Beancount.io offre una contabilità in testo semplice che è trasparente, con controllo versione e facile da confrontare — un adattamento naturale per un team tecnico che già pensa in termini di storia verificabile. Iniziate gratuitamente e tenete le vostre registrazioni finanziarie rigorose quanto gli audit che vendete.

Condividi questo articolo