Revenue Recognition | Note 2 – Revenue Recognition We recognize revenue in accordance with ASC 606, “Revenue from Contracts with Customers” (“ASC 606”). Under ASC 606, we apply the following five step model: 1. Identify the contract with the customer; 2. Identify the performance obligations in the contract; 3. Determine the transaction price; 4. Allocate the transaction price to the performance obligations in the contract; and 5. Recognize revenue when (or as) each performance obligation is satisfied. We categorize revenue as software licenses, software maintenance, or services. Revenue from software licenses is recognized at a point in time upon delivery, provided all other revenue recognition criteria are met. We recognize software maintenance revenue over time on a straight-line basis over the contract period. Services revenue is recognized over time as the services are delivered using an input method (i.e., labor hours incurred as a percentage of total labor hours budgeted), provided all other revenue recognition criteria are met. In addition to selling software licenses, software maintenance and software services on a standalone basis, a significant portion of our contracts include multiple performance obligations, which require an allocation of the transaction price to each performance obligation based on a relative standalone selling price (“SSP”) basis. In addition to selling software licenses, software maintenance and software services on a standalone basis, a significant portion of our contracts include multiple performance obligations, which require an allocation of the transaction price to each distinct performance obligation based on a relative standalone selling price (“SSP) basis. The SSP is the price at which we would sell a promised good or service separately to a customer. The best estimate of SSP is the observable price of a good or service when we sell that good or service separately. A contractually stated price or a list price for a good or service may be the SSP of that good or service. We use a range of amounts to estimate SSP when we sell each of the goods and services separately and need to determine whether there is a discount that needs to be allocated based on the relative SSP of the various goods and services. In instances where SSP is not directly observable, such as when we do not sell the product or service separately, we typically determine the SSP using an adjusted market assessment approach using information that may include market conditions and other observable inputs. We typically have more than one SSP for individual goods and services due to the stratification of those goods and services by customers and circumstances. In these instances, we may use information such as the nature of the customer and distribution channel in determining the SSP. When software licenses and significant customization engineering services are sold together, they are accounted for as a combined performance obligation, as the software licenses are generally highly dependent on, and interrelated with, the associated customization services and therefore are not distinct performance obligations. Revenue for the combined performance obligation is recognized over time as the services are delivered using an input method (i.e., labor hours incurred as a percentage of total labor hours budgeted). The amount of consideration is not adjusted for a significant financing component if the time between payment and the transfer of the related good or service is expected to be one year or less under the practical expedient in ASC 606-10-32-18. Our revenue arrangements are typically accounted for under such expedient, as payment is typically due within 30 to 60 days. As of June 30, 2020 and 2019, none of our contracts contained a significant financing component. Disaggregation of Revenues We organize ourselves into a single segment that reports to the chief operating decision maker. We conduct our operations in the United States and sell our products and services to domestic and international customers. Revenues were generated from the following geographic regions for the three and six months ended June 30, 2020 and 2019 (in thousands): Three Months Ended Six Months Ended June 30, June 30, 2020 2019 2020 2019 United States $ 1,156 $ 1,728 $ 3,167 $ 3,451 United Kingdom 92 466 779 1,345 Brazil 210 177 491 330 Canada 199 84 337 311 Rest of World 233 557 635 1,307 $ 1,890 $ 3,012 $ 5,409 $ 6,744 Revenue by product group for the three and six months ended June 30, 2020 and 2019 was (in thousands): Three Months Ended Six Months Ended June 30, June 30, 2020 2019 2020 2019 Biometrics $ 1,709 $ 2,877 $ 4,971 $ 6,349 Imaging 181 135 438 395 $ 1,890 $ 3,012 $ 5,409 $ 6,744 Revenue by timing of transfer of goods or services for the three and six months ended June 30, 2020 and 2019 was (in thousands): Three Months Ended Six Months Ended June 30, June 30, 2020 2019 2020 2019 Goods or services transferred at a point in time $ 409 $ 957 $ 2,362 $ 2,128 Goods or services transferred over time 1,481 2,055 3,047 4,616 $ 1,890 $ 3,012 $ 5,409 $ 6,744 Contract Balances When the timing of our delivery of goods or services is different from the timing of payments made by customers, we recognize either a contract asset (performance precedes contractual due date) or a contract liability (customer payment precedes performance). Customers that prepay are represented by the deferred revenue below until the performance obligation is satisfied. Our contract assets consist of unbilled receivables. Our contract liabilities consist of deferred (unearned) revenue, which is generally related to software maintenance contracts. We classify deferred revenue as current or noncurrent based on the timing of when we expect to recognize revenue. The following table presents changes in our contract assets and liabilities during the six months ended June 30, 2019 and 2020 (in thousands): Revenue Balance at Recognized Beginning of In Advance of Balance at End of Period Billings Billings Period Three months ended June 30, 2019 Contract assets: Unbilled receivables $ 3,918 $ 409 $ (668) $ 3,659 Three months ended June 30, 2020 Contract assets: Unbilled receivables $ 3,225 $ 77 $ (1,284) $ 2,018 Balance at Beginning of Revenue Balance at End of Period Billings Recognized Period Three months ended June 30, 2019 Contract liabilities: Deferred revenue $ 2,516 $ 1,228 $ (1,320) $ 2,424 Three months ended June 30, 2020 Contract liabilities: Deferred revenue $ 2,617 $ 1,736 $ (1,392) $ 2,961 Revenue Balance at Recognized Beginning of In Advance of Balance at End of Period Billings Billings Period Six months ended June 30, 2019 Contract assets: Unbilled receivables $ 3,279 $ 1,468 $ (1,088) $ 3,659 Six months ended June 30, 2020 Contract assets: Unbilled receivables $ 3,315 $ 260 $ (1,557) $ 2,018 Balance at Beginning of Revenue Balance at End of Period Billings Recognized Period Six months ended June 30, 2019 Contract liabilities: Deferred revenue $ 3,099 $ 2,000 $ (2,675) $ 2,424 Six months ended June 30, 2020 Contract liabilities: Deferred revenue $ 2,837 $ 2,884 $ (2,760) $ 2,961 Remaining Performance Obligations Remaining performance obligations represent the transaction price from contracts for which work has not been performed or goods and services have not been delivered. We expect to recognize revenue on approximately 58% of the remaining performance obligations over the next 12 months, with the remainder recognized thereafter. As of June 30, 2020, the aggregate amount of the transaction price allocated to remaining performance obligations for software maintenance contracts with a duration greater than one year was $2.6 million. |