2020 Form 10-K Financial Statement

#000143774921004866 Filed on March 03, 2021

View on sec.gov

Income Statement

Concept 2020 2019 Q4 2019 Q3
Revenue $311.2M $85.95M $88.13M
YoY Change -7.69% 0.39% 5.52%
Cost Of Revenue $225.7M $59.90M $60.56M
YoY Change -4.51% 3.49% 2.19%
Gross Profit $85.49M $26.05M $27.57M
YoY Change -15.17% -6.08% 13.66%
Gross Profit Margin 27.47% 30.3% 31.29%
Selling, General & Admin $54.54M $11.97M $13.34M
YoY Change 4.59% -9.59% 6.47%
% of Gross Profit 63.8% 45.96% 48.39%
Research & Development $12.43M $1.570M $2.876M
YoY Change 27.89% -24.88% 30.31%
% of Gross Profit 14.54% 6.03% 10.43%
Depreciation & Amortization $12.63M $5.380M $2.348M
YoY Change 40.97% 34.5% 62.49%
% of Gross Profit 14.78% 20.66% 8.52%
Operating Expenses $78.57M $16.19M $18.97M
YoY Change 9.98% -6.09% 14.19%
Operating Profit $6.917M $9.855M $8.601M
YoY Change -76.42% -6.06% 12.49%
Interest Expense -$3.200M -$1.110M -$1.280M
YoY Change -30.43% -4.31% 45.45%
% of Operating Profit -46.26% -11.26% -14.88%
Other Income/Expense, Net $3.843M $0.00 -$1.263M
YoY Change -180.58% -100.0% 35.81%
Pretax Income $10.76M $8.740M $7.338M
YoY Change -56.21% -9.71% 9.26%
Income Tax $4.985M -$2.830M $3.100M
% Of Pretax Income 46.33% -32.38% 42.25%
Net Earnings $5.775M $5.778M $4.205M
YoY Change -62.5% 30.25% -21.34%
Net Earnings / Revenue 1.86% 6.72% 4.77%
Basic Earnings Per Share $0.55 $0.55 $0.40
Diluted Earnings Per Share $0.54 $0.54 $0.39
COMMON SHARES
Basic Shares Outstanding 10.59M 10.57M 10.63M
Diluted Shares Outstanding 10.69M 10.75M

Balance Sheet

Concept 2020 2019 Q4 2019 Q3
SHORT-TERM ASSETS
Cash & Short-Term Investments $8.300M $20.40M $12.00M
YoY Change -59.31% 61.9% 11.11%
Cash & Equivalents $8.300M $20.39M $11.99M
Short-Term Investments
Other Short-Term Assets $114.2M $105.4M $115.3M
YoY Change 8.35% 8.67%
Inventory $1.900M $3.457M $3.903M
Prepaid Expenses $91.25M $95.61M
Receivables $15.50M $14.56M $13.35M
Other Receivables $1.300M $1.800M $2.500M
Total Short-Term Assets $141.2M $145.7M $147.1M
YoY Change -3.09% 10.42% 9.21%
LONG-TERM ASSETS
Property, Plant & Equipment $128.8M $82.12M $72.17M
YoY Change 37.75% 70.85% 79.43%
Goodwill $109.8M $110.1M
YoY Change 21.95% 22.26%
Intangibles $57.65M $60.07M
YoY Change 16.72% 16.62%
Long-Term Investments
YoY Change
Other Assets $17.80M $17.90M $17.50M
YoY Change -0.56% -4.28% -16.67%
Total Long-Term Assets $310.7M $280.2M $272.2M
YoY Change 10.89% 34.96% 34.24%
TOTAL ASSETS
Total Short-Term Assets $141.2M $145.7M $147.1M
Total Long-Term Assets $310.7M $280.2M $272.2M
Total Assets $451.9M $425.9M $419.3M
YoY Change 6.1% 25.43% 24.25%
SHORT-TERM LIABILITIES
YoY Change
Accounts Payable $6.300M $6.671M $5.440M
YoY Change -5.97% -21.01% -34.0%
Accrued Expenses $12.00M $9.373M $14.45M
YoY Change 11.11% 58.89% 110.05%
Deferred Revenue $123.1M $128.1M
YoY Change 5.45% 6.37%
Short-Term Debt $0.00 $0.00 $0.00
YoY Change
Long-Term Debt Due $0.00 $0.00 $0.00
YoY Change -100.0% -100.0%
Total Short-Term Liabilities $163.0M $156.9M $166.1M
YoY Change 3.89% -5.1% -0.85%
LONG-TERM LIABILITIES
Long-Term Debt $121.7M $113.5M $105.0M
YoY Change 7.22% 145.67% 125.32%
Other Long-Term Liabilities $37.80M $0.00 $35.30M
YoY Change 5.59% 13582.17%
Total Long-Term Liabilities $159.5M $0.00 $140.3M
YoY Change 6.83% 54279.84%
TOTAL LIABILITIES
Total Short-Term Liabilities $163.0M $156.9M $166.1M
Total Long-Term Liabilities $159.5M $0.00 $140.3M
Total Liabilities $347.2M $156.9M $332.3M
YoY Change 4.67% -5.1% 98.06%
SHAREHOLDERS EQUITY
Retained Earnings $76.21M $70.43M
YoY Change 25.32% 24.94%
Common Stock $17.51M $16.60M
YoY Change -11.44% -13.09%
Preferred Stock
YoY Change
Treasury Stock (at cost)
YoY Change
Treasury Stock Shares
Shareholders Equity $104.7M $94.19M $87.00M
YoY Change
Total Liabilities & Shareholders Equity $451.9M $425.9M $419.3M
YoY Change 6.1% 25.43% 24.25%

Cashflow Statement

Concept 2020 2019 Q4 2019 Q3
OPERATING ACTIVITIES
Net Income $5.775M $5.778M $4.205M
YoY Change -62.5% 30.25% -21.34%
Depreciation, Depletion And Amortization $12.63M $5.380M $2.348M
YoY Change 40.97% 34.5% 62.49%
Cash From Operating Activities $36.08M $13.19M $11.22M
YoY Change -10.65% 23.62% 0.01%
INVESTING ACTIVITIES
Capital Expenditures $44.44M -$12.91M $10.31M
YoY Change 0.83% 52.24% 47.19%
Acquisitions
YoY Change
Other Investing Activities -$8.840M -$430.0K -$1.040M
YoY Change -72.39% -6.52% 845.45%
Cash From Investing Activities -$53.28M -$13.34M -$11.35M
YoY Change -29.98% 49.38% 59.44%
FINANCING ACTIVITIES
Cash Dividend Paid
YoY Change
Common Stock Issuance & Retirement, Net $3.281M $4.986M
YoY Change -34.2%
Debt Paid & Issued, Net
YoY Change
Cash From Financing Activities $5.116M 8.550M $117.0K
YoY Change -88.23% 7025.0% -102.61%
NET CHANGE
Cash From Operating Activities $36.08M 13.19M $11.22M
Cash From Investing Activities -$53.28M -13.34M -$11.35M
Cash From Financing Activities $5.116M 8.550M $117.0K
Net Change In Cash -$12.08M 8.400M -$14.00K
YoY Change -255.78% 351.61% -96.37%
FREE CASH FLOW
Cash From Operating Activities $36.08M $13.19M $11.22M
Capital Expenditures $44.44M -$12.91M $10.31M
Free Cash Flow -$8.356M $26.10M $907.0K
YoY Change 126.51% 36.29% -78.46%

Facts In Submission

Frame Concept Type Concept / XBRL Key Value Unit
CY2019Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
10585159
CY2019Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
10585159
CY2020Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
USD
CY2019Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
USD
CY2020 us-gaap Other Comprehensive Income Loss Tax
OtherComprehensiveIncomeLossTax
550000 USD
CY2019 us-gaap Other Comprehensive Income Loss Tax
OtherComprehensiveIncomeLossTax
411000 USD
CY2020Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2018 us-gaap Other Comprehensive Income Loss Tax
OtherComprehensiveIncomeLossTax
-259000 USD
CY2021Q1 dei Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
10619932
CY2020Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
222000 USD
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
131000 USD
CY2020Q4 us-gaap Preferred Stock No Par Value
PreferredStockNoParValue
0
CY2019Q4 us-gaap Preferred Stock No Par Value
PreferredStockNoParValue
0
CY2020Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
1250000
CY2019Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
1250000
CY2020Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2019Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2019Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2020Q4 us-gaap Common Stock No Par Value
CommonStockNoParValue
0
CY2019Q4 us-gaap Common Stock No Par Value
CommonStockNoParValue
0
CY2020Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
250000000
CY2019Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
250000000
CY2020Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
10612414
CY2020Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
10612414
CY2020 us-gaap Number Of Operating Segments
NumberOfOperatingSegments
2 pure
CY2020 us-gaap Goodwill Impairment Loss
GoodwillImpairmentLoss
0 USD
CY2019 us-gaap Goodwill Impairment Loss
GoodwillImpairmentLoss
0 USD
CY2019 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.21 pure
CY2018 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.21 pure
CY2020Q4 us-gaap Unrecognized Tax Benefits Income Tax Penalties And Interest Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
0 USD
CY2019Q4 us-gaap Unrecognized Tax Benefits Income Tax Penalties And Interest Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
0 USD
CY2020Q4 us-gaap Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
P1Y
CY2020Q4 us-gaap Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
P1Y
CY2020Q4 us-gaap Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
P1Y
CY2020Q4 us-gaap Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
P1Y
CY2020Q4 us-gaap Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
P1Y
CY2020Q4 us-gaap Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
P1Y
CY2020Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P8Y4M6D
CY2019Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P8Y7M13D
CY2020 tcx Contractual Obligation Term
ContractualObligationTerm
P10Y
CY2020 us-gaap Number Of Operating Segments
NumberOfOperatingSegments
2 pure
CY2020Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
8311000 USD
CY2019Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
20393000 USD
CY2020Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
15540000 USD
CY2019Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
14564000 USD
CY2020Q4 us-gaap Inventory Net
InventoryNet
1875000 USD
CY2019Q4 us-gaap Inventory Net
InventoryNet
3457000 USD
CY2020Q4 us-gaap Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
16845000 USD
CY2019Q4 us-gaap Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
13478000 USD
CY2020Q4 us-gaap Derivative Assets Current
DerivativeAssetsCurrent
3860000 USD
CY2019Q4 us-gaap Derivative Assets Current
DerivativeAssetsCurrent
731000 USD
CY2020Q4 us-gaap Capitalized Contract Cost Net Current
CapitalizedContractCostNetCurrent
93467000 USD
CY2019Q4 us-gaap Capitalized Contract Cost Net Current
CapitalizedContractCostNetCurrent
91252000 USD
CY2020Q4 us-gaap Income Taxes Receivable
IncomeTaxesReceivable
1302000 USD
CY2019Q4 us-gaap Income Taxes Receivable
IncomeTaxesReceivable
1800000 USD
CY2020Q4 us-gaap Assets Current
AssetsCurrent
141200000 USD
CY2019Q4 us-gaap Assets Current
AssetsCurrent
145675000 USD
CY2020Q4 us-gaap Capitalized Contract Cost Net Noncurrent
CapitalizedContractCostNetNoncurrent
17599000 USD
CY2019Q4 us-gaap Capitalized Contract Cost Net Noncurrent
CapitalizedContractCostNetNoncurrent
17915000 USD
CY2020Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
117530000 USD
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
82121000 USD
CY2020Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
11238000 USD
CY2019Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
11335000 USD
CY2020Q4 us-gaap Deferred Costs
DeferredCosts
362000 USD
CY2019Q4 us-gaap Deferred Costs
DeferredCosts
1400000 USD
CY2020Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
226000 USD
CY2019Q4 us-gaap Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
0 USD
CY2020Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
47444000 USD
CY2019Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
57654000 USD
CY2020Q4 us-gaap Goodwill
Goodwill
116304000 USD
CY2019Q4 us-gaap Goodwill
Goodwill
109818000 USD
CY2020Q4 us-gaap Assets
Assets
451903000 USD
CY2019Q4 us-gaap Assets
Assets
425918000 USD
CY2020Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
6329000 USD
CY2019Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
6671000 USD
CY2020Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
10235000 USD
CY2019Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
9373000 USD
CY2020Q4 tcx Customer Deposit Liability Current
CustomerDepositLiabilityCurrent
15402000 USD
CY2019Q4 tcx Customer Deposit Liability Current
CustomerDepositLiabilityCurrent
14074000 USD
CY2020Q4 us-gaap Derivative Liabilities Current
DerivativeLiabilitiesCurrent
99000 USD
CY2019Q4 us-gaap Derivative Liabilities Current
DerivativeLiabilitiesCurrent
0 USD
CY2020Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
1761000 USD
CY2019Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
1413000 USD
CY2020Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
127336000 USD
CY2019Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
123101000 USD
CY2020Q4 tcx Accreditation Fees Payable Current
AccreditationFeesPayableCurrent
940000 USD
CY2019Q4 tcx Accreditation Fees Payable Current
AccreditationFeesPayableCurrent
952000 USD
CY2020Q4 us-gaap Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
863000 USD
CY2019Q4 us-gaap Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
1324000 USD
CY2019 us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
8475000 USD
CY2018 us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
5298000 USD
CY2020 us-gaap Cost Of Goods And Services Sold Amortization
CostOfGoodsAndServicesSoldAmortization
1340000 USD
CY2019 us-gaap Cost Of Goods And Services Sold Amortization
CostOfGoodsAndServicesSoldAmortization
1124000 USD
CY2018 us-gaap Cost Of Goods And Services Sold Amortization
CostOfGoodsAndServicesSoldAmortization
1996000 USD
CY2020Q4 us-gaap Liabilities Current
LiabilitiesCurrent
162965000 USD
CY2019Q4 us-gaap Liabilities Current
LiabilitiesCurrent
156908000 USD
CY2020Q4 us-gaap Derivative Liabilities Noncurrent
DerivativeLiabilitiesNoncurrent
114000 USD
CY2019Q4 us-gaap Derivative Liabilities Noncurrent
DerivativeLiabilitiesNoncurrent
0 USD
CY2020Q4 us-gaap Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
24909000 USD
CY2019Q4 us-gaap Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
26202000 USD
CY2020Q4 us-gaap Other Accrued Liabilities Noncurrent
OtherAccruedLiabilitiesNoncurrent
195000 USD
CY2019Q4 us-gaap Other Accrued Liabilities Noncurrent
OtherAccruedLiabilitiesNoncurrent
216000 USD
CY2020Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
9179000 USD
CY2019Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
9424000 USD
CY2020Q4 us-gaap Long Term Loans Payable
LongTermLoansPayable
121733000 USD
CY2019Q4 us-gaap Long Term Loans Payable
LongTermLoansPayable
113503000 USD
CY2020Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
3416000 USD
CY2019Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
0 USD
CY2020Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
24694000 USD
CY2019Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
25471000 USD
CY2020Q4 us-gaap Preferred Stock Value
PreferredStockValue
0 USD
CY2019Q4 us-gaap Preferred Stock Value
PreferredStockValue
0 USD
CY2020Q4 us-gaap Common Stock Value
CommonStockValue
20798000 USD
CY2019Q4 us-gaap Common Stock Value
CommonStockValue
16633000 USD
CY2020Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
1458000 USD
CY2019Q4 us-gaap Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
880000 USD
CY2020Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
80106000 USD
CY2019Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
76208000 USD
CY2020Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
2336000 USD
CY2019Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
473000 USD
CY2020Q4 us-gaap Stockholders Equity
StockholdersEquity
104698000 USD
CY2019Q4 us-gaap Stockholders Equity
StockholdersEquity
94194000 USD
CY2020Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
451903000 USD
CY2019Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
425918000 USD
CY2020 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
311202000 USD
CY2019 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
337145000 USD
CY2018 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
346013000 USD
CY2020 us-gaap Cost Of Goods And Service Excluding Depreciation Depletion And Amortization
CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
200401000 USD
CY2019 us-gaap Cost Of Goods And Service Excluding Depreciation Depletion And Amortization
CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
217579000 USD
CY2018 us-gaap Cost Of Goods And Service Excluding Depreciation Depletion And Amortization
CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
232103000 USD
CY2020 tcx Cost Of Goods And Services Sold Network Expenses
CostOfGoodsAndServicesSoldNetworkExpenses
10194000 USD
CY2019 tcx Cost Of Goods And Services Sold Network Expenses
CostOfGoodsAndServicesSoldNetworkExpenses
9190000 USD
CY2018 tcx Cost Of Goods And Services Sold Network Expenses
CostOfGoodsAndServicesSoldNetworkExpenses
9846000 USD
CY2020 us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
12144000 USD
CY2020 tcx Cost Of Revenue Property And Equipment Impairment
CostOfRevenuePropertyAndEquipmentImpairment
1638000 USD
CY2019 tcx Cost Of Revenue Property And Equipment Impairment
CostOfRevenuePropertyAndEquipmentImpairment
0 USD
CY2018 tcx Cost Of Revenue Property And Equipment Impairment
CostOfRevenuePropertyAndEquipmentImpairment
0 USD
CY2020 us-gaap Cost Of Revenue
CostOfRevenue
225717000 USD
CY2019 us-gaap Cost Of Revenue
CostOfRevenue
236368000 USD
CY2018 us-gaap Cost Of Revenue
CostOfRevenue
249243000 USD
CY2020 us-gaap Gross Profit
GrossProfit
85485000 USD
CY2019 us-gaap Gross Profit
GrossProfit
100777000 USD
CY2018 us-gaap Gross Profit
GrossProfit
96770000 USD
CY2020 us-gaap Selling And Marketing Expense
SellingAndMarketingExpense
34274000 USD
CY2019 us-gaap Selling And Marketing Expense
SellingAndMarketingExpense
34270000 USD
CY2018 us-gaap Selling And Marketing Expense
SellingAndMarketingExpense
33063000 USD
CY2020 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
12427000 USD
CY2019 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
9717000 USD
CY2018 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
8748000 USD
CY2020 us-gaap General And Administrative Expense
GeneralAndAdministrativeExpense
20268000 USD
CY2019 us-gaap General And Administrative Expense
GeneralAndAdministrativeExpense
17880000 USD
CY2018 us-gaap General And Administrative Expense
GeneralAndAdministrativeExpense
17710000 USD
CY2020 us-gaap Depreciation And Amortization
DepreciationAndAmortization
488000 USD
CY2019 us-gaap Depreciation And Amortization
DepreciationAndAmortization
486000 USD
CY2018 us-gaap Depreciation And Amortization
DepreciationAndAmortization
424000 USD
CY2020 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
17000 USD
CY2019 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
-73000 USD
CY2018 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
-0 USD
CY2020 tcx Amortization Of Intangible Assets Net Of Cost Of Services Amortization
AmortizationOfIntangibleAssetsNetOfCostOfServicesAmortization
10080000 USD
CY2019 tcx Amortization Of Intangible Assets Net Of Cost Of Services Amortization
AmortizationOfIntangibleAssetsNetOfCostOfServicesAmortization
9209000 USD
CY2018 tcx Amortization Of Intangible Assets Net Of Cost Of Services Amortization
AmortizationOfIntangibleAssetsNetOfCostOfServicesAmortization
7247000 USD
CY2020 us-gaap Impairment Of Intangible Assets Excluding Goodwill
ImpairmentOfIntangibleAssetsExcludingGoodwill
1431000 USD
CY2019 us-gaap Impairment Of Intangible Assets Excluding Goodwill
ImpairmentOfIntangibleAssetsExcludingGoodwill
0 USD
CY2018 us-gaap Impairment Of Intangible Assets Excluding Goodwill
ImpairmentOfIntangibleAssetsExcludingGoodwill
0 USD
CY2020 us-gaap Gain Loss On Sale Of Derivatives
GainLossOnSaleOfDerivatives
383000 USD
CY2019 us-gaap Gain Loss On Sale Of Derivatives
GainLossOnSaleOfDerivatives
198000 USD
CY2018 us-gaap Gain Loss On Sale Of Derivatives
GainLossOnSaleOfDerivatives
-254000 USD
CY2020 us-gaap Operating Expenses
OperatingExpenses
78568000 USD
CY2019 us-gaap Operating Expenses
OperatingExpenses
71437000 USD
CY2018 us-gaap Operating Expenses
OperatingExpenses
67446000 USD
CY2020 us-gaap Operating Income Loss
OperatingIncomeLoss
6917000 USD
CY2019 us-gaap Operating Income Loss
OperatingIncomeLoss
29340000 USD
CY2018 us-gaap Operating Income Loss
OperatingIncomeLoss
29324000 USD
CY2020 us-gaap Interest Income Expense Net
InterestIncomeExpenseNet
-3611000 USD
CY2019 us-gaap Interest Income Expense Net
InterestIncomeExpenseNet
-4769000 USD
CY2018 us-gaap Interest Income Expense Net
InterestIncomeExpenseNet
-3687000 USD
CY2020 us-gaap Disposal Group Not Discontinued Operation Gain Loss On Disposal
DisposalGroupNotDiscontinuedOperationGainLossOnDisposal
7612000 USD
CY2019 us-gaap Disposal Group Not Discontinued Operation Gain Loss On Disposal
DisposalGroupNotDiscontinuedOperationGainLossOnDisposal
0 USD
CY2018 us-gaap Disposal Group Not Discontinued Operation Gain Loss On Disposal
DisposalGroupNotDiscontinuedOperationGainLossOnDisposal
0 USD
CY2020 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
-158000 USD
CY2019 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
0 USD
CY2018 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
518000 USD
CY2020 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
3843000 USD
CY2019 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-4769000 USD
CY2018 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-3169000 USD
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
10760000 USD
CY2019 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
24571000 USD
CY2018 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
26155000 USD
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
4985000 USD
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
9173000 USD
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
9020000 USD
CY2020 us-gaap Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
5775000 USD
CY2019 us-gaap Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
15398000 USD
CY2018 us-gaap Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
17135000 USD
CY2020 tcx Redeemable Non Controlling Interest
RedeemableNonControllingInterest
0 USD
CY2019 tcx Redeemable Non Controlling Interest
RedeemableNonControllingInterest
0 USD
CY2018 tcx Redeemable Non Controlling Interest
RedeemableNonControllingInterest
-26000 USD
CY2020 us-gaap Net Income Loss Attributable To Redeemable Noncontrolling Interest
NetIncomeLossAttributableToRedeemableNoncontrollingInterest
0 USD
CY2019 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
10333000 USD
CY2019 us-gaap Net Income Loss Attributable To Redeemable Noncontrolling Interest
NetIncomeLossAttributableToRedeemableNoncontrollingInterest
0 USD
CY2018 us-gaap Net Income Loss Attributable To Redeemable Noncontrolling Interest
NetIncomeLossAttributableToRedeemableNoncontrollingInterest
26000 USD
CY2020 us-gaap Net Income Loss
NetIncomeLoss
5775000 USD
CY2019 us-gaap Net Income Loss
NetIncomeLoss
15398000 USD
CY2018 us-gaap Net Income Loss
NetIncomeLoss
17135000 USD
CY2020 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax
1653000 USD
CY2019 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax
1101000 USD
CY2018 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax
-1022000 USD
CY2020 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax
-210000 USD
CY2019 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax
-182000 USD
CY2018 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax
-212000 USD
CY2020 us-gaap Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
1863000 USD
CY2019 us-gaap Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
1283000 USD
CY2018 us-gaap Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
-810000 USD
CY2020 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
7638000 USD
CY2019 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
16681000 USD
CY2018 us-gaap Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
16325000 USD
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.55
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.45
CY2018 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.62
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
10590684
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
10623799
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
10604722
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.54
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.43
CY2018 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.59
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
10692281
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
10772812
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
10794170
CY2017Q4 us-gaap Stockholders Equity
StockholdersEquity
60211000 USD
CY2018 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
112000 USD
CY2018 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
445000 USD
CY2018 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
2574000 USD
CY2018 us-gaap Net Income Loss
NetIncomeLoss
17135000 USD
CY2018 us-gaap Temporary Equity Accretion To Redemption Value
TemporaryEquityAccretionToRedemptionValue
64000 USD
CY2018 us-gaap Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
-810000 USD
CY2018Q4 us-gaap Stockholders Equity
StockholdersEquity
79776000 USD
CY2019 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
395000 USD
CY2019 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
548000 USD
CY2019 us-gaap Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
4986000 USD
CY2019 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
2876000 USD
CY2019 us-gaap Net Income Loss
NetIncomeLoss
15398000 USD
CY2019 us-gaap Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
1283000 USD
CY2020 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
985000 USD
CY2020 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
556000 USD
CY2020 us-gaap Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
3281000 USD
CY2020 us-gaap Stock Issued During Period Value Acquisitions
StockIssuedDuringPeriodValueAcquisitions
2000000 USD
CY2020 us-gaap Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
3718000 USD
CY2020 us-gaap Net Income Loss
NetIncomeLoss
5775000 USD
CY2020 us-gaap Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
1863000 USD
CY2020Q4 us-gaap Stockholders Equity
StockholdersEquity
104698000 USD
CY2020 us-gaap Net Income Loss
NetIncomeLoss
5775000 USD
CY2019 us-gaap Net Income Loss
NetIncomeLoss
15398000 USD
CY2018 us-gaap Net Income Loss
NetIncomeLoss
17135000 USD
CY2020 us-gaap Depreciation
Depreciation
12632000 USD
CY2019 us-gaap Depreciation
Depreciation
8961000 USD
CY2018 us-gaap Depreciation
Depreciation
5722000 USD
CY2020 us-gaap Tangible Asset Impairment Charges
TangibleAssetImpairmentCharges
1638000 USD
CY2019 us-gaap Tangible Asset Impairment Charges
TangibleAssetImpairmentCharges
142000 USD
CY2018 us-gaap Tangible Asset Impairment Charges
TangibleAssetImpairmentCharges
0 USD
CY2020 us-gaap Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
269000 USD
CY2019 us-gaap Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
297000 USD
CY2018 us-gaap Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
281000 USD
CY2020 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
11420000 USD
CY2018 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
9243000 USD
CY2020 tcx Amortization Of Contract Costs
AmortizationOfContractCosts
106000 USD
CY2019 tcx Amortization Of Contract Costs
AmortizationOfContractCosts
-10000 USD
CY2018 tcx Amortization Of Contract Costs
AmortizationOfContractCosts
14000 USD
CY2020 us-gaap Accretion Expense
AccretionExpense
344000 USD
CY2019 us-gaap Accretion Expense
AccretionExpense
0 USD
CY2018 us-gaap Accretion Expense
AccretionExpense
0 USD
CY2020 us-gaap Impairment Of Intangible Assets Finitelived
ImpairmentOfIntangibleAssetsFinitelived
1431000 USD
CY2019 us-gaap Impairment Of Intangible Assets Finitelived
ImpairmentOfIntangibleAssetsFinitelived
0 USD
CY2018 us-gaap Impairment Of Intangible Assets Finitelived
ImpairmentOfIntangibleAssetsFinitelived
0 USD
CY2020 us-gaap Other Operating Activities Cash Flow Statement
OtherOperatingActivitiesCashFlowStatement
223000 USD
CY2019 us-gaap Other Operating Activities Cash Flow Statement
OtherOperatingActivitiesCashFlowStatement
0 USD
CY2018 us-gaap Other Operating Activities Cash Flow Statement
OtherOperatingActivitiesCashFlowStatement
0 USD
CY2020 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
-3939000 USD
CY2019 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
1285000 USD
CY2018 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
1038000 USD
CY2020 us-gaap Excess Tax Benefit From Share Based Compensation Operating Activities
ExcessTaxBenefitFromShareBasedCompensationOperatingActivities
861000 USD
CY2019 us-gaap Excess Tax Benefit From Share Based Compensation Operating Activities
ExcessTaxBenefitFromShareBasedCompensationOperatingActivities
634000 USD
CY2018 us-gaap Excess Tax Benefit From Share Based Compensation Operating Activities
ExcessTaxBenefitFromShareBasedCompensationOperatingActivities
697000 USD
CY2020 us-gaap Straight Line Rent
StraightLineRent
-0 USD
CY2019 us-gaap Straight Line Rent
StraightLineRent
-0 USD
CY2018 us-gaap Straight Line Rent
StraightLineRent
14000 USD
CY2020 tcx Operating Lease Net
OperatingLeaseNet
-205000 USD
CY2019 tcx Operating Lease Net
OperatingLeaseNet
32000 USD
CY2018 tcx Operating Lease Net
OperatingLeaseNet
-0 USD
CY2020 tcx Disposal Of Domain Names
DisposalOfDomainNames
17000 USD
CY2019 tcx Disposal Of Domain Names
DisposalOfDomainNames
114000 USD
CY2018 tcx Disposal Of Domain Names
DisposalOfDomainNames
341000 USD
CY2020 us-gaap Other Noncash Income Expense
OtherNoncashIncomeExpense
-0 USD
CY2019 us-gaap Other Noncash Income Expense
OtherNoncashIncomeExpense
-0 USD
CY2018 us-gaap Other Noncash Income Expense
OtherNoncashIncomeExpense
429000 USD
CY2020 us-gaap Unrealized Gain Loss On Derivatives
UnrealizedGainLossOnDerivatives
500000 USD
CY2019 us-gaap Unrealized Gain Loss On Derivatives
UnrealizedGainLossOnDerivatives
313000 USD
CY2018 us-gaap Unrealized Gain Loss On Derivatives
UnrealizedGainLossOnDerivatives
-207000 USD
CY2020 tcx Write Down Of Intangible Assets And Capitalized Contract Costs
WriteDownOfIntangibleAssetsAndCapitalizedContractCosts
3513000 USD
CY2019 tcx Write Down Of Intangible Assets And Capitalized Contract Costs
WriteDownOfIntangibleAssetsAndCapitalizedContractCosts
0 USD
CY2018 tcx Write Down Of Intangible Assets And Capitalized Contract Costs
WriteDownOfIntangibleAssetsAndCapitalizedContractCosts
0 USD
CY2020 us-gaap Share Based Compensation
ShareBasedCompensation
3718000 USD
CY2019 us-gaap Share Based Compensation
ShareBasedCompensation
2876000 USD
CY2018 us-gaap Share Based Compensation
ShareBasedCompensation
2574000 USD
CY2020 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
281000 USD
CY2019 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
3015000 USD
CY2018 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
-1539000 USD
CY2020 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
-945000 USD
CY2019 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
-318000 USD
CY2018 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
831000 USD
CY2020 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
3459000 USD
CY2019 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
-2904000 USD
CY2018 us-gaap Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
1286000 USD
CY2020 us-gaap Increase Decrease In Deferred Charges
IncreaseDecreaseInDeferredCharges
1899000 USD
CY2019 us-gaap Increase Decrease In Deferred Charges
IncreaseDecreaseInDeferredCharges
-7678000 USD
CY2018 us-gaap Increase Decrease In Deferred Charges
IncreaseDecreaseInDeferredCharges
-20476000 USD
CY2020 us-gaap Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
-908000 USD
CY2019 us-gaap Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
89000 USD
CY2018 us-gaap Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
-2691000 USD
CY2020 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
36081000 USD
CY2019 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
40381000 USD
CY2018 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
37209000 USD
CY2020 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
985000 USD
CY2019 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
395000 USD
CY2018 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
112000 USD
CY2020 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
556000 USD
CY2019 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
548000 USD
CY2018 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
445000 USD
CY2020 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
3281000 USD
CY2020 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
-902000 USD
CY2019 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
-1221000 USD
CY2018 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
171000 USD
CY2020 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
376000 USD
CY2019 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
2329000 USD
CY2018 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
-513000 USD
CY2020 tcx Increase Decrease In Customer Deposit Liability
IncreaseDecreaseInCustomerDepositLiability
1493000 USD
CY2019 tcx Increase Decrease In Customer Deposit Liability
IncreaseDecreaseInCustomerDepositLiability
27000 USD
CY2018 tcx Increase Decrease In Customer Deposit Liability
IncreaseDecreaseInCustomerDepositLiability
-3336000 USD
CY2020 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
2942000 USD
CY2019 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
-6900000 USD
CY2018 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
-16888000 USD
CY2020 tcx Increase Decrease In Accreditation Fees Payable
IncreaseDecreaseInAccreditationFeesPayable
-33000 USD
CY2019 tcx Increase Decrease In Accreditation Fees Payable
IncreaseDecreaseInAccreditationFeesPayable
-67000 USD
CY2018 tcx Increase Decrease In Accreditation Fees Payable
IncreaseDecreaseInAccreditationFeesPayable
-229000 USD
CY2019 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
4986000 USD
CY2018 us-gaap Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
-0 USD
CY2020 us-gaap Proceeds From Notes Payable
ProceedsFromNotesPayable
8000000 USD
CY2019 us-gaap Proceeds From Notes Payable
ProceedsFromNotesPayable
57371000 USD
CY2018 us-gaap Proceeds From Notes Payable
ProceedsFromNotesPayable
7000000 USD
CY2020 us-gaap Proceeds From Repayments Of Notes Payable
ProceedsFromRepaymentsOfNotesPayable
0 USD
CY2019 us-gaap Proceeds From Repayments Of Notes Payable
ProceedsFromRepaymentsOfNotesPayable
-8130000 USD
CY2018 us-gaap Proceeds From Repayments Of Notes Payable
ProceedsFromRepaymentsOfNotesPayable
-19596000 USD
CY2020 tcx Payments Of Proceeds From Financing Costs
PaymentsOfProceedsFromFinancingCosts
32000 USD
CY2019 tcx Payments Of Proceeds From Financing Costs
PaymentsOfProceedsFromFinancingCosts
641000 USD
CY2018 tcx Payments Of Proceeds From Financing Costs
PaymentsOfProceedsFromFinancingCosts
8000 USD
CY2020 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
5116000 USD
CY2019 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
43461000 USD
CY2018 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-12937000 USD
CY2020 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
44437000 USD
CY2019 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
44070000 USD
CY2018 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
27919000 USD
CY2020 us-gaap Payments To Acquire Additional Interest In Subsidiaries
PaymentsToAcquireAdditionalInterestInSubsidiaries
-0 USD
CY2019 us-gaap Payments To Acquire Additional Interest In Subsidiaries
PaymentsToAcquireAdditionalInterestInSubsidiaries
-0 USD
CY2018 us-gaap Payments To Acquire Additional Interest In Subsidiaries
PaymentsToAcquireAdditionalInterestInSubsidiaries
1200000 USD
CY2020 us-gaap Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
72000 USD
CY2019 us-gaap Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
3566000 USD
CY2018 us-gaap Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
565000 USD
CY2020 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-53279000 USD
CY2019 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-76086000 USD
CY2018 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-29684000 USD
CY2020 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
-12082000 USD
CY2019 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
7756000 USD
CY2018 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
-5412000 USD
CY2019Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
20393000 USD
CY2018Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
12637000 USD
CY2017Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
18049000 USD
CY2020Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
8311000 USD
CY2019Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
20393000 USD
CY2018Q4 us-gaap Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
12637000 USD
CY2020 us-gaap Interest Paid Net
InterestPaidNet
3573000 USD
CY2020 tcx Acquisition Of Network Rights
AcquisitionOfNetworkRights
72000 USD
CY2020 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
11420000 USD
CY2020Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
47444000 USD
CY2019 us-gaap Interest Paid Net
InterestPaidNet
4785000 USD
CY2018 us-gaap Interest Paid Net
InterestPaidNet
3712000 USD
CY2020 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
8926000 USD
CY2019 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
7941000 USD
CY2018 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
6799000 USD
CY2020 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
1129000 USD
CY2019 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
548000 USD
CY2018 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
1462000 USD
CY2020 us-gaap Stock Issued1
StockIssued1
2000000 USD
CY2019 us-gaap Stock Issued1
StockIssued1
0 USD
CY2018 us-gaap Stock Issued1
StockIssued1
0 USD
CY2020 us-gaap Liabilities Assumed1
LiabilitiesAssumed1
3072000 USD
CY2019 us-gaap Liabilities Assumed1
LiabilitiesAssumed1
0 USD
CY2018 us-gaap Liabilities Assumed1
LiabilitiesAssumed1
0 USD
CY2020 us-gaap Use Of Estimates
UseOfEstimates
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;"><i>(b) Use of estimates</i></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;">The preparation of the consolidated financial statements in accordance with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenues and expenses, and related disclosure of contingent assets and liabilities. On an on-going basis, management evaluates its estimates, including those related to amounts recognized for bad debts and inventory obsolescence which requires estimates of sales forecasts and other marketplace considerations, internal use software which requires estimates of whether the costs incurred meet the criteria for capitalization based on the stage of the projects, the portion of MSE billings related to professional services, the recoverability of goodwill and intangible assets which require estimates of future cash flows and discount rates, lease liability which requires estimates of incremental borrowing rate and the expectation of exercising lease renewal periods, income taxes, contingencies and litigation, and estimates of credit spreads for determination of the fair value of derivative instruments. Management bases its estimates on historical experience, available market information as applicable, and on various other assumptions that are believed to be reasonable under the circumstances at the time they are made. Under different assumptions or conditions, the actual results will differ, potentially materially, from those previously estimated. Many of the conditions impacting these assumptions and estimates are outside of the Company’s control.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;"> </p>
CY2020 us-gaap Concentration Risk Credit Risk
ConcentrationRiskCreditRisk
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;"><i>(q) Concentration of credit risk</i></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;">Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash equivalents, accounts receivable, forward foreign exchange contracts and pay-fixed, receive-variable interest rate swap contracts. Cash equivalents consist of deposits with major commercial banks, the maturities of which are <em style="font: inherit;">three</em> months or less from the date of purchase. With respect to accounts receivable, the Company performs periodic credit evaluations of the financial condition of its customers and typically does <em style="font: inherit;">not</em> require collateral from them. The counterparty to any forward foreign exchange contracts is a major commercial bank which management believes does <em style="font: inherit;">not</em> represent a significant credit risk. Management assesses the need for allowances for potential credit losses by considering the credit risk of specific customers, historical trends and other information.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left; text-indent: 36pt;"> </p>
CY2018Q1 us-gaap Capitalized Contract Cost Net
CapitalizedContractCostNet
1400000 USD
CY2020 us-gaap Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
500000 USD
CY2019 us-gaap Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
300000 USD
CY2018 us-gaap Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
200000 USD
CY2020 us-gaap Business Combination Pro Forma Information Revenue Of Acquiree Since Acquisition Date Actual
BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual
4700000 USD
CY2020 us-gaap Business Combination Pro Forma Information Earnings Or Loss Of Acquiree Since Acquisition Date Actual
BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual
700000 USD
CY2019 tcx Property Plant And Equipment Fully Depreciated Writedown
PropertyPlantAndEquipmentFullyDepreciatedWritedown
100000 USD
CY2020Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
154341000 USD
CY2019Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
107319000 USD
CY2020Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
36811000 USD
CY2019Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
25198000 USD
CY2020Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
117530000 USD
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
82121000 USD
CY2020 us-gaap Depreciation
Depreciation
12632000 USD
CY2019 us-gaap Depreciation
Depreciation
8961000 USD
CY2018 us-gaap Depreciation
Depreciation
5722000 USD
CY2020 tcx Property Plant And Equipment Fully Depreciated Writedown
PropertyPlantAndEquipmentFullyDepreciatedWritedown
1600000 USD
CY2018Q4 us-gaap Goodwill
Goodwill
90054000 USD
CY2019 us-gaap Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
19764000 USD
CY2019Q4 us-gaap Goodwill
Goodwill
109818000 USD
CY2020 us-gaap Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
6486000 USD
CY2020Q4 us-gaap Goodwill
Goodwill
116304000 USD
CY2020Q4 us-gaap Goodwill
Goodwill
116300000 USD
CY2019Q4 us-gaap Goodwill
Goodwill
109800000 USD
CY2020 tcx Acquisition Of Nonexclusive Land Easement
AcquisitionOfNonexclusiveLandEasement
100000 USD
CY2018Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
49395000 USD
CY2019 us-gaap Finitelived Intangible Assets Acquired1
FinitelivedIntangibleAssetsAcquired1
91000 USD
CY2019 tcx Disposal Of Domain Names
DisposalOfDomainNames
114000 USD
CY2019 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
10333000 USD
CY2019Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
57654000 USD
CY2020 tcx Disposal Of Domain Names
DisposalOfDomainNames
17000 USD
CY2020 us-gaap Impairment Of Intangible Assets Finitelived
ImpairmentOfIntangibleAssetsFinitelived
1431000 USD
CY2020 tcx Finitelived Intangible Assets Other Period Increase Decrease
FinitelivedIntangibleAssetsOtherPeriodIncreaseDecrease
-223000 USD
CY2020 tcx Write Down Of Intangible Assets
WriteDownOfIntangibleAssets
2581000 USD
CY2020Q4 us-gaap Operating Lease Liability
OperatingLeaseLiability
10940000 USD
CY2020 tcx Lessee Operating Lease Option To Extend Amount
LesseeOperatingLeaseOptionToExtendAmount
300000 USD
CY2020Q4 tcx Lessee Operating Lease Lease Not Yet Commenced Future Minimum Payments Due
LesseeOperatingLeaseLeaseNotYetCommencedFutureMinimumPaymentsDue
500000 USD
CY2019Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
8771000 USD
CY2020Q4 us-gaap Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
16909000 USD
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
9515000 USD
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
9345000 USD
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
8669000 USD
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
4455000 USD
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
2587000 USD
CY2020Q4 us-gaap Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
581000 USD
CY2020Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
35152000 USD
CY2019Q4 us-gaap Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
625000 USD
CY2019Q4 tcx Accumulated Other Comprehensive Income Tax
AccumulatedOtherComprehensiveIncomeTax
-152000 USD
CY2019Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
473000 USD
CY2020 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax
2142000 USD
CY2020 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax
-489000 USD
CY2020 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax
1653000 USD
CY2020 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Before Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax
-271000 USD
CY2020 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax
61000 USD
CY2020 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax
-210000 USD
CY2020 us-gaap Other Comprehensive Income Loss Derivatives Qualifying As Hedges Before Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesBeforeTax
2413000 USD
CY2020 us-gaap Other Comprehensive Income Loss Derivatives Qualifying As Hedges Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
-550000 USD
CY2020 us-gaap Other Comprehensive Income Loss Derivatives Qualifying As Hedges Net Of Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
1863000 USD
CY2020Q4 us-gaap Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
3038000 USD
CY2020Q4 tcx Accumulated Other Comprehensive Income Tax
AccumulatedOtherComprehensiveIncomeTax
-702000 USD
CY2020Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
2336000 USD
CY2018Q4 us-gaap Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
-1069000 USD
CY2018Q4 tcx Accumulated Other Comprehensive Income Tax
AccumulatedOtherComprehensiveIncomeTax
259000 USD
CY2018Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-810000 USD
CY2019 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax
1454000 USD
CY2019 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax
-353000 USD
CY2019 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax
1101000 USD
CY2019 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Before Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax
-240000 USD
CY2019 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax
58000 USD
CY2019 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax
-182000 USD
CY2019 us-gaap Other Comprehensive Income Loss Derivatives Qualifying As Hedges Before Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesBeforeTax
1694000 USD
CY2019 us-gaap Other Comprehensive Income Loss Derivatives Qualifying As Hedges Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
-411000 USD
CY2019 us-gaap Other Comprehensive Income Loss Derivatives Qualifying As Hedges Net Of Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
1283000 USD
CY2019Q4 us-gaap Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
625000 USD
CY2019Q4 tcx Accumulated Other Comprehensive Income Tax
AccumulatedOtherComprehensiveIncomeTax
-152000 USD
CY2019Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
473000 USD
CY2017Q4 us-gaap Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
0 USD
CY2017Q4 tcx Accumulated Other Comprehensive Income Tax
AccumulatedOtherComprehensiveIncomeTax
0 USD
CY2017Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
0 USD
CY2018 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax
-1350000 USD
CY2018 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax
328000 USD
CY2018 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax
-1022000 USD
CY2018 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Before Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax
-281000 USD
CY2018 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax
69000 USD
CY2018 us-gaap Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax
-212000 USD
CY2018 us-gaap Other Comprehensive Income Loss Derivatives Qualifying As Hedges Before Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesBeforeTax
-1069000 USD
CY2018 us-gaap Other Comprehensive Income Loss Derivatives Qualifying As Hedges Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
259000 USD
CY2018 us-gaap Other Comprehensive Income Loss Derivatives Qualifying As Hedges Net Of Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
-810000 USD
CY2018Q4 us-gaap Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
-1069000 USD
CY2018Q4 tcx Accumulated Other Comprehensive Income Tax
AccumulatedOtherComprehensiveIncomeTax
259000 USD
CY2018Q4 us-gaap Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
-810000 USD
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Next Twelve Months
LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
0 USD
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Two
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
0 USD
CY2020Q4 us-gaap Debt Instrument Unamortized Discount
DebtInstrumentUnamortizedDiscount
667000 USD
CY2019Q4 us-gaap Debt Instrument Unamortized Discount
DebtInstrumentUnamortizedDiscount
897000 USD
CY2020Q4 us-gaap Loans Payable
LoansPayable
121733000 USD
CY2019Q4 us-gaap Loans Payable
LoansPayable
113503000 USD
CY2020Q4 us-gaap Loans Payable Current
LoansPayableCurrent
-0 USD
CY2019Q4 us-gaap Loans Payable Current
LoansPayableCurrent
-0 USD
CY2020Q4 us-gaap Long Term Loans Payable
LongTermLoansPayable
121733000 USD
CY2019Q4 us-gaap Long Term Loans Payable
LongTermLoansPayable
113503000 USD
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Three
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
122400000 USD
CY2020Q4 us-gaap Long Term Debt
LongTermDebt
122400000 USD
CY2020 us-gaap Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
0.21 pure
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
10760000 USD
CY2019 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
24571000 USD
CY2018 us-gaap Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
26155000 USD
CY2020 us-gaap Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
2259000 USD
CY2019 us-gaap Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
5160000 USD
CY2018 us-gaap Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
5492000 USD
CY2020 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
303000 USD
CY2019 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
526000 USD
CY2018 us-gaap Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
846000 USD
CY2020 tcx Effective Income Tax Rate Reconciliation Change In Valuation Allowance On Pre2017 Foreign Tax Credits Amount
EffectiveIncomeTaxRateReconciliationChangeInValuationAllowanceOnPre2017ForeignTaxCreditsAmount
1867000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
12530000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
1590000 USD
CY2019 tcx Effective Income Tax Rate Reconciliation Change In Valuation Allowance On Pre2017 Foreign Tax Credits Amount
EffectiveIncomeTaxRateReconciliationChangeInValuationAllowanceOnPre2017ForeignTaxCreditsAmount
5277000 USD
CY2018 tcx Effective Income Tax Rate Reconciliation Change In Valuation Allowance On Pre2017 Foreign Tax Credits Amount
EffectiveIncomeTaxRateReconciliationChangeInValuationAllowanceOnPre2017ForeignTaxCreditsAmount
2811000 USD
CY2020 tcx Effective Income Tax Rate Reconciliation Expired Business Tax Credits Amount
EffectiveIncomeTaxRateReconciliationExpiredBusinessTaxCreditsAmount
1044000 USD
CY2019 tcx Effective Income Tax Rate Reconciliation Expired Business Tax Credits Amount
EffectiveIncomeTaxRateReconciliationExpiredBusinessTaxCreditsAmount
0 USD
CY2018 tcx Effective Income Tax Rate Reconciliation Expired Business Tax Credits Amount
EffectiveIncomeTaxRateReconciliationExpiredBusinessTaxCreditsAmount
0 USD
CY2020 tcx Effective Income Tax Rate Reconciliation Non Creditable2017 Foreign Tax Amount
EffectiveIncomeTaxRateReconciliationNonCreditable2017ForeignTaxAmount
818000 USD
CY2019 tcx Effective Income Tax Rate Reconciliation Non Creditable2017 Foreign Tax Amount
EffectiveIncomeTaxRateReconciliationNonCreditable2017ForeignTaxAmount
515000 USD
CY2018 tcx Effective Income Tax Rate Reconciliation Non Creditable2017 Foreign Tax Amount
EffectiveIncomeTaxRateReconciliationNonCreditable2017ForeignTaxAmount
0 USD
CY2020 tcx Effective Income Tax Rate Reconciliation Sharebased Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationSharebasedCompensationExcessTaxBenefitAmount
-407000 USD
CY2019 tcx Effective Income Tax Rate Reconciliation Sharebased Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationSharebasedCompensationExcessTaxBenefitAmount
-634000 USD
CY2018 tcx Effective Income Tax Rate Reconciliation Sharebased Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationSharebasedCompensationExcessTaxBenefitAmount
-697000 USD
CY2020 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
-161000 USD
CY2019 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
-103000 USD
CY2018 us-gaap Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
159000 USD
CY2020 tcx Effective Income Tax Rate Reconciliation Deferred Tax In Foreign Branch
EffectiveIncomeTaxRateReconciliationDeferredTaxInForeignBranch
-774000 USD
CY2019 tcx Effective Income Tax Rate Reconciliation Deferred Tax In Foreign Branch
EffectiveIncomeTaxRateReconciliationDeferredTaxInForeignBranch
-840000 USD
CY2018 tcx Effective Income Tax Rate Reconciliation Deferred Tax In Foreign Branch
EffectiveIncomeTaxRateReconciliationDeferredTaxInForeignBranch
0 USD
CY2020 us-gaap Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
36000 USD
CY2019 us-gaap Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
-728000 USD
CY2018 us-gaap Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
409000 USD
CY2020 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
4985000 USD
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
9173000 USD
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
9020000 USD
CY2020 tcx Income Tax Expense Benefit Continuing Operations Valuation Allowance On Foreign Tax Credits And Net Operating Losses
IncomeTaxExpenseBenefitContinuingOperationsValuationAllowanceOnForeignTaxCreditsAndNetOperatingLosses
2900000 USD
CY2019Q4 tcx Net Operating Loss
NetOperatingLoss
300000 USD
CY2019 tcx Income Tax Expense Benefit Continuing Operations Valuation Allowance On Foreign Tax Credits And Net Operating Losses
IncomeTaxExpenseBenefitContinuingOperationsValuationAllowanceOnForeignTaxCreditsAndNetOperatingLosses
5300000 USD
CY2018Q4 tcx Net Operating Loss
NetOperatingLoss
200000 USD
CY2018 tcx Income Tax Expense Benefit Continuing Operations Valuation Allowance On Foreign Tax Credits And Net Operating Losses
IncomeTaxExpenseBenefitContinuingOperationsValuationAllowanceOnForeignTaxCreditsAndNetOperatingLosses
2800000 USD
CY2020Q4 us-gaap Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
5739000 USD
CY2019Q4 us-gaap Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
6301000 USD
CY2020Q4 tcx Deferred Tax Assets Tax Credit Carryforwards Foreign And General Business
DeferredTaxAssetsTaxCreditCarryforwardsForeignAndGeneralBusiness
11203000 USD
CY2019Q4 tcx Deferred Tax Assets Tax Credit Carryforwards Foreign And General Business
DeferredTaxAssetsTaxCreditCarryforwardsForeignAndGeneralBusiness
9004000 USD
CY2020Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
1452000 USD
CY2019Q4 us-gaap Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
1341000 USD
CY2020Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
792000 USD
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
1490000 USD
CY2020Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
19186000 USD
CY2019Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
18136000 USD
CY2020Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
11232000 USD
CY2019Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
9365000 USD
CY2020Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
7954000 USD
CY2019Q4 us-gaap Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
16237000 USD
CY2020Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
7083000 USD
CY2019Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
6925000 USD
CY2020Q4 us-gaap Deferred Tax Liabilities Other Finite Lived Assets
DeferredTaxLiabilitiesOtherFiniteLivedAssets
4327000 USD
CY2019Q4 us-gaap Deferred Tax Liabilities Other Finite Lived Assets
DeferredTaxLiabilitiesOtherFiniteLivedAssets
5958000 USD
CY2020Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
2847000 USD
CY2019Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
3110000 USD
CY2020Q4 tcx Deferred Tax Liabilities Foreign Branch
DeferredTaxLiabilitiesForeignBranch
1256000 USD
CY2019Q4 tcx Deferred Tax Liabilities Foreign Branch
DeferredTaxLiabilitiesForeignBranch
2012000 USD
CY2020Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
32422000 USD
CY2019Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
34242000 USD
CY2020Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
24468000 USD
CY2019Q4 us-gaap Deferred Tax Liabilities
DeferredTaxLiabilities
25471000 USD
CY2020 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
311202000 USD
CY2019 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
337145000 USD
CY2018 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
346013000 USD
CY2020 us-gaap Cost Of Revenue
CostOfRevenue
225717000 USD
CY2019 us-gaap Cost Of Revenue
CostOfRevenue
236368000 USD
CY2018 us-gaap Cost Of Revenue
CostOfRevenue
249243000 USD
CY2019Q1 us-gaap Contract With Customer Liability
ContractWithCustomerLiability
149300000 USD
CY2019Q4 us-gaap Contract With Customer Liability
ContractWithCustomerLiability
149303000 USD
CY2020 tcx Contract With Customer Liability Additions
ContractWithCustomerLiabilityAdditions
234047000 USD
CY2020 us-gaap Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
-231105000 USD
CY2020Q4 us-gaap Contract With Customer Liability
ContractWithCustomerLiability
152245000 USD
CY2020Q4 us-gaap Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
124271000 USD
CY2020Q4 us-gaap Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
11493000 USD
CY2020Q4 us-gaap Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
5212000 USD
CY2020Q4 us-gaap Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
3231000 USD
CY2020Q4 us-gaap Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
1994000 USD
CY2020Q4 us-gaap Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
2979000 USD
CY2020Q4 us-gaap Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
149180000 USD
CY2020Q4 us-gaap Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Number Of Outstanding Options
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
845020
CY2020Q4 us-gaap Sharebased Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Outstanding Options Weighted Average Exercise Price Beginning Balance1
SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
55.31
CY2020 us-gaap Sharebased Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Outstanding Options Weighted Average Remaining Contractual Term2
SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
P4Y4M24D
CY2020Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
15699000 USD
CY2020Q4 us-gaap Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Number Of Exercisable Options
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions
401345
CY2019 us-gaap Short Term Lease Cost
ShortTermLeaseCost
1040000 USD
CY2020Q4 us-gaap Purchase Obligation Due In Fifth Year
PurchaseObligationDueInFifthYear
5283000 USD
CY2020Q4 us-gaap Lessee Operating Lease Renewal Term
LesseeOperatingLeaseRenewalTerm
P5Y
CY2020 tcx Lessee Operating Lease Option To Terminate Term
LesseeOperatingLeaseOptionToTerminateTerm
P1Y
CY2020 us-gaap Operating Lease Cost
OperatingLeaseCost
2195000 USD
CY2019 us-gaap Operating Lease Cost
OperatingLeaseCost
3057000 USD
CY2020 us-gaap Short Term Lease Cost
ShortTermLeaseCost
501000 USD
CY2020 us-gaap Variable Lease Cost
VariableLeaseCost
589000 USD
CY2019 us-gaap Variable Lease Cost
VariableLeaseCost
657000 USD
CY2020 us-gaap Lease Cost
LeaseCost
3286000 USD
CY2019 us-gaap Lease Cost
LeaseCost
4754000 USD
CY2020 us-gaap Operating Lease Payments
OperatingLeasePayments
2332000 USD
CY2019 us-gaap Operating Lease Payments
OperatingLeasePayments
3130000 USD
CY2020 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
1952000 USD
CY2019 us-gaap Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
2665000 USD
CY2020 tcx Increase Decrease In Operating Lease Rightofuse Asset
IncreaseDecreaseInOperatingLeaseRightofuseAsset
2798000 USD
CY2019 tcx Increase Decrease In Operating Lease Rightofuse Asset
IncreaseDecreaseInOperatingLeaseRightofuseAsset
5392000 USD
CY2020Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.0360 pure
CY2019Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.0520 pure
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
2084000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
2057000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
1979000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
1439000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
900000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
4071000 USD
CY2020Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
250000000
CY2020Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
10612414
CY2019Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
10585159
CY2020 us-gaap Stock Repurchased And Retired During Period Shares
StockRepurchasedAndRetiredDuringPeriodShares
70238
CY2019 us-gaap Stock Repurchased And Retired During Period Shares
StockRepurchasedAndRetiredDuringPeriodShares
101816
CY2018 us-gaap Stock Repurchased And Retired During Period Shares
StockRepurchasedAndRetiredDuringPeriodShares
0
CY2020 us-gaap Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
3281000 USD
CY2019 us-gaap Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
4986000 USD
CY2018 us-gaap Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
0 USD
CY2020 tcx Stock Repurchased And Retired During Period Average Price Per Share
StockRepurchasedAndRetiredDuringPeriodAveragePricePerShare
46.70
CY2019 tcx Stock Repurchased And Retired During Period Average Price Per Share
StockRepurchasedAndRetiredDuringPeriodAveragePricePerShare
48.97
CY2018 tcx Stock Repurchased And Retired During Period Average Price Per Share
StockRepurchasedAndRetiredDuringPeriodAveragePricePerShare
0
CY2020 us-gaap Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
48013
CY2019 us-gaap Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
21332
CY2018 us-gaap Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
19777
CY2020 tcx Shares Received In Connection With Share Based Compensation Value
SharesReceivedInConnectionWithShareBasedCompensationValue
2957000 USD
CY2019 tcx Shares Received In Connection With Share Based Compensation Value
SharesReceivedInConnectionWithShareBasedCompensationValue
1510000 USD
CY2018 tcx Shares Received In Connection With Share Based Compensation Value
SharesReceivedInConnectionWithShareBasedCompensationValue
1138000 USD
CY2020 tcx Shares Received In Connection With Sharebased Compensation Price Per Share
SharesReceivedInConnectionWithSharebasedCompensationPricePerShare
61.58
CY2019 tcx Shares Received In Connection With Sharebased Compensation Price Per Share
SharesReceivedInConnectionWithSharebasedCompensationPricePerShare
70.77
CY2018 tcx Shares Received In Connection With Sharebased Compensation Price Per Share
SharesReceivedInConnectionWithSharebasedCompensationPricePerShare
57.56
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
0.390 pure
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
0.365 pure
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
0.379 pure
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
0.018 pure
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
0.020 pure
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
0.027 pure
CY2020 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
P4Y6M14D
CY2019 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
P4Y6M
CY2018 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
P4Y5M23D
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
0.000 pure
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
0.000 pure
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
0.000 pure
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
19.98
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
20.20
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
22.22
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
754497
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
49.94
CY2018Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
702337
CY2018Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
43.80
CY2017Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
653571
CY2017Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
36.69
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
239325
CY2020 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
61.21
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
180800
CY2019 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
60.56
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
163366
CY2018 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
62.80
CY2020 us-gaap Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
113132
CY2020 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
30.53
CY2019 us-gaap Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
80319
CY2019 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
16.90
CY2018 us-gaap Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
63886
CY2018 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
12.86
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
26468
CY2020 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
60.29
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
31986
CY2019 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
59.35
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
50714
CY2018 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
52.33
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
9202
CY2020 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
58.96
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
16335
CY2019 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
47.51
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
-0
CY2018 us-gaap Share Based Compensation Arrangements By Share Based Payment Award Options Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
0
CY2020Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
845020
CY2020Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
55.31
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
754497
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
49.94
CY2018Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
702337
CY2018Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
43.80
CY2020Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
401345
CY2020Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
49.21
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
356066
CY2019Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
40.64
CY2018Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
326937
CY2018Q4 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
28.91
CY2020 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
3718000 USD
CY2019 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
2876000 USD
CY2018 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
2574000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
900000 USD
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive
0 USD
CY2020Q4 us-gaap Sharebased Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Exercisable Options Weighted Average Exercise Price1
SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1
49.21
CY2020 us-gaap Sharebased Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Exercisable Options Weighted Average Remaining Contractual Term2
SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTerm2
P3Y2M12D
CY2020Q4 us-gaap Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Intrinsic Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
9906000 USD
CY2020 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
3700000 USD
CY2019 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
3900000 USD
CY2018 us-gaap Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
2900000 USD
CY2020 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
1000000.0 USD
CY2019 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
400000 USD
CY2018 us-gaap Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
100000 USD
CY2020 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
3700000 USD
CY2019 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
2900000 USD
CY2018 us-gaap Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
2600000 USD
CY2020Q4 us-gaap Purchase Obligation Due In Third Year
PurchaseObligationDueInThirdYear
13967000 USD
CY2020Q4 us-gaap Contractual Obligation Due In Third Year
ContractualObligationDueInThirdYear
138346000 USD
CY2020 us-gaap Net Income Loss
NetIncomeLoss
5775000 USD
CY2019 us-gaap Net Income Loss
NetIncomeLoss
15398000 USD
CY2018 us-gaap Net Income Loss
NetIncomeLoss
17135000 USD
CY2020 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
10590684
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
10623799
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
10604722
CY2020 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
101597
CY2019 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
149013
CY2018 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
189448
CY2020 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
10692281
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
10772812
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
10794170
CY2020 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.55
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.45
CY2018 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.62
CY2020 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.54
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.43
CY2018 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.59
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
2084000 USD
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Next Twelve Months
LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
0 USD
CY2020Q4 us-gaap Purchase Obligation Due In Next Twelve Months
PurchaseObligationDueInNextTwelveMonths
10262000 USD
CY2020Q4 us-gaap Contractual Obligation Due In Next Twelve Months
ContractualObligationDueInNextTwelveMonths
12346000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
2057000 USD
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Two
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
0 USD
CY2020Q4 us-gaap Purchase Obligation Due In Second Year
PurchaseObligationDueInSecondYear
9742000 USD
CY2020Q4 us-gaap Contractual Obligation Due In Second Year
ContractualObligationDueInSecondYear
11799000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
1979000 USD
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Three
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
122400000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
1439000 USD
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal In Year Four
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
0 USD
CY2020Q4 us-gaap Purchase Obligation Due In Fourth Year
PurchaseObligationDueInFourthYear
19078000 USD
CY2020Q4 us-gaap Contractual Obligation Due In Fourth Year
ContractualObligationDueInFourthYear
20517000 USD
CY2018 us-gaap Gross Profit
GrossProfit
96770000 USD
CY2018 us-gaap Selling And Marketing Expense
SellingAndMarketingExpense
33063000 USD
CY2020 us-gaap Gross Profit
GrossProfit
85485000 USD
CY2020 us-gaap Selling And Marketing Expense
SellingAndMarketingExpense
34274000 USD
CY2020 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
12427000 USD
CY2020 us-gaap General And Administrative Expense
GeneralAndAdministrativeExpense
20268000 USD
CY2020 us-gaap Depreciation And Amortization
DepreciationAndAmortization
488000 USD
CY2020 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
17000 USD
CY2020 tcx Amortization Of Intangible Assets Net Of Cost Of Services Amortization
AmortizationOfIntangibleAssetsNetOfCostOfServicesAmortization
10080000 USD
CY2020 us-gaap Impairment Of Intangible Assets Excluding Goodwill
ImpairmentOfIntangibleAssetsExcludingGoodwill
1431000 USD
CY2020 us-gaap Gain Loss On Sale Of Derivatives
GainLossOnSaleOfDerivatives
383000 USD
CY2020 us-gaap Operating Income Loss
OperatingIncomeLoss
6917000 USD
CY2020 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
3843000 USD
CY2020 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
10760000 USD
CY2019 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
337145000 USD
CY2020Q4 us-gaap Contractual Obligation Due In Fifth Year
ContractualObligationDueInFifthYear
6183000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
4071000 USD
CY2020Q4 us-gaap Long Term Debt Maturities Repayments Of Principal After Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive
0 USD
CY2020Q4 us-gaap Purchase Obligation Due After Fifth Year
PurchaseObligationDueAfterFifthYear
93000 USD
CY2020Q4 us-gaap Contractual Obligation Due After Fifth Year
ContractualObligationDueAfterFifthYear
4164000 USD
CY2020Q4 us-gaap Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
12530000 USD
CY2020Q4 us-gaap Long Term Debt
LongTermDebt
122400000 USD
CY2020Q4 us-gaap Purchase Obligation
PurchaseObligation
58425000 USD
CY2020Q4 us-gaap Contractual Obligation
ContractualObligation
193355000 USD
CY2020 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
311202000 USD
CY2020 us-gaap Cost Of Goods And Service Excluding Depreciation Depletion And Amortization
CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
200401000 USD
CY2020 tcx Cost Of Goods And Services Sold Network Expenses
CostOfGoodsAndServicesSoldNetworkExpenses
10194000 USD
CY2020 us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
12144000 USD
CY2020 us-gaap Cost Of Goods And Services Sold Amortization
CostOfGoodsAndServicesSoldAmortization
1340000 USD
CY2020 tcx Cost Of Revenue Property And Equipment Impairment
CostOfRevenuePropertyAndEquipmentImpairment
1638000 USD
CY2020 us-gaap Cost Of Revenue
CostOfRevenue
225717000 USD
CY2019 us-gaap Cost Of Goods And Service Excluding Depreciation Depletion And Amortization
CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
217579000 USD
CY2019 tcx Cost Of Goods And Services Sold Network Expenses
CostOfGoodsAndServicesSoldNetworkExpenses
9190000 USD
CY2019 us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
8475000 USD
CY2019 us-gaap Cost Of Goods And Services Sold Amortization
CostOfGoodsAndServicesSoldAmortization
1124000 USD
CY2019 us-gaap Cost Of Revenue
CostOfRevenue
236368000 USD
CY2019 us-gaap Gross Profit
GrossProfit
100777000 USD
CY2019 us-gaap Selling And Marketing Expense
SellingAndMarketingExpense
34270000 USD
CY2019 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
9717000 USD
CY2019 us-gaap General And Administrative Expense
GeneralAndAdministrativeExpense
17880000 USD
CY2019 us-gaap Depreciation And Amortization
DepreciationAndAmortization
486000 USD
CY2019 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
-73000 USD
CY2019 tcx Amortization Of Intangible Assets Net Of Cost Of Services Amortization
AmortizationOfIntangibleAssetsNetOfCostOfServicesAmortization
9209000 USD
CY2019 us-gaap Gain Loss On Sale Of Derivatives
GainLossOnSaleOfDerivatives
198000 USD
CY2019 us-gaap Operating Income Loss
OperatingIncomeLoss
29340000 USD
CY2019 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-4769000 USD
CY2019 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
24571000 USD
CY2018 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
346013000 USD
CY2018 us-gaap Cost Of Goods And Service Excluding Depreciation Depletion And Amortization
CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
232103000 USD
CY2018 tcx Cost Of Goods And Services Sold Network Expenses
CostOfGoodsAndServicesSoldNetworkExpenses
9846000 USD
CY2018 us-gaap Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
5298000 USD
CY2018 us-gaap Cost Of Goods And Services Sold Amortization
CostOfGoodsAndServicesSoldAmortization
1996000 USD
CY2018 us-gaap Cost Of Revenue
CostOfRevenue
249243000 USD
CY2018 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
8748000 USD
CY2018 us-gaap General And Administrative Expense
GeneralAndAdministrativeExpense
17710000 USD
CY2018 us-gaap Depreciation And Amortization
DepreciationAndAmortization
424000 USD
CY2018 tcx Amortization Of Intangible Assets Net Of Cost Of Services Amortization
AmortizationOfIntangibleAssetsNetOfCostOfServicesAmortization
7247000 USD
CY2018 us-gaap Gain Loss On Sale Of Derivatives
GainLossOnSaleOfDerivatives
-254000 USD
CY2018 us-gaap Operating Income Loss
OperatingIncomeLoss
29324000 USD
CY2018 us-gaap Nonoperating Income Expense
NonoperatingIncomeExpense
-3169000 USD
CY2018 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
26155000 USD
CY2020 us-gaap Cost Of Revenue
CostOfRevenue
225717000 USD
CY2019 us-gaap Cost Of Revenue
CostOfRevenue
236368000 USD
CY2018 us-gaap Cost Of Revenue
CostOfRevenue
249243000 USD
CY2020Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
117530000 USD
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
82121000 USD
CY2020Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
35152000 USD
CY2019Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
45345000 USD
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
131000 USD
CY2020 tcx Allowance For Doubtful Accounts Charged To Recovered Costs And Expenses
AllowanceForDoubtfulAccountsChargedToRecoveredCostsAndExpenses
91000 USD
CY2020 us-gaap Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
0 USD
CY2020Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
222000 USD
CY2018Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
132000 USD
CY2019 tcx Allowance For Doubtful Accounts Charged To Recovered Costs And Expenses
AllowanceForDoubtfulAccountsChargedToRecoveredCostsAndExpenses
-1000 USD
CY2019 us-gaap Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
0 USD
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
131000 USD
CY2020Q4 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
70784000 USD
CY2020Q3 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
74311000 USD
CY2020Q2 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
82122000 USD
CY2020Q1 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
83985000 USD
CY2020Q4 us-gaap Gross Profit
GrossProfit
17428000 USD
CY2020Q3 us-gaap Gross Profit
GrossProfit
19941000 USD
CY2020Q2 us-gaap Gross Profit
GrossProfit
22966000 USD
CY2020Q1 us-gaap Gross Profit
GrossProfit
25150000 USD
CY2020Q4 us-gaap Net Income Loss
NetIncomeLoss
2068000 USD
CY2020Q3 us-gaap Net Income Loss
NetIncomeLoss
716000 USD
CY2020Q2 us-gaap Net Income Loss
NetIncomeLoss
157000 USD
CY2020Q1 us-gaap Net Income Loss
NetIncomeLoss
2834000 USD
CY2020Q4 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.19
CY2020Q3 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.07
CY2020Q2 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.01
CY2020Q1 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.27
CY2020Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.19
CY2020Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.07
CY2020Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.01
CY2020Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.26
CY2019Q4 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
85946000 USD
CY2019Q3 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
88129000 USD
CY2019Q2 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
84117000 USD
CY2019Q1 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
78953000 USD
CY2019Q4 us-gaap Gross Profit
GrossProfit
26045000 USD
CY2019Q3 us-gaap Gross Profit
GrossProfit
27574000 USD
CY2019Q2 us-gaap Gross Profit
GrossProfit
24507000 USD
CY2019Q1 us-gaap Gross Profit
GrossProfit
22651000 USD
CY2019Q4 us-gaap Net Income Loss
NetIncomeLoss
5778000 USD
CY2019Q3 us-gaap Net Income Loss
NetIncomeLoss
4205000 USD
CY2019Q2 us-gaap Net Income Loss
NetIncomeLoss
2616000 USD
CY2019Q1 us-gaap Net Income Loss
NetIncomeLoss
2799000 USD
CY2019Q4 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.55
CY2019Q3 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.40
CY2019Q2 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.25
CY2019Q1 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.26
CY2019Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.54
CY2019Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.39
CY2019Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.24
CY2019Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.26

Files In Submission

Name View Source Status
0001437749-21-004866-index-headers.html Edgar Link pending
0001437749-21-004866-index.html Edgar Link pending
0001437749-21-004866.txt Edgar Link pending
0001437749-21-004866-xbrl.zip Edgar Link pending
a2.jpg Edgar Link pending
a3.jpg Edgar Link pending
ex_215557.htm Edgar Link pending
ex_215559.htm Edgar Link pending
ex_215560.htm Edgar Link pending
ex_215561.htm Edgar Link pending
ex_215562.htm Edgar Link pending
ex_215563.htm Edgar Link pending
ex_215564.htm Edgar Link pending
FilingSummary.xml Edgar Link unprocessable
Financial_Report.xlsx Edgar Link pending
MetaLinks.json Edgar Link pending
R1.htm Edgar Link pending
R10.htm Edgar Link pending
R100.htm Edgar Link pending
R101.htm Edgar Link pending
R102.htm Edgar Link pending
R103.htm Edgar Link pending
R104.htm Edgar Link pending
R105.htm Edgar Link pending
R106.htm Edgar Link pending
R107.htm Edgar Link pending
R108.htm Edgar Link pending
R11.htm Edgar Link pending
R12.htm Edgar Link pending
R13.htm Edgar Link pending
R14.htm Edgar Link pending
R15.htm Edgar Link pending
R16.htm Edgar Link pending
R17.htm Edgar Link pending
R18.htm Edgar Link pending
R19.htm Edgar Link pending
R2.htm Edgar Link pending
R20.htm Edgar Link pending
R21.htm Edgar Link pending
R22.htm Edgar Link pending
R23.htm Edgar Link pending
R24.htm Edgar Link pending
R25.htm Edgar Link pending
R26.htm Edgar Link pending
R27.htm Edgar Link pending
R28.htm Edgar Link pending
R29.htm Edgar Link pending
R3.htm Edgar Link pending
R30.htm Edgar Link pending
R31.htm Edgar Link pending
R32.htm Edgar Link pending
R33.htm Edgar Link pending
R34.htm Edgar Link pending
R35.htm Edgar Link pending
R36.htm Edgar Link pending
R37.htm Edgar Link pending
R38.htm Edgar Link pending
R39.htm Edgar Link pending
R4.htm Edgar Link pending
R40.htm Edgar Link pending
R41.htm Edgar Link pending
R42.htm Edgar Link pending
R43.htm Edgar Link pending
R44.htm Edgar Link pending
R45.htm Edgar Link pending
R46.htm Edgar Link pending
R47.htm Edgar Link pending
R48.htm Edgar Link pending
R49.htm Edgar Link pending
R5.htm Edgar Link pending
R50.htm Edgar Link pending
R51.htm Edgar Link pending
R52.htm Edgar Link pending
R53.htm Edgar Link pending
R54.htm Edgar Link pending
R55.htm Edgar Link pending
R56.htm Edgar Link pending
R57.htm Edgar Link pending
R58.htm Edgar Link pending
R59.htm Edgar Link pending
R6.htm Edgar Link pending
R60.htm Edgar Link pending
R61.htm Edgar Link pending
R62.htm Edgar Link pending
R63.htm Edgar Link pending
R64.htm Edgar Link pending
R65.htm Edgar Link pending
R66.htm Edgar Link pending
R67.htm Edgar Link pending
R68.htm Edgar Link pending
R69.htm Edgar Link pending
R7.htm Edgar Link pending
R70.htm Edgar Link pending
R71.htm Edgar Link pending
R72.htm Edgar Link pending
R73.htm Edgar Link pending
R74.htm Edgar Link pending
R75.htm Edgar Link pending
R76.htm Edgar Link pending
R77.htm Edgar Link pending
R78.htm Edgar Link pending
R79.htm Edgar Link pending
R8.htm Edgar Link pending
R80.htm Edgar Link pending
R81.htm Edgar Link pending
R82.htm Edgar Link pending
R83.htm Edgar Link pending
R84.htm Edgar Link pending
R85.htm Edgar Link pending
R86.htm Edgar Link pending
R87.htm Edgar Link pending
R88.htm Edgar Link pending
R89.htm Edgar Link pending
R9.htm Edgar Link pending
R90.htm Edgar Link pending
R91.htm Edgar Link pending
R92.htm Edgar Link pending
R93.htm Edgar Link pending
R94.htm Edgar Link pending
R95.htm Edgar Link pending
R96.htm Edgar Link pending
R97.htm Edgar Link pending
R98.htm Edgar Link pending
R99.htm Edgar Link pending
report.css Edgar Link pending
Show.js Edgar Link pending
tcx-20201231.xsd Edgar Link pending
tcx-20201231_cal.xml Edgar Link unprocessable
tcx-20201231_def.xml Edgar Link unprocessable
tcx-20201231_lab.xml Edgar Link unprocessable
tcx-20201231_pre.xml Edgar Link unprocessable
tcx2020.jpg Edgar Link pending
tcx20201231_10k.htm Edgar Link pending
tcx20201231_10k_htm.xml Edgar Link completed