XML 31 R21.htm IDEA: XBRL DOCUMENT v3.19.2
Revenue
6 Months Ended
Jun. 30, 2019
Revenue [Abstract]  
Revenue
14.
Revenue

We account for revenue in accordance with ASC 606, Revenue from Contracts with Customers, upon the adoption of ASU 2014-09, Revenue from Contracts with Customers, and all the related updates (collectively, the new revenue standard) on January 1, 2018, using the modified retrospective transition method.

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 the Performance Improvement Solutions segment and the training and consulting service contracts through both the Performance Improvement Solutions segment and Nuclear Industry Training and Consulting segment.

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

(in thousands)

  
Three months ended June 30,
  
Six months ended June 30,
 
  
2019
  
2018
  
2019
  
2018
 
Performance Improvement Solutions segment
            
System Design and Build
 
$
5,595
  
$
7,300
  
$
12,037
  
$
14,795
 
Software
  
635
   
546
   
1,384
   
1,415
 
Training and Consulting Services
  
6,780
   
3,018
   
11,779
   
4,555
 
                 
Nuclear Industry Training and Consulting segment
                
Training and Consulting Services
  
10,448
   
13,834
   
20,452
   
26,828
 
                 
Total revenue
 
$
23,458
  
$
24,698
  
$
45,652
  
$
47,593
 


SDB contracts are typically fixed-priced, and we receive payments based on a billing schedule as established in our contracts. The transaction price for software contracts is generally fixed. Fees for software are normally due in advance of or shortly after delivery of the software. Fees for PCS are normally paid in advance of the service period. For Training and Consulting Services, the customers are generally billed on a regular basis, such as weekly, biweekly or monthly, for services provided. 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 the contract liabilities from contracts with customers:

(in thousands)
 
Three Months Ended June 30,
  
Six Months Ended June 30,
 
 
2019
 
2018
  
2019
 
2018
 
Revenue recognized in the period from amounts included in Billings in Excess at the beginning of the period
 
$
2,813
  
$
2,738
  
$
7,853
  
$
7,954
 

For an SDB contract, we generally have two main performance obligations: the training simulator build and post contract support ("PCS"). The training simulator build generally includes hardware, software, and labor. We recognize the training simulator build revenue 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 toward the completion of the performance obligation and recognize revenue accordingly. Estimated contract costs are reviewed and revised periodically as the work progresses, 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 the Company's revenue recognition as a significant change in the estimates can cause the Company's revenue and related margins to change significantly from the amounts estimated in the early stages of the project.

For the three and six months ended June 30, 2019, the Company recognized revenue of $1.1 million and $1.9 million related to performance obligations satisfied in previous periods, respectively.

As of June 30, 2019, the aggregate amount of transaction price allocated to the remaining performance obligations of SDB, software and fixed-price training and consulting services contracts is $27.2 million. The Company will recognize the revenue as the performance obligations are satisfied, which is expected to occur over the next 12 months.