2019 Q4 Form 10-K Financial Statement
#000143774920004330 Filed on March 04, 2020
Income Statement
Concept | 2019 Q4 | 2018 Q4 | 2018 Q3 |
---|---|---|---|
Revenue | $85.95M | $85.61M | $83.52M |
YoY Change | 0.39% | 94372.58% | -1.75% |
Cost Of Revenue | $59.90M | $57.88M | $59.26M |
YoY Change | 3.49% | -10.33% | -8.15% |
Gross Profit | $26.05M | $27.73M | $24.26M |
YoY Change | -6.08% | 7.75% | 18.38% |
Gross Profit Margin | 30.3% | 32.39% | 29.05% |
Selling, General & Admin | $11.97M | $13.24M | $12.53M |
YoY Change | -9.59% | 18.43% | 16.41% |
% of Gross Profit | 45.96% | 47.74% | 51.65% |
Research & Development | $1.570M | $2.090M | $2.207M |
YoY Change | -24.88% | 12.37% | 15.55% |
% of Gross Profit | 6.03% | 7.54% | 9.1% |
Depreciation & Amortization | $5.380M | $4.000M | $1.445M |
YoY Change | 34.5% | 15.94% | 47.75% |
% of Gross Profit | 20.66% | 14.42% | 5.96% |
Operating Expenses | $16.19M | $17.24M | $16.62M |
YoY Change | -6.09% | 15.24% | 14.4% |
Operating Profit | $9.855M | $10.49M | $7.646M |
YoY Change | -6.06% | -2.64% | 28.07% |
Interest Expense | -$1.110M | -$1.160M | -$880.0K |
YoY Change | -4.31% | 31.82% | 8.64% |
% of Operating Profit | -11.26% | -11.06% | -11.51% |
Other Income/Expense, Net | $0.00 | $340.0K | -$930.0K |
YoY Change | -100.0% | 580.0% | 31.54% |
Pretax Income | $8.740M | $9.680M | $6.716M |
YoY Change | -9.71% | -4.82% | 27.61% |
Income Tax | -$2.830M | $2.430M | $1.370M |
% Of Pretax Income | -32.38% | 25.1% | 20.4% |
Net Earnings | $5.778M | $4.436M | $5.346M |
YoY Change | 30.25% | -60.39% | 55.45% |
Net Earnings / Revenue | 6.72% | 5.18% | 6.4% |
Basic Earnings Per Share | $0.55 | $0.42 | $0.50 |
Diluted Earnings Per Share | $0.54 | $0.41 | $0.50 |
COMMON SHARES | |||
Basic Shares Outstanding | 10.57M | 10.61M | |
Diluted Shares Outstanding | 10.79M |
Balance Sheet
Concept | 2019 Q4 | 2018 Q4 | 2018 Q3 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $20.40M | $12.60M | $10.80M |
YoY Change | 61.9% | -30.0% | -13.6% |
Cash & Equivalents | $20.39M | $12.64M | $10.78M |
Short-Term Investments | |||
Other Short-Term Assets | $105.4M | $106.1M | |
YoY Change | -13.03% | ||
Inventory | $3.457M | $3.775M | $3.140M |
Prepaid Expenses | $91.25M | $87.78M | $91.59M |
Receivables | $14.56M | $10.84M | $11.53M |
Other Receivables | $1.800M | $1.500M | $3.100M |
Total Short-Term Assets | $145.7M | $131.9M | $134.7M |
YoY Change | 10.42% | -14.26% | -11.35% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $82.12M | $48.07M | $40.22M |
YoY Change | 70.85% | 95.23% | 80.9% |
Goodwill | $109.8M | $90.05M | $90.05M |
YoY Change | 21.95% | 0.0% | 2.94% |
Intangibles | $57.65M | $49.40M | $51.51M |
YoY Change | 16.72% | -15.44% | -14.96% |
Long-Term Investments | |||
YoY Change | |||
Other Assets | $17.90M | $18.70M | $21.00M |
YoY Change | -4.28% | -21.1% | -11.76% |
Total Long-Term Assets | $280.2M | $207.6M | $202.8M |
YoY Change | 34.96% | 5.52% | 4.5% |
TOTAL ASSETS | |||
Total Short-Term Assets | $145.7M | $131.9M | $134.7M |
Total Long-Term Assets | $280.2M | $207.6M | $202.8M |
Total Assets | $425.9M | $339.6M | $337.5M |
YoY Change | 25.43% | -3.16% | -2.46% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $6.671M | $8.445M | $8.242M |
YoY Change | -21.01% | 20.2% | 38.6% |
Accrued Expenses | $9.373M | $5.899M | $6.877M |
YoY Change | 58.89% | -8.0% | -20.79% |
Deferred Revenue | $123.1M | $116.7M | $120.5M |
YoY Change | 5.45% | -9.62% | |
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | $0.00 | $18.40M | $17.80M |
YoY Change | -100.0% | 0.55% | -2.73% |
Total Short-Term Liabilities | $156.9M | $165.3M | $167.5M |
YoY Change | -5.1% | -7.4% | -8.29% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $113.5M | $46.20M | $46.60M |
YoY Change | 145.67% | -21.16% | -26.15% |
Other Long-Term Liabilities | $0.00 | $258.0K | |
YoY Change | -53.78% | ||
Total Long-Term Liabilities | $0.00 | $0.00 | $258.0K |
YoY Change | -100.0% | -53.78% | |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $156.9M | $165.3M | $167.5M |
Total Long-Term Liabilities | $0.00 | $0.00 | $258.0K |
Total Liabilities | $156.9M | $165.3M | $167.8M |
YoY Change | -5.1% | -7.62% | -8.43% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $76.21M | $60.81M | $56.37M |
YoY Change | 25.32% | 42.49% | 79.02% |
Common Stock | $17.51M | $19.78M | $19.10M |
YoY Change | -11.44% | 12.78% | 13.09% |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | |||
YoY Change | |||
Treasury Stock Shares | |||
Shareholders Equity | $94.19M | $79.78M | $75.43M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $425.9M | $339.6M | $337.5M |
YoY Change | 25.43% | -3.16% | -2.46% |
Cashflow Statement
Concept | 2019 Q4 | 2018 Q4 | 2018 Q3 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $5.778M | $4.436M | $5.346M |
YoY Change | 30.25% | -60.39% | 55.45% |
Depreciation, Depletion And Amortization | $5.380M | $4.000M | $1.445M |
YoY Change | 34.5% | 15.94% | 47.75% |
Cash From Operating Activities | $13.19M | $10.67M | $11.21M |
YoY Change | 23.62% | -24.22% | 54.0% |
INVESTING ACTIVITIES | |||
Capital Expenditures | -$12.91M | -$8.480M | $7.003M |
YoY Change | 52.24% | 144.38% | 144.95% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | -$430.0K | -$460.0K | -$110.0K |
YoY Change | -6.52% | -17.86% | -95.38% |
Cash From Investing Activities | -$13.34M | -$8.930M | -$7.116M |
YoY Change | 49.38% | 121.59% | 35.72% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | $0.00 | ||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | 8.550M | 120.0K | -4.484M |
YoY Change | 7025.0% | -102.64% | -3.32% |
NET CHANGE | |||
Cash From Operating Activities | 13.19M | 10.67M | 11.21M |
Cash From Investing Activities | -13.34M | -8.930M | -7.116M |
Cash From Financing Activities | 8.550M | 120.0K | -4.484M |
Net Change In Cash | 8.400M | 1.860M | -386.0K |
YoY Change | 351.61% | -66.18% | -85.15% |
FREE CASH FLOW | |||
Cash From Operating Activities | $13.19M | $10.67M | $11.21M |
Capital Expenditures | -$12.91M | -$8.480M | $7.003M |
Free Cash Flow | $26.10M | $19.15M | $4.211M |
YoY Change | 36.29% | 9.12% | -4.79% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2019 | dei |
Entity Registrant Name
EntityRegistrantName
|
TUCOWS INC /PA/ | |
CY2019 | dei |
Amendment Flag
AmendmentFlag
|
false | |
CY2019 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | |
CY2019 | dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
FY | |
CY2019 | dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2019 | |
CY2019 | dei |
Document Period End Date
DocumentPeriodEndDate
|
2019-12-31 | |
CY2019 | dei |
Document Type
DocumentType
|
10-K | |
CY2019 | dei |
Entity Central Index Key
EntityCentralIndexKey
|
0000909494 | |
CY2020Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
10621338 | |
CY2019 | dei |
Entity Current Reporting Status
EntityCurrentReportingStatus
|
Yes | |
CY2019 | dei |
Entity Emerging Growth Company
EntityEmergingGrowthCompany
|
false | |
CY2019 | dei |
Entity Filer Category
EntityFilerCategory
|
Accelerated Filer | |
CY2019 | dei |
Entity Interactive Data Current
EntityInteractiveDataCurrent
|
Yes | |
CY2019Q2 | dei |
Entity Public Float
EntityPublicFloat
|
577200000 | |
CY2019 | dei |
Entity Shell Company
EntityShellCompany
|
false | |
CY2019 | dei |
Entity Small Business
EntitySmallBusiness
|
false | |
CY2019 | dei |
Entity Voluntary Filers
EntityVoluntaryFilers
|
No | |
CY2019 | dei |
Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
|
No | |
CY2019 | dei |
Security12b Title
Security12bTitle
|
Common stock, no par value | |
CY2019 | dei |
Trading Symbol
TradingSymbol
|
tcx | |
CY2019Q4 | tcx |
Accreditation Fees Payable Current
AccreditationFeesPayableCurrent
|
952000 | |
CY2018Q4 | tcx |
Accreditation Fees Payable Current
AccreditationFeesPayableCurrent
|
985000 | |
CY2018Q4 | tcx |
Accumulated Other Comprehensive Income Tax
AccumulatedOtherComprehensiveIncomeTax
|
259000 | |
CY2019Q4 | tcx |
Accumulated Other Comprehensive Income Tax
AccumulatedOtherComprehensiveIncomeTax
|
-152000 | |
CY2017Q4 | tcx |
Accumulated Other Comprehensive Income Tax
AccumulatedOtherComprehensiveIncomeTax
|
||
CY2016Q4 | tcx |
Accumulated Other Comprehensive Income Tax
AccumulatedOtherComprehensiveIncomeTax
|
-56000 | |
CY2018 | tcx |
Acquisition Of Intangible Assets Transferred From Other Assets
AcquisitionOfIntangibleAssetsTransferredFromOtherAssets
|
||
CY2017 | tcx |
Acquisition Of Intangible Assets Transferred From Other Assets
AcquisitionOfIntangibleAssetsTransferredFromOtherAssets
|
111000 | |
CY2019 | tcx |
Acquisition Of Intangible Assets Transferred From Other Assets
AcquisitionOfIntangibleAssetsTransferredFromOtherAssets
|
||
CY2019 | tcx |
Income Tax Expense Benefit Continuing Operations Valuation Allowance On Foreign Tax Credits And Net Operating Losses
IncomeTaxExpenseBenefitContinuingOperationsValuationAllowanceOnForeignTaxCreditsAndNetOperatingLosses
|
5300000 | |
CY2018 | tcx |
Income Tax Expense Benefit Continuing Operations Valuation Allowance On Foreign Tax Credits And Net Operating Losses
IncomeTaxExpenseBenefitContinuingOperationsValuationAllowanceOnForeignTaxCreditsAndNetOperatingLosses
|
2800000 | |
CY2019 | tcx |
Increase Decrease In Accreditation Fees Payable
IncreaseDecreaseInAccreditationFeesPayable
|
-67000 | |
CY2018 | tcx |
Increase Decrease In Accreditation Fees Payable
IncreaseDecreaseInAccreditationFeesPayable
|
-229000 | |
CY2017 | tcx |
Increase Decrease In Accreditation Fees Payable
IncreaseDecreaseInAccreditationFeesPayable
|
-238000 | |
CY2019 | tcx |
Increase Decrease In Customer Deposit Liability
IncreaseDecreaseInCustomerDepositLiability
|
27000 | |
CY2017 | tcx |
Disposal Of Domain Names
DisposalOfDomainNames
|
291000 | |
CY2017 | tcx |
Effective Income Tax Rate Reconciliation Change In Valuation Allowance On Pre2017 Foreign Tax Credits Amount
EffectiveIncomeTaxRateReconciliationChangeInValuationAllowanceOnPre2017ForeignTaxCreditsAmount
|
1276000 | |
CY2019 | tcx |
Effective Income Tax Rate Reconciliation Change In Valuation Allowance On Pre2017 Foreign Tax Credits Amount
EffectiveIncomeTaxRateReconciliationChangeInValuationAllowanceOnPre2017ForeignTaxCreditsAmount
|
5277000 | |
CY2018 | tcx |
Effective Income Tax Rate Reconciliation Change In Valuation Allowance On Pre2017 Foreign Tax Credits Amount
EffectiveIncomeTaxRateReconciliationChangeInValuationAllowanceOnPre2017ForeignTaxCreditsAmount
|
2811000 | |
CY2018 | tcx |
Increase Decrease In Customer Deposit Liability
IncreaseDecreaseInCustomerDepositLiability
|
-3336000 | |
CY2017 | tcx |
Increase Decrease In Customer Deposit Liability
IncreaseDecreaseInCustomerDepositLiability
|
1085000 | |
CY2019 | tcx |
Increase Decrease In Operating Lease Rightofuse Asset
IncreaseDecreaseInOperatingLeaseRightofuseAsset
|
5392000 | |
CY2019 | tcx |
Allowance For Doubtful Accounts Charged To Recovered Costs And Expenses
AllowanceForDoubtfulAccountsChargedToRecoveredCostsAndExpenses
|
-1000 | |
CY2018 | tcx |
Allowance For Doubtful Accounts Charged To Recovered Costs And Expenses
AllowanceForDoubtfulAccountsChargedToRecoveredCostsAndExpenses
|
-36000 | |
CY2019 | tcx |
Amortization Of Contract Costs
AmortizationOfContractCosts
|
-10000 | |
CY2018 | tcx |
Amortization Of Contract Costs
AmortizationOfContractCosts
|
14000 | |
CY2017 | tcx |
Amortization Of Contract Costs
AmortizationOfContractCosts
|
||
CY2019 | tcx |
Amortization Of Intangible Assets Net Of Cost Of Services Amortization
AmortizationOfIntangibleAssetsNetOfCostOfServicesAmortization
|
9209000 | |
CY2018 | tcx |
Amortization Of Intangible Assets Net Of Cost Of Services Amortization
AmortizationOfIntangibleAssetsNetOfCostOfServicesAmortization
|
7247000 | |
CY2017 | tcx |
Amortization Of Intangible Assets Net Of Cost Of Services Amortization
AmortizationOfIntangibleAssetsNetOfCostOfServicesAmortization
|
6566000 | |
CY2019 | tcx |
Contract With Customer Liability Additions
ContractWithCustomerLiabilityAdditions
|
232647000 | |
CY2019 | tcx |
Contractual Obligation Term
ContractualObligationTerm
|
P10Y | |
CY2019 | tcx |
Cost Of Goods And Services Sold Network Expenses
CostOfGoodsAndServicesSoldNetworkExpenses
|
9190000 | |
CY2018 | tcx |
Cost Of Goods And Services Sold Network Expenses
CostOfGoodsAndServicesSoldNetworkExpenses
|
9846000 | |
CY2017 | tcx |
Cost Of Goods And Services Sold Network Expenses
CostOfGoodsAndServicesSoldNetworkExpenses
|
9324000 | |
CY2019Q4 | tcx |
Customer Deposit Liability Current
CustomerDepositLiabilityCurrent
|
14074000 | |
CY2018Q4 | tcx |
Customer Deposit Liability Current
CustomerDepositLiabilityCurrent
|
11919000 | |
CY2019Q4 | tcx |
Deferred Tax Assets Tax Credit Carryforwards Foreign And General Business
DeferredTaxAssetsTaxCreditCarryforwardsForeignAndGeneralBusiness
|
9004000 | |
CY2018Q4 | tcx |
Deferred Tax Assets Tax Credit Carryforwards Foreign And General Business
DeferredTaxAssetsTaxCreditCarryforwardsForeignAndGeneralBusiness
|
3864000 | |
CY2019Q4 | tcx |
Deferred Tax Liabilities Foreign Branch
DeferredTaxLiabilitiesForeignBranch
|
2012000 | |
CY2018Q4 | tcx |
Deferred Tax Liabilities Foreign Branch
DeferredTaxLiabilitiesForeignBranch
|
||
CY2019 | tcx |
Disposal Of Domain Names
DisposalOfDomainNames
|
115000 | |
CY2018 | tcx |
Disposal Of Domain Names
DisposalOfDomainNames
|
341000 | |
CY2017 | tcx |
Effective Income Tax Rate Reconciliation Changes In Tax Laws Included In Tax Act Amount
EffectiveIncomeTaxRateReconciliationChangesInTaxLawsIncludedInTaxActAmount
|
-5800000 | |
CY2019 | tcx |
Effective Income Tax Rate Reconciliation Deferred Tax In Foreign Branch
EffectiveIncomeTaxRateReconciliationDeferredTaxInForeignBranch
|
-840000 | |
CY2018 | tcx |
Effective Income Tax Rate Reconciliation Deferred Tax In Foreign Branch
EffectiveIncomeTaxRateReconciliationDeferredTaxInForeignBranch
|
||
CY2017 | tcx |
Effective Income Tax Rate Reconciliation Deferred Tax In Foreign Branch
EffectiveIncomeTaxRateReconciliationDeferredTaxInForeignBranch
|
||
CY2017 | tcx |
Effective Income Tax Rate Reconciliation Effect Of Decrease In Federal Tax Rate On Deferred Taxes Amount
EffectiveIncomeTaxRateReconciliationEffectOfDecreaseInFederalTaxRateOnDeferredTaxesAmount
|
-10036000 | |
CY2019 | tcx |
Effective Income Tax Rate Reconciliation Effect Of Decrease In Federal Tax Rate On Deferred Taxes Amount
EffectiveIncomeTaxRateReconciliationEffectOfDecreaseInFederalTaxRateOnDeferredTaxesAmount
|
||
CY2018 | tcx |
Effective Income Tax Rate Reconciliation Effect Of Decrease In Federal Tax Rate On Deferred Taxes Amount
EffectiveIncomeTaxRateReconciliationEffectOfDecreaseInFederalTaxRateOnDeferredTaxesAmount
|
||
CY2017 | tcx |
Effective Income Tax Rate Reconciliation Non Creditable2017 Foreign Tax Amount
EffectiveIncomeTaxRateReconciliationNonCreditable2017ForeignTaxAmount
|
2903000 | |
CY2019 | tcx |
Effective Income Tax Rate Reconciliation Non Creditable2017 Foreign Tax Amount
EffectiveIncomeTaxRateReconciliationNonCreditable2017ForeignTaxAmount
|
515000 | |
CY2018 | tcx |
Effective Income Tax Rate Reconciliation Non Creditable2017 Foreign Tax Amount
EffectiveIncomeTaxRateReconciliationNonCreditable2017ForeignTaxAmount
|
||
CY2019 | tcx |
Effective Income Tax Rate Reconciliation Sharebased Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationSharebasedCompensationExcessTaxBenefitAmount
|
-634000 | |
CY2018 | tcx |
Effective Income Tax Rate Reconciliation Sharebased Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationSharebasedCompensationExcessTaxBenefitAmount
|
-697000 | |
CY2017 | tcx |
Effective Income Tax Rate Reconciliation Sharebased Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationSharebasedCompensationExcessTaxBenefitAmount
|
-2796000 | |
CY2019Q4 | tcx |
Lessee Operating Lease Lease Not Yet Commenced Future Minimum Payments Due
LesseeOperatingLeaseLeaseNotYetCommencedFutureMinimumPaymentsDue
|
900000 | |
CY2019 | tcx |
Lessee Operating Lease Option To Extend Amount
LesseeOperatingLeaseOptionToExtendAmount
|
600000 | |
CY2019 | tcx |
Lessee Operating Lease Option To Terminate Term
LesseeOperatingLeaseOptionToTerminateTerm
|
P1Y | |
CY2019Q4 | tcx |
Net Operating Loss
NetOperatingLoss
|
300000 | |
CY2018Q4 | tcx |
Net Operating Loss
NetOperatingLoss
|
200000 | |
CY2019 | tcx |
Operating Lease Net
OperatingLeaseNet
|
32000 | |
CY2018 | tcx |
Operating Lease Net
OperatingLeaseNet
|
||
CY2017 | tcx |
Operating Lease Net
OperatingLeaseNet
|
||
CY2019 | tcx |
Property Plant And Equipment Fully Depreciated Writedown
PropertyPlantAndEquipmentFullyDepreciatedWritedown
|
100000 | |
CY2019 | tcx |
Shares Received In Connection With Share Based Compensation Value
SharesReceivedInConnectionWithShareBasedCompensationValue
|
1510000 | |
CY2018 | tcx |
Shares Received In Connection With Share Based Compensation Value
SharesReceivedInConnectionWithShareBasedCompensationValue
|
1138000 | |
CY2017 | tcx |
Shares Received In Connection With Share Based Compensation Value
SharesReceivedInConnectionWithShareBasedCompensationValue
|
2602000 | |
CY2019 | tcx |
Shares Received In Connection With Sharebased Compensation Price Per Share
SharesReceivedInConnectionWithSharebasedCompensationPricePerShare
|
70.77 | |
CY2018 | tcx |
Shares Received In Connection With Sharebased Compensation Price Per Share
SharesReceivedInConnectionWithSharebasedCompensationPricePerShare
|
57.56 | |
CY2017 | tcx |
Shares Received In Connection With Sharebased Compensation Price Per Share
SharesReceivedInConnectionWithSharebasedCompensationPricePerShare
|
51.58 | |
CY2019 | tcx |
Stock Repurchased And Retired During Period Average Price Per Share
StockRepurchasedAndRetiredDuringPeriodAveragePricePerShare
|
48.97 | |
CY2018 | tcx |
Stock Repurchased And Retired During Period Average Price Per Share
StockRepurchasedAndRetiredDuringPeriodAveragePricePerShare
|
||
CY2017 | tcx |
Stock Repurchased And Retired During Period Average Price Per Share
StockRepurchasedAndRetiredDuringPeriodAveragePricePerShare
|
||
CY2017Q4 | tcx |
Stockholders Equity Adjusted Balance
StockholdersEquityAdjustedBalance
|
61274000 | |
CY2019Q4 | tcx |
Subsequent Events
SubsequentEvents
|
||
CY2018Q4 | tcx |
Subsequent Events
SubsequentEvents
|
||
CY2019Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
6671000 | |
CY2018Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
8445000 | |
CY2019Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
14564000 | |
CY2018Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
10837000 | |
CY2019Q4 | us-gaap |
Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
|
1324000 | |
CY2018Q4 | us-gaap |
Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
|
1668000 | |
CY2019Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
9373000 | |
CY2018Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
5899000 | |
CY2019Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
25198000 | |
CY2018Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
16920000 | |
CY2018Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
|
-1069000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
|
625000 | |
CY2017Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
|
||
CY2016Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
|
156000 | |
CY2018Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-810000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
473000 | |
CY2017Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
||
CY2016Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
100000 | |
CY2019Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
880000 | |
CY2018Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
3953000 | |
CY2017 | us-gaap |
Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
|
1462000 | |
CY2018 | us-gaap |
Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
|
445000 | |
CY2019 | us-gaap |
Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
|
548000 | |
CY2017 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
1457000 | |
CY2018 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
2574000 | |
CY2019 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
2876000 | |
CY2019 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
2876000 | |
CY2018 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
2574000 | |
CY2017 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
1457000 | |
CY2019Q4 | us-gaap |
Assets Current
AssetsCurrent
|
145675000 | |
CY2018Q4 | us-gaap |
Assets Current
AssetsCurrent
|
131926000 | |
CY2018Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
132000 | |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
131000 | |
CY2017Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
168000 | |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
131000 | |
CY2018Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
132000 | |
CY2019 | us-gaap |
Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
|
||
CY2018 | us-gaap |
Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
|
||
CY2019 | us-gaap |
Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
|
297000 | |
CY2018 | us-gaap |
Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
|
281000 | |
CY2017 | us-gaap |
Amortization Of Financing Costs And Discounts
AmortizationOfFinancingCostsAndDiscounts
|
273000 | |
CY2019 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
10333000 | |
CY2018 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
9243000 | |
CY2017 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
8400000 | |
CY2019Q4 | us-gaap |
Assets
Assets
|
425918000 | |
CY2018Q4 | us-gaap |
Assets
Assets
|
339575000 | |
CY2019 | us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
548000 | |
CY2018 | us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
1462000 | |
CY2017 | us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
214000 | |
CY2018Q1 | us-gaap |
Capitalized Contract Cost Net
CapitalizedContractCostNet
|
1400000 | |
CY2019Q4 | us-gaap |
Capitalized Contract Cost Net Noncurrent
CapitalizedContractCostNetNoncurrent
|
1400000 | |
CY2018Q4 | us-gaap |
Capitalized Contract Cost Net Noncurrent
CapitalizedContractCostNetNoncurrent
|
1390000 | |
CY2018Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
12637000 | |
CY2017Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
18049000 | |
CY2016Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
15105000 | |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
20393000 | |
CY2019 | us-gaap |
Cash And Cash Equivalents Period Increase Decrease
CashAndCashEquivalentsPeriodIncreaseDecrease
|
7756000 | |
CY2018 | us-gaap |
Cash And Cash Equivalents Period Increase Decrease
CashAndCashEquivalentsPeriodIncreaseDecrease
|
-5412000 | |
CY2017 | us-gaap |
Cash And Cash Equivalents Period Increase Decrease
CashAndCashEquivalentsPeriodIncreaseDecrease
|
2944000 | |
CY2019Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
||
CY2018Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
||
CY2019Q4 | us-gaap |
Common Stock No Par Value
CommonStockNoParValue
|
0 | |
CY2018Q4 | us-gaap |
Common Stock No Par Value
CommonStockNoParValue
|
0 | |
CY2019Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
250000000 | |
CY2018Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
250000000 | |
CY2019Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
10585159 | |
CY2018Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
10627988 | |
CY2019Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
10585159 | |
CY2018Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
10627988 | |
CY2019Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
16633000 | |
CY2018Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
15823000 | |
CY2018 | us-gaap |
Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
|
5298000 | |
CY2017 | us-gaap |
Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
|
3142000 | |
CY2019 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
16681000 | |
CY2018 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
16325000 | |
CY2017 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
22227000 | |
CY2019 | us-gaap |
Concentration Risk Credit Risk
ConcentrationRiskCreditRisk
|
<div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;"><div style="display: inline; font-style: italic;">(r) Concentration of credit risk</div></div> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;"> </div> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;">Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash equivalents, accounts receivable and forward foreign exchange contracts. Cash equivalents consist of deposits with major commercial banks, the maturities of which are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div> months or less from the date of purchase. With respect to accounts receivable, the Company performs periodic credit evaluations of the financial condition of its customers and typically does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> require collateral from them. The counterparty to any forward foreign exchange contracts is a major commercial bank which management believes does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> represent a significant credit risk. Management assesses the need for allowances for potential credit losses by considering the credit risk of specific customers, historical trends and other information.</div></div></div></div></div></div></div></div></div></div></div></div></div> | |
CY2019Q1 | us-gaap |
Contract With Customer Liability
ContractWithCustomerLiability
|
143700000 | |
CY2018Q4 | us-gaap |
Contract With Customer Liability
ContractWithCustomerLiability
|
143694000 | |
CY2019Q4 | us-gaap |
Contract With Customer Liability
ContractWithCustomerLiability
|
149303000 | |
CY2019Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
123101000 | |
CY2018Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
116734000 | |
CY2019 | us-gaap |
Contract With Customer Liability Increase Decrease For Contract Acquired In Business Combination
ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
|
12510000 | |
CY2019Q4 | us-gaap |
Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
|
26202000 | |
CY2018Q4 | us-gaap |
Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
|
26960000 | |
CY2019 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
-239548000 | |
CY2019Q4 | us-gaap |
Contractual Obligation
ContractualObligation
|
220892000 | |
CY2019Q4 | us-gaap |
Contractual Obligation Due After Fifth Year
ContractualObligationDueAfterFifthYear
|
10834000 | |
CY2019Q4 | us-gaap |
Contractual Obligation Due In Fifth Year
ContractualObligationDueInFifthYear
|
20494000 | |
CY2019Q4 | us-gaap |
Contractual Obligation Due In Fourth Year
ContractualObligationDueInFourthYear
|
129692000 | |
CY2019Q4 | us-gaap |
Contractual Obligation Due In Next Twelve Months
ContractualObligationDueInNextTwelveMonths
|
31401000 | |
CY2019Q4 | us-gaap |
Contractual Obligation Due In Second Year
ContractualObligationDueInSecondYear
|
14462000 | |
CY2019Q4 | us-gaap |
Contractual Obligation Due In Third Year
ContractualObligationDueInThirdYear
|
14009000 | |
CY2019 | us-gaap |
Cost Of Goods And Service Excluding Depreciation Depletion And Amortization
CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
|
217579000 | |
CY2018 | us-gaap |
Cost Of Goods And Service Excluding Depreciation Depletion And Amortization
CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
|
232103000 | |
CY2017 | us-gaap |
Cost Of Goods And Service Excluding Depreciation Depletion And Amortization
CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization
|
230600000 | |
CY2019 | us-gaap |
Cost Of Goods And Services Sold Amortization
CostOfGoodsAndServicesSoldAmortization
|
1124000 | |
CY2018 | us-gaap |
Cost Of Goods And Services Sold Amortization
CostOfGoodsAndServicesSoldAmortization
|
1996000 | |
CY2017 | us-gaap |
Cost Of Goods And Services Sold Amortization
CostOfGoodsAndServicesSoldAmortization
|
1834000 | |
CY2019 | us-gaap |
Cost Of Goods And Services Sold Depreciation
CostOfGoodsAndServicesSoldDepreciation
|
8475000 | |
CY2019 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
236368000 | |
CY2018 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
249243000 | |
CY2017 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
244900000 | |
CY2017Q4 | us-gaap |
Cumulative Effect Of New Accounting Principle In Period Of Adoption
CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption
|
1063000 | |
CY2019Q4 | us-gaap |
Debt Instrument Unamortized Discount
DebtInstrumentUnamortizedDiscount
|
897000 | |
CY2018Q4 | us-gaap |
Debt Instrument Unamortized Discount
DebtInstrumentUnamortizedDiscount
|
555000 | |
CY2019 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
1285000 | |
CY2018 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
1038000 | |
CY2017 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-3337000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
34242000 | |
CY2018Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
31046000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
25471000 | |
CY2018Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
20925000 | |
CY2019Q4 | us-gaap |
Deferred Rent Credit Current
DeferredRentCreditCurrent
|
||
CY2018Q4 | us-gaap |
Deferred Rent Credit Current
DeferredRentCreditCurrent
|
21000 | |
CY2019Q4 | us-gaap |
Deferred Rent Credit Noncurrent
DeferredRentCreditNoncurrent
|
||
CY2018Q4 | us-gaap |
Deferred Rent Credit Noncurrent
DeferredRentCreditNoncurrent
|
116000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
6301000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
6497000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
18136000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
14208000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
8771000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
10121000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
1341000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
1892000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
|
1490000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
|
1955000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
9365000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
4087000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
25471000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
20925000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
3110000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
3110000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Other Finite Lived Assets
DeferredTaxLiabilitiesOtherFiniteLivedAssets
|
5958000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Other Finite Lived Assets
DeferredTaxLiabilitiesOtherFiniteLivedAssets
|
6115000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
16237000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
15950000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
6925000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
5871000 | |
CY2019 | us-gaap |
Depreciation
Depreciation
|
8961000 | |
CY2018 | us-gaap |
Depreciation
Depreciation
|
5722000 | |
CY2017 | us-gaap |
Depreciation
Depreciation
|
3727000 | |
CY2019 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
486000 | |
CY2018 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
424000 | |
CY2017 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
585000 | |
CY2019Q4 | us-gaap |
Derivative Assets Current
DerivativeAssetsCurrent
|
731000 | |
CY2018Q4 | us-gaap |
Derivative Assets Current
DerivativeAssetsCurrent
|
||
CY2019Q4 | us-gaap |
Derivative Average Forward Exchange Rate1
DerivativeAverageForwardExchangeRate1
|
1.3296 | |
CY2019Q4 | us-gaap |
Derivative Liabilities Current
DerivativeLiabilitiesCurrent
|
||
CY2018Q4 | us-gaap |
Derivative Liabilities Current
DerivativeLiabilitiesCurrent
|
1276000 | |
CY2019Q4 | us-gaap |
Derivative Notional Amount
DerivativeNotionalAmount
|
30486000 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.45 | |
CY2018 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.62 | |
CY2017 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
2.12 | |
CY2019Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.55 | |
CY2019Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.40 | |
CY2019Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.25 | |
CY2019Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.26 | |
CY2018Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.42 | |
CY2018Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.50 | |
CY2018Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.34 | |
CY2018Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.35 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.43 | |
CY2018 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.59 | |
CY2017 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
2.07 | |
CY2019Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.54 | |
CY2019Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.39 | |
CY2019Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.24 | |
CY2019Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.26 | |
CY2018Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.41 | |
CY2018Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.50 | |
CY2018Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.33 | |
CY2018Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.35 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
10455000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
45347000 | |
CY2018Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
36974000 | |
CY2018 | us-gaap |
Finitelived Intangible Assets Acquired1
FinitelivedIntangibleAssetsAcquired1
|
565000 | |
CY2019 | us-gaap |
Finitelived Intangible Assets Acquired1
FinitelivedIntangibleAssetsAcquired1
|
91000 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.35 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | |
CY2019 | us-gaap |
Excess Tax Benefit From Share Based Compensation Operating Activities
ExcessTaxBenefitFromShareBasedCompensationOperatingActivities
|
634000 | |
CY2018 | us-gaap |
Excess Tax Benefit From Share Based Compensation Operating Activities
ExcessTaxBenefitFromShareBasedCompensationOperatingActivities
|
697000 | |
CY2017 | us-gaap |
Excess Tax Benefit From Share Based Compensation Operating Activities
ExcessTaxBenefitFromShareBasedCompensationOperatingActivities
|
2796000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
|
2839000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
9416000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
2796000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
9386000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
10455000 | |
CY2019Q4 | us-gaap |
Foreign Currency Contract Asset Fair Value Disclosure
ForeignCurrencyContractAssetFairValueDisclosure
|
731000 | |
CY2019 | us-gaap |
Gain Loss On Sale Of Derivatives
GainLossOnSaleOfDerivatives
|
198000 | |
CY2018 | us-gaap |
Gain Loss On Sale Of Derivatives
GainLossOnSaleOfDerivatives
|
-254000 | |
CY2017 | us-gaap |
Gain Loss On Sale Of Derivatives
GainLossOnSaleOfDerivatives
|
98000 | |
CY2019 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
-73000 | |
CY2018 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
||
CY2017 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
||
CY2019 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
17880000 | |
CY2018 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
17710000 | |
CY2017 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
13594000 | |
CY2019Q4 | us-gaap |
Goodwill
Goodwill
|
109818000 | |
CY2018Q4 | us-gaap |
Goodwill
Goodwill
|
90054000 | |
CY2019 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
0 | |
CY2018 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
0 | |
CY2019 | us-gaap |
Gross Profit
GrossProfit
|
100777000 | |
CY2018 | us-gaap |
Gross Profit
GrossProfit
|
96770000 | |
CY2019Q3 | us-gaap |
Gross Profit
GrossProfit
|
27574000 | |
CY2017 | us-gaap |
Gross Profit
GrossProfit
|
84521000 | |
CY2019Q4 | us-gaap |
Gross Profit
GrossProfit
|
26045000 | |
CY2019Q2 | us-gaap |
Gross Profit
GrossProfit
|
24507000 | |
CY2017 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
657000 | |
CY2019 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
7941000 | |
CY2018 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
6799000 | |
CY2017 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
7815000 | |
CY2019Q1 | us-gaap |
Gross Profit
GrossProfit
|
22651000 | |
CY2018Q4 | us-gaap |
Gross Profit
GrossProfit
|
27731000 | |
CY2018Q3 | us-gaap |
Gross Profit
GrossProfit
|
24261000 | |
CY2018Q2 | us-gaap |
Gross Profit
GrossProfit
|
22158000 | |
CY2018Q1 | us-gaap |
Gross Profit
GrossProfit
|
22619000 | |
CY2019 | us-gaap |
Impairment Of Intangible Assets Indefinitelived Excluding Goodwill
ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill
|
||
CY2017 | us-gaap |
Impairment Of Intangible Assets Indefinitelived Excluding Goodwill
ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill
|
111000 | |
CY2018 | us-gaap |
Impairment Of Intangible Assets Indefinitelived Excluding Goodwill
ImpairmentOfIntangibleAssetsIndefinitelivedExcludingGoodwill
|
||
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
24571000 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
26155000 | |
CY2017 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
24075000 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
24571000 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
26155000 | |
CY2017 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
24075000 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
15398000 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
17135000 | |
CY2017 | us-gaap |
Income Loss From Continuing Operations Including Portion Attributable To Noncontrolling Interest
IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
|
22327000 | |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
9173000 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
9020000 | |
CY2017 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
1748000 | |
CY2019 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
5160000 | |
CY2018 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
5492000 | |
CY2017 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
8185000 | |
CY2019 | us-gaap |
Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
|
-103000 | |
CY2018 | us-gaap |
Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
|
159000 | |
CY2017 | us-gaap |
Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
|
1636000 | |
CY2019 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
-728000 | |
CY2018 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
409000 | |
CY2017 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
-77000 | |
CY2019 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
526000 | |
CY2018 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
846000 | |
CY2019Q4 | us-gaap |
Income Taxes Receivable
IncomeTaxesReceivable
|
1800000 | |
CY2018Q4 | us-gaap |
Income Taxes Receivable
IncomeTaxesReceivable
|
1423000 | |
CY2019 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-1222000 | |
CY2018 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
171000 | |
CY2017 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-3826000 | |
CY2019 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
3015000 | |
CY2018 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-1539000 | |
CY2017 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-1010000 | |
CY2019 | us-gaap |
Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
|
2329000 | |
CY2017 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
4933000 | |
CY2018 | us-gaap |
Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
|
-513000 | |
CY2017 | us-gaap |
Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
|
-1275000 | |
CY2019 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
-6900000 | |
CY2018 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
-16888000 | |
CY2019 | us-gaap |
Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
|
89000 | |
CY2018 | us-gaap |
Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
|
-2691000 | |
CY2017 | us-gaap |
Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
|
426000 | |
CY2019 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
-318000 | |
CY2018 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
831000 | |
CY2017 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
1733000 | |
CY2019 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-2904000 | |
CY2018 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
1286000 | |
CY2017 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
1642000 | |
CY2019 | us-gaap |
Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
|
-7678000 | |
CY2018 | us-gaap |
Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
|
-20476000 | |
CY2017 | us-gaap |
Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
|
-4030000 | |
CY2019 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
149013 | |
CY2018 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
189448 | |
CY2017 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
256266 | |
CY2017Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
58414000 | |
CY2018Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
49395000 | |
CY2019Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
57654000 | |
CY2019 | us-gaap |
Interest Income Expense Net
InterestIncomeExpenseNet
|
-4769000 | |
CY2018 | us-gaap |
Interest Income Expense Net
InterestIncomeExpenseNet
|
-3687000 | |
CY2017 | us-gaap |
Interest Income Expense Net
InterestIncomeExpenseNet
|
-3567000 | |
CY2019 | us-gaap |
Interest Paid Net
InterestPaidNet
|
4785000 | |
CY2018 | us-gaap |
Interest Paid Net
InterestPaidNet
|
3712000 | |
CY2017 | us-gaap |
Interest Paid Net
InterestPaidNet
|
3587000 | |
CY2019Q4 | us-gaap |
Inventory Net
InventoryNet
|
3457000 | |
CY2018Q4 | us-gaap |
Inventory Net
InventoryNet
|
3775000 | |
CY2019 | us-gaap |
Lease Cost
LeaseCost
|
4754000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
13606000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
|
5162000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
1910000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
1380000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
1667000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
1704000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
1783000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
2769000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Renewal Term
LesseeOperatingLeaseRenewalTerm
|
P5Y | |
CY2019Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
425918000 | |
CY2018Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
339575000 | |
CY2019Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
156908000 | |
CY2018Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
165347000 | |
CY2019Q4 | us-gaap |
Loans Payable
LoansPayable
|
113503000 | |
CY2018Q4 | us-gaap |
Loans Payable
LoansPayable
|
64601000 | |
CY2019Q4 | us-gaap |
Loans Payable Current
LoansPayableCurrent
|
||
CY2018Q4 | us-gaap |
Loans Payable Current
LoansPayableCurrent
|
18400000 | |
CY2019Q4 | us-gaap |
Long Term Debt
LongTermDebt
|
114400000 | |
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal After Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive
|
||
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Next Twelve Months
LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
|
||
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive
|
||
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Four
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
|
114400000 | |
CY2019 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
-4769000 | |
CY2018 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
-3169000 | |
CY2017 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
-3007000 | |
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Three
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
|
||
CY2019Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Two
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
|
||
CY2019Q4 | us-gaap |
Long Term Loans Payable
LongTermLoansPayable
|
113503000 | |
CY2018Q4 | us-gaap |
Long Term Loans Payable
LongTermLoansPayable
|
46201000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
43461000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-12937000 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
65162000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-76086000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-29684000 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-94114000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
40381000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
37209000 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
31896000 | |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
15398000 | |
CY2018 | us-gaap |
Net Income Loss
NetIncomeLoss
|
17135000 | |
CY2017 | us-gaap |
Net Income Loss
NetIncomeLoss
|
22327000 | |
CY2019Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
5778000 | |
CY2019Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
4205000 | |
CY2019Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2616000 | |
CY2019Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2799000 | |
CY2018Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
4436000 | |
CY2018Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
5346000 | |
CY2018Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
3608000 | |
CY2018Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
3744000 | |
CY2019 | us-gaap |
Net Income Loss Attributable To Redeemable Noncontrolling Interest
NetIncomeLossAttributableToRedeemableNoncontrollingInterest
|
||
CY2018 | us-gaap |
Net Income Loss Attributable To Redeemable Noncontrolling Interest
NetIncomeLossAttributableToRedeemableNoncontrollingInterest
|
26000 | |
CY2017 | us-gaap |
Net Income Loss Attributable To Redeemable Noncontrolling Interest
NetIncomeLossAttributableToRedeemableNoncontrollingInterest
|
387000 | |
CY2019 | us-gaap |
Number Of Operating Segments
NumberOfOperatingSegments
|
2 | |
CY2019 | us-gaap |
Operating Expenses
OperatingExpenses
|
71437000 | |
CY2018 | us-gaap |
Operating Expenses
OperatingExpenses
|
67446000 | |
CY2017 | us-gaap |
Operating Expenses
OperatingExpenses
|
57439000 | |
CY2019 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
29340000 | |
CY2018 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
29324000 | |
CY2017 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
27082000 | |
CY2019 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
3057000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
10837000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
1413000 | |
CY2018Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
||
CY2019Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
9424000 | |
CY2018Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
||
CY2019 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
3130000 | |
CY2019Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
11335000 | |
CY2018Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
||
CY2019Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.052 | |
CY2019Q1 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.0504 | |
CY2019Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P8Y226D | |
CY2019Q1 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P5Y226D | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Due
OperatingLeasesFutureMinimumPaymentsDue
|
14529000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax
|
69000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax
|
-369000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Tax
OtherComprehensiveIncomeLossTax
|
56000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Due Current
OperatingLeasesFutureMinimumPaymentsDueCurrent
|
2248000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Due In Five Years
OperatingLeasesFutureMinimumPaymentsDueInFiveYears
|
1420000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Due In Four Years
OperatingLeasesFutureMinimumPaymentsDueInFourYears
|
1708000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Due In Three Years
OperatingLeasesFutureMinimumPaymentsDueInThreeYears
|
1745000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Due In Two Years
OperatingLeasesFutureMinimumPaymentsDueInTwoYears
|
1824000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Due Thereafter
OperatingLeasesFutureMinimumPaymentsDueThereafter
|
5584000 | |
CY2019Q4 | us-gaap |
Other Accrued Liabilities Noncurrent
OtherAccruedLiabilitiesNoncurrent
|
216000 | |
CY2018Q4 | us-gaap |
Other Accrued Liabilities Noncurrent
OtherAccruedLiabilitiesNoncurrent
|
250000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax
|
1101000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax
|
-1022000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax
|
550000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax
|
1454000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax
|
-1350000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax
|
863000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax
|
-353000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax
|
328000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax
|
-313000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax
|
-182000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax
|
-212000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification After Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax
|
650000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Before Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax
|
-240000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Before Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax
|
-281000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Before Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax
|
1019000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax
|
58000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Derivatives Qualifying As Hedges Before Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesBeforeTax
|
1694000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Derivatives Qualifying As Hedges Before Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesBeforeTax
|
-1069000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Derivatives Qualifying As Hedges Before Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesBeforeTax
|
-156000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Derivatives Qualifying As Hedges Net Of Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
|
1283000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Derivatives Qualifying As Hedges Net Of Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
|
-810000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Derivatives Qualifying As Hedges Net Of Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
|
-100000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Derivatives Qualifying As Hedges Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
|
-411000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Derivatives Qualifying As Hedges Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
|
259000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Derivatives Qualifying As Hedges Tax
OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesTax
|
56000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
-100000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
-810000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
1283000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
1283000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-810000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-100000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Tax
OtherComprehensiveIncomeLossTax
|
-411000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Tax
OtherComprehensiveIncomeLossTax
|
259000 | |
CY2019Q4 | us-gaap |
Other Long Term Debt Current
OtherLongTermDebtCurrent
|
||
CY2018Q4 | us-gaap |
Other Long Term Debt Current
OtherLongTermDebtCurrent
|
18400000 | |
CY2019 | us-gaap |
Other Noncash Income Expense
OtherNoncashIncomeExpense
|
||
CY2018 | us-gaap |
Other Noncash Income Expense
OtherNoncashIncomeExpense
|
429000 | |
CY2017 | us-gaap |
Other Noncash Income Expense
OtherNoncashIncomeExpense
|
515000 | |
CY2019 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
||
CY2018 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
518000 | |
CY2017 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
560000 | |
CY2019 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
4986000 | |
CY2018 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
||
CY2017 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
||
CY2019 | us-gaap |
Payments Of Financing Costs
PaymentsOfFinancingCosts
|
641000 | |
CY2018 | us-gaap |
Payments Of Financing Costs
PaymentsOfFinancingCosts
|
8000 | |
CY2017 | us-gaap |
Payments Of Financing Costs
PaymentsOfFinancingCosts
|
620000 | |
CY2019 | us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
548000 | |
CY2018 | us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
445000 | |
CY2017 | us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
1462000 | |
CY2019 | us-gaap |
Payments To Acquire Additional Interest In Subsidiaries
PaymentsToAcquireAdditionalInterestInSubsidiaries
|
||
CY2018 | us-gaap |
Payments To Acquire Additional Interest In Subsidiaries
PaymentsToAcquireAdditionalInterestInSubsidiaries
|
1200000 | |
CY2017 | us-gaap |
Payments To Acquire Additional Interest In Subsidiaries
PaymentsToAcquireAdditionalInterestInSubsidiaries
|
2000000 | |
CY2019 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
3566000 | |
CY2018 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
565000 | |
CY2017 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
2942000 | |
CY2019 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
44070000 | |
CY2018 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
27919000 | |
CY2017 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
12935000 | |
CY2019Q4 | us-gaap |
Preferred Stock No Par Value
PreferredStockNoParValue
|
0 | |
CY2018Q4 | us-gaap |
Preferred Stock No Par Value
PreferredStockNoParValue
|
0 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
1250000 | |
CY2018Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
1250000 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | |
CY2018Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2018Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2019Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | |
CY2018Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | |
CY2019Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
13478000 | |
CY2018Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
15472000 | |
CY2019Q4 | us-gaap |
Prepaid Expense Current
PrepaidExpenseCurrent
|
91252000 | |
CY2018Q4 | us-gaap |
Prepaid Expense Current
PrepaidExpenseCurrent
|
87782000 | |
CY2019Q4 | us-gaap |
Prepaid Expense Other Noncurrent
PrepaidExpenseOtherNoncurrent
|
17915000 | |
CY2018Q4 | us-gaap |
Prepaid Expense Other Noncurrent
PrepaidExpenseOtherNoncurrent
|
18745000 | |
CY2019 | us-gaap |
Proceeds From Notes Payable
ProceedsFromNotesPayable
|
57371000 | |
CY2018 | us-gaap |
Proceeds From Notes Payable
ProceedsFromNotesPayable
|
7000000 | |
CY2017 | us-gaap |
Proceeds From Notes Payable
ProceedsFromNotesPayable
|
86998000 | |
CY2019 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
395000 | |
CY2018 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
112000 | |
CY2017 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
222000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
107319000 | |
CY2018Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
64985000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
82121000 | |
CY2018Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
48065000 | |
CY2019Q4 | us-gaap |
Purchase Obligation
PurchaseObligation
|
91963000 | |
CY2019Q4 | us-gaap |
Purchase Obligation Due After Fifth Year
PurchaseObligationDueAfterFifthYear
|
5250000 | |
CY2019Q4 | us-gaap |
Purchase Obligation Due In Fifth Year
PurchaseObligationDueInFifthYear
|
19074000 | |
CY2019Q4 | us-gaap |
Purchase Obligation Due In Fourth Year
PurchaseObligationDueInFourthYear
|
13584000 | |
CY2019Q4 | us-gaap |
Purchase Obligation Due In Next Twelve Months
PurchaseObligationDueInNextTwelveMonths
|
29153000 | |
CY2019Q4 | us-gaap |
Purchase Obligation Due In Second Year
PurchaseObligationDueInSecondYear
|
12638000 | |
CY2019Q4 | us-gaap |
Purchase Obligation Due In Third Year
PurchaseObligationDueInThirdYear
|
12264000 | |
CY2019 | us-gaap |
Repayments Of Notes Payable
RepaymentsOfNotesPayable
|
8130000 | |
CY2018 | us-gaap |
Repayments Of Notes Payable
RepaymentsOfNotesPayable
|
19596000 | |
CY2017 | us-gaap |
Repayments Of Notes Payable
RepaymentsOfNotesPayable
|
19976000 | |
CY2019 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
9717000 | |
CY2018 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
8748000 | |
CY2017 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
7258000 | |
CY2019Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
76208000 | |
CY2018Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
60810000 | |
CY2019 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
337145000 | |
CY2018 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
346013000 | |
CY2017 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
329421000 | |
CY2019Q4 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
85946000 | |
CY2019Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
88129000 | |
CY2019Q2 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
84117000 | |
CY2019Q1 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
78953000 | |
CY2018Q4 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
85612000 | |
CY2018Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
83519000 | |
CY2018Q2 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
81087000 | |
CY2018Q1 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
95795000 | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
121921000 | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
12886000 | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
5456000 | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
3389000 | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
2090000 | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
3098000 | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
148840000 | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2019Q4 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2019 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
2665000 | |
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
7600000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
|
16335 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
|
||
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
|
||
CY2019 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
34270000 | |
CY2018 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
33063000 | |
CY2017 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
29423000 | |
CY2019 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
2876000 | |
CY2018 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
2574000 | |
CY2017 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
1457000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0 | |
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.365 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.379 | |
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.416 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.02 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.027 | |
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.018 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
356066 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
326937 | |
CY2017Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
243771 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
40.64 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
28.91 | |
CY2017Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
14.79 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
3900000 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
2900000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
|
31986 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
|
50714 | |
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
|
18196 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
180800 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
163366 | |
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
370025 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
|
20.20 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
|
22.22 | |
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
|
20.08 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
9224000 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
702337 | |
CY2017Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
653571 | |
CY2016Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
474501 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
754497 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
43.80 | |
CY2017Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
36.69 | |
CY2016Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
12.67 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
49.94 | |
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
16.90 | |
CY2018 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
12.86 | |
CY2017 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
7.88 | |
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
|
47.51 | |
CY2018 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
|
||
CY2017 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
|
||
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
|
59.35 | |
CY2017 | us-gaap |
Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
|
||
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
94194000 | |
CY2018 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
|
52.33 | |
CY2017 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
|
37.70 | |
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
60.56 | |
CY2018 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
62.80 | |
CY2017 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
54.10 | |
CY2019Q4 | us-gaap |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Number Of Exercisable Options
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions
|
356066 | |
CY2019Q4 | us-gaap |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Number Of Outstanding Options
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
|
754497 | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P4Y182D | |
CY2018 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P4Y175D | |
CY2017 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P4Y200D | |
CY2019Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Intrinsic Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
|
7590000 | |
CY2019Q4 | us-gaap |
Sharebased Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Exercisable Options Weighted Average Exercise Price1
SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1
|
40.64 | |
CY2019 | us-gaap |
Sharebased Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Exercisable Options Weighted Average Remaining Contractual Term2
SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTerm2
|
P3Y73D | |
CY2019Q4 | us-gaap |
Sharebased Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Outstanding Options Weighted Average Exercise Price Beginning Balance1
SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
|
49.94 | |
CY2019 | us-gaap |
Sharebased Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Outstanding Options Weighted Average Remaining Contractual Term2
SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
|
P4Y146D | |
CY2019 | us-gaap |
Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
|
21332 | |
CY2018 | us-gaap |
Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
|
19777 | |
CY2017 | us-gaap |
Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
|
50454 | |
CY2019 | us-gaap |
Short Term Lease Cost
ShortTermLeaseCost
|
1040000 | |
CY2019 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
80319 | |
CY2018 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
63886 | |
CY2017 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
172759 | |
CY2017 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
222000 | |
CY2018 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
112000 | |
CY2019 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
395000 | |
CY2019 | us-gaap |
Stock Repurchased And Retired During Period Shares
StockRepurchasedAndRetiredDuringPeriodShares
|
101816 | |
CY2018 | us-gaap |
Stock Repurchased And Retired During Period Shares
StockRepurchasedAndRetiredDuringPeriodShares
|
||
CY2017 | us-gaap |
Stock Repurchased And Retired During Period Shares
StockRepurchasedAndRetiredDuringPeriodShares
|
||
CY2019 | us-gaap |
Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
|
4986000 | |
CY2018 | us-gaap |
Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
|
||
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
79776000 | |
CY2016Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
37818000 | |
CY2017Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
60211000 | |
CY2019 | us-gaap |
Straight Line Rent
StraightLineRent
|
||
CY2018 | us-gaap |
Straight Line Rent
StraightLineRent
|
14000 | |
CY2017 | us-gaap |
Straight Line Rent
StraightLineRent
|
-6000 | |
CY2019 | us-gaap |
Tangible Asset Impairment Charges
TangibleAssetImpairmentCharges
|
142000 | |
CY2018 | us-gaap |
Tangible Asset Impairment Charges
TangibleAssetImpairmentCharges
|
||
CY2017 | us-gaap |
Tangible Asset Impairment Charges
TangibleAssetImpairmentCharges
|
17000 | |
CY2017 | us-gaap |
Temporary Equity Accretion To Redemption Value
TemporaryEquityAccretionToRedemptionValue
|
51000 | |
CY2018 | us-gaap |
Temporary Equity Accretion To Redemption Value
TemporaryEquityAccretionToRedemptionValue
|
64000 | |
CY2019 | us-gaap |
Unrealized Gain Loss On Derivatives
UnrealizedGainLossOnDerivatives
|
313000 | |
CY2018 | us-gaap |
Unrealized Gain Loss On Derivatives
UnrealizedGainLossOnDerivatives
|
-207000 | |
CY2017 | us-gaap |
Unrealized Gain Loss On Derivatives
UnrealizedGainLossOnDerivatives
|
-17000 | |
CY2017Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
15000 | |
CY2018Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
||
CY2019Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
||
CY2019Q4 | us-gaap |
Unrecognized Tax Benefits Income Tax Penalties And Interest Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
|
0 | |
CY2018Q4 | us-gaap |
Unrecognized Tax Benefits Income Tax Penalties And Interest Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
|
0 | |
CY2019 | us-gaap |
Unrecognized Tax Benefits Period Increase Decrease
UnrecognizedTaxBenefitsPeriodIncreaseDecrease
|
||
CY2018 | us-gaap |
Unrecognized Tax Benefits Period Increase Decrease
UnrecognizedTaxBenefitsPeriodIncreaseDecrease
|
-15000 | |
CY2019 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;"><div style="display: inline; font-style: italic;">(b) Use of estimates</div></div> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;"> </div> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin: 0pt; text-align: justify; text-indent: 36pt;">The preparation of the consolidated financial statements in accordance with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenues and expenses, and related disclosure of contingent assets and liabilities. On an on-going basis, management evaluates its estimates, including those related to amounts recognized for carrying values of revenues, bad debts, inventory obsolescence which requires estimates of sales forecasts and other marketplace considerations, internal use software which requires estimates of whether the costs incurred meet the criteria for capitalization based on the stage of the projects, goodwill and intangible assets which require estimates of future cash flows and discount rates, lease liability which requires estimates of incremental borrowing rate and the expectation of exercising lease renewal periods, income taxes, contingencies and litigation, and estimates of credit spreads for determination of the fair value of derivative instruments. Management bases its estimates on historical experience and on various other assumptions that are believed to be reasonable under the circumstances at the time they are made. Under different assumptions or conditions, the actual results will differ, potentially materially, from those previously estimated. Many of the conditions impacting these assumptions and estimates are outside of the Company’s control.</div></div></div></div></div></div></div></div></div></div></div></div></div> | |
CY2019 | us-gaap |
Variable Lease Cost
VariableLeaseCost
|
657000 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
10772812 | |
CY2018 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
10794170 | |
CY2017 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
10793622 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
10623799 | |
CY2018 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
10604722 | |
CY2017 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
10537356 |