Note 2 - Revenue Recognition |
12 Months Ended | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec. 31, 2021 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Notes to Financial Statements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Revenue from Contract with Customer [Text Block] |
Revenue is recognized when all the following steps have been taken and criteria met for each contract:
Nature of Products and Services
We generate revenue from the sales of information technology professional services, sales of third-party software licenses and implementation and training services, sales of third-party support and maintenance contracts based on those software products, and incentive payments received from third-party software suppliers for facilitating sales directly between that supplier and a customer introduced by the Company. In addition, with the GMI acquisition, we expanded our offerings to include licensing and implementation services for proprietary blockchain based SCM software. We sell through our direct relationships with end customers and under subcontractor arrangements.
Professional services are offered through several arrangements – through time and materials arrangements, fixed-price-per-unit arrangements, fixed-price arrangements, or combinations of these arrangements within individual contracts. Revenue under time and materials arrangements is recognized over time in the period the hours are worked or the expenses are incurred, as control of the benefits of the work is deemed to have passed to the customer as the work is performed. Revenue under fixed-price-per-unit arrangements is recognized at a point in time when delivery of units has occurred and units are accepted by the customer or are reasonably expected to be accepted. Generally, revenue under fixed-price arrangements and mixed arrangements is recognized either over time or at a point in time based on the allocation of transaction pricing to each identified performance obligation as control of each is transferred to the customer. For fixed-price arrangements under which documentary evidence of acceptance or receipt of deliverables is not present or withheld by the customer, the Company recognizes revenue when it has the right to invoice the customer. For fixed-price arrangements for which the Company is paid a fixed fee to make itself available to support a customer, with no predetermined deliverables to which transaction prices can be estimated or allocated, revenue is recognized ratably over time.
Third-party software licenses are classified as enterprise server-based software licenses or desktop software licenses, and desktop licenses are further classified by the type of customer and whether the licenses are bulk licenses or individual licenses. The Company’s obligations as the seller for each class differ based on its reseller agreements and whether its customers are government or non-government customers. Revenue from enterprise server-based sales to either government or non-government customers is usually recognized in full at a point in time based on when the customer gains use of the full benefit of the licenses, after the licenses are implemented. If the transaction prices of the performance obligations related to implementation and customer support for the individual contract is material, these obligations are recognized separately over time, as performed. Revenue for desktop software licenses for government customers is usually recognized on a gross basis at a point in time, based on when the customer’s administrative contact gains training in and beneficial use of the administrative portal. Revenue for bulk desktop software licenses for non-government customers is usually recognized on a gross basis at a point in time, based on when the customer’s administrative contact gains training in and beneficial use of the administrative portal. For desktop software licenses sold on an individual license basis to non-government customers, where the Company has no obligation to the customer after the third-party makes delivery of the licenses, the Company has determined it is acting as an agent, and the Company recognizes revenue upon delivery of the licenses only for the net of the selling price and its contract costs.
Third-party support and maintenance contracts for enterprise server-based software include a performance obligation under the Company’s reseller agreements for it to be the first line of support (direct support) and second line of support (intermediary between customer and manufacturer) to the customer. Because of the support performance obligations, and because the amount of support is not estimable, the Company recognizes revenue ratably over time as it makes itself available to provide the support.
Incentive payments are received under reseller agreements with software manufacturers and suppliers where the Company introduces and courts a customer, but the sale occurs directly between the customer and the supplier or between the customer and the manufacturer. Since the transfer of control of the licenses cannot be measured from outside of these transactions, revenue is recognized when payment from the manufacturer or supplier is received.
Disaggregation of Revenue from Contracts with Customers
Contract Balances
Contract Assets
Contract assets consist of assets resulting when revenue recognized exceeds the amount billed or billable to the customer due to allocation of transaction price, and of amounts withheld from payment of invoices as a financing component of a contract. Changes in contract assets balances in 2021 and 2020 are as follows:
Contract Liabilities
Contract liabilities consist of amounts that have been invoiced and for which the Company has the right to bill, but that have not been recognized as revenue because the related goods or services have not been transferred. Changes in contract liabilities balances in 2021 and 2020 are as follows:
Revenue recognized during 2021 from the balance as of December 31, 2020 was $946,884, and revenue recognized during 2020 from the balance as of December 31, 2019, was $464,223.
Costs to Obtain or Fulfill a Contract
When applicable, the Company recognizes an asset related to the costs incurred to obtain a contract only if it expects to recover those costs and it would not have incurred those costs if the contract had not been obtained. The Company recognizes an asset from the costs incurred to fulfill a contract if the costs (i) are specifically identifiable to a contract, (ii) enhance resources that will be used in satisfying performance obligations in future and (iii) are expected to be recovered. There were no such assets as of December 31, 2021 and 2020. When incurred, these costs are amortized ratably over the expected life of the customer.
Financing Components
In instances where the timing of revenue recognition differs from the timing of invoicing, the Company has determined that of its subcontracts to a prime contractor included a significant financing component. The subcontract was invoiced on a time and materials basis, under which 90% of each invoice amount was paid under regular terms, and the 10% payment balance of each invoice was deferred until the prime contractor met a specific deliverable under its prime contract, which occurred in 2021, resulting in the receipt of the deferred amount. The primary purpose of this arrangement was to assist the prime contractor in meeting all of its financial obligations until it could realize the financial benefit of meeting the deliverable. The Company estimated its interest rate of 4.5% based on a small premium over the rate of its revolving line of credit as of the measurement date. The financing component cumulative balance is reflected in contract assets as of December 31, 2020.
Deferred Costs of Revenue
Deferred costs of revenue consist of the costs of third-party support and maintenance contracts for enterprise server-based software, as well direct costs associated with contract deliverables for which control of the work product has not passed to the customer and contract revenue has not been recognized. These costs are reported under the prepaid expenses and other current assets caption on the Company’s consolidated balance sheets. The Company recognizes these direct costs ratably over time as it makes itself available to provide its performance obligation for software support, commensurate with its recognition of revenue. Changes in deferred costs of revenue balances during 2021 and 2020 are as follows:
|