Hoe tech-bedrijven omgaan met kosten voor software-ontwikkeling: Inzichten van een accountant

Deel

In de wereld van startende/opkomende groeitechnologieën is er een terugkerende boekhoudkundige vraag die onvermijdelijk een serieuze afweging vereist: moet ik mijn softwareontwikkelingskosten activeren, of moet ik ze allemaal of een deel ervan ten laste van het resultaat brengen? Als u zich deze vraag ook stelt, troost u dan met de gedachte dat het geen sinecure is om te bepalen of softwarekosten al dan niet moeten worden geactiveerd. Hoewel de boekhoudnormen deze kwestie uitvoerig behandelen, is de toepassing van de regels een kwestie van subjectiviteit en opinie. Een goed geïnformeerde CEO/CFO/Controller moet echter de boekhoudkundige normen rond geactiveerde softwarekosten begrijpen om het beleid van uw bedrijf inzake de activering van softwarekosten te kunnen bepalen, en belangrijker nog, te ondersteunen.

U vraagt zich misschien af waarom u zich druk zou moeten maken. Simpel gezegd, high-tech startups besteden over het algemeen een aanzienlijk deel van hun tijd en geld aan de ontwikkeling van software; de behandeling van deze kosten zal hoogstwaarschijnlijk niet alleen een enorme impact hebben op uw huidige financiële prestaties, maar ook op uw toekomstige financiën.

Er zijn een paar verschillen die moeten worden gemaakt voordat u in de boekhoudregels duikt. Ten eerste, de boekhoudkundige normen onder GAAP definiëren twee soorten software:

  1. software om te worden verkocht, geleased of op de markt gebracht
  2. software voor intern gebruik

De normen bieden specifieke, verschillende boekhoudkundige regels voor elk type van software. Het is belangrijk om te bepalen welk type software wordt ontwikkeld om het bedrag van de kosten die moeten worden opgenomen of gekapitaliseerd correct te bepalen. Ten tweede zal ik in dit artikel de boekhoudregels volgens GAAP behandelen en niet volgens de IRS Code. Het is echter belangrijk op te merken dat welke beslissing er ook wordt genomen over de behandeling van softwareontwikkelingskosten onder GAAP, die beslissing niet noodzakelijk van invloed is op de behandeling van uw bedrijf van de kosten onder de IRS Code (m.a.w. kapitaliseren onder GAAP en expenseren voor de belasting kan ok zijn). Ten derde behandelt dit artikel de basisprincipes van de regels en is het een goed vertrekpunt. Dit artikel vervangt niet de noodzaak om uw CPA-kantoor te raadplegen voordat u belangrijke beslissingen neemt.

Software om te verkopen, te leasen of op de markt te brengen

Als uw bedrijf software ontwikkelt om uiteindelijk te verkopen, te leasen of op de markt te brengen aan het grote publiek, dan is dit onderdeel voor u. Deze software wordt ontwikkeld met de bedoeling om in de toekomst inkomsten te genereren en mag geen voordeel opleveren voor de interne bedrijfsvoering van uw bedrijf (zie software voor intern gebruik hieronder). Wanneer ik met cliënten spreek over welke ontwikkelingskosten zij moeten activeren of ten laste nemen met betrekking tot software die zij extern op de markt willen brengen, is de belangrijkste vraag die ik stel: wanneer heeft het softwareproject “technologische haalbaarheid” bereikt? Dit is belangrijk omdat de boekhoudnormen bepalen dat alle kosten die aan een softwareproject worden besteed vóór de vaststelling van de technologische haalbaarheid, ten laste moeten worden genomen wanneer zij worden gemaakt. De standaarden bepalen ook dat kosten die na de vaststelling van de technologische haalbaarheid worden gemaakt, mogen worden geactiveerd. De activering van de kosten moet worden stopgezet wanneer de software beschikbaar is voor algemene vrijgave aan klanten. Alle toekomstige kosten in verband met het softwareproject moeten als kosten worden geboekt wanneer zij worden gemaakt.

Contacteer onze professionals voor hulp bij het beheer van dit onderwerp.

Wat is technologische haalbaarheid?

Technologische haalbaarheid is een term die wordt gebruikt om een bepaald punt tijdens een softwareproject aan te duiden waarop de onderzoeks- en ontwikkelingsfase grotendeels is voltooid. De standaarden geven specifieke richtlijnen voor wanneer een project de technologische haalbaarheid heeft bereikt.

Het volgende is een uittreksel direct uit de standaarden:
…het computersoftwareproduct omvat een gedetailleerd programmaontwerp (hieronder gedefinieerd) al het volgende:

  • Het productontwerp en het gedetailleerde programmaontwerp zijn voltooid, en de entiteit heeft vastgesteld dat de benodigde vaardigheden, hardware en softwaretechnologie beschikbaar zijn voor het bedrijf om het product te produceren.
  • De volledigheid van het gedetailleerde programmaontwerp en de consistentie ervan met het productontwerp zijn bevestigd door het gedetailleerde programmaontwerp te documenteren en te herleiden naar productspecificaties.
  • Het gedetailleerde programmaontwerp is beoordeeld op ontwikkelingskwesties met een hoog risico (bijvoorbeeld nieuwe, unieke, onbewezen functies en kenmerken of technologische innovaties), en alle onzekerheden met betrekking tot geïdentificeerde ontwikkelingskwesties met een hoog risico zijn opgelost door middel van codering en tests.

Een Detail Program Design wordt door de standaarden als volgt gedefinieerd:
Het gedetailleerde ontwerp van een computersoftwareproduct dat de productfunctie, functie en technische vereisten tot hun meest gedetailleerde, logische vorm brengt en klaar is voor codering.

Ik zal nu pauzeren zodat u een boekhoudkundige adempauze kunt nemen…Oké. Zoals bij elk boekhoudkundig onderwerp, staat de bovenstaande richtlijn open voor interpretatie door het management.

In het vak vindt u bedrijven die aanzienlijke gekapitaliseerde softwareontwikkelingskosten hebben en andere die al hun softwareontwikkelingskosten ten laste van het resultaat hebben gebracht. Veel bedrijven nemen het standpunt in dat de technologische haalbaarheid is vastgesteld op het moment dat het softwareprodukt in enigerlei vorm door het publiek kan worden gebruikt of verbruikt; zij brengen dus de meeste ontwikkelingskosten in rekening. Dit standpunt is over het algemeen het meest conservatieve standpunt en zal waarschijnlijk minder kritisch worden bekeken door uw accountants. Anderen nemen het standpunt in dat de technologische haalbaarheid plaatsvindt voordat het product beschikbaar is voor de verkoop.

De kosten die in aanmerking komen voor activering, post-technologische haalbaarheid, zijn als volgt:

  • De vergoeding van de programmeur voor tijd die direct toerekenbaar is aan het coderen van de software.
  • Een toegerekend bedrag aan indirecte kosten, zoals overheadkosten in verband met programmeurs en de faciliteiten die zij gebruiken.
  • Kosten in verband met het testen van de software voor de markt (d.w.z. alfa- en betatests).
  • Overige directe productiekosten die worden gemaakt om de software op de markt te brengen.

Enkele andere punten van overweging zijn:

  • De kosten van onderhoud, bugfixes en klantenondersteuning moeten in de winst- en verliesrekening worden opgenomen wanneer zij worden gemaakt.
  • Wij hebben gezien dat cliënten inefficiënties in aanmerking nemen bij het bepalen van het te activeren bedrag van de programmeursvergoeding (d.w.z. het totaal verminderd met een percentage).
  • De boekhoudregels raken ook aan een concept dat bekend staat als een werkmodel, dat in deze discussie buiten beschouwing is gelaten. Onze ervaring is dat het concept van het werkmodel niet van invloed is op de beslissingen van de meerderheid van onze cliënten met betrekking tot het al dan niet activeren van softwarekosten.

Software voor intern gebruik

Als uw bedrijf intern software ontwikkelt uitsluitend om te voorzien in de interne behoeften van uw bedrijf, dan is dit onderdeel voor u. Er mag geen plan zijn om de software extern op de markt te brengen, zelfs niet in de toekomst (bepaald op het moment van ontwikkeling). Software voor intern gebruik bestaat meestal uit het volgen van analytische en boekhoudkundige modules.

De boekhoudnormen splitsen het ontwikkelingsproces van software voor intern gebruik op in drie verschillende fasen. Het management moet bepalen op welk punt de ontwikkeling van de software elke fase binnenkomt en verlaat. Afhankelijk van de fase worden de ontwikkelingskosten als kosten opgenomen of gekapitaliseerd. De drie stadia van software voor intern gebruik en hun definities zijn als volgt:
Voorbereidende projectfase – Wanneer een computersoftwareproject zich in deze fase bevindt, zal uw bedrijf waarschijnlijk het volgende doen:

  • Maken van strategische beslissingen over de toewijzing van middelen aan alternatieve projecten op een bepaald moment in de tijd.
  • Bepaal wat uw bedrijf wil dat de software doet en welke systeemvereisten daarbij horen.
  • Bepaal welke technologie nodig is om de systeemvereisten te realiseren.
  • Ontdek de beste implementatieoplossing voor de software. Bijvoorbeeld, bepalen of de
    software moet worden ontwikkeld of gekocht.

Ontwikkelingsstadium van de toepassing – Dit stadium begint typisch zodra een intern-gebruikssoftwareproject is gekozen en de ontwikkeling op het punt staat te beginnen. Activiteiten die worden uitgevoerd tijdens de fase van applicatieontwikkeling zijn onder meer:

  • Ontwerp van gekozen pad, inclusief softwareconfiguratie en software-interfaces.
  • Coding.
  • Installatie op hardware.
  • Testen.

Post-implementatie-operationele fase – Deze fase begint doorgaans zodra de softwareontwikkeling is voltooid en de software voor intern gebruik is geïmplementeerd. Activiteiten die tijdens de post-implementatie-operationele fase worden uitgevoerd, zijn onder meer:

  • Opleiding.
  • Onderhoud.

Als u het ontwikkelingsproces eenmaal in drie fasen hebt opgesplitst, volgen hieronder de overwegingen voor de boekhoudkundige verwerking van elke fase:

Priminaire projectfase – Alle ontwikkelingskosten die tijdens deze fase worden gemaakt, moeten als kosten worden geboekt wanneer ze worden gemaakt. Dit omvat zowel interne als externe kosten.

Ontwikkelingsfase van de toepassing – Alle ontwikkelingskosten die in deze fase worden gemaakt, moeten worden geactiveerd zodra aan de voorwaarden is voldaan. Hieronder vallen zowel interne als externe kosten. Algemene & administratie- en opleidingskosten worden niet als ontwikkelingskosten beschouwd en moeten, indien zij in deze fase worden gemaakt, als kosten worden geboekt. Kosten om oude gegevens in een nieuw systeem om te zetten, moeten in de kosten worden opgenomen. Als er echter software is ontwikkeld of aangeschaft om gegevens te converteren, moeten deze specifieke kosten worden geactiveerd.

Post-implementatie-operatiefase – Interne en externe opleidingskosten en onderhoudskosten in deze fase moeten als kosten worden geboekt.

Enige gedachten over wat wel en niet moet worden geactiveerd met betrekking tot software voor intern gebruik:

  • Alleen kosten die zijn gemaakt tijdens de ontwikkelingsfase van de applicatie komen in aanmerking voor activering.
  • Kosten kunnen pas worden geactiveerd als het management het project goedkeurt en toezegt om het te financieren, gelooft dat het zal worden voltooid, en alle ontwerptests zijn voltooid.
  • Interne kosten die kunnen worden geactiveerd, omvatten voornamelijk salaris- en salarisgerelateerde kosten die direct verband houden met het project. Algemene en administratieve kosten komen niet in aanmerking voor activering.

Webontwikkelingskosten

Als uw bedrijf kosten maakt voor het ontwikkelen, implementeren en onderhouden van een website, kunnen de kosten worden geactiveerd. De boekhoudkundige normen hebben specifieke richtlijnen op dit gebied, en u zult merken dat deze richtlijnen zeer vergelijkbaar zijn met de boekhouding voor software voor intern gebruik. Daarom is het belangrijk om de boekhoudregels voor software voor intern gebruik te begrijpen (zie hierboven).

Net als bij software voor intern gebruik is het ontwikkelingsproces van een website opgedeeld in fasen. De vijf stadia van webontwikkeling met hun definities zijn als volgt:

  • Planfase Dit stadium is het allereerste begin van het leven van een website – het denkproces. De acties omvatten het bepalen van de specifieke doelstellingen van de website, het identificeren van de doelgroep, het creëren van tijd en kosten budgetten, en het bepalen van de functionaliteiten van de website.
  • Ontwikkelingsfase voor applicaties en infrastructuur Deze fase omvat het creëren van de botten van de website, inclusief het registreren van een domeinnaam, het ontwikkelen of verwerven van aangepaste code, het integreren van externe applicaties, het ontwikkelen van HTML-pagina’s, het aanschaffen van routers en servers, en het testen van de website-applicaties.
  • Ontwikkelingsfase voor grafische elementen

Deze fase wordt meestal uitgevoerd in combinatie met fase twee hierboven. Taken omvatten het ontwikkelen van het ontwerp of de lay-out van elke pagina, kleur, afbeeldingen, en de algehele look and feel en bruikbaarheid van de website.

  • Content Development Stage Deze fase is het voortdurend uploaden van content die de website up-to-date houdt. De inhoud kan tekstueel of grafisch van aard zijn. Voorbeelden zijn artikelen, productfoto’s, kaarten, beschrijvingen, enz.
  • Exploitatiefase Deze fase omvat taken zoals opleiding, administratie, onderhoud en andere kosten om de website te exploiteren.

Als u het ontwikkelingsproces in de vijf fasen hebt opgesplitst, volgen hieronder de overwegingen voor boekhoudkundige verwerking voor elke fase:

  • Planningsfase Alle ontwikkelingskosten die in deze fase worden gemaakt, moeten in de winst-en-verliesrekening worden opgenomen wanneer ze worden gemaakt. Dit omvat zowel interne als externe kosten.
  • Ontwikkelingsfase van toepassing en infrastructuur Alle kosten die verband houden met ontwikkelde of aangeschafte software die wordt gebruikt om de website te helpen exploiteren, moeten worden geboekt volgens de regels voor software voor intern gebruik (zie hierboven). Kosten voor het verkrijgen en registreren van een internetdomein moeten worden gekapitaliseerd. Kosten voor webhosting moeten over de periode van het voordeel als kosten worden geboekt.
  • Ontwikkelingsfase van grafische elementen Volgens de standaarden voor jaarrekeningen vormen grafische elementen een onderdeel van software en moeten zij derhalve volgens de regels voor software voor intern gebruik worden geboekt.
  • Ontwikkelingsfase van inhoud Kosten om inhoud in een website in te voeren, moeten als kosten worden geboekt wanneer zij worden gemaakt. Dataconversiekosten moeten ook in de kosten worden opgenomen wanneer zij worden gemaakt. Software die wordt gebruikt om een database met een website te integreren, moet worden geactiveerd.
  • Exploitatiefase Over het algemeen moeten de kosten in deze fase in de winst- en verliesrekening worden opgenomen wanneer zij worden gemaakt. Kosten van upgrades en verbeteringen die functionaliteit aan de website toevoegen, moeten worden geboekt volgens de regels voor software voor intern gebruik. Kosten voor de registratie van de website bij zoekmachines worden beschouwd als advertentiekosten en moeten worden geboekt wanneer ze worden gemaakt.

Eindgedachten

Eén punt van overweging is dat als u de softwareontwikkelingskosten van uw bedrijf activeert, het management deze geactiveerde kosten moet kunnen onderbouwen met harde cijfers, spreadsheets en de logica achter dit alles. Het proces leidt ook tot de noodzaak om de tijd van ontwikkelaars per uur en per project bij te houden. Als u software activeert, zorg er dan voor dat uw bedrijf een systeem en organisatie heeft om de geactiveerde kosten bij te houden.

Een tweede punt van overweging heeft betrekking op belangrijke verbeteringen aan software die is ontwikkeld om te worden verkocht, verhuurd of extern op de markt gebracht. Als uw bedrijf bijvoorbeeld een gevestigd softwareproduct heeft dat aan het publiek wordt verkocht en uw ontwikkelaars werken aan het toevoegen van nieuwe functionaliteit aan dit product, kan dit een belangrijke verbetering zijn. Elke belangrijke verbetering moet op dezelfde manier worden behandeld als het basisproduct, in die zin dat alle kosten voorafgaand aan de technologische haalbaarheid ten laste van het resultaat moeten worden genomen; alle kosten na de technologische haalbaarheid mogen worden geactiveerd. Het is belangrijk op te merken dat de technologische haalbaarheid eerder in het ontwikkelingsproces kan worden bereikt voor belangrijke verbeteringen, in vergelijking met nieuwe softwareproducten. De logica is dat meestal alle technologische, hardware- en risicovolle ontwikkelingskwesties reeds zijn doorgelicht tijdens de initiële productontwikkeling. Houd er ook rekening mee dat productverbeteringen alleen voor activering in aanmerking komen als ze belangrijk worden geacht voor het product zelf (d.w.z. nieuwe functionaliteit).

Een derde punt van overweging is dat als de kosten eenmaal zijn geactiveerd, ze over het algemeen worden afgeschreven over de nuttige levensduur van het product of de software. De geactiveerde kosten worden vervolgens onderworpen aan een impairment-analyse voor elke verslagperiode. Afschrijvingsregels verschillen tussen software voor intern gebruik, software voor externe verkoop en webontwikkelingskosten. Deze regels vallen buiten het bestek van dit artikel (ik moet op een gegeven moment stoppen met schrijven!).

Het laatste punt van overweging is dat voor software ontwikkeld voor verkoop of openbaar gebruik, het merendeel, zo niet alle, van de onderzoeks- en ontwikkelingskosten ten laste van het resultaat moeten worden gebracht. Er zijn tamelijk smalle tijdvakken waarin activering kan plaatsvinden. Wanneer een onderneming vaststelt dat haar software voor intern gebruik is ontwikkeld, moet het grootste deel van de onderzoeks- en ontwikkelingskosten worden geactiveerd. Het is belangrijk op te merken dat het proces van elke onderneming kan verschillen; bijgevolg is de toepassing van de boekhoudregels specifiek voor elke entiteit.

Technologie en opkomende groeidiensten

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *