Project-based approach
Capitalization is determined at the project level.
Neo.Tax provides a comprehensive, auditable process for companies to calculate, review, and track software capitalization for ASC 350-40 — designed so auditors can verify quickly without back-and-forth or reliance on after-the-fact estimates.
The system identifies and tracks capitalized time using contemporaneous data directly from the company’s project management system — JIRA, Linear, Azure DevOps — so every capitalized dollar is traceable, defensible, and aligned with GAAP guidance.
Capitalization is determined at the project level.
Aligned with ASC 350-40 development phase boundaries.
Capitalization $ is calculated per person and summed up to the project.
Time allocation is tied to source data — no surveys, no estimates.
From individual tickets to final capitalization — verifiable end to end.
When it’s time for audit, the Neo.Tax export gives you everything needed to verify and validate the capitalized $ amounts — from the top-line summary down to the ticket-level detail behind every percentage.
The export is organized into several sheets, each at a different level of granularity. Together they reconstruct the full calculation.
Shows the Capitalized $ amount per project alongside the capitalization milestones. The total reflects the sum of people’s time on the project across the capitalized period — from the capitalization start date through the end month.
Shows the capitalized $ amount per person and how it was calculated:
The company decides what to include in Total Cost, with optional break-out of Stock-Based Compensation. Moving right in the sheet, the Capitalized % is broken down into individual projects.
Each task or ticket the person worked on in the period, associated with its project. Validations confirm every relevant ticket in the period is assigned to a project — ensuring all effort is accounted for.
Shows the effort by project for each month, alongside the capitalization status of that project in that month. This is the sheet to use for recalculating the project %.
The system takes raw values from the ticket timestamps and scope, then adjusts so each person’s effort doesn’t exceed the working days in a month — accounting for edge cases like sporadically-worked tickets and overlapping tickets.
When a person has less than a full month of effort, the leftover is attributed to Non-project time. This guarantees that all time — even time spent outside the project management system — is fully accounted for.
Neo.Tax automatically analyzes projects and recommends capitalization decisions and milestone dates based on ASC 350-40 guidance. The company then reviews, refines, and approves — with every choice captured in the audit trail.
The system evaluates each project against ASC 350-40 guidelines using ticket-level summaries. Projects are classified as:
Likely meets the ASC 350-40 guidelines.
Mix of capitalizable and non-capitalizable elements, or needs more information.
Likely does not meet the ASC 350-40 guidelines.
The evaluation is performed by an expert AI model trained on tens of thousands of projects rated by senior accountants. The system outputs guidance with detailed reasoning, and the company decides whether to accept or override.
Improving the performance and usability of an internal database tool. Tasks involve connection issues, data export, query execution, plus new features like tabs and telemetry — signals consistent with the application development stage under ASC 350-40.
A mix of bug fixes, security updates, and feature additions (KMIP KMS provider, API version declaration). Some tasks would qualify under ASC 350-40 application-development criteria; others are routine maintenance — flagged for review.
Maintaining and clarifying existing documentation. These costs are post-implementation maintenance and don't qualify for capitalization — treated as expense.
Determining the start and end of the development phase consistently is one of the harder parts of ASC 350-40 at scale. Neo.Tax recommends milestones automatically by detecting key indicators in the ticketing data — reducing the risk of material error from inconsistent practices and reliance on human estimates.
Key signal: a minimum threshold of development-focused tickets. In most cases, this closely aligns with the project start in the ticketing system — preliminary feasibility and requirements work typically happens outside JIRA. Cap. start is set to the month the threshold is detected.
Key signals: keywords signaling release to production and general availability, plus the share of bug and maintenance tickets. Cap. end is set to the month the release signals cross threshold. If no signals are detected and the project remains active, the date stays blank.
Neo.Tax calculates the percent of time each person spent on each project — and on non-project time — by month, then aggregates to the quarter or year.
A multi-factor model uses change-log timestamps (started, in progress, in review, completed) weighted by the technical content of the task — a minor bug fix vs. a large architecture design.
Tickets are rolled up to a person-month total of effort days.
Accounts for differences in ticket volume across people and teams, bulk actions and mass updates, and tasks that are stuck "in progress" without active work.
People with no effort in the month are recorded as 100% non-project time — nothing is double-counted, nothing is dropped.
Sum effort for each project, divide by business days in the period, and produce a clean percentage by person by project by month.
Project percents are averaged across months — so prior periods stay locked and always tie to the year-end total. The result almost always matches a direct sum-effort recalculation, while avoiding mid-year drift.
For each ticket, Neo.Tax extracts a start date and completion date directly from the source system — a transparent, date-stamped audit trail anchored to a single ticket. Effort days for a project are calculated from the days an active ticket existed for that project and the ticket’s scope:
A machine-learning model handles edge cases like a large ticket worked on intermittently or several small tickets on the same day. A ticket’s effort grows with the calendar time and technical scope it occupies — longer, more complex work streams naturally outweigh quick fixes, while remaining traceable to source-system timestamps.
The system calculates time spent not working on projects by computing the gap between a full month of effort and actual logged effort. That gap becomes Non-Project Time — preserving the 100% accounting for every person every month.
Q1 percentages are the average of monthly percents — not a recomputed sum. This keeps prior months locked, ensures the year always reconciles, and matches a direct sum-effort recalculation within typical rounding (1–3%).
To independently reproduce the project percentages, head to the Effort by Project by Month sheet and build a pivot table:
The resulting Project %s will match the Person by Project by Phase sheet within 1–3% — the difference is rounding.
User controls. The company controls who can view and edit projects, capitalization status, and percentages. All user actions are logged at the user level, and changes to employee time are reflected in the Editor / Source column.
Input controls. At sync time, Neo.Tax runs validations to confirm that all tickets in the company’s project management system are accounted for — specifically that every ticket with an assignee that was active or completed in the period is assigned to a project.
Period locking. Prior periods are never updated on sync. Effort values, assignee, and project assignments are locked for each month once closed.
See the export and walkthrough applied to your own engineering data.
Schedule a Demo