Opýtajte sa zakladateľa malej firmy na audit kódu, aký je ich model výnosov, a zvyčajne dostanete zmätenú pauzu, po ktorej nasleduje „no... oboje?“. Obchod so statickou analýzou si len zriedka vyberie jednu koľaj. Jeden klient zaplatí 6 500 dolárov za dvojtýždňovú statickú kontrolu starej Rails aplikácie. Ďalší platí 40 dolárov na vývojára mesačne za priebežné predplatné SAST, ktoré firma ďalej predáva a konfiguruje. Tretí platí individuálnu cenu za „balík kompletného auditu“, ktorý kombinuje statickú analýzu, dynamické testovanie a nápravné práce fakturované za hodinu. Tri obchody, tri rôzne pravidlá vykazovania výnosov a jedna účtová osnova, ktorá zvyčajne nie je navrhnutá na ich rozlíšenie.
Toto je v súčasnosti naozaj bežný tvar pre technické servisné firmy: bezpečnostné a konzultačné firmy v oblasti kvality kódu, ktoré začali ako čisté obchodné dielne, čoraz častejšie ďalej predávajú alebo white-labelujú nástroje SAST (Static Application Security Testing) popri svojej audítorskej práci, pretože klienti chcú jednorazový názor aj priebežný skener v CI. Účtovnícky problém, ktorý to vytvára, je natoľko špecifický, že väčšina všeobecných rád pre „konzultačné firmy“ ho prehliada.
Tri toky výnosov skryté v jednom podnikaní
Skôr než budete môcť čokoľvek správne zaúčtovať, musíte oddeliť to, čo v skutočnosti predávate, pretože každá položka sa v účtovníctve správa inak.
1. Statické audity (pevný rozsah, v časovom bode). Preskúmanie zdrojového kódu – dodržiavanie noriem, kontrola závislostí a CI/CD pipeline, architektonický prehľad – sa zvyčajne pohybuje v cene 5 000 – 8 000 dolárov za definovaný rozsah. Ide o diskrétny výstup: správa dodaná k určitému dátumu s definovaným koncom.
2. Dynamické audity a balíky kompletného auditu (pevný rozsah alebo hodinová sadzba, často založené na míľnikoch). Testovanie správania systému pri záťaži alebo nepriateľských podmienkach stojí 8 000 – 16 000 dolárov a kombinovaný „balík kompletného auditu“ (statický + dynamický + náprava) je zvyčajne cenený individuálne a fakturovaný podľa míľnikov alebo hodín. Seniorita audítora, veľkosť kódovej základne a kvalita dokumentácie, regulačný rozsah (audity v zdravotníctve a financiách vyžadujú hlbšie sledovanie údajov a overovanie povolení) a tlak termínov – to všetko ovplyvňuje cenu, čo znamená, že dva audity s rovnakým názvom môžu mať pod povrchom veľmi odlišné nákladové štruktúry.
3. Predplatné SAST (opakujúce sa, predávané ďalej alebo s maržou predajcu). Nástrojová stránka tohto trhu sa konsolidovala okolo cien SaaS za používateľa: široké platformy kombinujúce SAST, SCA, skenovanie tajomstiev a kontroly IaC začínajú okolo 15 – 20 dolárov na používateľa mesačne, bodové nástroje pre jednu schopnosť sú v rozmedzí 10 – 15 dolárov na používateľa a podnikové zmluvy od veľkých dodávateľov môžu presiahnuť 100 000 dolárov ročne za niekoľko stoviek aplikácií. Keď audítorská firma ďalej predáva alebo balí jednu z týchto platforiem – konfiguruje ju, ladí pravidlá pre falošne pozitívne výsledky a berie si maržu z predplatného – tento výnos je opakujúci sa, nie projektový, a môže alebo nemusí byť vaším výnosom v závislosti od toho, či v zmluve vystupujete ako principal alebo agent.
Zlúčiť všetky tri do „poradenských výnosov“ je presne to, čo spôsobí, že výkaz ziskov a strát vám prestane hovoriť niečo užitočné o podnikaní.
Prečo sa vykazovanie výnosov skutočne líši
Podľa ASC 606 (alebo jeho blízkych medzinárodných ekvivalentov) je účtovnou otázkou kedy prechádza kontrola nad sľúbeným tovarom alebo službou na zákazníka – a odpoveď je pre každý z vyššie uvedených tokov iná.
- Statický alebo dynamický audit s pevným rozsahom sa zvyčajne vykazuje v časovom bode, keď je správa doručená a prijatá – alebo, ak je fakturovaný podľa míľnikov, pri dokončení každého míľnika. Ak fakturujete 50 % vopred a 50 % pri doručení, záloha je záväzok (výnos budúcich období), kým nie je správa odoslaná, nie výnos v deň, keď je šek preplatený.
- Hodinová nápravná a implementačná práca sa vykazuje pri vykonaní hodín, čo znamená, že potrebujete mechanizmus pre nevyfakturovaný čas – práca vykonaná v období, ale ešte nevyfakturovaná – aby sa vykázala ako aktívum (nevyfakturovaná pohľadávka / nedokončená výroba) a nezmizla až do dátumu fakturácie. Toto je najbežnejšie skreslenie v projektovom účtovníctve: firma vyzerá v mesiaci fakturácie nezisková a v nasledujúcom mesiaci divoko zisková, čisto kvôli oneskoreniu fakturácie, nie preto, že by sa zmenila skutočná práca.
- Ďalej predávané predplatné SAST sa vykazuje pomerne počas obdobia predplatného – mesačne alebo ročne, v súlade s obdobím, kedy má zákazník skutočne prístup k nástroju. Ak ste predajcom a konáte ako agent (zabezpečujete, aby dodávateľ poskytol softvér) a nie ako principal (sľubujete, že softvér poskytnete sami), mali by ste vykazovať iba svoju maržu, nie hrubú cenu predplatného – zaúčtovanie celej prechádzajúcej sumy ako výnosu, keď ste ekonomicky len fakturačným kanálom, nadhodnocuje váš vrcholný riadok a skresľuje vaše skutočné maržové percento.
Správne určenie principal vs agent je dôležité nielen z hľadiska správnosti podľa GAAP: je to rozdiel medzi výkazom ziskov a strát, ktorý ukazuje 180 000 dolárov výnosov z predplatného pri 8 % marži, a tým, ktorý správne ukazuje 14 400 dolárov provízneho výnosu pri 100 % marži. Veritelia, poisťovne a všetci, kto stavajú oceňovací násobok na vašich číslach, budú tieto dva výkazy čítať veľmi odlišne – a len jeden z nich je blízko pravde.
Praktická účtová osnova
Firma na audit kódu, ktorá prevádzkuje všetky tri toky výnosov, ťaží z rozdelenia výnosov (a často aj nákladov na predaný tovar) na úrovni účtov, nielen z označovania vecí v tabuľke dodatočne:
Príjmy:Audity:StatickéPríjmy:Audity:DynamickéPríjmy:Poradenstvo:Náprava(hodinová)Príjmy:Predplatné:SAST-Marža(iba vaša provízia/marža, ak ste agent)Príjmy:Predplatné:SAST-Hrubá(ak ste principal a ďalej predávate plnú zmluvu)Záväzky:VýnosyBudúcichObdobí:AudityAktíva:NevyfakturovanéPohľadávky:Poradenstvo
Tu si obyčajné, verziami riadené účtovníctvo získava svoje miesto pre technickú servisnú firmu – tí istí inžinieri, ktorí konfigurujú pravidlá SAST pre klientov, sú zvyčajne v pohode s kontrolou diffu v .beancount ledgeri a gitová história vašich kníh vám poskytuje rovnakú auditovateľnosť, akú predávate svojim vlastným klientom. Je to trochu výstižné, aby si obchod s auditom kódu viedol svoje vlastné finančné záznamy v nepriehľadnom, nediffovateľnom formáte.
Kde firmy v tomto skutočne robia chyby
V tomto obchodnom modeli sa opakovane objavuje niekoľko vzorcov:
- Účtovanie záloh na predplatné ako výnosu okamžite. Ak klient vopred zaplatí za ročnú licenciu SAST, ktorú ďalej predávate, táto hotovosť je záväzkom až do uplynutia doby pokrytia – vykázanie celej sumy v prvom mesiaci nadhodnocuje štvrťrok, do ktorého spadá, a podhodnocuje každý nasledujúci štvrťrok.
- Nikdy nesledovanie nevyfakturovaných hodín. Hodinová nápravná práca vykonaná ku koncu mesiaca, ale fakturovaná v nasledujúcom mesiaci, by sa mala stále vykázať ako aktívum v správnom období, inak budú vaše marže vyzerať, že sa z ničoho nič divoce hýbu.
- Zaobchádzanie s prechodom sumy od predajcu ako s hrubým výnosom. Ako je uvedené vyššie – toto nafukuje vrcholné čísla spôsobom, ktorý vyzerá dobre, kým tím due diligence kupujúceho (ironicky, robiaci rovnakú technickú due diligence, akú predáva vaša firma) to nerozpletie a neprehodnotí podnikanie.
- Žiadne samostatné sledovanie projektov v regulovaných odvetviach. Audity v zdravotníctve a finančných službách majú podstatne väčší rozsah (sledovanie údajov, overovanie prístupových práv) a zvyčajne vyššiu mieru zodpovednosti – ak vaše knihy neoddeľujú tento výnos a súvisiace náklady, nemôžete povedať, či sú vaše projekty s vysokou mierou zhody skutočne ziskové v porovnaní s vašimi všeobecnými statickými kontrolami.
Praktický príklad: Jedna faktúra, tri rôzne zaúčtovania
Povedzme, že vaša firma v marci podpíše klienta na statický audit za 7 000 dolárov (50 % záloha, 50 % pri dodaní), 20 hodín hodinovej nápravy za 175 dolárov za hodinu, ktorá bude fakturovaná v apríli, a ďalej predávané predplatné SAST za 18 dolárov na miesto mesačne pre ich 40-členný vývojársky tím, pričom vaša firma si ponecháva maržu 4 doláre na miesto a zvyšok posiela dodávateľovi.
- Marcová záloha (3 500 dolárov): Na ťarchu Hotovosť, v prospech
Záväzky:VýnosyBudúcichObdobí:Audity. Zatiaľ žiadny výnos – nedodali ste správu. - Aprílové dodanie správy: Na ťarchu
Záväzky:VýnosyBudúcichObdobí:Auditya zvyšných 3 500 dolárov pohľadávky, v prospechPríjmy:Audity:Statickéza celých 7 000 dolárov. Výnos sa zaúčtuje v mesiaci, kedy bola práca skutočne prijatá, nie v mesiaci, kedy bol preplatený ktorýkoľvek šek. - Marcové hodiny nápravy (odpracované, ale zatiaľ nevyfakturované): Ak bolo 8 z 20 hodín odpracovaných v marci, ale faktúra ide von v apríli, na ťarchu
Aktíva:NevyfakturovanéPohľadávky:Poradenstvoa v prospechPríjmy:Poradenstvo:Nápravaza týchto 8 hodín (1 400 dolárov) v marci; zvyšných 12 hodín (2 100 dolárov) sa zaúčtuje normálne v apríli, keď práca aj faktúra spadajú do rovnakého mesiaca. - Mesačné predplatné SAST: Ak konáte ako agent, do
Príjmy:Predplatné:SAST-Maržasa zaúčtuje len mesačná marža 160 dolárov (40 miest × 4 doláre); prechod 720 dolárov (40 × 18) prechádza cez vyrovnávací účet voči tomu, čo dlhujete dodávateľovi, a nikdy sa nedotkne vášho výkazu ziskov a strát. Ak je vaša zmluva namiesto toho taká, že ste principal – vy ste strana, ktorá sľubuje softvér klientovi, aj keď ho pod kapotou dodáva dodávateľ – celých 720 dolárov sa vykáže ako výnos s nákladmi dodávateľa 560 dolárov zaúčtovanými ako náklady na predaný tovar, čo dáva rovnaký spodný riadok, ale veľmi odlišné (a ak nie ste principal, materiálne zavádzajúce) vrcholné čísla.
Tri transakcie, tri rôzne pravidlá načasovania a – kriticky – druhý dôvod je ten, prečo veľa malých audítorských obchodov vyzerá, že mali ťažký apríl, aj keď sa na podnikaní v skutočnosti nič nezmenilo. Zápis nevyfakturovaných hodín je to, čo udržuje marcové čísla čestné.
Prečo na tom záleží viac ako kedysi
Dopyt po základnej službe rastie z dôvodu, ktorý stojí za zmienku: kupujúci, ktorí robia technickú due diligence, čoraz častejšie považujú kód a bezpečnostnú pozíciu za materiálne pre podmienky obchodu, nie za formalitu – technické zistenia bežne posúvajú oceňovacie diskusie o 15 – 30 % a významný podiel očakávaných synergií obchodu teraz závisí od kvality integrácie, ktorú audit kódu skutočne odhalí pred uzavretím. Ak bude vaša vlastná firma niekedy získaná, rekapitalizovaná alebo zahrnutá do väčšej due diligence pipeline, prvá vec, ktorú finančný tím kupujúceho urobí, je presne to, čo váš audítorský tím robí s klientskými kódovými základňami: rozoberie ledger a skontroluje, či čísla obstoja pri skúmaní. Podnikanie s účtovou osnovou, ktorá už oddeľuje výnosy z pevnej odmeny, hodinovej sadzby a marže z predplatného, odpovie na túto otázku v minútach namiesto týždňov.
Udržujte si vlastné knihy také čisté ako kód, ktorý auditujete
Prevádzkovanie hybridného audítorského a predplatiteľského biznisu znamená, že vaše vykazovanie výnosov má tri rôzne pravidlá pod jednou strechou a tabuľky len zriedka vynucujú toto rozlíšenie konzistentne v čase. Beancount.io ponúka obyčajné textové účtovníctvo, ktoré je transparentné, verziami riadené a ľahko diffovateľné – prirodzená voľba pre technický tím, ktorý už teraz uvažuje v pojmoch auditovateľnej histórie. Začnite zadarmo a udržujte si vlastné finančné záznamy také dôsledné ako audity, ktoré predávate.