Setup, onboarding and implementation fees are one of the most common places SaaS revenue goes wrong. The cash arrives at the start of the contract, and it is tempting to call it revenue when the work is done. Under ASC 606 the answer depends on one question: is the implementation distinct from the subscription?
Distinct or not
A service is distinct when both are true:
- Capable of being distinct. The customer can benefit from it on its own or with readily available resources (for example, a service other vendors also provide).
- Distinct in the context of the contract. It is not highly interdependent with the subscription, and you are not combining it with the subscription into a single combined output.
| Implementation type | Typical conclusion |
|---|---|
| Account setup, data loading into your platform, configuration only useful inside your product | Not distinct: combine with the subscription |
| Training a third party could deliver | Often distinct |
| Significant integration or customization a consulting firm could perform | Often distinct |
| Custom development that significantly modifies the platform for the customer | Usually combined with the platform |
If it is not distinct
The fee is added to the transaction price of the subscription and recognized over the period the customer benefits. That is often the contract term. When the fee is not charged again at renewal, consider whether it gives the customer a material right, which can stretch recognition over the expected customer relationship.
If it is distinct
Allocate the total contract price between the subscription and the implementation using standalone selling prices, then recognize the implementation revenue as the service is performed (often by hours or milestones) and the subscription ratably.
Costs follow a parallel rule
Costs to fulfill a contract, such as implementation team time for non-distinct setup, may need to be capitalized under ASC 340-40 and amortized over the same period as the related revenue, when they generate resources used to satisfy the contract and are expected to be recovered.
Practical policy
- Classify each type of implementation you sell once, in writing, with the reasoning.
- Put the classification on the contract record so the revenue schedule picks it up automatically.
- Track implementation hours if any services are distinct and recognized as performed.
- Exclude implementation fees from ARR regardless of the GAAP treatment.
We write the policy, set up the revenue schedules and keep implementation revenue separate from subscription revenue in the monthly pack, so gross margin by revenue stream is visible.
A worked example
A customer signs a one-year subscription at $60,000 and pays a $12,000 onboarding fee for configuration and data migration into the platform. The onboarding is not distinct, renewals carry no onboarding fee, and the expected customer relationship is three years.
- The $12,000 is combined with the subscription.
- Because the customer can renew without paying the fee again, the fee may provide a material right; recognizing it over the expected three-year relationship ($333 a month) is one supportable approach, alongside the subscription's $5,000 a month in year one.
- The onboarding team's costs to deliver the setup may be capitalized as costs to fulfill the contract and amortized over the same period.
If the onboarding had been distinct and priced at its standalone selling price, it would be recognized as performed, typically over the weeks of the project.
How it shows up in metrics
- Implementation revenue is excluded from ARR in either case.
- Services margin should be reported separately so loss-leading onboarding is visible.
- Deferred implementation revenue appears in the deferred revenue roll-forward and should be tracked as its own line.
Sources
Questions founders ask
Can we recognize the setup fee when onboarding is done?
Only if the onboarding is a distinct performance obligation. If the customer cannot benefit from it apart from your platform, the fee is part of the subscription and is recognized over the period of benefit.
Is the period of benefit always the contract term?
Not always. If the fee is a material right because renewals do not require a new fee, the recognition period can extend beyond the initial term.



