XML 29 R19.htm IDEA: XBRL DOCUMENT v3.20.2
Revenue
3 Months Ended
Mar. 31, 2020
Revenue [Abstract]  
Revenue
12.
Revenue

We generate revenue primarily through three broad revenue streams: 1) System Design and Build ("SDB"), 2) Software and 3) Training and Consulting Services. We recognize revenue from SDB and software contracts mainly through our Performance segment. Training and consulting service contracts are recognized through both our Performance and NITC segments.

The following table represents a disaggregation of revenue by type of goods or services for the three months ended March 31, 2020 and 2019, along with the reportable segment for each category:

(in thousands)
  
Three months ended
 
  
March 31, 2020
  
2019
 
Performance segment
      
System Design and Build
 
$
3,813
  
$
6,442
 
Software
  
910
   
749
 
Training and Consulting Services
  
4,988
   
4,999
 
         
NITC segment
        
Training and Consulting Services
  
7,994
   
10,004
 
         
Total revenue
 
$
17,705
  
$
22,194
 

SDB contracts are typically fixed-priced, and we receive payments based on a billing schedule established in our contracts. We generally have 2 main performance obligations: the training simulator build and Post Contract Support ("PCS").
Fees for Post Contract Support ("PCS") are normally paid in advance of the service period.

The training simulator build generally includes hardware, software and labor. We recognize revenue for the training simulator build over the construction and installation period, using the cost-to-cost input method. In applying the cost-to-cost input method, we use the actual costs incurred to date, relative to the total estimated costs, to measure the work progress towards the completion of the performance obligation and recognize revenue accordingly. Estimated contract costs are reviewed and revised periodically during the contract period, and the cumulative effect of any change in estimates is recognized in the period in which the change is identified. Estimated losses are recognized in the period such losses are identified. Uncertainties inherent in the performance of contracts include labor availability and productivity, material costs, change order scope and pricing, software modification and customer acceptance issues. The reliability of these cost estimates is critical to our revenue recognition as a significant change in the estimates can cause our revenue and related margins to change significantly from the amounts estimated in the early stages of the project.

The transaction price for Software contracts is generally fixed and revenue is recognized upon delivery of the software, with fees due in advance of or shortly after delivery of the software.

We recognize Training and Consulting Services revenue as services are performed and bill our customers on a regular basis, such as weekly, biweekly or monthly for services provided and in time with revenue recognition.

Contract liability, which we classify as billing in excess of revenue earned, relates to payments received in advance of performance under the contract. Contract liabilities are recognized as revenue as performance obligations are satisfied.

The following table reflects the revenue recognized in the reporting periods that were included in contract liabilities from contracts with customers:

(in thousands)
  
Three months ended
 
  
March 31, 2020
 
March 31, 2019
 
Revenue recognized in the period from amounts included in Billings in Excess of Revenue Earned at the beginning of the period
 
$
3,762
  
$
5,040
 


As of March 31, 2020, the aggregate amount of transaction price allocated to the remaining performance obligations of SDB, software and fixed-price training and consulting services contracts is $22.8 million. We will recognize the revenue as the performance obligations are satisfied and expected this to occur over the next 12 months.