XML 45 R23.htm IDEA: XBRL DOCUMENT
v3.20.4

Summary of Significant Accounting Policies (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2020
Accounting Policies [Abstract] |
Schedule of Revenue Disaggregated by Revenue Type, Geographic Region and Customer | The nature, amount, timing, and uncertainty of our revenue and how revenue and cash flows are affected by economic factors is most appropriately depicted by revenue type, geographic region, and customer vertical. Revenue by type for 2020, 2019, and 2018 was as follows (in thousands):
|  | 2020 |  |  | 2019 |  |  | 2018 |
Revenue: |  |  |  |  |  |  |  |  |  |  |  |
Cloud and related solutions |  | $ | 880,822 |  |  | $ | 896,164 |  |  | $ | 766,377 |
Software and services |  |  | 63,239 |  |  |  | 52,364 |  |  |  | 58,101 |
Maintenance |  |  | 46,472 |  |  |  | 48,282 |  |  |  | 50,581 |
Total revenue |  | $ | 990,533 |  |  | $ | 996,810 |  |  | $ | 875,059 |
We use the location of the customer as the basis of attributing revenue to geographic regions. Revenue by geographic region for 2020, 2019, and 2018, as a percentage of our total revenue, was as follows:
|  | 2020 |  |  | 2019 |  |  | 2018 |
Americas (principally the U.S.) |  |  | 86 | % |  |  | 87 | % |  |  | 85 | %
Europe, Middle East and Africa (principally Europe) |  |  | 10 | % |  |  | 9 | % |  |  | 10 | %
Asia Pacific |  |  | 4 | % |  |  | 4 | % |  |  | 5 | %
Total revenue |  |  | 100 | % |  |  | 100 | % |  |  | 100 | %
We generate our revenue primarily from the global communications markets; however, we serve an expanding group of customers in markets including financial services, healthcare, media and entertainment companies, and government entities. Revenue by customer vertical for 2020, 2019, and 2018, as a percentage of our total revenue, was as follows:
|  | 2020 |  |  | 2019 |  |  | 2018 |
Broadband/Cable/Satellite |  |  | 58 | % |  |  | 58 | % |  |  | 64 | %
Telecommunications |  |  | 19 | % |  |  | 19 | % |  |  | 21 | %
Other |  |  | 23 | % |  |  | 23 | % |  |  | 15 | %
Total revenue |  |  | 100 | % |  |  | 100 | % |  |  | 100 | %
Rollforward of Unbilled Accounts Receivable | The following table rolls forward our unbilled accounts receivable from January 1, 2019 to December 31, 2020 (in thousands):
|  | Unbilled Receivables |
Beginning Balance, January 1, 2019 |  | $ | 37,227 |
Recognized during the period |  |  | 252,445 |
Reclassified to receivables |  |  | (255,983 | )
Other |  |  | (239 | )
Ending Balance, December 31, 2019 |  |  | 33,450 |
Recognized during the period |  |  | 248,574 |
Reclassified to receivables |  |  | (244,574 | )
Other |  |  | 335 |
Ending Balance, December 31, 2020 |  | $ | 37,785 |
Rollforward of Deferred Revenue | The following table rolls forward our deferred revenue from January 1, 2019 to December 31, 2020 (in thousands):
|  | Deferred Revenue |
Beginning Balance, January 1, 2019 |  | $ | (57,763 | )
Revenue recognized that was included in deferred revenue at the beginning of the period |  |  | 39,352 |
Consideration received in advance of services performed net of revenue recognized in the current period |  |  | (44,051 | )
Other |  |  | (1,184 | )
Ending Balance, December 31, 2019 |  |  | (63,646 | )
Revenue recognized that was included in deferred revenue at the beginning of the period |  |  | 40,811 |
Consideration received in advance of services performed net of revenue recognized in the current period |  |  | (46,719 | )
Other |  |  | (78 | )
Ending Balance, December 31, 2020 |  | $ | (69,632 | )
Fair Value Measurements | The following table represents the fair value hierarchy based upon three levels of inputs, of which Levels 1 and 2 are considered observable and Level 3 is unobservable, for our financial assets measured at fair value (in thousands):
|  | December 31, 2020 |  |  | December 31, 2019 |
|  | Level 1 |  |  | Level 2 |  |  | Total |  |  | Level 1 |  |  | Level 2 |  |  | Total |
Cash equivalents: |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
Money market funds |  | $ | 33,535 |  |  | $ | — |  |  | $ | 33,535 |  |  | $ | 4,847 |  |  | $ | — |  |  | $ | 4,847 |
Commercial paper |  |  | — |  |  |  | 15,746 |  |  |  | 15,746 |  |  |  | — |  |  |  | 26,964 |  |  |  | 26,964 |
Corporate debt securities |  |  | — |  |  |  | 1,351 |  |  |  | 1,351 |  |  |  | — |  |  |  | — |  |  |  | — |
Short-term investments: |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
Corporate debt securities |  |  | — |  |  |  | 38,672 |  |  |  | 38,672 |  |  |  | — |  |  |  | 22,159 |  |  |  | 22,159 |
U.S. government agency bonds |  |  | — |  |  |  | 4,642 |  |  |  | 4,642 |  |  |  | — |  |  |  | — |  |  |  | — |
Asset-backed securities |  |  | — |  |  |  | 8,284 |  |  |  | 8,284 |  |  |  | — |  |  |  | 3,950 |  |  |  | 3,950 |
Total |  | $ | 33,535 |  |  | $ | 68,695 |  |  | $ | 102,230 |  |  | $ | 4,847 |  |  | $ | 53,073 |  |  | $ | 57,920 |
Carrying Value and Estimated Fair Value of Debt | We have chosen not to record our debt at fair value, with changes recognized in earnings each reporting period. The following table indicates the carrying value and estimated fair value of our debt as of the indicated periods (in thousands):
|  | December 31, 2020 |  |  | December 31, 2019 |
|  | Carrying |  |  | Fair |  |  | Carrying |  |  | Fair |
|  | Value |  |  | Value |  |  | Value |  |  | Value |
2018 Credit Agreement (carrying value including current maturities) |  | $ | 126,563 |  |  | $ | 126,563 |  |  | $ | 136,875 |  |  | $ | 136,875 |
2016 Convertible debt (par value) |  |  | 230,000 |  |  |  | 244,663 |  |  |  | 230,000 |  |  |  | 262,775 |
Allowance for Doubtful Accounts Receivable | The activity in our allowance for doubtful accounts receivable is as follows (in thousands):
|  | 2020 |  |  | 2019 |  |  | 2018 |
Balance, beginning of year |  | $ | 3,735 |  |  | $ | 3,115 |  |  | $ | 4,149 |
Additions to expense |  |  | 1,481 |  |  |  | 778 |  |  |  | 462 |
Write-offs |  |  | (1,532 | ) |  |  | (158 | ) |  |  | (1,659 | )
Recoveries |  |  | — |  |  |  | — |  |  |  | — |
Other |  |  | (56 | ) |  |  | — |  |  |  | 163 |
Balance, end of year |  | $ | 3,628 |  |  | $ | 3,735 |  |  | $ | 3,115 |
Reconciliation of the Basic and Diluted EPS denominators | The reconciliation of the basic and diluted EPS denominators related to the common shares is included in the following table (in thousands):
| 2020 |  |  | 2019 |  |  | 2018 |
Basic weighted-average common shares |  | 32,010 |  |  |  | 32,051 |  |  |  | 32,488 |
Dilutive effect of restricted common stock |  | 268 |  |  |  | 282 |  |  | 218 |
Dilutive effect of Stock Warrants |  | — |  |  |  | 132 |  |  | 149 |
Diluted weighted-average common shares |  | 32,278 |  |  |  | 32,465 |  |  |  | 32,855 |

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

X
- Definition Tabular disclosure of allowance for credit loss on financing receivable. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 310 -SubTopic 10 -Section 50 -Paragraph 11B -URI http://asc.fasb.org/extlink&oid=121611835&loc=SL6953423-111524 Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef -Publisher FASB -Name Accounting Standards Codification -Topic 326 -SubTopic 20 -Section 50 -Paragraph 13 -URI http://asc.fasb.org/extlink&oid=121599337&loc=SL82919249-210447 + Details
Name: | us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | nonnum:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -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 + Details
Name: | us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | nonnum:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of long-term contract or program. + References No definition available. + Details
Name: | us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | nonnum:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 5 -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130545-203045 + Details
Name: | us-gaap_DisaggregationOfRevenueTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | nonnum:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of information pertaining to carrying amount and estimated fair value of short-term and long-term debt instruments or arrangements, including but not limited to, identification of terms, features, and collateral requirements. + References No definition available. + Details
Name: | us-gaap_ScheduleOfCarryingValuesAndEstimatedFairValuesOfDebtInstrumentsTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | nonnum:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Publisher FASB -Name Accounting Standards Codification -Topic 260 -SubTopic 10 -Section 50 -Paragraph 1 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257 + Details
Name: | us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | nonnum:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3). + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 820 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=117815213&loc=d3e19207-110258 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 820 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=117815213&loc=d3e19207-110258 + Details
Name: | us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | nonnum:textBlockItemType
Balance Type: | na
Period Type: | duration