Effective January 1, 2018, we adopted ASC 606, Revenue from Contracts with Customers ( ASC 606 ), using the modified retrospective transition method. In accordance with ASC 606, revenue is recognized when control of the promised goods or services is transferred to our customers, in an amount that reflects the consideration we expect to be entitled to in exchange for those goods or services. The core principle of the standard is that we should recognize revenue to depict the transfer of promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To achieve that core principle, we apply the following five step model: 1. Identify the contract with the customer; 2. Identify the performance obligation 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. At contract inception, we assess the goods and services promised in a contract with a customer and identify as a performance obligation each promise to transfer to the customer either: (i) a good or service (or a bundle of goods or services) that is distinct, or (ii) a series of distinct goods or services that are substantially the same and that have the same pattern of transfer to the customer. We recognize revenue only when we satisfy a performance obligation by transferring a promised good or service to a customer. Determining the timing of the satisfaction of performance obligations as well as the transaction price and the amounts allocated to performance obligations requires judgement. We disclose disaggregation of our customer revenue by classes of similar products and services as follows:  Software licensing and royalties;  Sales of computer hardware and identification media;  Services; and  Post-contract customer support. Software Licensing and Royalties Software licenses consist of revenue from the sale of software for identity management applications. Our software licenses are functional intellectual property and typically provide customers with the right to use our software in perpetuity as it exists when made available to the customer. We recognize revenue from software licensing at a point in time upon delivery, provided all other revenue recognition criteria are met. Royalties consist of revenue from usage-based arrangements and guaranteed minimum-based arrangements. We recognize revenue for royalty arrangements at the later of (i) when the related sales occur, or (ii) when the performance obligation to which some or all of the royalty has been allocated has been satisfied. Computer Hardware and Identification Media We generate revenue from the sale of computer hardware and identification media. Revenue for these items is recognized upon delivery of these products to the customer, provided all other revenue recognition criteria are met. Services Services revenue is comprised primarily of software customization services, software integration services, system installation services and customer training. Revenue is generally recognized upon completion of services and customer acceptance provided all other revenue recognition criteria are met. Post-Contract Customer Support (PCS) Post contract customer support consists of maintenance on software and hardware for our identity management solutions. We recognize PCS revenue from periodic maintenance agreements. Revenue is generally recognized ratably over the respective maintenance periods provided no significant obligations remain. Costs related to such contracts are expensed as incurred. Arrangements with Multiple Performance Obligations A performance obligation is a promise in a contract to transfer a distinct good or service to the customer. In addition to selling software licenses, hardware and identification media, services and post-contract customer support on a standalone basis, certain contracts include multiple performance obligations. For such arrangements, we allocate revenue to each performance obligation based on our best estimate of the relative standalone selling price. The standalone selling price for a performance obligation is the price at which we would sell a promised good or service separately to a customer. The primary methods used to estimate standalone selling price are as follows: (i) the expected cost-plus margin approach, under which we forecast our expected costs of satisfying a performance obligation and then add an appropriate margin for that distinct good or service, and (ii) the percent discount off of list price approach. Contract Costs We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the benefit of those costs to be longer than one year. We apply a practical expedient to expense costs as incurred for costs to obtain a contract when the amortization period is one year or less. At March 31, 2020 and December 31, 2019, we had capitalized incremental costs of obtaining a contract with a customer of approximately $118,000. We recorded no additional contract costs during the three months ended March 31, 2020. Additionally, we recognized no revenue during the three months ended March 31, 2020 that was related to contract costs at the beginning of the period. Other Items We do not offer rights of return for our products and services in the normal course of business. Sales tax collected from customers is excluded from revenue. The following table sets forth our disaggregated revenue for the three months ended March 31, 2020 and 2019: Three Months Ended March 31, Net Revenue 2020 2019 (dollars in thousands) Software and royalties $ 125 $ 111 Hardware and consumables 14 11 Services 11 156 Maintenance 646 653 Total revenue $ 796 $ 931