Aller au contenu principal

Tenue de livres pour les cabinets d'audit de code : comment comptabiliser les audits statiques, la correction horaire et les abonnements SAST revendus

Publié Dernière mise à jour 11 minutes de lectureMike ThriftMike Thrift
Tenue de livres pour les cabinets d'audit de code : comment comptabiliser les audits statiques, la correction horaire et les abonnements SAST revendus

Demandez au fondateur d'un cabinet d'audit de code spécialisé quel est son modèle de revenus, et vous obtiendrez généralement une pause confuse avant « eh bien... les deux ? ». Un atelier d'audit d'analyse statique choisit rarement une seule voie. Un client paie 6 500 pourunereˊvisionstatiquededeuxsemainesduneapplicationRailsheˊriteˊe.Unautrepaie40pour une révision statique de deux semaines d'une application Rails héritée. Un autre paie 40 par développeur et par mois pour un abonnement SAST en cours que le cabinet revend et configure. Un troisième paie un tarif personnalisé pour un « forfait d'audit complet » qui regroupe l'analyse statique, les tests dynamiques et le travail de correction facturé à l'heure. Trois contrats, trois règles de reconnaissance du chiffre d'affaires différentes, et un plan comptable qui n'est généralement pas conçu pour les distinguer.

Il s'agit d'une configuration vraiment courante pour les entreprises de services techniques en ce moment : les cabinets de conseil en sécurité et en qualité de code, qui ont commencé comme des ateliers d'engagement purs, revendent ou marquent de plus en plus en blanc des outils SAST (Static Application Security Testing) parallèlement à leur travail d'audit, car les clients veulent à la fois un avis ponctuel et un scanner continu dans l'IC. Le problème de tenue de livres que cela crée est suffisamment spécifique pour que la plupart des conseils génériques pour les « cabinets de conseil » passent à côté.

Les trois flux de revenus cachés dans une seule entreprise

Avant de pouvoir comptabiliser quoi que ce soit correctement, vous devez séparer ce que vous vendez réellement, car chacun se comporte différemment dans les livres.

1. Audits statiques (à périmètre fixe, à un moment précis). Une revue de code source — conformité aux normes, vérifications des dépendances et du pipeline CI/CD, revue d'architecture — se situe généralement dans la fourchette de prix de 5 000 à 8 000 $ pour un périmètre défini. Il s'agit d'un livrable discret : un rapport, remis à une date, avec une fin définie.

2. Audits dynamiques et forfaits d'audit complets (à périmètre fixe ou horaire, souvent basés sur des jalons). Les tests du comportement du système sous charge ou dans des conditions hostiles coûtent entre 8 000 et 16 000 $, et un « forfait d'audit complet » combinant audit statique, dynamique et correction est généralement estimé sur mesure et facturé en fonction de jalons ou d'heures. L'ancienneté de l'auditeur, la taille du code source et la qualité de la documentation, le périmètre réglementaire (les audits dans le domaine de la santé et de la finance nécessitent un traçage des données et une vérification des autorisations plus approfondis) et la pression des délais font tous varier le prix — ce qui signifie que deux audits portant la même étiquette peuvent avoir des structures de coûts très différentes en dessous.

3. Abonnements SAST (récurrents, revendus ou avec marge de revendeur). Le volet outillage de ce marché s'est consolidé autour d'une tarification SaaS par utilisateur : les plateformes généralistes regroupant SAST, SCA, analyse de secrets et vérifications IaC commencent autour de 15 à 20 parutilisateuretparmois,lesoutilsponctuelspouruneseulecapaciteˊsesituentdanslafourchettede10aˋ15par utilisateur et par mois, les outils ponctuels pour une seule capacité se situent dans la fourchette de 10 à 15/utilisateur, et les contrats d'entreprise des grands fournisseurs peuvent dépasser 100 000 $ par an pour quelques centaines d'applications. Lorsqu'un cabinet d'audit revend ou regroupe l'une de ces plateformes — en la configurant, en ajustant les règles de faux positifs et en prenant une marge sur l'abonnement — ce revenu est récurrent, et non basé sur un projet, et il peut ou non s'agir de votre revenu selon que vous agissez en tant que principal ou agent dans le contrat.

Regrouper les trois dans « revenus de conseil » est exactement la façon dont un compte de résultat cesse de vous dire quoi que ce soit d'utile sur l'entreprise.

Pourquoi la reconnaissance du chiffre d'affaires diffère réellement

Selon l'ASC 606 (ou ses équivalents internationaux proches), la question comptable est quand le contrôle du bien ou du service promis est-il transféré au client — et la réponse est différente pour chacun des flux ci-dessus.

  • Un audit statique ou dynamique à périmètre fixe est généralement comptabilisé à un moment précis, lors de la remise et de l'acceptation du rapport — ou, s'il est facturé en fonction de jalons, comptabilisé à mesure que chaque jalon est atteint. Si vous facturez 50 % d'avance et 50 % à la livraison, l'acompte est un passif (produits constatés d'avance) jusqu'à l'envoi du rapport, et non un revenu le jour où le chèque est encaissé.
  • Le travail de correction et de mise en œuvre facturé à l'heure est comptabilisé au fur et à mesure que les heures sont effectuées, ce qui signifie que vous avez besoin d'un mécanisme pour que le temps non facturé — travail effectué au cours d'une période mais pas encore facturé — apparaisse comme un actif (créances non facturées / encours) plutôt que de disparaître jusqu'à la date de facturation. Il s'agit de la distorsion la plus courante dans la tenue de livres basée sur des projets : une entreprise semble non rentable le mois de la facturation et extrêmement rentable le mois suivant, uniquement à cause du décalage de facturation, et non parce que le travail sous-jacent a changé.
  • Un abonnement SAST revendu est comptabilisé de manière linéaire sur la durée de l'abonnement — mensuellement ou annuellement, correspondant à la période pendant laquelle le client a effectivement accès à l'outil. Si vous êtes le revendeur et que vous agissez en tant qu'agent (organisant la fourniture du logiciel par le fournisseur) plutôt qu'en tant que principal (promettant de fournir le logiciel vous-même), vous ne devez comptabiliser que votre marge, et non le prix brut de l'abonnement — enregistrer le montant total refacturé comme un revenu alors que vous n'êtes économiquement qu'un conduit de facturation surestime votre chiffre d'affaires et fausse votre pourcentage de marge réel.

Bien faire la distinction entre principal et agent est important au-delà de la conformité aux PCGR : c'est la différence entre un compte de résultat qui montre 180 000 derevenusdabonnementavecunemargede8de revenus d'abonnement avec une marge de 8 % et un autre qui montre correctement 14 400 de revenus de commission avec une marge de 100 %. Les prêteurs, les assureurs et toute personne construisant un multiple de valorisation sur la base de vos chiffres liront ces deux comptes de résultat de manière très différente — et un seul d'entre eux est proche de la vérité.

Le plan comptable pratique

Un cabinet d'audit de code qui gère les trois flux de revenus a intérêt à diviser les revenus (et souvent le COGS) au niveau du compte, et pas seulement à étiqueter les choses dans un tableur après coup :

  • Income:Audits:Static
  • Income:Audits:Dynamic
  • Income:Consulting:Remediation (horaire)
  • Income:Subscriptions:SAST-Margin (votre commission/marge uniquement, si vous êtes un agent)
  • Income:Subscriptions:SAST-Gross (si vous êtes le principal et revendez le contrat complet)
  • Liabilities:UnearnedRevenue:Audits
  • Assets:UnbilledReceivables:Consulting

C'est là que la comptabilité en texte brut et sous contrôle de version montre sa valeur pour une entreprise de services techniques — les mêmes ingénieurs qui configurent les règles SAST pour les clients sont généralement à l'aise pour réviser un diff de grand livre .beancount, et un historique Git de vos livres vous donne la même auditabilité que vous vendez à vos propres clients. C'est un peu ironique pour un atelier d'audit de code de tenir ses propres registres financiers dans un format opaque et non différentiable.

Là où les entreprises se trompent réellement

Quelques schémas reviennent régulièrement dans ce modèle d'entreprise :

  1. Comptabiliser les dépôts d'abonnement comme un revenu immédiatement. Si un client paie d'avance une licence SAST annuelle que vous revendez, cet argent est un passif jusqu'à l'expiration de la période de couverture — le comptabiliser entièrement le premier mois surestime le trimestre où il atterrit et sous-estime tous les trimestres suivants.
  2. Ne jamais suivre les heures non facturées. Le travail de correction horaire effectué vers la fin d'un mois mais facturé le mois suivant doit tout de même apparaître comme un actif dans la période correcte, sinon vos marges sembleront fluctuer énormément sans raison opérationnelle.
  3. Traiter le montant refacturé par le revendeur comme un revenu brut. Comme ci-dessus — cela gonfle les chiffres du chiffre d'affaires d'une manière qui semble bonne jusqu'à ce qu'une équipe de diligence raisonnable d'un acheteur (ironiquement, effectuant le même type de due diligence technique que votre cabinet vend) le démêle et réévalue l'entreprise.
  4. Absence de suivi séparé pour les engagements dans les secteurs réglementés. Les audits dans le domaine de la santé et des services financiers impliquent un périmètre considérablement plus important (traçage des données, vérification du contrôle d'accès) et généralement une exposition à la responsabilité plus élevée — si vos livres ne séparent pas ces revenus et leurs coûts associés, vous ne pouvez pas dire si vos engagements à forte conformité sont réellement rentables par rapport à vos revues statiques générales.

Un exemple pratique : une facture, trois écritures différentes

Supposons que votre cabinet signe un client en mars pour un audit statique de 7 000 (acomptede50(acompte de 50 %, 50 % à la livraison), 20 heures de correction horaire à 175/heure à facturer en avril, et un abonnement SAST revendu à 18 /sieˋge/moispourleureˊquipede40deˊveloppeurs,ouˋvotrecabinetconserveunemargede4/siège/mois pour leur équipe de 40 développeurs, où votre cabinet conserve une marge de 4 /siège et reverse le reste au fournisseur.

  • Acompte de mars (3 500 $) : Débit Trésorerie, crédit Liabilities:UnearnedRevenue:Audits. Pas encore de revenu — vous n'avez pas livré le rapport.
  • Livraison du rapport en avril : Débit Liabilities:UnearnedRevenue:Audits et les 3 500 restantsdelacreˊance,creˊditIncome:Audits:Staticpourlatotaliteˊdes7000restants de la créance, crédit `Income:Audits:Static` pour la totalité des 7 000. Le revenu atterrit le mois où le travail a été réellement accepté, et non le mois où l'un ou l'autre chèque a été encaissé.
  • Heures de correction de mars (travaillées mais pas encore facturées) : Si 8 des 20 heures ont été effectuées en mars mais que la facture est envoyée en avril, débitez Assets:UnbilledReceivables:Consulting et créditez Income:Consulting:Remediation pour ces 8 heures (1 400 )enmars;les12heuresrestantes(2100) en mars ; les 12 heures restantes (2 100 ) sont enregistrées normalement en avril lorsque le travail et la facture atterrissent le même mois.
  • Abonnement SAST mensuel : Si vous agissez en tant qu'agent, seule la marge mensuelle de 160 (40sieˋges×4(40 sièges × 4) est enregistrée dans Income:Subscriptions:SAST-Margin ; les 720 demontantrefactureˊ(40×18de montant refacturé (40 × 18) transitent par un compte de compensation contre ce que vous devez au fournisseur, sans jamais toucher votre compte de résultat. Si votre contrat fait plutôt de vous le principal — vous êtes la partie qui promet le logiciel au client, même si un fournisseur le livre en coulisses — les 720 completssontcomptabiliseˊscommeunrevenuaveclecou^tdufournisseurde560complets sont comptabilisés comme un revenu avec le coût du fournisseur de 560 enregistré comme COGS, aboutissant au même résultat net mais à des chiffres de chiffre d'affaires très différents (et, si vous n'êtes pas le principal, matériellement trompeurs).

Trois transactions, trois règles de timing différentes, et — de manière cruciale — la deuxième est la raison pour laquelle beaucoup de petits ateliers d'audit semblent avoir eu un mois d'avril difficile alors que rien n'a réellement changé dans l'entreprise. L'écriture des heures non facturées est ce qui maintient l'honnêteté des chiffres de mars.

Pourquoi c'est plus important qu'avant

La demande pour le service sous-jacent augmente pour une raison qui mérite d'être notée : les acheteurs effectuant une due diligence technique considèrent de plus en plus le code et la posture de sécurité comme matériels pour les conditions de la transaction, et non comme une formalité — les résultats techniques font régulièrement bouger les discussions de valorisation de 15 à 30 %, et une part significative des synergies de transaction attendues dépend désormais de la qualité de l'intégration qu'un audit de code est ce qui révèle réellement avant la clôture. Si votre propre cabinet est un jour acquis, recapitalisé ou intégré dans un pipeline de due diligence plus large, la première chose que fera l'équipe financière d'un acheteur est exactement ce que votre équipe d'audit fait avec les bases de code des clients : démonter le grand livre et vérifier si les chiffres tiennent la route sous examen. Une entreprise avec un plan comptable qui sépare déjà les revenus à honoraires fixes, horaires et de marge d'abonnement répond à cette question en quelques minutes au lieu de plusieurs semaines.

Tenez vos propres livres aussi propres que le code que vous auditez

Gérer une entreprise hybride d'audit et d'abonnement signifie que votre reconnaissance du chiffre d'affaires suit trois règles différentes sous un même toit, et les tableurs appliquent rarement cette distinction de manière cohérente dans le temps. Beancount.io propose une comptabilité en texte clair, transparente, sous contrôle de version et facile à diff — un choix naturel pour une équipe technique qui pense déjà en termes d'historique vérifiable. Commencez gratuitement et tenez vos propres registres financiers avec la même rigueur que les audits que vous vendez.

Partager cet article