XML 25 R10.htm IDEA: XBRL DOCUMENT
v3.20.4

Revenue Recognition | 12 Months Ended
--- | ---
Dec. 31, 2020
Revenue Recognition |
Revenue Recognition | 3. Revenue Recognition We generate revenue from the re-sale of third-party software licenses, subscriptions, hardware, and related service contracts. Finance fees related to sales are classified as interest income. The following table depicts the disaggregation of revenue according to revenue type and is consistent with how we evaluate our financial performance
|  | Year ended |
Net sales: |  |  | December 31, |  |  | December 31, |
|  |  | 2020 |  |  | 2019 |
Hardware, software and other products |  | $ | 230,462 |  | $ | 189,335 |
Software - security & highly interdependent with support |  |  | 8,266 |  |  | 7,186 |
Maintenance, support & other services |  |  | 12,840 |  |  | 12,238 |
Net sales |  | $ | 251,568 |  | $ | 208,759 |
See Note 14 for disaggregation of revenue by segment and geography. Hardware, software and other products - Hardware product consists of sales of hardware manufactured by third parties. Hardware product is delivered from our warehouse or drop shipped directly from the vendor. Revenue from our hardware products is recognized on a gross basis, with the selling price to the customer as net sales, and the cost of the related product as cost of sales, upon transfer of control to the customer, as the Company is acting as a principal in the transaction. Control is generally deemed to have passed to the customer upon transfer of title and risk of ownership. Software product consists of sales of perpetual and term software licenses for products developed by third party vendors, which are distinct from related maintenance and support. Software licenses are delivered via electronic license keys provided by the vendor to the end user. Revenue from the sale of software products is recognized on a gross basis, with the selling price to the customer as net sales, and the cost of the related product as cost of sales, upon transfer of control to our customers as the Company is a principal in the transaction. Control is deemed to have passed to the customer when they acquire the right to use or copy the software under license as substantially all product functionality is available to the customer at the time of sale. Other products include marketing revenues that are recorded on a gross basis as the Company is a principal in the arrangement. Software maintenance and support, commonly known as software assurance or post contract support, consists of software updates and technical support provided by the software vendor to the licensor over a period. In cases where the software maintenance is distinct from the related software license, software maintenance is accounted for as a separate performance obligation. In cases where the software maintenance is not distinct from the related software license, it is accounted for as a single performance obligation with the related license. We utilize judgement in determining whether the maintenance is distinct from the software itself. This involves considering if the software provides its original intended functionality without the updates, or is dependent on frequent, or continuous updates to maintain its functionality. See Allocation of the transaction price to the performance obligations in the contract in Note 2 for a discussion of the allocation of maintenance and support costs when they are distinct from the related software licenses and Software - security and highly interdependent with support below for a discussion of maintenance and support costs when they are not distinct from the related software license. Software - security and highly interdependent with support - Software - security software and software highly interdependent with support consists of sales of security subscriptions and other licensed software products whose functionality is highly interdependent with, and therefore not distinct from, related software maintenance. Delivery of the software license and related support over time is considered a single performance obligation of the third-party vendor for these products. The Company is an agent in these transactions, with revenue being recorded on a net basis when its performance obligation of processing a valid order between the vendor partner and customer contracting for the services is complete. Maintenance, support and other services revenue - Maintenance, support and other services revenue consists of third-party post-contract support that is not critical or essential to the core functionality of the related licensed software, and, to a lesser extent, from third-party professional services, software as a service, and cloud subscriptions. Revenue from maintenance, support and other service revenues is recognized on a net basis, upon fulfillment of an order to the customer, as the Company is an agent in the transaction, and its performance obligations are complete at the time a valid order between the parties is processed. Costs to obtain and fulfill a contract - We pay commissions and related payroll taxes to sales personnel when customers are invoiced. These costs are recorded as selling general and administrative expenses in the period earned as all our performance obligations are complete within a short window of processing the order. Contract balances - Accounts receivable is recorded at the invoiced amount, net of an allowance for doubtful accounts. A receivable is recognized in the period we deliver goods or provide services or when our right to consideration is unconditional. Payment terms on invoiced amounts are typically 30-60 days. The balance of accounts receivable, net of allowance for doubtful accounts as of December 31, 2020 and 2019 is presented in the accompanying Consolidated Balance Sheets. Accounts receivable-long-term result from product sales with extended payment terms that are discounted to their present values at the Company’s estimates of prevailing market rates at the time of the sale. The Company has determined that these amounts do not represent variable consideration as the amount earned is fixed. In subsequent periods, the accounts receivable is increased to the amounts due and payable by the customers through the accretion of interest income on the unpaid accounts receivable due in future years. The amounts due under these long-term accounts receivable due within one year are reclassified to the current portion of accounts receivable and are shown net of reserves. As our revenues are generally recognized at a point in time in the same period as they are billed, we have no deferred revenue balances. Provisions for doubtful accounts including long-term accounts receivable and returns are estimated based on historical write offs, sales returns and credit memo analysis which are adjusted to actual on a periodic basis. Refund liability – The Company records a refund liability for expected product returns with a corresponding asset for an amount representing any expected recovery from vendors regarding the return. Principal versus agent considerations – The Company determines whether it is acting as a principal or agent in a transaction by assessing whether it controls a good or service prior to it being transferred to a customer, with control being defined as having the ability to direct the use of and obtain the benefits from the asset. The Company considers the following indicators, among others, in making the determination: 1) the Company is primarily responsible for fulfilling the promise to provide the promised good or service, 2) the Company has inventory risk, before or after the specified good or service has been transferred to the customer, and 3) the Company has discretion in establishing price for the specified good or service. Generally, we conclude that we are a principal in transactions where software or hardware products containing their core functionality are delivered to the customer at the time of sale and are agents in transactions where we are arranging for the provision of future performance obligations by a third party. As we enter into distribution agreements with third-party service providers, we evaluate whether we are acting as a principal or agent for each product sold under the agreement based on the nature of the product or service, and our performance obligations. Products for which there are significant ongoing third-party performance obligations include software maintenance, which includes periodic software updates and support, security software that is highly interdependent with maintenance, software as a service, cloud and third-party professional services. Sales of hardware, software and other products where we are a principal are recorded on a gross basis with the selling price to the customer recorded as sales and the cost of the product or software recorded as cost of sales. Sales where we are acting as an agent are recognized on a net basis at the date our performance obligations are complete. Under net revenue recognition, the cost paid to the vendor or third-party service provider is recorded as a reduction to sales, resulting in revenue being equal to the gross profit on the transaction.

X
- References No definition available. + Details
Name: | us-gaap_RevenueFromContractWithCustomerAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -URI http://asc.fasb.org/topic&trid=49130388 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 10 -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130551-203045 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 13 -Subparagraph (b)(2) -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130556-203045 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 12 -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130554-203045 Reference 5: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 9 -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130550-203045 Reference 6: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 12 -Subparagraph (e) -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130554-203045 Reference 7: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 12 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130554-203045 Reference 8: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 12 -Subparagraph (d) -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130554-203045 Reference 9: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 15 -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130558-203045 Reference 10: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 12 -Subparagraph (c) -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130554-203045 + Details
Name: | us-gaap_RevenueFromContractWithCustomerTextBlock
Namespace Prefix: | us-gaap_
Data Type: | nonnum:textBlockItemType
Balance Type: | na
Period Type: | duration