Accurately measuring and tracking the costs associated with engineering research and development (R&D) projects can be challenging for companies due to the complexity of engineering work, the time-sensitive nature of the process, and the need for cross-team collaboration. These factors make it difficult to allocate costs to specific projects, accurately determine potential benefits, and comply with accounting standards and regulations.
Thanks to the time-saving benefits and increased accuracy of our automated cost tracking process, my boss has given me a new and exciting challenge: partner with our finance team to create a pain-free process for our engineering team. The aim is to make the process of capitalizing Iterable’s software R&D costs as seamless and effortless as possible for our hard working engineers.
Software R&D cost capitalization—a.k.a. “cost cap”—is the accounting practice of treating software R&D costs as investments rather than expenses, allowing SaaS companies to take advantage of expenses incurred during software development as an asset, with significant financial benefits. Accurate software R&D cost capitalization is crucial for SaaS companies to showcase the value of their R&D investments, maintain competitiveness, and promote innovation.
In this blog post, I’ll cover the traditional manual process of cost capitalization, the updates that have been made, and some helpful tips and techniques to implement an automated process that will save time and effort.
The Old Way: Manual Procedures and Constraints
The old, manual R&D cost capitalization process had its fair share of challenges, which is why we decided to switch to a more automated approach. In the previous process, the engineering manager manually owned the cost cap project through one spreadsheet, updating their engineers’ time spent on each cost cap project quarterly.
However, this manual process came with several challenges that restricted our ability to make informed decisions about R&D investments.
- Manual and error-prone process: Manual data entry into Excel spreadsheets results in a lack of visibility into cross-team effects and numbers based on best guesses.
- Limited scalability: As the organization grows, the process becomes increasingly inefficient and unscalable due to the significant time required for engineers to update their data, leading to limited reporting frequency.
- Lack of visibility into ROI: Without clear visibility into cross-team results, it’s challenging to determine the return on engineering investments and understand how new features or products impact the entire organization.
- Potential for inaccurate cost cap reports: The reliance on best-guessing numbers for each project can result in errors that may harm the financial health of the organization.
- Time-consuming: Engineering managers spend numerous hours updating data that could be better spent on more strategic tasks such as analyzing data to make informed investment decisions.
The New Way: Revolutionizing Cost Management in 7 Easy Steps
To address the limitations of the old process, we’re thrilled to introduce the new and improved seven-step R&D cost capitalization process! By automating this process, we’ve addressed the limitations of the old system.
Step 1: Define the Goal
Defining the goal is the critical first step in software R&D cost capitalization. Our overarching company goal is to create a more efficient and effective way to manage costs.
As the operations manager, I’ve seen the struggles of our engineers, engineering managers, and finance team firsthand. That’s why I’m personally committed to making their lives easier by streamlining our software R&D cost capitalization process.
Step 2: Determine the Frequency
Determining the frequency of software R&D cost capitalization is crucial to ensure that your company’s financial statements accurately reflect your R&D investments. It’s important to strike a balance between the frequency of the process and the time and resources required to perform it.
At Iterable, we’ve decided to perform software R&D cost capitalization on a monthly basis to maintain an accurate and up-to-date record of our investments.
Step 3: Define the Scope
To manage expenses and account for R&D activities accurately, Iterable establishes a clear definition of R&D and capitalizable expenses.
Capitalizable Activities in the Application Development Stage:
- Internal labor costs (full-time equivalent and contractors) for time spent on design, coding, and testing software that is probable of resulting in additional functionality.
- Payroll and payroll-related costs (e.g., costs of employee benefits or stock-based compensation) for employees who are directly associated with and who devote time to software development
- External direct cost of materials and services consumed in developing or obtaining internal-use software.
- Example, fees to write program code or purchase third party software. (Tracked by vendor invoices)
Non-Capitalizable Activities (Opex):
- Architecture, planning, meetings and process development
- Support, maintenance, bug fixes and data movement
- Conversion and training
- Internal tools that help us deliver our services more effectively
- UI Adjustment
- Overhead costs including general and administrative
- Expanding user access for existing feature
Step 4: Identify and Track R&D Projects
The fourth step in implementing the R&D cost capitalization process is to identify the most critical engineering initiatives that drive revenue growth and customer satisfaction. Prioritize these initiatives based on their impact and the resources required to deliver them.
As part of the project selection process, we‘ve incorporated a brief for each of the proposed projects. The aim is to enable the finance and engineering teams to make more informed decisions regarding which projects should be capitalized prior to their initiation. The brief includes:
- Concept Doc: This detailed document outlines the project’s purpose, ARR, use case, as well as any changes or new features that will be introduced.
- Type of Work: A dropdown list is provided to define the type of work involved, including product development, maintenance, scalability, security, etc.
- Scope: The size of the project is defined.
- Number of Engineers Involved: This specifies the number of engineers that will be involved in the project.
- Dependency: Any dependencies on other projects or initiatives are identified
Step 5: Assign Costs to R&D Project
To make the cost cap process more efficient and accurate, we decided to use a software called Jellyfish to help us automate this whole process. Jellyfish connects with Jira and Github to automatically collect engineering allowances.
We pre-select the cost cap projects every quarter after finalizing the roadmap, and Jellyfish creates a report that we use to track the engineering costs. This report provides real-time visibility into the status of each cost cap project, making it easy to track cross-team effects.
Step 6: Record and Report R&D Expenses
Jellyfish creates a daily report that consists of several tabs, including Summary-Output, Deliverable-Output, Issues-Output, and Person-Output. The report’s data is refreshed daily, providing accurate and up-to-date information.
Once the report is generated, our Finance team uses the data to create an Iterable version of the report and maintain the data. By doing so, we can ensure that the report is consistently updated with the latest information, enabling our team to make informed decisions based on accurate data.
Step 7: Validation
Validation is crucial to identify potential issues before the end of the month, make necessary changes, and improve our confidence level for the upcoming audit. To achieve this, we send capitalizable projects to the engineering manager at the beginning of each month, who validates the time spent by each engineer. This process ensures that our records are accurate, and expenses are accounted for appropriately.
Benefits of the New Cost Cap Process
Implementing this new R&D cost capitalization process with the implementation of Jellyfish has had several benefits for our company:
- Saved Time: Automating the process of tracking R&D project costs saved us significant amounts of time compared to manual tracking. Two hours turned into five minutes!) Git and Jira can capture data on project activities and expenses automatically, reducing the need for manual data entry and analysis.:
- Improved Accuracy: Automating the process of tracking R&D project costs improves accuracy, as it reduces the risk of human error. This can provide more reliable data for financial reporting and decision-making.
- Better Insights: By analyzing Git and Jira data on R&D project costs, we can gain valuable insights into our R&D activities. For example, the leadership team can identify patterns in spending, assess the effectiveness of different projects and teams, and identify areas where they can improve their R&D processes.
Overall, automating the process of capitalizing R&D project costs using Git and Jira data can provide significant benefits for companies looking to improve their financial reporting, accountability, and decision-making processes.