2019 Q4 Form 10-K Financial Statement
#000143774920004836 Filed on March 12, 2020
Income Statement
Concept | 2019 Q4 | 2018 Q4 | 2018 Q3 |
---|---|---|---|
Revenue | $30.17M | $28.39M | $24.16M |
YoY Change | 6.27% | 8.55% | -2.65% |
Cost Of Revenue | $10.26M | $9.170M | $6.910M |
YoY Change | 11.89% | 16.08% | -4.62% |
Gross Profit | $19.91M | $19.22M | $17.26M |
YoY Change | 3.59% | 5.3% | -1.83% |
Gross Profit Margin | 65.99% | 67.7% | 71.41% |
Selling, General & Admin | $11.76M | $10.73M | $10.61M |
YoY Change | 9.6% | 8.27% | -1.47% |
% of Gross Profit | 59.07% | 55.83% | 61.46% |
Research & Development | $2.500M | $2.350M | $2.037M |
YoY Change | 6.38% | 48.73% | 15.67% |
% of Gross Profit | 12.56% | 12.23% | 11.81% |
Depreciation & Amortization | $1.440M | $1.210M | $1.010M |
YoY Change | 19.01% | 11.01% | 0.0% |
% of Gross Profit | 7.23% | 6.3% | 5.85% |
Operating Expenses | $14.98M | $13.63M | $12.64M |
YoY Change | 9.9% | 14.25% | 0.94% |
Operating Profit | $4.928M | $7.193M | $4.613M |
YoY Change | -31.49% | 13.8% | -8.71% |
Interest Expense | $260.0K | $60.00K | $120.0K |
YoY Change | 333.33% | 500.0% | 500.0% |
% of Operating Profit | 5.28% | 0.83% | 2.6% |
Other Income/Expense, Net | |||
YoY Change | |||
Pretax Income | $5.190M | $7.250M | $4.730M |
YoY Change | -28.41% | 14.53% | -6.76% |
Income Tax | $580.0K | $1.230M | $416.0K |
% Of Pretax Income | 11.18% | 16.97% | 8.79% |
Net Earnings | $4.613M | $6.025M | $4.314M |
YoY Change | -23.44% | 40.64% | -14.44% |
Net Earnings / Revenue | 15.29% | 21.22% | 17.85% |
Basic Earnings Per Share | $0.23 | $0.31 | $0.22 |
Diluted Earnings Per Share | $0.23 | $0.30 | $0.21 |
COMMON SHARES | |||
Basic Shares Outstanding | 19.58M shares | 19.50M | |
Diluted Shares Outstanding | 20.29M |
Balance Sheet
Concept | 2019 Q4 | 2018 Q4 | 2018 Q3 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $32.70M | $48.00M | $45.60M |
YoY Change | -31.88% | 15.11% | 21.6% |
Cash & Equivalents | $11.79M | $26.32M | $20.10M |
Short-Term Investments | $20.90M | $21.70M | $25.50M |
Other Short-Term Assets | $8.200M | $4.700M | $5.700M |
YoY Change | 74.47% | 6.82% | 3.64% |
Inventory | $34.60M | $25.60M | $22.50M |
Prepaid Expenses | |||
Receivables | $16.57M | $15.72M | $13.02M |
Other Receivables | $0.00 | $0.00 | $0.00 |
Total Short-Term Assets | $92.09M | $94.02M | $86.81M |
YoY Change | -2.05% | 17.07% | 14.76% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $14.85M | $14.10M | $12.70M |
YoY Change | 5.33% | 13.93% | 11.68% |
Goodwill | $39.95M | $29.87M | $29.80M |
YoY Change | 33.76% | 25.26% | 24.96% |
Intangibles | $24.89M | $13.69M | $13.49M |
YoY Change | 81.81% | 66.29% | 55.61% |
Long-Term Investments | |||
YoY Change | |||
Other Assets | $259.0K | $194.0K | $192.0K |
YoY Change | 33.51% | 8.99% | 7.26% |
Total Long-Term Assets | $96.25M | $59.07M | $57.52M |
YoY Change | 62.94% | 28.38% | 26.06% |
TOTAL ASSETS | |||
Total Short-Term Assets | $92.09M | $94.02M | $86.81M |
Total Long-Term Assets | $96.25M | $59.07M | $57.52M |
Total Assets | $188.3M | $153.1M | $144.3M |
YoY Change | 23.03% | 21.19% | 19.01% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $2.604M | $1.732M | $1.627M |
YoY Change | 50.35% | 12.25% | 0.62% |
Accrued Expenses | $14.01M | $15.85M | $11.01M |
YoY Change | -11.57% | 62.2% | 25.03% |
Deferred Revenue | $552.0K | ||
YoY Change | |||
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | |||
YoY Change | |||
Total Short-Term Liabilities | $20.85M | $19.76M | $14.64M |
YoY Change | 5.53% | 49.81% | 20.88% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Other Long-Term Liabilities | $4.215M | $2.611M | $2.167M |
YoY Change | 61.43% | 119.78% | 97.36% |
Total Long-Term Liabilities | $4.215M | $2.611M | $2.167M |
YoY Change | 61.43% | 119.78% | 97.36% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $20.85M | $19.76M | $14.64M |
Total Long-Term Liabilities | $4.215M | $2.611M | $2.167M |
Total Liabilities | $40.20M | $22.85M | $18.98M |
YoY Change | 75.91% | 38.06% | 25.23% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $57.03M | $45.83M | $41.18M |
YoY Change | 24.43% | 61.76% | 64.0% |
Common Stock | $106.2M | $98.65M | $97.94M |
YoY Change | 7.6% | 5.7% | 47213.04% |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $11.03M | $10.35M | $10.29M |
YoY Change | 6.6% | 7.71% | 7.07% |
Treasury Stock Shares | $1.522M | $1.502M | 1.499M shares |
Shareholders Equity | $148.1M | $130.2M | $125.3M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $188.3M | $153.1M | $144.3M |
YoY Change | 23.03% | 21.19% | 19.01% |
Cashflow Statement
Concept | 2019 Q4 | 2018 Q4 | 2018 Q3 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $4.613M | $6.025M | $4.314M |
YoY Change | -23.44% | 40.64% | -14.44% |
Depreciation, Depletion And Amortization | $1.440M | $1.210M | $1.010M |
YoY Change | 19.01% | 11.01% | 0.0% |
Cash From Operating Activities | $5.590M | $6.570M | $4.310M |
YoY Change | -14.92% | -2.95% | -47.44% |
INVESTING ACTIVITIES | |||
Capital Expenditures | -$1.400M | -$1.290M | -$530.0K |
YoY Change | 8.53% | -21.34% | -77.35% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | -$2.150M | $2.550M | -$3.190M |
YoY Change | -184.31% | -111.31% | |
Cash From Investing Activities | -$3.550M | $1.250M | -$3.720M |
YoY Change | -384.0% | -105.17% | 58.97% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | |||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -2.220M | -1.310M | 0.000 |
YoY Change | 69.47% | 22.43% | -100.0% |
NET CHANGE | |||
Cash From Operating Activities | 5.590M | 6.570M | 4.310M |
Cash From Investing Activities | -3.550M | 1.250M | -3.720M |
Cash From Financing Activities | -2.220M | -1.310M | 0.000 |
Net Change In Cash | -180.0K | 6.510M | 590.0K |
YoY Change | -102.76% | -135.23% | -91.76% |
FREE CASH FLOW | |||
Cash From Operating Activities | $5.590M | $6.570M | $4.310M |
Capital Expenditures | -$1.400M | -$1.290M | -$530.0K |
Free Cash Flow | $6.990M | $7.860M | $4.840M |
YoY Change | -11.07% | -6.54% | -54.08% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
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
|
0001158895 | |
CY2020Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
20178506 | |
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
|
261775368 | |
CY2019 | dei |
Entity Registrant Name
EntityRegistrantName
|
LEMAITRE VASCULAR INC | |
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, $0.01 par value per share | |
CY2019 | dei |
Trading Symbol
TradingSymbol
|
lmat | |
CY2019Q4 | lmat |
Acquisition Related Obligations
AcquisitionRelatedObligations
|
2476000 | |
CY2018Q4 | lmat |
Acquisition Related Obligations
AcquisitionRelatedObligations
|
2179000 | |
CY2019 | lmat |
Contract With Customer Liability Revenue Recorded
ContractWithCustomerLiabilityRevenueRecorded
|
||
CY2018 | lmat |
Contract With Customer Liability Revenue Recorded
ContractWithCustomerLiabilityRevenueRecorded
|
1081000 | |
CY2019Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
105934000 | |
CY2017 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
2256000 | |
CY2019Q4 | lmat |
Deferred Tax Assets Liabilities Net Before Valuation Allowances
DeferredTaxAssetsLiabilitiesNetBeforeValuationAllowances
|
1293000 | |
CY2018Q4 | lmat |
Deferred Tax Assets Liabilities Net Before Valuation Allowances
DeferredTaxAssetsLiabilitiesNetBeforeValuationAllowances
|
1986000 | |
CY2019Q4 | lmat |
Deferred Tax Assets Operating Lease Liabilities
DeferredTaxAssetsOperatingLeaseLiabilities
|
3343000 | |
CY2018Q4 | lmat |
Deferred Tax Assets Operating Lease Liabilities
DeferredTaxAssetsOperatingLeaseLiabilities
|
||
CY2019Q4 | lmat |
Deferred Tax Liabilities Foreign Branch Deferred Offset
DeferredTaxLiabilitiesForeignBranchDeferredOffset
|
923000 | |
CY2018Q4 | lmat |
Deferred Tax Liabilities Foreign Branch Deferred Offset
DeferredTaxLiabilitiesForeignBranchDeferredOffset
|
1032000 | |
CY2019Q4 | lmat |
Deferred Tax Liabilities Operating Lease Right Of Use Assets
DeferredTaxLiabilitiesOperatingLeaseRightOfUseAssets
|
3224000 | |
CY2018Q4 | lmat |
Deferred Tax Liabilities Operating Lease Right Of Use Assets
DeferredTaxLiabilitiesOperatingLeaseRightOfUseAssets
|
||
CY2019 | lmat |
Defined Contribution Plan Employers Matching Contribution Annual Vesting Period
DefinedContributionPlanEmployersMatchingContributionAnnualVestingPeriod
|
P6Y | |
CY2019 | lmat |
Effective Income Tax Rate Reconciliation Deductible Expense Manufacturing Deduction
EffectiveIncomeTaxRateReconciliationDeductibleExpenseManufacturingDeduction
|
0 | |
CY2018 | lmat |
Effective Income Tax Rate Reconciliation Deductible Expense Manufacturing Deduction
EffectiveIncomeTaxRateReconciliationDeductibleExpenseManufacturingDeduction
|
0 | |
CY2017 | lmat |
Effective Income Tax Rate Reconciliation Deductible Expense Manufacturing Deduction
EffectiveIncomeTaxRateReconciliationDeductibleExpenseManufacturingDeduction
|
0.015 | |
CY2019 | lmat |
Effective Income Tax Rate Reconciliation Deferred Tax Remeasurement
EffectiveIncomeTaxRateReconciliationDeferredTaxRemeasurement
|
0 | |
CY2018 | lmat |
Effective Income Tax Rate Reconciliation Deferred Tax Remeasurement
EffectiveIncomeTaxRateReconciliationDeferredTaxRemeasurement
|
0 | |
CY2017 | lmat |
Effective Income Tax Rate Reconciliation Deferred Tax Remeasurement
EffectiveIncomeTaxRateReconciliationDeferredTaxRemeasurement
|
-0.05 | |
CY2019 | lmat |
Effective Income Tax Rate Reconciliation Foreign Deferred Tax Liability Offset And Adjustment
EffectiveIncomeTaxRateReconciliationForeignDeferredTaxLiabilityOffsetAndAdjustment
|
-0.004 | |
CY2018 | lmat |
Effective Income Tax Rate Reconciliation Foreign Deferred Tax Liability Offset And Adjustment
EffectiveIncomeTaxRateReconciliationForeignDeferredTaxLiabilityOffsetAndAdjustment
|
-0.003 | |
CY2017 | lmat |
Effective Income Tax Rate Reconciliation Foreign Deferred Tax Liability Offset And Adjustment
EffectiveIncomeTaxRateReconciliationForeignDeferredTaxLiabilityOffsetAndAdjustment
|
-0.002 | |
CY2019 | lmat |
Effective Income Tax Rate Reconciliation Other Permanent Differences
EffectiveIncomeTaxRateReconciliationOtherPermanentDifferences
|
0.005 | |
CY2018 | lmat |
Effective Income Tax Rate Reconciliation Other Permanent Differences
EffectiveIncomeTaxRateReconciliationOtherPermanentDifferences
|
-0.007 | |
CY2017 | lmat |
Effective Income Tax Rate Reconciliation Other Permanent Differences
EffectiveIncomeTaxRateReconciliationOtherPermanentDifferences
|
0.01 | |
CY2019 | lmat |
Increase Decrease In Inventory And Other Deferred Costs
IncreaseDecreaseInInventoryAndOtherDeferredCosts
|
11335000 | |
CY2018 | lmat |
Increase Decrease In Inventory And Other Deferred Costs
IncreaseDecreaseInInventoryAndOtherDeferredCosts
|
4262000 | |
CY2017 | lmat |
Increase Decrease In Inventory And Other Deferred Costs
IncreaseDecreaseInInventoryAndOtherDeferredCosts
|
1352000 | |
CY2019Q4 | lmat |
Inventory And Other Deferred Costs
InventoryAndOtherDeferredCosts
|
39527000 | |
CY2018Q4 | lmat |
Inventory And Other Deferred Costs
InventoryAndOtherDeferredCosts
|
27388000 | |
CY2018Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
98442000 | |
CY2019Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
2604000 | |
CY2018Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
1732000 | |
CY2019Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
16572000 | |
CY2018Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
15721000 | |
CY2019Q4 | us-gaap |
Accrued Income Taxes Noncurrent
AccruedIncomeTaxesNoncurrent
|
781000 | |
CY2018Q4 | us-gaap |
Accrued Income Taxes Noncurrent
AccruedIncomeTaxesNoncurrent
|
559000 | |
CY2019Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
14014000 | |
CY2018Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
15847000 | |
CY2019Q4 | us-gaap |
Accrued Professional Fees Current
AccruedProfessionalFeesCurrent
|
40000 | |
CY2018Q4 | us-gaap |
Accrued Professional Fees Current
AccruedProfessionalFeesCurrent
|
43000 | |
CY2019Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
17772000 | |
CY2018Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
15344000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
4000000 | |
CY2018Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
3900000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-4007000 | |
CY2018Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-3900000 | |
CY2019 | us-gaap |
Acquired Finite Lived Intangible Assets Weighted Average Useful Life
AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
|
P10Y36D | |
CY2018 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
2349000 | |
CY2019 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
2642000 | |
CY2019 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
2642000 | |
CY2019 | us-gaap |
Advertising Expense
AdvertisingExpense
|
286000 | |
CY2018 | us-gaap |
Advertising Expense
AdvertisingExpense
|
299000 | |
CY2017 | us-gaap |
Advertising Expense
AdvertisingExpense
|
305000 | |
CY2018 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
2349000 | |
CY2017 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
2256000 | |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
522000 | |
CY2018Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
399000 | |
CY2019 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
2437000 | |
CY2018 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
1760000 | |
CY2017 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
1790000 | |
CY2019 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
468000 | |
CY2018 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
230000 | |
CY2017 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
6000 | |
CY2019Q4 | us-gaap |
Assets
Assets
|
188341000 | |
CY2018Q4 | us-gaap |
Assets
Assets
|
153088000 | |
CY2019Q4 | us-gaap |
Assets Current
AssetsCurrent
|
92092000 | |
CY2018Q4 | us-gaap |
Assets Current
AssetsCurrent
|
94017000 | |
CY2019Q4 | us-gaap |
Available For Sale Securities Current
AvailableForSaleSecuritiesCurrent
|
20895000 | |
CY2018Q4 | us-gaap |
Available For Sale Securities Current
AvailableForSaleSecuritiesCurrent
|
21668000 | |
CY2019 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
171000 | |
CY2018 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-29000 | |
CY2017 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
106000 | |
CY2019Q4 | us-gaap |
Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Noncurrent Liabilities
BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilities
|
3268000 | |
CY2018Q4 | us-gaap |
Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Noncurrent Liabilities
BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilities
|
1326000 | |
CY2019 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
17827000 | |
CY2018 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
21332000 | |
CY2017 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
19471000 | |
CY2017 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
30170000 | |
CY2019 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
1501000 | |
CY2018 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
4262000 | |
CY2017 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
2451000 | |
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="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-bottom:0pt;margin-left:12.2pt;margin-right:0pt;margin-top:0pt;text-align:left;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Concentrations of Credit Risk </div></div></div> <div style=" font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"> </div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;text-indent:24.5pt;">Our financial instruments that are exposed to concentrations of credit risk consist primarily of cash and cash equivalents and accounts receivable. Cash equivalents represent highly liquid investments with maturities of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">90</div> days or less at the date of purchase. Credit risk related to cash and cash equivalents are limited based on the creditworthiness of the financial institutions at which these funds are held. We maintain cash balances in several banks. Accounts located in the United States are insured by the Federal Deposit Insurance Corporation (FDIC) up to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$250,000.</div> Certain of our account balances exceed the FDIC limit. Cash balances held outside the United States totaled approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$9.0</div> million as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019.</div></div> <div style=" font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"> </div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;text-indent:24.5pt;">Our accounts receivable are with customers based in the United States and internationally. Accounts receivable generally are due within <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">30</div> to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">90</div> days of invoice and are stated at amounts due from customers, net of an allowance for doubtful accounts and sales returns, other than in certain European markets where longer payment terms are customary and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>range from <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">90</div> to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">240</div> days. We perform ongoing credit evaluations of the financial condition of our customers and adjust credit limits based upon payment history and the current creditworthiness of the customers, as determined by a review of their current credit information. We continuously monitor aging reports, collections, and payments from customers, and maintain a provision for estimated credit losses based upon historical experience and any specific customer collection issues we identify.</div> <div style=" font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"> </div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;text-indent:24.5pt;">We closely monitor outstanding receivables for potential collection risks, including those that <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>arise from economic conditions, in both the U.S. and international economies. Our European sales to government-owned or supported customers such as hospitals, distributors and agents, in Southern Europe, specifically Italy and Spain <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>be subject to significant payment delays due to government austerity measures impacting funding and payment practices. As of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019</div> our receivables in Italy and Spain totaled <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.0</div> million and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0.8</div> million, respectively. Receivables balances with certain publicly-owned hospitals and government supported customers in these countries can accumulate over a period of time and then subsequently be settled as large lump sum payments. While we believe our allowance for doubtful accounts in these countries is adequate as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019,</div> if significant changes were to occur in the payment practices of these European governments or if government funding becomes unavailable, we <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> be able to collect on receivables due to us from these customers and our write offs of uncollectible amounts <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>increase.</div> <div style=" font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"> </div> <div style="width: 100%; margin-left: 0pt; margin-right: 0pt"> <div style="text-align: center; width: 100%"> <div> <div style="text-align: center; font-size: 10pt; font-family: Times New Roman;"> </div></div></div></div><div style=" font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"></div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;text-indent:24.5pt;">We write off accounts receivable when they become uncollectible. Such credit losses have historically been within our expectations and allowances. The allowance for doubtful accounts is our best estimate of the amount of probable credit losses in our existing accounts receivable. We review our allowance for doubtful accounts on a monthly basis and all past due balances are reviewed individually for collectability. The provision for the allowance for doubtful accounts is recorded in general and administrative expenses. The following is a summary of our allowance for doubtful accounts and sales returns:</div> <div style=" font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"> </div> <div> <table border="0" cellpadding="0" cellspacing="0" style="margin-right: 2.5%; margin-left: 2.5%; font-size: 10pt; font-family: "Times New Roman", Times, serif; text-indent: 0px; min-width: 700px;"> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Balance at</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Additions</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Deductions</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Balance at</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> </tr> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Beginning</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" nowrap="nowrap" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; width: 0%; padding: 0px;"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">(recoveries) charged</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">from</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">End of</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> </tr> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">of Period</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">to Income</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Reserves</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-weight: bold;">Period</div></div></div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td> </tr> <tr style="vertical-align: bottom;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td colspan="14" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">(in thousands)</div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 48%;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Allowance for doubtful accounts and sales returns:</div> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="text-align: left; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Year ended December 31, 2019</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">399</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">388</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">265</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">522</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Year ended December 31, 2018</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">349</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">264</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">214</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">399</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> </tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <div style=" font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Year ended December 31, 2017</div> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">258</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">230</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">139</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 10%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">349</div></td> <td nowrap="nowrap" style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> </tr> </table> </div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div> | |
CY2019Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
||
CY2018Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
552000 | |
CY2017Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
||
CY2019 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
-552000 | |
CY2018 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
-529000 | |
CY2019 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
37379000 | |
CY2018 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
31629000 | |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
11786000 | |
CY2018Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
26318000 | |
CY2017Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
19096000 | |
CY2016Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
24288000 | |
CY2019 | us-gaap |
Cash And Cash Equivalents Period Increase Decrease
CashAndCashEquivalentsPeriodIncreaseDecrease
|
-14532000 | |
CY2018 | us-gaap |
Cash And Cash Equivalents Period Increase Decrease
CashAndCashEquivalentsPeriodIncreaseDecrease
|
7222000 | |
CY2017 | us-gaap |
Cash And Cash Equivalents Period Increase Decrease
CashAndCashEquivalentsPeriodIncreaseDecrease
|
-5192000 | |
CY2019 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
0.34 | |
CY2018 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
0.28 | |
CY2017 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
0.22 | |
CY2019Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2018Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2019Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
37000000 | |
CY2018Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
37000000 | |
CY2019Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
21678927 | |
CY2018Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
21110224 | |
CY2019Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
217000 | |
CY2018Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
211000 | |
CY2019 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
1116000 | |
CY2018 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
2718000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
20000 | |
CY2017 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
886000 | |
CY2019 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
2921000 | |
CY2018 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
7653000 | |
CY2017 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
3629000 | |
CY2019 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
304000 | |
CY2018 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
673000 | |
CY2017 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
292000 | |
CY2019 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
538000 | |
CY2018 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-1512000 | |
CY2017 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-268000 | |
CY2019 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
142000 | |
CY2018 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
-495000 | |
CY2017 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
178000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
1084000 | |
CY2018Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
1215000 | |
CY2019 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
824000 | |
CY2018 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-2152000 | |
CY2017 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
300000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
9313000 | |
CY2018Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
5521000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
1179000 | |
CY2018Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
484000 | |
CY2019Q4 | us-gaap |
Deferred Rent Credit Noncurrent
DeferredRentCreditNoncurrent
|
||
CY2018Q4 | us-gaap |
Deferred Rent Credit Noncurrent
DeferredRentCreditNoncurrent
|
530000 | |
CY2019 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
144000 | |
CY2018 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-145000 | |
CY2017 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
390000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Capital Loss Carryforwards
DeferredTaxAssetsCapitalLossCarryforwards
|
277000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Capital Loss Carryforwards
DeferredTaxAssetsCapitalLossCarryforwards
|
279000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
|
2764000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
|
2737000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
10606000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
7507000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
840000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
976000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
731000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
1289000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
1421000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
91000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Credit Carryforwards
DeferredTaxAssetsTaxCreditCarryforwards
|
944000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Credit Carryforwards
DeferredTaxAssetsTaxCreditCarryforwards
|
828000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
342000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
373000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Reserves
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves
|
787000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Reserves
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves
|
802000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
1388000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
1255000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
95000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
|
3459000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
|
3023000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
|
187000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
|
50000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
1520000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
1416000 | |
CY2019 | us-gaap |
Depreciation
Depreciation
|
2979000 | |
CY2018Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.21 | |
CY2018 | us-gaap |
Depreciation
Depreciation
|
2564000 | |
CY2017 | us-gaap |
Depreciation
Depreciation
|
2266000 | |
CY2019 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
5416000 | |
CY2018 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
4324000 | |
CY2017 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
4055000 | |
CY2017 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
4179000 | |
CY2018 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
5445000 | |
CY2019 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
6736000 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.91 | |
CY2018 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.18 | |
CY2017 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.91 | |
CY2019Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.18 | |
CY2019Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.23 | |
CY2019Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.26 | |
CY2019Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.23 | |
CY2018Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.20 | |
CY2018Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.45 | |
CY2018Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.22 | |
CY2018Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.31 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.88 | |
CY2018 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.13 | |
CY2017 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.86 | |
CY2019Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.17 | |
CY2019Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.23 | |
CY2019Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.25 | |
CY2019Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.23 | |
CY2018Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.19 | |
CY2018Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.43 | |
CY2018Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.30 | |
CY2019 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
11000 | |
CY2018 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
-813000 | |
CY2017 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
818000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.173 | |
CY2018 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.193 | |
CY2017 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.186 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.35 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0.006 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-0.032 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0.001 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Enacted Tax Rate
EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
|
0 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Enacted Tax Rate
EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
|
0 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Enacted Tax Rate
EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
|
0.029 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
|
0.021 | |
CY2017 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Settlements
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
|
126000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
|
0.038 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
|
-0.006 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
-0.002 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
-0.009 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
-0.007 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Repatriation Of Foreign Earnings
EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings
|
0.008 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Repatriation Of Foreign Earnings
EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings
|
0.014 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Repatriation Of Foreign Earnings
EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings
|
0.017 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
|
-0.088 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
|
-0.033 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
|
-0.158 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.019 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.014 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.017 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Contingencies
EffectiveIncomeTaxRateReconciliationTaxContingencies
|
0.01 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Contingencies
EffectiveIncomeTaxRateReconciliationTaxContingencies
|
0.008 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Contingencies
EffectiveIncomeTaxRateReconciliationTaxContingencies
|
0.006 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
|
0.012 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
|
0.007 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
|
0.006 | |
CY2019Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
8550000 | |
CY2018Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
7973000 | |
CY2019 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Gain Loss Included In Earnings
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
|
-12000 | |
CY2018 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Gain Loss Included In Earnings
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
|
29000 | |
CY2017 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Gain Loss Included In Earnings
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
|
-106000 | |
CY2019 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Purchases
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
|
1989000 | |
CY2018 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Purchases
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
|
||
CY2017 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Purchases
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
|
||
CY2019 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Settlements
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
|
309000 | |
CY2018 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Settlements
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
|
1199000 | |
CY2018Q4 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliations Recurring Basis Liability Value
FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
|
72000 | |
CY2017Q4 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliations Recurring Basis Liability Value
FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
|
1300000 | |
CY2016Q4 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliations Recurring Basis Liability Value
FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
|
1320000 | |
CY2019Q4 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliations Recurring Basis Liability Value
FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
|
1764000 | |
CY2019Q4 | us-gaap |
Finance Lease Right Of Use Asset
FinanceLeaseRightOfUseAsset
|
0 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
10356000 | |
CY2018Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
12492000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
3224000 | |
CY2019Q3 | us-gaap |
Gross Profit
GrossProfit
|
20166000 | |
CY2019 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
0 | |
CY2018 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
0 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
2477000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
2677000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
2751000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
2956000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
35249000 | |
CY2018Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
26184000 | |
CY2019 | us-gaap |
Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
|
-202000 | |
CY2018 | us-gaap |
Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
|
-394000 | |
CY2017 | us-gaap |
Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
|
-155000 | |
CY2019 | us-gaap |
Foreign Currency Transaction Gain Loss Unrealized
ForeignCurrencyTransactionGainLossUnrealized
|
57000 | |
CY2018 | us-gaap |
Foreign Currency Transaction Gain Loss Unrealized
ForeignCurrencyTransactionGainLossUnrealized
|
-259000 | |
CY2017 | us-gaap |
Foreign Currency Transaction Gain Loss Unrealized
ForeignCurrencyTransactionGainLossUnrealized
|
29000 | |
CY2019 | us-gaap |
Gain Loss On Sale Of Business
GainLossOnSaleOfBusiness
|
||
CY2018 | us-gaap |
Gain Loss On Sale Of Business
GainLossOnSaleOfBusiness
|
7474000 | |
CY2017 | us-gaap |
Gain Loss On Sale Of Business
GainLossOnSaleOfBusiness
|
||
CY2019 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
19055000 | |
CY2018 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
17689000 | |
CY2017 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
17010000 | |
CY2019Q4 | us-gaap |
Goodwill
Goodwill
|
39951000 | |
CY2018Q4 | us-gaap |
Goodwill
Goodwill
|
29868000 | |
CY2017Q4 | us-gaap |
Goodwill
Goodwill
|
23844000 | |
CY2019 | us-gaap |
Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
|
10092000 | |
CY2018 | us-gaap |
Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
|
6361000 | |
CY2019 | us-gaap |
Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
|
-9000 | |
CY2018 | us-gaap |
Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
|
-202000 | |
CY2017 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
0 | |
CY2019 | us-gaap |
Goodwill Written Off Related To Sale Of Business Unit
GoodwillWrittenOffRelatedToSaleOfBusinessUnit
|
||
CY2018 | us-gaap |
Goodwill Written Off Related To Sale Of Business Unit
GoodwillWrittenOffRelatedToSaleOfBusinessUnit
|
135000 | |
CY2019Q1 | us-gaap |
Gross Profit
GrossProfit
|
19464000 | |
CY2019Q2 | us-gaap |
Gross Profit
GrossProfit
|
20315000 | |
CY2018 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
1283000 | |
CY2019Q4 | us-gaap |
Gross Profit
GrossProfit
|
19908000 | |
CY2018Q1 | us-gaap |
Gross Profit
GrossProfit
|
18474000 | |
CY2018Q2 | us-gaap |
Gross Profit
GrossProfit
|
18992000 | |
CY2018Q3 | us-gaap |
Gross Profit
GrossProfit
|
17255000 | |
CY2018Q4 | us-gaap |
Gross Profit
GrossProfit
|
19218000 | |
CY2019 | us-gaap |
Gross Profit
GrossProfit
|
79853000 | |
CY2018 | us-gaap |
Gross Profit
GrossProfit
|
73939000 | |
CY2017 | us-gaap |
Gross Profit
GrossProfit
|
70697000 | |
CY2019 | us-gaap |
Impairment Of Intangible Assets Finitelived
ImpairmentOfIntangibleAssetsFinitelived
|
4500000 | |
CY2019 | us-gaap |
Impairment Of Long Lived Assets Held For Use
ImpairmentOfLongLivedAssetsHeldForUse
|
500000 | |
CY2018 | us-gaap |
Impairment Of Long Lived Assets Held For Use
ImpairmentOfLongLivedAssetsHeldForUse
|
1000000 | |
CY2017 | us-gaap |
Impairment Of Long Lived Assets Held For Use
ImpairmentOfLongLivedAssetsHeldForUse
|
200000 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
17989000 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
22256000 | |
CY2017 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
17778000 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
21679000 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
28444000 | |
CY2017 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
21106000 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
3690000 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
6188000 | |
CY2017 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
3328000 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
21679000 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
28444000 | |
CY2017 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
21106000 | |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
3745000 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
5501000 | |
CY2017 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
3929000 | |
CY2019 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
4817000 | |
CY2018 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
5521000 | |
CY2017 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
3146000 | |
CY2019 | us-gaap |
Increase Decrease In Accounts Payable And Other Operating Liabilities
IncreaseDecreaseInAccountsPayableAndOtherOperatingLiabilities
|
-596000 | |
CY2018 | us-gaap |
Increase Decrease In Accounts Payable And Other Operating Liabilities
IncreaseDecreaseInAccountsPayableAndOtherOperatingLiabilities
|
4314000 | |
CY2017 | us-gaap |
Increase Decrease In Accounts Payable And Other Operating Liabilities
IncreaseDecreaseInAccountsPayableAndOtherOperatingLiabilities
|
1524000 | |
CY2019 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
1301000 | |
CY2017 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
1507000 | |
CY2019 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
654000 | |
CY2018 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
418000 | |
CY2017 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
288000 | |
CY2019Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
24893000 | |
CY2018Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
13692000 | |
CY2019 | us-gaap |
Interest Expense
InterestExpense
|
||
CY2018 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
19506000 | |
CY2018 | us-gaap |
Interest Expense
InterestExpense
|
2000 | |
CY2017 | us-gaap |
Interest Expense
InterestExpense
|
21000 | |
CY2019Q4 | us-gaap |
Inventory Finished Goods
InventoryFinishedGoods
|
23032000 | |
CY2018Q4 | us-gaap |
Inventory Finished Goods
InventoryFinishedGoods
|
16391000 | |
CY2019Q4 | us-gaap |
Inventory Raw Materials
InventoryRawMaterials
|
5359000 | |
CY2018Q4 | us-gaap |
Inventory Raw Materials
InventoryRawMaterials
|
4085000 | |
CY2019Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
6238000 | |
CY2018Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
5095000 | |
CY2019 | us-gaap |
Inventory Write Down
InventoryWriteDown
|
747000 | |
CY2018 | us-gaap |
Inventory Write Down
InventoryWriteDown
|
671000 | |
CY2017 | us-gaap |
Inventory Write Down
InventoryWriteDown
|
396000 | |
CY2019 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
698000 | |
CY2018 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
631000 | |
CY2017 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
179000 | |
CY2019 | us-gaap |
Lease Cost
LeaseCost
|
2047000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Discount Rate
LesseeOperatingLeaseDiscountRate
|
0.0525 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
|
10301000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
2419000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
1573000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
1686000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
1942000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
2351000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
4560000 | |
CY2019Q4 | us-gaap |
Liabilities
Liabilities
|
40200000 | |
CY2018Q4 | us-gaap |
Liabilities
Liabilities
|
22853000 | |
CY2019Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
188341000 | |
CY2018Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
153088000 | |
CY2019Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
20851000 | |
CY2018Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
19758000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-4622000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-4416000 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
80000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-24100000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-7055000 | |
CY2019Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
15208000 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-28958000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
14179000 | |
CY2018Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
||
CY2017 | us-gaap |
Net Income Loss
NetIncomeLoss
|
17177000 | |
CY2019Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
3513000 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
22868000 | |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
17934000 | |
CY2019Q4 | us-gaap |
Other Inventory Materials Supplies And Merchandise Under Consignment
OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment
|
1900000 | |
CY2018Q4 | us-gaap |
Other Inventory Materials Supplies And Merchandise Under Consignment
OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment
|
1700000 | |
CY2018 | us-gaap |
Net Income Loss
NetIncomeLoss
|
22943000 | |
CY2019Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
4624000 | |
CY2019Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
5184000 | |
CY2019Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
4613000 | |
CY2018Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
3853000 | |
CY2018Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
8751000 | |
CY2018Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
4314000 | |
CY2018Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
6025000 | |
CY2019Q4 | us-gaap |
Noncurrent Assets
NoncurrentAssets
|
30062000 | |
CY2018Q4 | us-gaap |
Noncurrent Assets
NoncurrentAssets
|
14102000 | |
CY2019 | us-gaap |
Number Of Operating Segments
NumberOfOperatingSegments
|
1 | |
CY2019 | us-gaap |
Operating Expenses
OperatingExpenses
|
58670000 | |
CY2018 | us-gaap |
Operating Expenses
OperatingExpenses
|
45730000 | |
CY2017 | us-gaap |
Operating Expenses
OperatingExpenses
|
49594000 | |
CY2019Q1 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
4435000 | |
CY2019Q2 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
5915000 | |
CY2019Q3 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
5905000 | |
CY2019Q4 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
4928000 | |
CY2018Q1 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
4862000 | |
CY2018Q2 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
11541000 | |
CY2018Q3 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
4613000 | |
CY2018Q4 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
7193000 | |
CY2019 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
21183000 | |
CY2018 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
28209000 | |
CY2017 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
21103000 | |
CY2019 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
1756000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
15712000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
1757000 | |
CY2018Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
||
CY2019Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
13955000 | |
CY2018Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
||
CY2019 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1858000 | |
CY2019Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.0525 | |
CY2019Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P8Y109D | |
CY2019Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
4421000 | |
CY2018Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
4352000 | |
CY2019Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
259000 | |
CY2018Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
194000 | |
CY2019 | us-gaap |
Other Comprehensive Income Availableforsale Securities Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
|
127000 | |
CY2018 | us-gaap |
Other Comprehensive Income Availableforsale Securities Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
|
15000 | |
CY2017 | us-gaap |
Other Comprehensive Income Availableforsale Securities Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent
|
||
CY2019 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
-234000 | |
CY2018 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
-1626000 | |
CY2017 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
2294000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-107000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-1611000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
2294000 | |
CY2019Q4 | us-gaap |
Other Inventory Capitalized Costs
OtherInventoryCapitalizedCosts
|
4898000 | |
CY2018Q4 | us-gaap |
Other Inventory Capitalized Costs
OtherInventoryCapitalizedCosts
|
1817000 | |
CY2018Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.01 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
3000000 | |
CY2019Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
4215000 | |
CY2018Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
2611000 | |
CY2018Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
3000000 | |
CY2019Q4 | us-gaap |
Other Sundry Liabilities Noncurrent
OtherSundryLiabilitiesNoncurrent
|
166000 | |
CY2018Q4 | us-gaap |
Other Sundry Liabilities Noncurrent
OtherSundryLiabilitiesNoncurrent
|
196000 | |
CY2019 | us-gaap |
Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
|
2059000 | |
CY2018 | us-gaap |
Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
|
1199000 | |
CY2017 | us-gaap |
Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
|
463000 | |
CY2019 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
683000 | |
CY2018 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
741000 | |
CY2017 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
778000 | |
CY2019 | us-gaap |
Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
|
6736000 | |
CY2018 | us-gaap |
Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
|
5445000 | |
CY2017 | us-gaap |
Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
|
4179000 | |
CY2019 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
21240000 | |
CY2018 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
12282000 | |
CY2017 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
||
CY2019 | us-gaap |
Payments To Acquire Productive Assets
PaymentsToAcquireProductiveAssets
|
3761000 | |
CY2018 | us-gaap |
Payments To Acquire Productive Assets
PaymentsToAcquireProductiveAssets
|
3054000 | |
CY2017 | us-gaap |
Payments To Acquire Productive Assets
PaymentsToAcquireProductiveAssets
|
6417000 | |
CY2019 | us-gaap |
Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
|
22699000 | |
CY2018 | us-gaap |
Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
|
19619000 | |
CY2017 | us-gaap |
Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
|
22541000 | |
CY2019Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.01 | |
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
|
||
CY2018Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
||
CY2019Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
3312000 | |
CY2018Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
2922000 | |
CY2019 | us-gaap |
Proceeds From Divestiture Of Businesses
ProceedsFromDivestitureOfBusinesses
|
||
CY2018 | us-gaap |
Proceeds From Divestiture Of Businesses
ProceedsFromDivestitureOfBusinesses
|
7400000 | |
CY2017 | us-gaap |
Proceeds From Divestiture Of Businesses
ProceedsFromDivestitureOfBusinesses
|
||
CY2019 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
4856000 | |
CY2018 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
2969000 | |
CY2017 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
5500000 | |
CY2019 | us-gaap |
Proceeds From Sale And Maturity Of Marketable Securities
ProceedsFromSaleAndMaturityOfMarketableSecurities
|
23600000 | |
CY2018 | us-gaap |
Proceeds From Sale And Maturity Of Marketable Securities
ProceedsFromSaleAndMaturityOfMarketableSecurities
|
20500000 | |
CY2017 | us-gaap |
Proceeds From Sale And Maturity Of Marketable Securities
ProceedsFromSaleAndMaturityOfMarketableSecurities
|
||
CY2019Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
32626000 | |
CY2018Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
29446000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
14854000 | |
CY2018Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
14102000 | |
CY2017 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
6636000 | |
CY2019 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
9276000 | |
CY2018 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
8197000 | |
CY2019 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
388000 | |
CY2018 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
264000 | |
CY2017 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
230000 | |
CY2019 | us-gaap |
Reclassification From Accumulated Other Comprehensive Income Current Period Net Of Tax
ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
|
0 | |
CY2018 | us-gaap |
Reclassification From Accumulated Other Comprehensive Income Current Period Net Of Tax
ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
|
0 | |
CY2017 | us-gaap |
Reclassification From Accumulated Other Comprehensive Income Current Period Net Of Tax
ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
|
0 | |
CY2019Q4 | us-gaap |
Recorded Unconditional Purchase Obligation
RecordedUnconditionalPurchaseObligation
|
1500000 | |
CY2019Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
57029000 | |
CY2018Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
45831000 | |
CY2019 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
117232000 | |
CY2018 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
105568000 | |
CY2019Q1 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
28479000 | |
CY2019Q2 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
29483000 | |
CY2019Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
29100000 | |
CY2019Q4 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
30170000 | |
CY2018Q1 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
25994000 | |
CY2018Q2 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
27020000 | |
CY2018Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
24165000 | |
CY2018Q4 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
28389000 | |
CY2019 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
117232000 | |
CY2018 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
105568000 | |
CY2017 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
100867000 | |
CY2019 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
10571000 | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P4Y113D | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
|
P4Y237D | |
CY2019 | us-gaap |
Short Term Lease Cost
ShortTermLeaseCost
|
291000 | |
CY2019 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
30339000 | |
CY2018 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
27318000 | |
CY2017 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
25948000 | |
CY2019 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
2642000 | |
CY2018 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
2349000 | |
CY2017 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
2256000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Additional Shares Authorized
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized
|
5500000 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Authorized
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
|
7118003 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Available For Grant
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
|
1089749 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
309501 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
19.64 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
11488292 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
|
101167 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
|
17.90 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
195379 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
12214422 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
13366595 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
1462575 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
1047094 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Period Increase Decrease
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingPeriodIncreaseDecrease
|
1047094 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
16.41 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
23.19 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
|
737593 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
|
24.68 | |
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
9.53 | |
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
35.53 | |
CY2019 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
509693 | |
CY2017 | us-gaap |
Stock Issued During Period Value Restricted Stock Award Net Of Forfeitures
StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
|
||
CY2018 | us-gaap |
Stock Issued During Period Value Restricted Stock Award Net Of Forfeitures
StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
|
||
CY2019 | us-gaap |
Stock Issued During Period Value Restricted Stock Award Net Of Forfeitures
StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
|
||
CY2017 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
5500000 | |
CY2018 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
2970000 | |
CY2019 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
4856000 | |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
148141000 | |
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
130235000 | |
CY2018Q4 | us-gaap |
Share Price
SharePrice
|
23.64 | |
CY2019Q4 | us-gaap |
Share Price
SharePrice
|
35.95 | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Expiration Period
SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
|
P10Y | |
CY2019Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Intrinsic Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
|
5046733 | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
|
P3Y182D | |
CY2018 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P4Y197D | |
CY2016Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
87500000 | |
CY2017Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
109770000 | |
CY2019Q4 | us-gaap |
Taxes Payable Current
TaxesPayableCurrent
|
1003000 | |
CY2018Q4 | us-gaap |
Taxes Payable Current
TaxesPayableCurrent
|
2927000 | |
CY2019Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
1522035 | |
CY2018Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
1501511 | |
CY2019Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
11032000 | |
CY2018Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
10349000 | |
CY2017 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
778000 | |
CY2018 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
741000 | |
CY2019 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
683000 | |
CY2019Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
848000 | |
CY2018Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
711000 | |
CY2017Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
525000 | |
CY2016Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
390000 | |
CY2019 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
|
||
CY2018 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
|
||
CY2017 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
|
||
CY2019 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
74000 | |
CY2017 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
18961000 | |
CY2018 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
73000 | |
CY2017 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
83000 | |
CY2019 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
63000 | |
CY2018 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
113000 | |
CY2017 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
57000 | |
CY2019 | us-gaap |
Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
|
||
CY2018 | us-gaap |
Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
|
||
CY2017 | us-gaap |
Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
|
5000 | |
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="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-bottom:0pt;margin-left:12.2pt;margin-right:0pt;margin-top:0pt;text-align:left;"><div style="display: inline; font-weight: bold;"><div style="display: inline; font-style: italic;">Estimates </div></div></div> <div style=" font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"> </div> <div style=" font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;text-indent:24.5pt;">The preparation of financial statements in conformity with U.S. generally accepted accounting principles (GAAP) requires us to make estimates and assumptions that affect the amounts reported in our consolidated financial statements and accompanying notes. Our estimates and assumptions, including those related to bad debts, inventory and other deferred costs, intangible assets, sales returns and discounts, and income taxes are reviewed on an ongoing basis and updated as appropriate. Actual results could differ from those estimates.</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div> | |
CY2019 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
513000 | |
CY2018 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
816000 | |
CY2017 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
1072000 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
20326000 | |
CY2018 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
20242000 | |
CY2017 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
20033000 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
19813000 | |
CY2018 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
19426000 |