2. Revenue from Contracts with Customers |
6 Months Ended | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Jun. 30, 2018 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Revenue From Contracts With Customers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. Revenue from Contracts with Customers |
Revenue is recognized when all of 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 us. We sell through our direct relationships with end customers and under subcontractor arrangements. We account for our performance obligations in accordance with ASC 606, and all related interpretations.
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 have 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 for which we are paid a fixed fee to make ourselves 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. Our obligations as the seller for each class differ based on our reseller agreements and whether our 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 in full at a point in time, based on when the customer’s administrative contact gains training in and beneficial use of the administrative portal. If the transaction prices of the performance obligations related to implementing the government administrator’s use of the administrative portal and administrator support for the individual contract are material (rare), these obligations are recognized separately over time, as performed. Revenue for bulk desktop software licenses for non-government customers is usually recognized in full 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 we have no obligation to the customer after the third-party makes delivery of the licenses, we have determined we are acting as an agent, and we recognize revenue upon delivery of the licenses only for the net of the selling price and our contract costs.
Third-party support and maintenance contracts for enterprise server-based software include a performance obligation under our reseller agreements for us 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, we recognize revenue ratably over time as we make ourselves available to provide the support.
Incentive payments are received under reseller agreements with software manufacturers and suppliers where we introduce and court 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
Accounts Receivable
Trade accounts receivable are recorded at the billable amount where we have the unconditional right to bill, net of allowances for doubtful accounts. The allowance for doubtful accounts is based on our assessment of the collectability of accounts. Management regularly reviews the adequacy of the allowance for doubtful accounts by considering the age of each outstanding invoice, each customer's expected ability to pay and collection history, when applicable, to determine whether a specific allowance is appropriate. Accounts receivable deemed uncollectible are charged against the allowance for doubtful accounts when identified.
Contract Assets
Contract assets consist of assets typically resulting when revenue recognized exceeds the amount billed or billable to the customer due to allocation of transaction price. Contract assets balances were $17,068 and $5,532 as of June 30, 2018, and December 31, 2017, respectively. The increase in contract assets from December 31, 2017, to June 30, 2018, is due primarily to one contract for which the invoice is a fixed monthly amount but for which the quantity of performance obligations satisfied varies each month.
Contract Liabilities
Contract liabilities, to which we formerly referred as deferred revenue, 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. Contract liabilities balances were $133,475 and $387,002 at June 30, 2018, and December 31, 2017, respectively. The decrease in contract liabilities from December 31, 2017, to June 30, 2018, is due primarily to the recognition of revenue over time from third-party support and maintenance contracts for enterprise server-based software sales.
Costs to Obtain or Fulfill a Contract
When applicable, we recognize an asset related to the costs incurred to obtain a contract only if we expect to recover those costs and we would not have incurred those costs if the contract had not been obtained. We recognize 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 at June 30, 2018 and December 31, 2017.
Financing Components
In instances where the timing of revenue recognition differs from the timing of invoicing, we have determined our contracts do not include a significant financing component. The primary purpose of our invoicing terms is to provide customers with simplified and predictable ways of purchasing our products and services, not to receive financing from our customers or to provide customers with financing. Examples include invoicing at the beginning of a software support and maintenance term with revenue recognized ratably over the contract period.
Deferred Costs of Revenue
Deferred costs of revenue consist of the costs of third-party support and maintenance contracts for enterprise server-based software. These costs are reported under the prepaid expenses caption on our balance sheet. We recognize these direct costs ratably over time as we make ourselves available to provide our performance obligation for software support, commensurate with our recognition of revenue. Deferred costs of revenue balances included in prepaid expenses were $18,257 and $300,558 at June 30, 2018, and December 31, 2017, respectively.
|