XML 29 R19.htm IDEA: XBRL DOCUMENT v3.21.1
Revenue
3 Months Ended
Mar. 31, 2021
Revenue [Abstract]  
Revenue
Note 12 - Revenue

We account for revenue in accordance with ASC 606, Revenue from Contracts with Customers. We primarily generate revenue through three distinct revenue streams: (1) System Design and Build (“SDB”), (2) Software and (3) Training and Consulting Services across our Performance and NITC (workforce solutions) segments. We recognize revenue from SDB and software contracts mainly through our Performance segment. We recognize training and consulting service contracts through both segments.

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

(in thousands)
  
Three months ended
 
  
March 31, 2021
  
March 31, 2020
 
Performance Improvement Solutions segment
      
System Design and Build
 
$
1,862
  
$
3,813
 
Point in time
  
-
   
-
 
Over time
  
1,862
   
3,813
 
         
Software and Support
  
813
   
910
 
Point in time
  
95
   
640
 
Over time
  
718
   
270
 
         
Training and Consulting Services
  
4,406
   
4,988
 
Point in time
  
68
   
29
 
Over time
  
4,338
   
4,959
 
         
Nuclear Industry Training and Consulting segment
        
Training and Consulting Services
  
6,023
   
7,994
 
Point in time
  
86
   
-
 
Over time
  
5,937
   
7,994
 
         
Total revenue
 
$
13,104
  
$
17,705
 

SDB contracts are typically fixed-priced, and we receive payments based on a billing schedule established in our contracts. We generally have two main performance obligations: (1) the training simulator build and (2) the Post Contract Support (“PCS”) period. Fees for PCS are normally paid in advance of the related service period. The training simulator build performance obligation generally includes hardware, software, and labor. The transaction price under the SDB contracts is allocated to each performance obligation based on its standalone selling price. 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 over time as control transfers to a customer. 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 become known.

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 previous estimates.

Management judgments and estimates involved in the initial creation and subsequent updates to the Company’s estimates-at-completion and related profit recognized are critical to our revenue recognition associated with SDB contracts. Inputs and assumptions requiring significant management judgment included anticipated direct labor, subcontract labor, and other direct costs required to deliver on unfinished performance obligations.

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

We recognize Training and Consulting Services revenue as services are provided, and we bill our customers for these services at fixed intervals (i.e., weekly, biweekly or monthly) based on contract terms.

Contract asset, which we classify as unbilled receivables, relates to performance under the contract for obligations that are satisfied but not yet billed. Contract assets are recognized as revenue as they occur.

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, 2021
 
March 31, 2020
 
Revenue recognized in the period from amounts included in Billings in Excess of Revenue Earned at the beginning of the period
 
$
2,189
  
$
3,762