2020 Q4 Form 10-Q Financial Statement
#000110465920121637 Filed on November 05, 2020
Income Statement
Concept | 2020 Q4 | 2020 Q3 | 2019 Q3 |
---|---|---|---|
Revenue | $143.9M | $142.3M | $136.9M |
YoY Change | 2.57% | 3.91% | 5.23% |
Cost Of Revenue | $54.80M | $54.52M | $55.25M |
YoY Change | -2.13% | -1.33% | 1.17% |
Gross Profit | $89.10M | $87.78M | $81.69M |
YoY Change | 5.69% | 7.46% | 8.16% |
Gross Profit Margin | 61.92% | 61.69% | 59.65% |
Selling, General & Admin | $39.20M | $39.72M | $35.97M |
YoY Change | 7.4% | 10.43% | 7.67% |
% of Gross Profit | 44.0% | 45.25% | 44.03% |
Research & Development | |||
YoY Change | |||
% of Gross Profit | |||
Depreciation & Amortization | $22.50M | $21.60M | $20.00M |
YoY Change | 12.5% | 8.0% | -1.48% |
% of Gross Profit | 25.25% | 24.61% | 24.48% |
Operating Expenses | $61.70M | $39.72M | $35.97M |
YoY Change | 9.01% | 10.43% | 7.67% |
Operating Profit | $27.40M | $26.04M | $25.80M |
YoY Change | -2.26% | 0.92% | 15.92% |
Interest Expense | -$34.60M | $15.76M | $15.19M |
YoY Change | 100.0% | 3.75% | 18.99% |
% of Operating Profit | -126.28% | 60.53% | 58.88% |
Other Income/Expense, Net | |||
YoY Change | |||
Pretax Income | -$7.300M | -$6.555M | $18.96M |
YoY Change | -167.59% | -134.58% | 65.91% |
Income Tax | -$700.0K | -$1.600M | $5.254M |
% Of Pretax Income | 27.72% | ||
Net Earnings | -$6.600M | -$5.000M | $13.70M |
YoY Change | -188.0% | -136.5% | 67.07% |
Net Earnings / Revenue | -4.59% | -3.51% | 10.0% |
Basic Earnings Per Share | -$0.11 | $0.30 | |
Diluted Earnings Per Share | -$142.5K | -$0.11 | $0.30 |
COMMON SHARES | |||
Basic Shares Outstanding | 47.25M | 45.82M | 45.44M |
Diluted Shares Outstanding | 45.82M | 46.02M |
Balance Sheet
Concept | 2020 Q4 | 2020 Q3 | 2019 Q3 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $371.3M | $393.3M | $396.3M |
YoY Change | -7.04% | -0.76% | 39.25% |
Cash & Equivalents | $371.3M | $393.3M | $396.3M |
Short-Term Investments | |||
Other Short-Term Assets | $40.90M | $40.00M | $36.80M |
YoY Change | 14.25% | 8.7% | 11.52% |
Inventory | |||
Prepaid Expenses | |||
Receivables | $44.19M | $42.05M | $41.29M |
Other Receivables | $0.00 | $0.00 | $0.00 |
Total Short-Term Assets | $456.3M | $475.4M | $474.4M |
YoY Change | -4.08% | 0.21% | 32.32% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $430.3M | $511.7M | $370.8M |
YoY Change | 16.64% | 37.99% | -2.67% |
Goodwill | |||
YoY Change | |||
Intangibles | |||
YoY Change | |||
Long-Term Investments | |||
YoY Change | |||
Other Assets | $14.10M | $13.90M | $14.60M |
YoY Change | 0.71% | -4.79% | -17.98% |
Total Long-Term Assets | $544.1M | $525.6M | $458.0M |
YoY Change | 19.23% | 14.76% | 14.84% |
TOTAL ASSETS | |||
Total Short-Term Assets | $456.3M | $475.4M | $474.4M |
Total Long-Term Assets | $544.1M | $525.6M | $458.0M |
Total Assets | $1.000B | $1.001B | $932.3M |
YoY Change | 7.33% | 7.35% | 23.11% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $9.775M | $11.98M | $9.849M |
YoY Change | -11.74% | 21.67% | 18.66% |
Accrued Expenses | $51.03M | $47.71M | $49.12M |
YoY Change | -0.53% | -2.85% | 5.17% |
Deferred Revenue | |||
YoY Change | |||
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | $22.50M | $23.50M | $17.00M |
YoY Change | 30.81% | 38.24% | -1.73% |
Total Short-Term Liabilities | $94.44M | $95.25M | $86.23M |
YoY Change | 5.29% | 10.46% | 19.26% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $1.073B | $1.048B | $938.3M |
YoY Change | 13.66% | 11.7% | 19.65% |
Other Long-Term Liabilities | $14.79M | $16.80M | $13.01M |
YoY Change | -3.49% | 29.09% | -51.26% |
Total Long-Term Liabilities | $14.79M | $16.80M | $13.01M |
YoY Change | -3.49% | 29.09% | -98.4% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $94.44M | $95.25M | $86.23M |
Total Long-Term Liabilities | $14.79M | $16.80M | $13.01M |
Total Liabilities | $1.294B | $1.262B | $1.123B |
YoY Change | 13.9% | 12.36% | 27.13% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | -$807.8M | -$766.7M | -$662.3M |
YoY Change | 18.0% | 15.77% | |
Common Stock | $515.9M | $513.5M | $487.4M |
YoY Change | 4.6% | 5.35% | |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | |||
YoY Change | |||
Treasury Stock Shares | |||
Shareholders Equity | -$293.2M | -$260.7M | -$190.5M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $1.000B | $1.001B | $932.3M |
YoY Change | 7.33% | 7.35% | 23.11% |
Cashflow Statement
Concept | 2020 Q4 | 2020 Q3 | 2019 Q3 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | -$6.600M | -$5.000M | $13.70M |
YoY Change | -188.0% | -136.5% | 67.07% |
Depreciation, Depletion And Amortization | $22.50M | $21.60M | $20.00M |
YoY Change | 12.5% | 8.0% | -1.48% |
Cash From Operating Activities | $37.60M | $32.90M | $33.40M |
YoY Change | -18.44% | -1.5% | 5.36% |
INVESTING ACTIVITIES | |||
Capital Expenditures | -$15.90M | -$13.30M | -$12.10M |
YoY Change | 60.61% | 9.92% | 0.0% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | |||
YoY Change | |||
Cash From Investing Activities | -$15.90M | -$13.30M | -$12.10M |
YoY Change | 60.61% | 9.92% | 0.0% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | $33.50M | $28.10M | |
YoY Change | 15.12% | ||
Common Stock Issuance & Retirement, Net | |||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -45.80M | -44.90M | -32.90M |
YoY Change | 34.31% | 36.47% | -180.44% |
NET CHANGE | |||
Cash From Operating Activities | 37.60M | 32.90M | 33.40M |
Cash From Investing Activities | -15.90M | -13.30M | -12.10M |
Cash From Financing Activities | -45.80M | -44.90M | -32.90M |
Net Change In Cash | -24.10M | -25.30M | -11.60M |
YoY Change | -1247.62% | 118.1% | -119.17% |
FREE CASH FLOW | |||
Cash From Operating Activities | $37.60M | $32.90M | $33.40M |
Capital Expenditures | -$15.90M | -$13.30M | -$12.10M |
Free Cash Flow | $53.50M | $46.20M | $45.50M |
YoY Change | -4.46% | 1.54% | 3.88% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2020Q3 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
||
CY2019Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
||
dei |
Entity Central Index Key
EntityCentralIndexKey
|
0001158324 | ||
dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | ||
dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2020 | ||
dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
Q3 | ||
dei |
Entity Address Country
EntityAddressCountry
|
US | ||
CY2020Q3 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
47284336 | |
CY2019Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
46840434 | |
dei |
Amendment Flag
AmendmentFlag
|
false | ||
dei |
Document Type
DocumentType
|
10-Q | ||
dei |
Document Quarterly Report
DocumentQuarterlyReport
|
true | ||
dei |
Document Period End Date
DocumentPeriodEndDate
|
2020-09-30 | ||
dei |
Document Transition Report
DocumentTransitionReport
|
false | ||
dei |
Entity File Number
EntityFileNumber
|
000-51829 | ||
dei |
Entity Registrant Name
EntityRegistrantName
|
COGENT COMMUNICATIONS HOLDINGS, INC. | ||
dei |
Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
|
DE | ||
dei |
Entity Tax Identification Number
EntityTaxIdentificationNumber
|
46-5706863 | ||
dei |
Entity Address Address Line1
EntityAddressAddressLine1
|
2450 N Street N.W. | ||
dei |
Entity Address City Or Town
EntityAddressCityOrTown
|
Washington, D.C | ||
dei |
Entity Address Postal Zip Code
EntityAddressPostalZipCode
|
20037 | ||
dei |
City Area Code
CityAreaCode
|
202 | ||
dei |
Local Phone Number
LocalPhoneNumber
|
295-4200 | ||
dei |
Security12b Title
Security12bTitle
|
Common Stock | ||
dei |
Trading Symbol
TradingSymbol
|
CCOI | ||
dei |
Security Exchange Name
SecurityExchangeName
|
NASDAQ | ||
dei |
Entity Current Reporting Status
EntityCurrentReportingStatus
|
Yes | ||
dei |
Entity Interactive Data Current
EntityInteractiveDataCurrent
|
Yes | ||
dei |
Entity Filer Category
EntityFilerCategory
|
Large Accelerated Filer | ||
dei |
Entity Small Business
EntitySmallBusiness
|
false | ||
dei |
Entity Emerging Growth Company
EntityEmergingGrowthCompany
|
false | ||
dei |
Entity Shell Company
EntityShellCompany
|
false | ||
CY2020Q4 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
47251320 | |
CY2020Q3 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
393293000 | |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
399422000 | |
CY2020Q3 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
2204000 | |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
1771000 | |
CY2020Q3 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
42053000 | |
CY2019Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
40484000 | |
CY2020Q3 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
40007000 | |
CY2019Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
35822000 | |
CY2020Q3 | us-gaap |
Assets Current
AssetsCurrent
|
475353000 | |
CY2019Q4 | us-gaap |
Assets Current
AssetsCurrent
|
475728000 | |
CY2020Q3 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
421251000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
368929000 | |
CY2020Q3 | ccoi |
Lease Right Of Use Asset
LeaseRightOfUseAsset
|
90400000 | |
CY2019Q4 | ccoi |
Lease Right Of Use Asset
LeaseRightOfUseAsset
|
73460000 | |
CY2020Q3 | us-gaap |
Deposits Assets Noncurrent
DepositsAssetsNoncurrent
|
13910000 | |
CY2019Q4 | us-gaap |
Deposits Assets Noncurrent
DepositsAssetsNoncurrent
|
14007000 | |
CY2020Q3 | us-gaap |
Assets
Assets
|
1000914000 | |
CY2019Q4 | us-gaap |
Assets
Assets
|
932124000 | |
CY2020Q3 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
11983000 | |
CY2019Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
11075000 | |
CY2020Q3 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
47714000 | |
CY2019Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
51301000 | |
CY2020Q3 | us-gaap |
Debt Instrument Unamortized Discount
DebtInstrumentUnamortizedDiscount
|
245000 | |
CY2019Q4 | us-gaap |
Debt Instrument Unamortized Discount
DebtInstrumentUnamortizedDiscount
|
350000 | |
CY2020Q3 | us-gaap |
Unrecorded Unconditional Purchase Obligation Balance Sheet Amount
UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount
|
8292000 | |
CY2019Q4 | us-gaap |
Unrecorded Unconditional Purchase Obligation Balance Sheet Amount
UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount
|
9063000 | |
CY2020Q3 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
12006000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
10101000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
|
15252000 | |
CY2019Q4 | us-gaap |
Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
|
8154000 | |
CY2020Q3 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
95247000 | |
CY2019Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
89694000 | |
CY2020Q3 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
101447000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
86690000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
|
197688000 | |
CY2019Q4 | us-gaap |
Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
|
161635000 | |
CY2020Q3 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
16800000 | |
CY2019Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
15327000 | |
CY2020Q3 | us-gaap |
Liabilities
Liabilities
|
1261605000 | |
CY2019Q4 | us-gaap |
Liabilities
Liabilities
|
1135803000 | |
CY2020Q3 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.001 | |
CY2019Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.001 | |
CY2020Q3 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
75000000 | |
CY2019Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
75000000 | |
CY2020Q3 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
47284336 | |
CY2019Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
46840434 | |
CY2020Q3 | us-gaap |
Common Stock Value
CommonStockValue
|
47000 | |
CY2019Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
47000 | |
CY2020Q3 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
513454000 | |
CY2019Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
493178000 | |
CY2020Q3 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
-7498000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
-12326000 | |
CY2020Q3 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
-766694000 | |
CY2019Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
-684578000 | |
CY2020Q3 | us-gaap |
Stockholders Equity
StockholdersEquity
|
-260691000 | |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
-203679000 | |
CY2020Q3 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
1000914000 | |
CY2019Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
932124000 | |
CY2020Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
142302000 | |
CY2019Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
136942000 | |
CY2020Q3 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
54519000 | |
CY2019Q3 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
55253000 | |
CY2020Q3 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
39722000 | |
CY2019Q3 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
35971000 | |
CY2020Q3 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
21619000 | |
CY2019Q3 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
20006000 | |
CY2020Q3 | us-gaap |
Costs And Expenses
CostsAndExpenses
|
115860000 | |
CY2019Q3 | us-gaap |
Costs And Expenses
CostsAndExpenses
|
111230000 | |
CY2020Q3 | ccoi |
Loss On Amendment Of Finance Leases
LossOnAmendmentOfFinanceLeases
|
505000 | |
CY2020Q3 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
99000 | |
CY2019Q3 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
87000 | |
CY2020Q3 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
26036000 | |
CY2019Q3 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
25799000 | |
CY2020Q3 | us-gaap |
Interest Expense
InterestExpense
|
15760000 | |
CY2019Q3 | us-gaap |
Interest Expense
InterestExpense
|
15191000 | |
CY2020Q3 | ccoi |
Foreign Currency Transaction Gain Loss Unrealized On2024 Euro Notes
ForeignCurrencyTransactionGainLossUnrealizedOn2024EuroNotes
|
-17315000 | |
CY2019Q3 | ccoi |
Foreign Currency Transaction Gain Loss Unrealized On2024 Euro Notes
ForeignCurrencyTransactionGainLossUnrealizedOn2024EuroNotes
|
6162000 | |
CY2020Q3 | us-gaap |
Interest And Other Income
InterestAndOtherIncome
|
484000 | |
CY2019Q3 | us-gaap |
Interest And Other Income
InterestAndOtherIncome
|
2185000 | |
CY2020Q3 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
-6555000 | |
CY2019Q3 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
18955000 | |
CY2020Q3 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
-1600000 | |
CY2019Q3 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
5254000 | |
CY2020Q3 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
-4955000 | |
CY2019Q3 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
13701000 | |
CY2020Q3 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
-4955000 | |
CY2019Q3 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
13701000 | |
CY2020Q3 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
5408000 | |
CY2019Q3 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
-4709000 | |
CY2020Q3 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
453000 | |
CY2019Q3 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
8992000 | |
CY2020Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
-0.11 | |
CY2019Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.30 | |
CY2020Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
-0.11 | |
CY2019Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.30 | |
CY2020Q3 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
0.705 | |
CY2019Q3 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
0.620 | |
CY2020Q3 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
45815718 | |
CY2019Q3 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
45438656 | |
CY2020Q3 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
45815718 | |
CY2019Q3 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
46019691 | |
us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
424205000 | ||
us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
405866000 | ||
us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
164326000 | ||
us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
163811000 | ||
us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
119232000 | ||
us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
110396000 | ||
us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
61022000 | ||
us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
60246000 | ||
us-gaap |
Costs And Expenses
CostsAndExpenses
|
344580000 | ||
us-gaap |
Costs And Expenses
CostsAndExpenses
|
334453000 | ||
ccoi |
Loss On Amendment Of Finance Leases
LossOnAmendmentOfFinanceLeases
|
423000 | ||
us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
343000 | ||
us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
808000 | ||
us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
79545000 | ||
us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
72221000 | ||
us-gaap |
Interest Expense
InterestExpense
|
46481000 | ||
us-gaap |
Interest Expense
InterestExpense
|
42243000 | ||
us-gaap |
Foreign Currency Transaction Gain Loss Realized
ForeignCurrencyTransactionGainLossRealized
|
2547000 | ||
ccoi |
Foreign Currency Transaction Gain Loss Unrealized On2024 Euro Notes
ForeignCurrencyTransactionGainLossUnrealizedOn2024EuroNotes
|
-17827000 | ||
ccoi |
Foreign Currency Transaction Gain Loss Unrealized On2024 Euro Notes
ForeignCurrencyTransactionGainLossUnrealizedOn2024EuroNotes
|
6339000 | ||
us-gaap |
Interest And Other Income
InterestAndOtherIncome
|
430000 | ||
us-gaap |
Interest And Other Income
InterestAndOtherIncome
|
5588000 | ||
us-gaap |
Gains Losses On Extinguishment Of Debt
GainsLossesOnExtinguishmentOfDebt
|
-638000 | ||
us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
17576000 | ||
us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
41905000 | ||
us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4740000 | ||
us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
11851000 | ||
us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
12836000 | ||
us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
30054000 | ||
us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
12836000 | ||
us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
30054000 | ||
us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
4828000 | ||
us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
-4748000 | ||
us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
17664000 | ||
us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
25306000 | ||
us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.28 | ||
us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.66 | ||
us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.28 | ||
us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.65 | ||
us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
2.045 | ||
us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
1.800 | ||
us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
45818677 | ||
us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
45428305 | ||
us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
46598870 | ||
us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
45948331 | ||
us-gaap |
Profit Loss
ProfitLoss
|
12836000 | ||
us-gaap |
Profit Loss
ProfitLoss
|
30054000 | ||
us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
61022000 | ||
us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
60246000 | ||
us-gaap |
Amortization Of Debt Discount Premium
AmortizationOfDebtDiscountPremium
|
1426000 | ||
us-gaap |
Amortization Of Debt Discount Premium
AmortizationOfDebtDiscountPremium
|
1328000 | ||
us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
17679000 | ||
us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
13520000 | ||
us-gaap |
Gains Losses On Extinguishment Of Debt
GainsLossesOnExtinguishmentOfDebt
|
-638000 | ||
us-gaap |
Foreign Currency Transaction Gain Loss Unrealized
ForeignCurrencyTransactionGainLossUnrealized
|
-17281000 | ||
us-gaap |
Foreign Currency Transaction Gain Loss Unrealized
ForeignCurrencyTransactionGainLossUnrealized
|
6305000 | ||
us-gaap |
Foreign Currency Transaction Gain Loss Realized
ForeignCurrencyTransactionGainLossRealized
|
2547000 | ||
us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
-80000 | ||
us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
131000 | ||
us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
2100000 | ||
us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
9285000 | ||
us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
1102000 | ||
us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
43000 | ||
us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
3253000 | ||
us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
4862000 | ||
us-gaap |
Increase Decrease In Operating Liabilities
IncreaseDecreaseInOperatingLiabilities
|
-2783000 | ||
us-gaap |
Increase Decrease In Operating Liabilities
IncreaseDecreaseInOperatingLiabilities
|
1350000 | ||
ccoi |
Increase Decrease In Contract With Customer Refund Liability
IncreaseDecreaseInContractWithCustomerRefundLiability
|
-628000 | ||
ccoi |
Increase Decrease In Contract With Customer Refund Liability
IncreaseDecreaseInContractWithCustomerRefundLiability
|
-1730000 | ||
us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
102749000 | ||
us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
102712000 | ||
us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
94952000 | ||
us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
82871000 | ||
us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
40092000 | ||
us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
37059000 | ||
us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-40092000 | ||
us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-37059000 | ||
us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
270000 | ||
us-gaap |
Proceeds From Repayments Of Notes Payable
ProceedsFromRepaymentsOfNotesPayable
|
-189225000 | ||
us-gaap |
Proceeds From Issuance Of Unsecured Debt
ProceedsFromIssuanceOfUnsecuredDebt
|
240285000 | ||
us-gaap |
Proceeds From Issuance Of Unsecured Debt
ProceedsFromIssuanceOfUnsecuredDebt
|
152128000 | ||
us-gaap |
Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
|
7855000 | ||
us-gaap |
Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
|
7348000 | ||
us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
19392000 | ||
us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
7035000 | ||
us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
1175000 | ||
us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
1270000 | ||
us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-70234000 | ||
us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
56144000 | ||
us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents Continuing Operations
EffectOfExchangeRateOnCashAndCashEquivalentsContinuingOperations
|
1448000 | ||
us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents Continuing Operations
EffectOfExchangeRateOnCashAndCashEquivalentsContinuingOperations
|
-1619000 | ||
us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
-6129000 | ||
us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
120178000 | ||
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
399422000 | |
CY2018Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
276093000 | |
CY2020Q3 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
393293000 | |
CY2019Q3 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
396271000 | |
us-gaap |
Contribution Of Property
ContributionOfProperty
|
310000 | ||
us-gaap |
Contribution Of Property
ContributionOfProperty
|
771000 | ||
us-gaap |
Fair Value Of Assets Acquired
FairValueOfAssetsAcquired
|
5771000 | ||
us-gaap |
Fair Value Of Assets Acquired
FairValueOfAssetsAcquired
|
8945000 | ||
us-gaap |
Capital Lease Obligations Incurred
CapitalLeaseObligationsIncurred
|
61504000 | ||
us-gaap |
Capital Lease Obligations Incurred
CapitalLeaseObligationsIncurred
|
11342000 | ||
ccoi |
Fair Value Of Equipment Acquired In Leases
FairValueOfEquipmentAcquiredInLeases
|
536000 | ||
ccoi |
Fair Value Of Equipment Acquired In Leases
FairValueOfEquipmentAcquiredInLeases
|
1207000 | ||
CY2020Q3 | us-gaap |
Number Of Countries In Which Entity Operates
NumberOfCountriesInWhichEntityOperates
|
47 | |
ccoi |
Access Customers Network
AccessCustomersNetwork
|
7200 | ||
us-gaap |
Use Of Estimates
UseOfEstimates
|
<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Use of estimates</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The preparation of consolidated financial statements in conformity with United States generally accepted accounting principles requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosures of contingent assets and liabilities at the date of the consolidated financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results may differ from these estimates.</p> | ||
CY2020Q3 | us-gaap |
Stockholders Equity
StockholdersEquity
|
-260691000 | |
CY2020Q3 | us-gaap |
Excise And Sales Taxes
ExciseAndSalesTaxes
|
3900000 | |
CY2019Q3 | us-gaap |
Excise And Sales Taxes
ExciseAndSalesTaxes
|
4000000.0 | |
us-gaap |
Excise And Sales Taxes
ExciseAndSalesTaxes
|
10900000 | ||
us-gaap |
Excise And Sales Taxes
ExciseAndSalesTaxes
|
10600000 | ||
CY2020Q3 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
45815718 | |
CY2019Q3 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
45438656 | |
us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
45818677 | ||
us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
45428305 | ||
CY2020Q3 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
45815718 | |
CY2019Q3 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
46019691 | |
us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
46598870 | ||
us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
45948331 | ||
CY2020Q2 | us-gaap |
Stockholders Equity
StockholdersEquity
|
-235550000 | |
CY2020Q3 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
7147000 | |
CY2020Q3 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
5408000 | |
CY2020Q3 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
185000 | |
CY2020Q3 | us-gaap |
Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
|
269000 | |
CY2020Q3 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
32657000 | |
CY2020Q3 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
-4955000 | |
CY2019Q2 | us-gaap |
Stockholders Equity
StockholdersEquity
|
-176590000 | |
CY2019Q3 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
5311000 | |
CY2019Q3 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
-4709000 | |
CY2019Q3 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
351000 | |
CY2019Q3 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
28565000 | |
CY2019Q3 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
13701000 | |
CY2019Q3 | us-gaap |
Stockholders Equity
StockholdersEquity
|
-190501000 | |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
-203679000 | |
us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
19371000 | ||
us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
4828000 | ||
us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
1174000 | ||
us-gaap |
Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
|
269000 | ||
us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
94952000 | ||
us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
12836000 | ||
CY2020Q3 | us-gaap |
Stockholders Equity
StockholdersEquity
|
-260691000 | |
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
-149002000 | |
us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
14796000 | ||
us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
-4748000 | ||
us-gaap |
Stock Issued During Period Value New Issues
StockIssuedDuringPeriodValueNewIssues
|
1000 | ||
us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
1269000 | ||
us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
82871000 | ||
us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
30054000 | ||
CY2019Q3 | us-gaap |
Stockholders Equity
StockholdersEquity
|
-190501000 | |
CY2020Q3 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
1600000 | |
CY2019Q3 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
1700000 | |
us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
3900000 | ||
us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
5100000 | ||
CY2020Q3 | us-gaap |
Capitalized Contract Cost Amortization
CapitalizedContractCostAmortization
|
4200000 | |
CY2019Q3 | us-gaap |
Capitalized Contract Cost Amortization
CapitalizedContractCostAmortization
|
4300000 | |
us-gaap |
Capitalized Contract Cost Amortization
CapitalizedContractCostAmortization
|
12600000 | ||
us-gaap |
Capitalized Contract Cost Amortization
CapitalizedContractCostAmortization
|
13000000.0 | ||
CY2019Q1 | ccoi |
Operating Lease Right Of Use Asset And Leases Liability
OperatingLeaseRightOfUseAssetAndLeasesLiability
|
97300000 | |
CY2020Q3 | us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
6382000 | |
CY2019Q3 | us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
4963000 | |
CY2020Q3 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
4804000 | |
CY2019Q3 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
4414000 | |
CY2020Q3 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
4269000 | |
CY2019Q3 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
3716000 | |
CY2020Q3 | us-gaap |
Lease Cost
LeaseCost
|
15455000 | |
CY2019Q3 | us-gaap |
Lease Cost
LeaseCost
|
13093000 | |
us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
16117000 | ||
us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
14851000 | ||
us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
13794000 | ||
us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
13230000 | ||
us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
12860000 | ||
us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
10497000 | ||
us-gaap |
Finance Lease Interest Payment On Liability
FinanceLeaseInterestPaymentOnLiability
|
13785000 | ||
CY2020Q3 | us-gaap |
Lessee Operating Lease Liability Payments Due In Rolling Year Two
LesseeOperatingLeaseLiabilityPaymentsDueInRollingYearTwo
|
16535000 | |
CY2020Q3 | us-gaap |
Lessee Operating Lease Liability Payments Due In Rolling Year Three
LesseeOperatingLeaseLiabilityPaymentsDueInRollingYearThree
|
15674000 | |
CY2020Q3 | us-gaap |
Lessee Operating Lease Liability Payments Due In Rolling Year Four
LesseeOperatingLeaseLiabilityPaymentsDueInRollingYearFour
|
14198000 | |
CY2020Q3 | us-gaap |
Lessee Operating Lease Liability Payments Due In Rolling Year Five
LesseeOperatingLeaseLiabilityPaymentsDueInRollingYearFive
|
12124000 | |
CY2020Q3 | us-gaap |
Lessee Operating Lease Liability Payments Due After Rolling Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterRollingYearFive
|
103809000 | |
us-gaap |
Lease Cost
LeaseCost
|
42771000 | ||
us-gaap |
Lease Cost
LeaseCost
|
38578000 | ||
us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
14150000 | ||
us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
12957000 | ||
us-gaap |
Finance Lease Interest Payment On Liability
FinanceLeaseInterestPaymentOnLiability
|
8443000 | ||
us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
19392000 | ||
us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
7035000 | ||
us-gaap |
Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
|
61504000 | ||
us-gaap |
Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
|
11342000 | ||
us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
24866000 | ||
us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
6912000 | ||
CY2020Q3 | us-gaap |
Finance Lease Weighted Average Remaining Lease Term1
FinanceLeaseWeightedAverageRemainingLeaseTerm1
|
P12Y3M18D | |
CY2019Q3 | us-gaap |
Finance Lease Weighted Average Remaining Lease Term1
FinanceLeaseWeightedAverageRemainingLeaseTerm1
|
P14Y6M | |
CY2020Q3 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P20Y4M24D | |
CY2019Q3 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P21Y8M12D | |
CY2020Q3 | us-gaap |
Finance Lease Weighted Average Discount Rate Percent
FinanceLeaseWeightedAverageDiscountRatePercent
|
0.105 | |
CY2019Q3 | us-gaap |
Finance Lease Weighted Average Discount Rate Percent
FinanceLeaseWeightedAverageDiscountRatePercent
|
0.105 | |
CY2020Q3 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.054 | |
CY2019Q3 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.057 | |
CY2020Q3 | ccoi |
Finance Lease Liability Payments Due Additional
FinanceLeaseLiabilityPaymentsDueAdditional
|
20700000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Payments Due In Next Rolling Twelve Months
FinanceLeaseLiabilityPaymentsDueInNextRollingTwelveMonths
|
33471000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Payments Due In Rolling Year Two
FinanceLeaseLiabilityPaymentsDueInRollingYearTwo
|
32638000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Payments Due In Rolling Year Three
FinanceLeaseLiabilityPaymentsDueInRollingYearThree
|
31650000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Payments Due In Rolling Year Four
FinanceLeaseLiabilityPaymentsDueInRollingYearFour
|
31753000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Payments Due In Rolling Year Five
FinanceLeaseLiabilityPaymentsDueInRollingYearFive
|
28495000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Payments Due In Rolling After Year Five
FinanceLeaseLiabilityPaymentsDueInRollingAfterYearFive
|
225320000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Payments Due
FinanceLeaseLiabilityPaymentsDue
|
383327000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Undiscounted Excess Amount
FinanceLeaseLiabilityUndiscountedExcessAmount
|
170387000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability
FinanceLeaseLiability
|
212940000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
|
15252000 | |
CY2020Q3 | us-gaap |
Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
|
197688000 | |
CY2020Q3 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Rolling Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextRollingTwelveMonths
|
17579000 | |
CY2020Q3 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
179919000 | |
CY2020Q3 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
66466000 | |
CY2020Q3 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
113453000 | |
CY2020Q3 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
12006000 | |
CY2020Q3 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
101447000 | |
us-gaap |
Description Of New Accounting Pronouncements Not Yet Adopted
DescriptionOfNewAccountingPronouncementsNotYetAdopted
|
<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Adopted accounting pronouncements</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;visibility:hidden;"></span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Effective January 1, 2020, the Company adopted Accounting Standards Update ("ASU") No. 2016-13, <i style="font-style:italic;">Financial Instruments - Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments</i> ("ASU 2016-13") later codified as Accounting Standards Codification ("ASC") 326 ("ASC 326"), using the modified retrospective transition approach. This guidance introduces a revised approach to the recognition and measurement of credit losses, emphasizing an updated model based on expected losses rather than incurred losses. As of January 1, 2020, the Company maintained an allowance for credit losses to cover its current expected credit losses ("CECL") on its trade receivables arising from the failure of customers to make contractual payments. The Company estimates credit losses expected over the life of its trade receivables based on historical information combined with current conditions that may affect a customer's ability to pay and reasonable and supportable forecasts. While the Company uses various credit quality metrics, it primarily monitors collectability by reviewing the duration of collection pursuits on its delinquent trade receivables. Based on the Company's experience, the customer's delinquency status is the strongest indicator of the credit quality of the underlying trade receivables, which is analyzed monthly. Adoption of ASU 2016-13 did not have a material impact on the Company's consolidated financial statements and related disclosures and no cumulative adjustment was recorded.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;"></span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Current-period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;"></span></p></td></tr><tr><td style="vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Provision for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Write offs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Expected Credit</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Charged Against</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:47.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Description</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Losses</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Allowance</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Allowance for credit losses (deducted from accounts receivable)</i></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;"></span></p></td></tr><tr><td style="vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Three months ending September 30, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,115</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,174</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,085)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,204</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;"></span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;"></span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Current-period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;visibility:hidden;"></span></p></td></tr><tr><td style="vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Provision for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Write offs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Expected Credit</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Charged Against</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;"></span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:47.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Description</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2019</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Losses</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Allowance</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;"> </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="background-color:#cceeff;vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><i style="font-style:italic;">Allowance for credit losses (deducted from accounts receivable)</i></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="background-color:#cceeff;vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;"></span></p></td></tr><tr><td style="vertical-align:bottom;width:47.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Nine months ending September 30, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,771</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,942</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (3,509)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,204</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;"></span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Net bad debt expense for the three months ended September 30, 2020 was $0.8 million which is net of bad debt recoveries of $0.4 million. Net bad debt expense for the nine months ended September 30, 2020 was $3.2 million which is net of bad debt recoveries of $0.8 million.</p> | ||
CY2020Q2 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
2115000 | |
CY2020Q3 | us-gaap |
Allowance For Doubtful Accounts Receivable Period Increase Decrease
AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease
|
1174000 | |
CY2020Q3 | us-gaap |
Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
|
1085000 | |
CY2020Q3 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
2204000 | |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
1771000 | |
us-gaap |
Allowance For Doubtful Accounts Receivable Period Increase Decrease
AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease
|
3942000 | ||
us-gaap |
Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
|
3509000 | ||
CY2020Q3 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
2204000 | |
CY2020Q3 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
800000 | |
CY2020Q3 | us-gaap |
Allowance For Doubtful Accounts Receivable Recoveries
AllowanceForDoubtfulAccountsReceivableRecoveries
|
400000 | |
us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
3200000 | ||
us-gaap |
Allowance For Doubtful Accounts Receivable Recoveries
AllowanceForDoubtfulAccountsReceivableRecoveries
|
800000 | ||
CY2020Q3 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
21600000 | |
CY2019Q3 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
20000000.0 | |
us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
61000000.0 | ||
us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
60200000 | ||
CY2020Q3 | ccoi |
Property Plant And Equipment Compensation Costs Capitalized
PropertyPlantAndEquipmentCompensationCostsCapitalized
|
3000000.0 | |
CY2019Q3 | ccoi |
Property Plant And Equipment Compensation Costs Capitalized
PropertyPlantAndEquipmentCompensationCostsCapitalized
|
2700000 | |
ccoi |
Property Plant And Equipment Compensation Costs Capitalized
PropertyPlantAndEquipmentCompensationCostsCapitalized
|
8900000 | ||
ccoi |
Property Plant And Equipment Compensation Costs Capitalized
PropertyPlantAndEquipmentCompensationCostsCapitalized
|
8000000.0 | ||
CY2020Q3 | ccoi |
Gain Loss On Asset Exchange Transactions
GainLossOnAssetExchangeTransactions
|
100000 | |
CY2019Q3 | ccoi |
Gain Loss On Asset Exchange Transactions
GainLossOnAssetExchangeTransactions
|
100000 | |
ccoi |
Gain Loss On Asset Exchange Transactions
GainLossOnAssetExchangeTransactions
|
300000 | ||
ccoi |
Gain Loss On Asset Exchange Transactions
GainLossOnAssetExchangeTransactions
|
800000 | ||
ccoi |
Debt Instrument Covenant Permitted Investments And Payments
DebtInstrumentCovenantPermittedInvestmentsAndPayments
|
132600000 | ||
CY2020Q3 | us-gaap |
Loss Contingency Range Of Possible Loss Portion Not Accrued
LossContingencyRangeOfPossibleLossPortionNotAccrued
|
3300000 | |
CY2020Q3 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
-4084000 | |
CY2019Q3 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
24452000 | |
us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
27818000 | ||
us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
59537000 | ||
CY2020Q3 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
-2471000 | |
CY2019Q3 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
-5497000 | |
us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
-10242000 | ||
us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
-17632000 | ||
CY2020Q3 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
-6555000 | |
CY2019Q3 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
18955000 | |
us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
17576000 | ||
us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
41905000 | ||
CY2019Q4 | us-gaap |
Noncurrent Assets
NoncurrentAssets
|
368946000 | |
CY2020Q3 | us-gaap |
Stock Repurchase Program Remaining Authorized Repurchase Amount1
StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1
|
34600000 | |
us-gaap |
Stock Repurchased During Period Shares
StockRepurchasedDuringPeriodShares
|
4567 | ||
CY2020Q3 | us-gaap |
Stock Repurchased During Period Shares
StockRepurchasedDuringPeriodShares
|
4567 | |
us-gaap |
Stock Repurchased During Period Value
StockRepurchasedDuringPeriodValue
|
300000 | ||
CY2020Q3 | us-gaap |
Stock Repurchased During Period Value
StockRepurchasedDuringPeriodValue
|
300000 | |
us-gaap |
Stock Repurchased During Period Shares
StockRepurchasedDuringPeriodShares
|
0 | ||
CY2019Q3 | us-gaap |
Stock Repurchased During Period Shares
StockRepurchasedDuringPeriodShares
|
0 | |
CY2020Q4 | us-gaap |
Stock Repurchased During Period Shares
StockRepurchasedDuringPeriodShares
|
53516 | |
CY2020Q4 | us-gaap |
Stock Repurchased During Period Value
StockRepurchasedDuringPeriodValue
|
3100000 | |
CY2020Q4 | us-gaap |
Common Stock Dividends Per Share Cash Paid
CommonStockDividendsPerShareCashPaid
|
0.73 | |
CY2020Q4 | us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
33500000 | |
us-gaap |
Number Of Operating Segments
NumberOfOperatingSegments
|
1 | ||
CY2020Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
142302000 | |
CY2019Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
136942000 | |
us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
424205000 | ||
us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
405866000 | ||
CY2020Q3 | us-gaap |
Noncurrent Assets
NoncurrentAssets
|
421267000 |