Nel mondo delle startup/tecnologie emergenti, c’è una domanda contabile ricorrente che inevitabilmente richiede una seria considerazione: dovrei capitalizzare i miei costi di sviluppo software, o dovrei spenderli tutti o una parte di essi? Se anche voi vi state ponendo questa domanda, confortatevi con il fatto che determinare se capitalizzare i costi del software non è una passeggiata. Anche se i principi contabili affrontano specificamente questa questione in modo molto lungo, l’applicazione delle regole è una questione di soggettività e di opinione. Tuttavia, un CEO/CFO/Controller ben informato ha bisogno di capire gli standard contabili che circondano i costi del software capitalizzato per determinare, e soprattutto sostenere, la politica della vostra azienda sui costi di capitalizzazione del software.
Vi starete chiedendo perché dovrebbe interessarvi. Semplicemente, le startup high-tech generalmente dedicano una quantità significativa del loro tempo e denaro nello sviluppo del software; il trattamento di questi costi avrà molto probabilmente un enorme impatto non solo sulla vostra performance finanziaria attuale ma anche su quella futura.
Ci sono alcune distinzioni che devono essere fatte prima di immergersi nelle regole contabili. In primo luogo, i principi contabili sotto GAAP definiscono due tipi di software:
- software da vendere, affittare o commercializzare
- software per uso interno
I principi forniscono regole contabili specifiche e diverse per ogni tipo di software. È importante determinare quale tipo di software viene sviluppato per accertare correttamente l’ammontare dei costi che dovrebbero essere spesi o capitalizzati. In secondo luogo, ai fini di questo articolo, mi occuperò delle regole contabili secondo i GAAP e non secondo il codice IRS. Tuttavia, è importante notare che qualsiasi determinazione venga presa riguardo al trattamento dei costi di sviluppo del software secondo i GAAP, tale determinazione non influenza necessariamente il trattamento dei costi da parte della vostra azienda secondo il codice IRS (ad esempio, capitalizzare per i GAAP e ammortizzare per le tasse può essere ok). In terzo luogo, questo articolo affronterà le basi delle regole e sarà un buon punto di partenza. Questo articolo non sostituisce la necessità di consultare la vostra società di revisione prima di prendere qualsiasi decisione significativa.
Software da vendere, affittare o commercializzare
Se la vostra azienda sta sviluppando software da vendere, affittare o commercializzare al pubblico, questa sezione è per voi. Questo software è sviluppato con l’intenzione di guadagnare ricavi futuri e non dovrebbe fornire benefici alle operazioni interne della tua azienda (vedi software per uso interno qui sotto). Quando parlo con i clienti di quali costi di sviluppo capitalizzare o spendere per il software da commercializzare all’esterno, la domanda più importante che faccio è quando il progetto software ha raggiunto la “fattibilità tecnologica”? Questo è importante perché i principi contabili stabiliscono che tutti i costi sostenuti per un progetto software prima del raggiungimento della fattibilità tecnologica devono essere spesi come sostenuti. I principi stabiliscono anche che i costi sostenuti successivamente alla determinazione della fattibilità tecnologica possono essere capitalizzati. La capitalizzazione dei costi dovrebbe cessare quando il software è disponibile per il rilascio generale ai clienti. Tutti i costi futuri relativi al progetto software dovrebbero essere spesati come sostenuti.
Contattare i nostri professionisti per assistenza nella gestione di questo argomento.
Cos’è la fattibilità tecnologica?
La fattibilità tecnologica è un termine usato per descrivere un certo punto durante un progetto software quando la fase di ricerca e sviluppo è stata sostanzialmente completata. Gli standard forniscono una guida specifica su quando un progetto ha raggiunto la fattibilità tecnologica.
Quello che segue è un estratto direttamente dagli standard:
…il prodotto software per computer include un design di programma dettagliato (definito di seguito) tutto ciò che segue:
- Il design del prodotto e il design di programma dettagliato sono stati completati, e l’entità ha stabilito che le competenze necessarie, l’hardware e la tecnologia software sono disponibili all’azienda per produrre il prodotto.
- La completezza del progetto del programma di dettaglio e la sua coerenza con il progetto del prodotto sono state confermate documentando e tracciando il progetto del programma di dettaglio alle specifiche del prodotto.
- Il design del programma di dettaglio è stato rivisto per i problemi di sviluppo ad alto rischio (per esempio, funzioni e caratteristiche nuove, uniche e non provate o innovazioni tecnologiche), e qualsiasi incertezza relativa ai problemi di sviluppo ad alto rischio identificati è stata risolta attraverso la codifica e il test.
Un Detail Program Design è definito dagli standard come segue:
Il design dettagliato di un prodotto software per computer che prende la funzione del prodotto, le caratteristiche e i requisiti tecnici nella loro forma più dettagliata e logica ed è pronto per la codifica.
Ora farò una pausa in modo che tu possa fare una pausa contabile…Ok. Come per qualsiasi argomento di contabilità, la guida di cui sopra è aperta all’interpretazione del management.
Nella professione, troverete aziende che hanno costi di sviluppo del software significativi capitalizzati e altre che hanno speso tutti i loro costi di sviluppo del software. Molte aziende assumono la posizione che la fattibilità tecnologica è stabilita nello stesso momento in cui il prodotto software può essere usato o consumato in qualsiasi forma dal pubblico; così spendono la maggior parte dei costi di sviluppo. Questa posizione è tipicamente la più conservativa e probabilmente affronterà meno controlli da parte dei revisori. Altri sostengono che la fattibilità tecnologica si verifica prima che il prodotto sia disponibile per la vendita.
I costi ammissibili per la capitalizzazione, dopo la fattibilità tecnologica, sono i seguenti:
- Il compenso del programmatore per il tempo direttamente attribuibile alla codifica del software.
- Una quantità assegnata di costi indiretti, come le spese generali relative ai programmatori e alle strutture che occupano.
- Costi associati al test del software per il mercato (cioè alfa, beta test).
- Altri costi di produzione diretti che sono sostenuti per portare il software sul mercato.
Altri punti da considerare sono:
- I costi di manutenzione, correzione di bug e supporto clienti devono essere spesi come sostenuti.
- Abbiamo visto clienti tenere conto delle inefficienze nel determinare l’ammontare del compenso del programmatore da capitalizzare (cioè il totale ridotto di una percentuale).
- Le regole contabili toccano anche un concetto noto come modello di lavoro che è stato lasciato fuori da questa discussione. Nella nostra esperienza, il concetto di modello di lavoro non influenza la maggior parte delle decisioni dei nostri clienti riguardo alla capitalizzazione o meno dei costi del software.
Software ad uso interno
Se la vostra azienda sta sviluppando software internamente solo per soddisfare le esigenze interne della vostra azienda, questa sezione è per voi. Non ci può essere alcun piano per commercializzare il software all’esterno, nemmeno nel futuro (determinato al momento dello sviluppo). Il software ad uso interno è tipicamente il monitoraggio di moduli analitici e contabili.
I principi contabili dividono il processo di sviluppo del software ad uso interno in tre fasi diverse. La direzione dovrebbe determinare in quale punto lo sviluppo del software entra ed esce da ogni fase. A seconda della fase, i costi di sviluppo associati saranno spesi o capitalizzati. Le tre fasi del software ad uso interno insieme alle loro definizioni sono le seguenti:
Fase preliminare del progetto – Quando un progetto software è in questa fase, l’azienda probabilmente farà quanto segue:
- Prendere decisioni strategiche per allocare le risorse tra progetti alternativi in un dato momento.
- Determinare ciò che la vostra azienda ha bisogno che il software faccia e i relativi requisiti di sistema.
- Determinare la tecnologia necessaria per raggiungere i requisiti di sistema.
- Esplorare la migliore soluzione di implementazione del software. Per esempio, determinare se sviluppare o comprare il
software.
Fase di sviluppo dell’applicazione – Questa fase inizia tipicamente quando un progetto di software per uso interno è scelto e lo sviluppo sta per iniziare. Le attività svolte durante la fase di sviluppo dell’applicazione includono:
- Progettazione del percorso scelto, inclusa la configurazione del software e le interfacce software.
- Codifica.
- Installazione su hardware.
- Testing.
Fase post-implementazione-Operativa – Questa fase inizia tipicamente una volta che lo sviluppo del software è completo e il software per uso interno è stato implementato. Le attività svolte durante la fase post-implementazione-operativa includono:
- Formazione.
- Manutenzione.
Una volta diviso il processo di sviluppo nelle tre fasi, le seguenti sono le considerazioni sul trattamento contabile per ogni fase:
Fase preliminare del progetto – Tutti i costi di sviluppo sostenuti durante questa fase devono essere spesati come sostenuti. Questo include sia i costi interni che quelli esterni.
Fase di sviluppo dell’applicazione – Tutti i costi di sviluppo sostenuti durante questa fase dovrebbero essere capitalizzati come sostenuti una volta che le condizioni sono soddisfatte. Questo include sia i costi interni che quelli esterni. I costi generali & amministrativi e di formazione non sono considerati costi di sviluppo, e se sostenuti durante questa fase, devono essere spesati come sostenuti. I costi per convertire i vecchi dati in un nuovo sistema dovrebbero essere spesi. Tuttavia, se il software è stato sviluppato o acquistato per convertire i dati, questi costi specifici dovrebbero essere capitalizzati.
Fase post-implementazione-Operazione – I costi di formazione interna ed esterna e i costi di manutenzione durante questa fase dovrebbero essere spesi come sostenuti.
Alcune riflessioni su cosa dovrebbe e non dovrebbe essere capitalizzato rispetto al software ad uso interno:
- Solo i costi sostenuti durante la fase di sviluppo dell’applicazione sono idonei alla capitalizzazione.
- I costi possono essere capitalizzati solo una volta che la direzione autorizza e si impegna a finanziare il progetto, ritiene che sarà completato, e tutti i test di progettazione sono stati completati.
- I costi interni che possono essere capitalizzati includono principalmente i costi del personale e i costi relativi al personale che sono direttamente connessi al progetto. Le spese generali e amministrative non sono ammissibili per la capitalizzazione.
Costi di sviluppo web
Se la vostra azienda sta sostenendo costi per sviluppare, implementare e mantenere un sito web, i costi possono essere capitalizzati. I principi contabili hanno una guida specifica su quest’area, e troverete che questa guida è molto simile alla contabilità per il software ad uso interno. Di conseguenza, è importante capire le regole contabili che circondano il software ad uso interno (incluse sopra).
Similmente al software ad uso interno, il processo di sviluppo del sito web è diviso in fasi. Le cinque fasi di sviluppo web insieme alle loro definizioni sono le seguenti:
- Fase di pianificazione Questa fase è l’inizio della vita di un sito web: il processo di pensiero. Le azioni includono la determinazione degli obiettivi specifici del sito web, l’identificazione del pubblico target, la creazione di budget di tempo e di costi, e la determinazione delle funzionalità del sito web.
- Fase di sviluppo dell’applicazione e dell’infrastruttura Questa fase comporta la creazione delle ossa del sito web, compresa la registrazione di un nome di dominio, lo sviluppo o l’acquisizione di codice personalizzato, l’integrazione di applicazioni esterne, lo sviluppo di pagine HTML, l’acquisto di router e server, e il test delle applicazioni del sito web.
- Fase di sviluppo grafico
Questa fase viene in genere eseguita insieme alla fase due sopra. I compiti includono lo sviluppo del design o del layout di ogni pagina, il colore, le immagini, l’aspetto generale e l’usabilità del sito web.
- Fase di sviluppo del contenuto Questa fase è il caricamento continuo del contenuto che mantiene il sito web aggiornato. Il contenuto può essere di natura testuale o grafica. Gli esempi includono articoli, foto dei prodotti, mappe, descrizioni, ecc.
- Fase operativa Questa fase include compiti come la formazione, l’amministrazione, la manutenzione e altri costi per far funzionare il sito web.
Una volta che avete diviso il processo di sviluppo nelle cinque fasi, le seguenti sono le considerazioni sul trattamento contabile per ogni fase:
- Fase di pianificazione Tutti i costi di sviluppo sostenuti durante questa fase devono essere spesi come sostenuti. Questo include sia i costi interni che quelli esterni.
- Fase di sviluppo dell’applicazione e dell’infrastruttura Tutti i costi che si riferiscono al software sviluppato o acquistato che viene utilizzato per contribuire al funzionamento del sito web devono essere contabilizzati secondo le regole del software ad uso interno (dettagliate sopra). I costi per ottenere e registrare un dominio Internet dovrebbero essere capitalizzati. I costi sostenuti per il web hosting devono essere spesi nel periodo di beneficio.
- Fase di sviluppo della grafica I principi contabili considerano la grafica una componente del software, e quindi, dovrebbe essere contabilizzata secondo le regole del software ad uso interno.
- Fase di sviluppo del contenuto I costi per inserire il contenuto in un sito web dovrebbero essere spesi come sostenuti. Anche i costi di conversione dei dati dovrebbero essere spesati come sostenuti. Il software usato per integrare un database con un sito web dovrebbe essere capitalizzato.
- Fase operativa Generalmente i costi in questa fase dovrebbero essere spesi come sostenuti. I costi degli aggiornamenti e dei miglioramenti che aggiungono funzionalità al sito web dovrebbero essere contabilizzati secondo le regole del software ad uso interno. I costi per registrare il sito web sui motori di ricerca sono considerati costi di pubblicità e dovrebbero essere spesi come sostenuti.
Pensieri finali
Un punto da considerare è che se capitalizzate i costi di sviluppo del software della vostra azienda, il management deve essere in grado di sostenere questi costi capitalizzati con numeri concreti, fogli di calcolo, e la logica dietro tutto questo. Il processo in genere comporta anche la necessità di tracciare il tempo degli sviluppatori per ora e per progetto. Se capitalizzate il software, assicuratevi che la vostra azienda abbia il sistema di tracciamento e l’organizzazione per supportare i vostri costi capitalizzati.
Un secondo punto da considerare riguarda i miglioramenti significativi fatti sul software sviluppato per essere venduto, affittato o commercializzato esternamente. Per esempio, se la vostra azienda ha un prodotto software consolidato che viene venduto al pubblico e i vostri sviluppatori stanno lavorando per aggiungere nuove funzionalità a questo prodotto, questo può essere un miglioramento significativo. Ogni miglioramento significativo dovrebbe essere trattato come il prodotto base, nel senso che tutti i costi prima della fattibilità tecnologica devono essere spesi; tutti i costi successivi alla fattibilità tecnologica possono essere capitalizzati. È importante notare che la fattibilità tecnologica può essere raggiunta prima nel processo di sviluppo per i miglioramenti significativi, rispetto ai nuovi prodotti software. La logica è che la maggior parte delle questioni tecnologiche, hardware e di sviluppo ad alto rischio sono già state esaminate durante lo sviluppo iniziale del prodotto. Tenete anche a mente che i miglioramenti del prodotto sono ammissibili per la capitalizzazione solo se sono considerati significativi per il prodotto stesso (cioè nuove funzionalità).
Un terzo punto da considerare è che una volta che i costi sono capitalizzati, sono generalmente ammortizzati durante la vita utile del prodotto o del software. I costi capitalizzati sono poi soggetti a un’analisi di svalutazione per ogni periodo di riferimento. Le regole di ammortamento differiscono tra software per uso interno, software per vendita esterna e costi di sviluppo web. Queste regole sono al di fuori dello scopo di questo articolo (devo smettere di scrivere ad un certo punto!).
L’ultimo punto da considerare è che per il software sviluppato per la vendita o l’uso pubblico, la maggior parte, se non tutti, i costi di ricerca e sviluppo devono essere spesi. Ci sono sacche abbastanza strette di tempo in cui può avvenire la capitalizzazione. Generalmente, quando un’azienda stabilisce che il suo software è sviluppato per uso interno, la maggior parte dei costi di ricerca e sviluppo deve essere capitalizzata. È importante notare che il processo di ogni azienda può essere diverso; di conseguenza, l’applicazione delle regole contabili è specifica per ogni entità.