XML 59 R10.htm IDEA: XBRL DOCUMENT v3.20.1
Revenue
3 Months Ended
Mar. 31, 2020
Revenue from Contract with Customer [Abstract]  
Revenue
3. Revenue

Revenue Recognition

We generate subscriptions revenue primarily through the sale of software as a service ("SaaS") subscriptions bundled with maintenance and support and hosting services as well as term license subscriptions bundled with maintenance and support. We generate professional services revenue from fees for our consulting services, including application development and deployment assistance as well as training related to our platform.

The following table summarizes revenue from contracts with customers for the three months ended March 31, 2020 and March 31, 2019 (in thousands):
Three Months Ended March 31,
20202019
SaaS subscriptions$28,390  $21,278  
Term license subscriptions17,793  9,557  
Maintenance and support4,253  3,722  
Professional services28,428  25,747  
Total revenue$78,864  $60,304  

Performance Obligations and Timing of Revenue Recognition

We primarily sell products and services that fall into the categories discussed below. Each category contains one or more performance obligations that are either (1) capable of being distinct (i.e., the customer can benefit from the product or service on its own or together with readily available resources, including those purchased separately from us) and distinct within the context of the contract (i.e., separately identified from other promises in the contract) or (2) a series of distinct products or services that are substantially the same and have the same pattern of transfer to the customer. Our term license subscriptions are delivered at a point in time while our SaaS subscriptions, maintenance and support, and professional services are delivered over time.

Subscriptions Revenue

Subscriptions revenue is primarily related to (1) SaaS subscriptions bundled with maintenance and support and hosting services and (2) term license subscriptions bundled with maintenance and support. We generally charge subscription fees on a per-user basis and, to a lesser degree, non-user based single application licenses. We bill customers and collect payment for subscriptions to our platform in advance on an annual, quarterly, or monthly basis. In certain instances, our customers have paid their entire contract up front.

SaaS Subscriptions

We generate cloud-based subscription revenue primarily from the sales of subscriptions to access our cloud offering, together with related support services to our customers. We perform all required maintenance and support for our cloud offering, and we do not separately charge customers for hosting costs. Revenue is recognized on a ratable basis over the contract term beginning on the date the service is made available to the customer. Our cloud-based subscription contracts generally have a term of one to three years in length. We bill customers and collect payment for subscriptions to our platform in advance, and they are non-cancellable.

Term License Subscriptions
Our term license subscription revenue is derived from customers with on-premise installations of our platform pursuant to contracts that were historically one to three years in length. The majority of recent contracts have been one year in length. Although term license subscriptions are sold with maintenance and support, the software is fully functional at the beginning of the subscription and is considered a distinct performance obligation. On rare occasions, a cloud-based subscription may include the right for the customer to take possession of the license and as such, the revenue is treated as a license. Revenue from term license subscriptions is recognized when control of the software license has transferred to the customer, which is the later of delivery or commencement of the contract term.

Maintenance and Support

Maintenance and support subscriptions include both technical support and when-and-if-available software upgrades, which are treated as a single performance obligation as they are considered a series of distinct services that are substantially the same and have the same duration and measure of progress. Revenue from maintenance and support is recognized ratably over the contract period, which is the period over which the customer has continuous access to maintenance and support.

Professional Services

Our professional services revenue is comprised of fees for consulting services, including application development and deployment assistance as well as training services related to our platform. Our professional services are considered distinct performance obligations when sold stand alone or with other products.

Consulting Services

We sell consulting services to assist customers in planning and executing the deployment of our software. Customers are not required to use consulting services to fully benefit from the software. Consulting services are regularly sold on a standalone basis and either (1) under a fixed-fee arrangement or (2) on a time and materials basis. Consulting contracts are each considered separate performance obligations because they do not integrate with each other or with other products and services to deliver a combined output to the customer, do not modify or customize (or are not modified or customized by) each other or other products and services, and do not affect the customer's ability to use the other consulting offerings or other products and services. Revenue under consulting contracts is recognized over time as services are delivered. For time and materials-based consulting contracts, we have elected the practical expedient of recognizing revenue upon invoicing since the invoiced amount corresponds directly to the value of our service to-date.

Training Services

We sell various training services to our customers. Training services are sold in the form of prepaid training credits that are redeemed based on a fixed rate per course. Training revenue is recognized when the associated training services are delivered.

Significant Judgments and Estimates

Determining the Transaction Price

The transaction price includes both fixed and variable consideration. Variable consideration is included in the transaction price to the extent it is probable a significant reversal will not occur. The amount of variable consideration excluded from the transaction price for the three months ended March 31, 2020 was insignificant. Our estimates of variable consideration are also subject to subsequent true-up adjustments and may result in changes to transaction prices; however, such true-up adjustments are not expected to be material.

Allocating the Transaction Price Based on Standalone Selling Prices ("SSP")

We allocate the transaction price to each performance obligation in a contract based on its relative SSP. The SSP is the observable price at which we sell the product or service separately. In the absence of observable pricing, we estimate SSP using the residual approach. We establish SSP as follows:
1.SaaS subscriptions - Given the highly variable selling price of our SaaS subscriptions, we establish the SSP of our SaaS subscriptions using a residual approach after first determining the SSP of consulting and training services. We have concluded the residual approach to estimating SSP of our SaaS subscriptions is an appropriate allocation of the transaction price.

2.Term license subscriptions - Given the highly variable selling price of our term license subscriptions, we have established SSP of term license subscriptions using a residual approach after first determining the SSP of maintenance and support. Maintenance and support is sold on a standalone basis in conjunction with renewals of our legacy perpetual software licenses and within a narrow range of the net license fee. Because an economic relationship exists between the license and maintenance and support, we have concluded the residual approach to estimating SSP of term license subscriptions is an appropriate allocation of the transaction price.

3.Maintenance and support - We establish SSP of maintenance and support as a percentage of the stated net subscription fee based on observable pricing of maintenance and support renewals from our legacy perpetual software licenses.

4.Consulting services and training services - SSP of consulting services and training services is established based on the observable pricing of standalone sales within each geographic region where the services are sold.

Contract Balances

Timing may differ between the satisfaction of performance obligations and the invoicing and collection of amounts related to our contracts with customers. Contract assets primarily relate to unbilled amounts for contracts with customers for which the amount of revenue recognized exceeds the amount billed to the customer. Contract assets are transferred to accounts receivable when the right to invoice becomes unconditional. As of March 31, 2020 and December 31, 2019, contract assets of $23.4 million and $22.8 million, respectively, are included in the prepaid expenses and other current assets and other assets line items in our condensed consolidated balance sheets.

Contract liabilities consists of deferred revenue and include payments received in advance of the satisfaction of performance obligations. Deferred revenue is then recognized as the revenue recognition criteria are met. Deferred revenue that will be recognized during the succeeding 12-month period is recorded as current, and the remaining deferred revenue is recorded as non-current. For the three months ended March 31, 2020, we recognized $35.6 million of revenue that was included in the deferred revenue balance as of January 1, 2020.

Transaction Price Allocated to the Remaining Performance Obligations

As of March 31, 2020, we had an aggregate transaction price of $172.5 million allocated to unsatisfied performance obligations. We expect to recognize $155.6 million of this balance as revenue over the next 24 months with the remaining amount recognized thereafter.