2019 Q4 Form 10-K Financial Statement
#000070360421000035 Filed on February 26, 2021
Income Statement
Concept | 2019 Q4 | 2019 | 2018 Q4 |
---|---|---|---|
Revenue | $88.60M | $370.8M | $86.30M |
YoY Change | 2.67% | 6.05% | 7.03% |
Cost Of Revenue | $41.80M | $173.4M | $40.20M |
YoY Change | 3.98% | 8.33% | 19.64% |
Gross Profit | $46.80M | $197.4M | $46.10M |
YoY Change | 1.52% | 4.12% | -1.9% |
Gross Profit Margin | 52.82% | 53.23% | 53.42% |
Selling, General & Admin | $51.10M | $188.3M | $42.00M |
YoY Change | 21.67% | 4.41% | -10.26% |
% of Gross Profit | 109.19% | 95.41% | 91.11% |
Research & Development | |||
YoY Change | |||
% of Gross Profit | |||
Depreciation & Amortization | $1.490M | $5.893M | $1.740M |
YoY Change | -14.37% | -14.03% | -4.92% |
% of Gross Profit | 3.18% | 2.99% | 3.77% |
Operating Expenses | $51.30M | $188.3M | $42.00M |
YoY Change | 22.14% | 4.41% | -10.26% |
Operating Profit | -$4.500M | $9.066M | $4.100M |
YoY Change | -209.76% | -1.56% | 2024.35% |
Interest Expense | -$100.0K | $603.0K | -$300.0K |
YoY Change | -66.67% | -40.24% | 50.0% |
% of Operating Profit | 6.65% | -7.32% | |
Other Income/Expense, Net | $400.0K | $1.211M | -$1.000M |
YoY Change | -140.0% | -190.51% | 400.0% |
Pretax Income | -$4.300M | $5.418M | $2.800M |
YoY Change | -253.57% | -20.78% | -1500.0% |
Income Tax | -$1.300M | $2.453M | $200.0K |
% Of Pretax Income | 45.28% | 7.14% | |
Net Earnings | -$3.000M | $7.221M | $2.600M |
YoY Change | -215.38% | 16.21% | -87.15% |
Net Earnings / Revenue | -3.39% | 1.95% | 3.01% |
Basic Earnings Per Share | $0.81 | ||
Diluted Earnings Per Share | -$0.17 | $0.77 | $0.14 |
COMMON SHARES | |||
Basic Shares Outstanding | 8.968M shares | 8.920M shares | |
Diluted Shares Outstanding | 9.376M shares |
Balance Sheet
Concept | 2019 Q4 | 2019 | 2018 Q4 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $5.500M | $5.495M | $11.90M |
YoY Change | -53.78% | -53.76% | 170.45% |
Cash & Equivalents | $5.495M | $5.495M | $11.88M |
Short-Term Investments | |||
Other Short-Term Assets | $800.0K | $802.0K | $800.0K |
YoY Change | 0.0% | 0.25% | 0.0% |
Inventory | $55.91M | $55.91M | $52.89M |
Prepaid Expenses | |||
Receivables | $38.84M | $38.84M | $37.68M |
Other Receivables | $5.400M | $5.377M | $3.600M |
Total Short-Term Assets | $106.4M | $106.4M | $106.9M |
YoY Change | -0.45% | -0.45% | 8.59% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $16.55M | $27.79M | $23.55M |
YoY Change | -29.74% | 18.02% | -13.85% |
Goodwill | $20.92M | $20.08M | |
YoY Change | 4.2% | 2.37% | |
Intangibles | $12.34M | $13.11M | |
YoY Change | -5.93% | 11.0% | |
Long-Term Investments | $8.548M | ||
YoY Change | |||
Other Assets | $277.0K | $36.96M | $307.0K |
YoY Change | -9.77% | 10.33% | 23.79% |
Total Long-Term Assets | $98.01M | $98.01M | $90.24M |
YoY Change | 8.61% | 8.61% | -2.62% |
TOTAL ASSETS | |||
Total Short-Term Assets | $106.4M | $106.4M | $106.9M |
Total Long-Term Assets | $98.01M | $98.01M | $90.24M |
Total Assets | $204.4M | $204.4M | $197.1M |
YoY Change | 3.7% | 3.7% | 3.16% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $13.79M | $13.79M | $15.21M |
YoY Change | -9.32% | -9.32% | 22.7% |
Accrued Expenses | $39.31M | $30.68M | $40.18M |
YoY Change | -2.16% | 9.23% | 21.61% |
Deferred Revenue | |||
YoY Change | |||
Short-Term Debt | $0.00 | $0.00 | $10.80M |
YoY Change | -100.0% | -100.0% | -25.52% |
Long-Term Debt Due | $200.0K | $239.0K | |
YoY Change | -80.2% | ||
Total Short-Term Liabilities | $56.93M | $56.93M | $66.21M |
YoY Change | -14.01% | -14.01% | 10.39% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $2.600M | $2.642M | $0.00 |
YoY Change | |||
Other Long-Term Liabilities | $3.325M | $30.67M | $4.106M |
YoY Change | -19.02% | 5.76% | -27.91% |
Total Long-Term Liabilities | $3.325M | $33.31M | $4.106M |
YoY Change | -19.02% | 14.87% | -27.91% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $56.93M | $56.93M | $66.21M |
Total Long-Term Liabilities | $3.325M | $33.31M | $4.106M |
Total Liabilities | $96.43M | $96.43M | $97.97M |
YoY Change | -1.57% | -1.57% | 0.36% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $86.50M | $77.34M | |
YoY Change | 11.84% | 8.24% | |
Common Stock | $27.27M | $24.63M | |
YoY Change | 10.71% | 12.33% | |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $5.761M | $1.234M | |
YoY Change | 366.86% | 73.56% | |
Treasury Stock Shares | 146.4K shares | 49.79K shares | |
Shareholders Equity | $108.0M | $108.0M | $99.17M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $204.4M | $204.4M | $197.1M |
YoY Change | 3.7% | 3.7% | 3.16% |
Cashflow Statement
Concept | 2019 Q4 | 2019 | 2018 Q4 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | -$3.000M | $7.221M | $2.600M |
YoY Change | -215.38% | 16.21% | -87.15% |
Depreciation, Depletion And Amortization | $1.490M | $5.893M | $1.740M |
YoY Change | -14.37% | -14.03% | -4.92% |
Cash From Operating Activities | $1.160M | $9.196M | $10.13M |
YoY Change | -88.55% | -54.7% | 206.04% |
INVESTING ACTIVITIES | |||
Capital Expenditures | $640.0K | $2.028M | $890.0K |
YoY Change | -28.09% | -19.65% | 2866.67% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | $0.00 | $0.00 | -$5.150M |
YoY Change | -100.0% | -100.0% | -84.05% |
Cash From Investing Activities | -$640.0K | -$2.028M | -$6.050M |
YoY Change | -89.42% | -74.1% | -81.28% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | $4.527M | ||
YoY Change | 765.58% | ||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -3.720M | -$13.89M | 120.0K |
YoY Change | -3200.0% | 209.35% | -99.17% |
NET CHANGE | |||
Cash From Operating Activities | 1.160M | $9.196M | 10.13M |
Cash From Investing Activities | -640.0K | -$2.028M | -6.050M |
Cash From Financing Activities | -3.720M | -$13.89M | 120.0K |
Net Change In Cash | -3.200M | -$6.386M | 4.200M |
YoY Change | -176.19% | -180.05% | -128.71% |
FREE CASH FLOW | |||
Cash From Operating Activities | $1.160M | $9.196M | $10.13M |
Capital Expenditures | $640.0K | $2.028M | $890.0K |
Free Cash Flow | $520.0K | $7.168M | $9.240M |
YoY Change | -94.37% | -59.67% | 181.71% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2020 | dei |
Entity Central Index Key
EntityCentralIndexKey
|
0000703604 | |
CY2020 | dei |
Document Period End Date
DocumentPeriodEndDate
|
2020-12-31 | |
CY2020 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | |
CY2020 | dei |
Amendment Flag
AmendmentFlag
|
false | |
CY2020 | dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2020 | |
CY2020 | dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
FY | |
CY2019Q1 | us-gaap |
Accounting Standards Update Extensible List
AccountingStandardsUpdateExtensibleList
|
us-gaap:AccountingStandardsUpdate201602Member | |
CY2019Q4 | us-gaap |
Operating Lease Liability Current Statement Of Financial Position Extensible List
OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
|
laws:LeaseLiabilityCurrent | |
CY2019Q4 | us-gaap |
Finance Lease Liability Current Statement Of Financial Position Extensible List
FinanceLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
|
laws:LeaseLiabilityCurrent | |
CY2020Q4 | us-gaap |
Finance Lease Liability Current Statement Of Financial Position Extensible List
FinanceLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
|
laws:LeaseLiabilityCurrent | |
CY2020Q4 | us-gaap |
Operating Lease Liability Current Statement Of Financial Position Extensible List
OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
|
laws:LeaseLiabilityCurrent | |
CY2019Q4 | us-gaap |
Finance Lease Liability Noncurrent Statement Of Financial Position Extensible List
FinanceLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList
|
laws:LeaseLiabilityNoncurrent | |
CY2020Q4 | us-gaap |
Operating Lease Liability Noncurrent Statement Of Financial Position Extensible List
OperatingLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList
|
laws:LeaseLiabilityNoncurrent | |
CY2019Q4 | us-gaap |
Operating Lease Liability Noncurrent Statement Of Financial Position Extensible List
OperatingLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList
|
laws:LeaseLiabilityNoncurrent | |
CY2020Q4 | us-gaap |
Finance Lease Liability Noncurrent Statement Of Financial Position Extensible List
FinanceLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList
|
laws:LeaseLiabilityNoncurrent | |
CY2020 | dei |
Document Type
DocumentType
|
10-K | |
CY2020 | dei |
Document Annual Report
DocumentAnnualReport
|
true | |
CY2020 | dei |
Document Period End Date
DocumentPeriodEndDate
|
2020-12-31 | |
CY2020 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | |
CY2020 | dei |
Entity Address Address Line2
EntityAddressAddressLine2
|
Suite 900 | |
CY2020 | dei |
Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
|
No | |
CY2020 | dei |
Document Transition Report
DocumentTransitionReport
|
false | |
CY2020 | dei |
Entity File Number
EntityFileNumber
|
0-10546 | |
CY2020 | dei |
Entity Registrant Name
EntityRegistrantName
|
LAWSON PRODUCTS, INC. | |
CY2020 | dei |
Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
|
DE | |
CY2020 | dei |
Entity Tax Identification Number
EntityTaxIdentificationNumber
|
36-2229304 | |
CY2020 | dei |
Entity Address Address Line1
EntityAddressAddressLine1
|
8770 W. Bryn Mawr Avenue | |
CY2020 | dei |
Entity Address City Or Town
EntityAddressCityOrTown
|
Chicago | |
CY2020 | dei |
Entity Address State Or Province
EntityAddressStateOrProvince
|
IL | |
CY2020 | dei |
Entity Address Postal Zip Code
EntityAddressPostalZipCode
|
60631 | |
CY2020 | dei |
City Area Code
CityAreaCode
|
773 | |
CY2020 | dei |
Local Phone Number
LocalPhoneNumber
|
304-5050 | |
CY2020 | dei |
Security12b Title
Security12bTitle
|
Common Stock, $1.00 par value | |
CY2020 | dei |
Trading Symbol
TradingSymbol
|
LAWS | |
CY2020 | dei |
Security Exchange Name
SecurityExchangeName
|
NASDAQ | |
CY2020 | dei |
Entity Voluntary Filers
EntityVoluntaryFilers
|
No | |
CY2020 | dei |
Entity Current Reporting Status
EntityCurrentReportingStatus
|
Yes | |
CY2020 | dei |
Entity Interactive Data Current
EntityInteractiveDataCurrent
|
Yes | |
CY2020 | dei |
Entity Filer Category
EntityFilerCategory
|
Accelerated Filer | |
CY2020 | dei |
Entity Small Business
EntitySmallBusiness
|
true | |
CY2020 | dei |
Entity Emerging Growth Company
EntityEmergingGrowthCompany
|
false | |
CY2020 | dei |
Icfr Auditor Attestation Flag
IcfrAuditorAttestationFlag
|
true | |
CY2020 | dei |
Entity Shell Company
EntityShellCompany
|
false | |
CY2020Q2 | dei |
Entity Public Float
EntityPublicFloat
|
141259000 | USD |
CY2021Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
9061039 | shares |
CY2020Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
28393000 | USD |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
5495000 | USD |
CY2020Q4 | us-gaap |
Restricted Cash And Cash Equivalents At Carrying Value
RestrictedCashAndCashEquivalentsAtCarryingValue
|
998000 | USD |
CY2019Q4 | us-gaap |
Restricted Cash And Cash Equivalents At Carrying Value
RestrictedCashAndCashEquivalentsAtCarryingValue
|
802000 | USD |
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
654000 | USD |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
593000 | USD |
CY2020Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
44515000 | USD |
CY2019Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
38843000 | USD |
CY2020Q4 | us-gaap |
Inventory Net
InventoryNet
|
61867000 | USD |
CY2019Q4 | us-gaap |
Inventory Net
InventoryNet
|
55905000 | USD |
CY2020Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
7289000 | USD |
CY2019Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
5377000 | USD |
CY2020Q4 | us-gaap |
Assets Current
AssetsCurrent
|
143062000 | USD |
CY2019Q4 | us-gaap |
Assets Current
AssetsCurrent
|
106422000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
15800000 | USD |
CY2019Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
16546000 | USD |
CY2020Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
18482000 | USD |
CY2019Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
21711000 | USD |
CY2020Q4 | us-gaap |
Goodwill
Goodwill
|
35176000 | USD |
CY2019Q4 | us-gaap |
Goodwill
Goodwill
|
20923000 | USD |
CY2020Q4 | us-gaap |
Cash Surrender Value Of Life Insurance
CashSurrenderValueOfLifeInsurance
|
16185000 | USD |
CY2019Q4 | us-gaap |
Cash Surrender Value Of Life Insurance
CashSurrenderValueOfLifeInsurance
|
14969000 | USD |
CY2020Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
18503000 | USD |
CY2020Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
332000 | USD |
CY2019Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
12335000 | USD |
CY2020Q4 | laws |
Lease Assets Rightof Use Asset
LeaseAssetsRightofUseAsset
|
8764000 | USD |
CY2019Q4 | laws |
Lease Assets Rightof Use Asset
LeaseAssetsRightofUseAsset
|
11246000 | USD |
CY2019Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
277000 | USD |
CY2020Q4 | us-gaap |
Assets
Assets
|
256304000 | USD |
CY2019Q4 | us-gaap |
Assets
Assets
|
204429000 | USD |
CY2020Q4 | laws |
Acquisition Liability
AcquisitionLiability
|
32673000 | USD |
CY2019Q4 | laws |
Acquisition Liability
AcquisitionLiability
|
0 | USD |
CY2020Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
22262000 | USD |
CY2019Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
13789000 | USD |
CY2020Q4 | laws |
Lease Liability Current
LeaseLiabilityCurrent
|
4568000 | USD |
CY2019Q4 | laws |
Lease Liability Current
LeaseLiabilityCurrent
|
3830000 | USD |
CY2020Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
38492000 | USD |
CY2019Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
39311000 | USD |
CY2020Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
97995000 | USD |
CY2019Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
56930000 | USD |
CY2020Q4 | us-gaap |
Secured Long Term Debt
SecuredLongTermDebt
|
0 | USD |
CY2019Q4 | us-gaap |
Secured Long Term Debt
SecuredLongTermDebt
|
2271000 | USD |
CY2020Q4 | laws |
Security Bonus Liability Long Term
SecurityBonusLiabilityLongTerm
|
11262000 | USD |
CY2019Q4 | laws |
Security Bonus Liability Long Term
SecurityBonusLiabilityLongTerm
|
11840000 | USD |
CY2020Q4 | laws |
Lease Liability Noncurrent
LeaseLiabilityNoncurrent
|
5738000 | USD |
CY2019Q4 | laws |
Lease Liability Noncurrent
LeaseLiabilityNoncurrent
|
9504000 | USD |
CY2020Q4 | us-gaap |
Deferred Compensation Liability Classified Noncurrent
DeferredCompensationLiabilityClassifiedNoncurrent
|
10461000 | USD |
CY2019Q4 | us-gaap |
Deferred Compensation Liability Classified Noncurrent
DeferredCompensationLiabilityClassifiedNoncurrent
|
6370000 | USD |
CY2020Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
2841000 | USD |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
6188000 | USD |
CY2020Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
5585000 | USD |
CY2019Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
3325000 | USD |
CY2020Q4 | us-gaap |
Liabilities
Liabilities
|
133882000 | USD |
CY2019Q4 | us-gaap |
Liabilities
Liabilities
|
96428000 | USD |
CY2020Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
USD | |
CY2019Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
USD | |
CY2020Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
1 | |
CY2019Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
1 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
500000 | shares |
CY2020Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
500000 | shares |
CY2020Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | shares |
CY2019Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | shares |
CY2019Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | shares |
CY2020Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | shares |
CY2020Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | USD |
CY2019Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | USD |
CY2019Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
1 | |
CY2020Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
1 | |
CY2019Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
35000000 | shares |
CY2020Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
35000000 | shares |
CY2020Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
9287625 | shares |
CY2019Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
9190171 | shares |
CY2020Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
9061039 | shares |
CY2019Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
9043771 | shares |
CY2020Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
9288000 | USD |
CY2019Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
9190000 | USD |
CY2020Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
19841000 | USD |
CY2019Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
18077000 | USD |
CY2020Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
101609000 | USD |
CY2019Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
86496000 | USD |
CY2020Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
226586 | shares |
CY2019Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
146400 | shares |
CY2020Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
9015000 | USD |
CY2019Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
5761000 | USD |
CY2020Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
699000 | USD |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-1000 | USD |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
122422000 | USD |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
108001000 | USD |
CY2020Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
256304000 | USD |
CY2019Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
204429000 | USD |
CY2020 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
351591000 | USD |
CY2019 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
370785000 | USD |
CY2020 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
165053000 | USD |
CY2019 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
173431000 | USD |
CY2020 | us-gaap |
Gross Profit
GrossProfit
|
186538000 | USD |
CY2019 | us-gaap |
Gross Profit
GrossProfit
|
197354000 | USD |
CY2020 | us-gaap |
Selling Expense
SellingExpense
|
76775000 | USD |
CY2019 | us-gaap |
Selling Expense
SellingExpense
|
85342000 | USD |
CY2020 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
89213000 | USD |
CY2019 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
102946000 | USD |
CY2020 | us-gaap |
Operating Expenses
OperatingExpenses
|
165988000 | USD |
CY2019 | us-gaap |
Operating Expenses
OperatingExpenses
|
188288000 | USD |
CY2020 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
20550000 | USD |
CY2019 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
9066000 | USD |
CY2020 | us-gaap |
Interest Expense
InterestExpense
|
654000 | USD |
CY2019 | us-gaap |
Interest Expense
InterestExpense
|
603000 | USD |
CY2020 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
889000 | USD |
CY2019 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
1211000 | USD |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
20785000 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
9674000 | USD |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
5672000 | USD |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
2453000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
15113000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
7221000 | USD |
CY2020 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.68 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.81 | |
CY2020 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.62 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.77 | |
CY2020 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
9020000 | shares |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
8968000 | shares |
CY2020 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
311000 | shares |
CY2019 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
408000 | shares |
CY2020 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
9331000 | shares |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
9376000 | shares |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
15113000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
7221000 | USD |
CY2020 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
700000 | USD |
CY2019 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
1559000 | USD |
CY2020 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
15813000 | USD |
CY2019 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
8780000 | USD |
CY2019Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
1 | |
CY2018Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
1 | |
CY2020Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
1 | |
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
99173000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
7221000 | USD |
CY2019 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
1559000 | USD |
CY2019 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
2638000 | USD |
CY2019 | us-gaap |
Stock Issued During Period Value New Issues
StockIssuedDuringPeriodValueNewIssues
|
0 | USD |
CY2019 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
4527000 | USD |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
108001000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
15113000 | USD |
CY2020 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
700000 | USD |
CY2020 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
1847000 | USD |
CY2020 | us-gaap |
Stock Issued During Period Value New Issues
StockIssuedDuringPeriodValueNewIssues
|
15000 | USD |
CY2020 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
3254000 | USD |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
122422000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
15113000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
7221000 | USD |
CY2020 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
6701000 | USD |
CY2019 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
5893000 | USD |
CY2020 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
1479000 | USD |
CY2019 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
4054000 | USD |
CY2020 | us-gaap |
Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
|
167000 | USD |
CY2019 | us-gaap |
Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
|
-2169000 | USD |
CY2020 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
1918000 | USD |
CY2019 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
0 | USD |
CY2020 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-1762000 | USD |
CY2019 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
1380000 | USD |
CY2020 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
-2100000 | USD |
CY2019 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
2308000 | USD |
CY2020 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
2899000 | USD |
CY2019 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
3890000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
5788000 | USD |
CY2019 | us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
-3230000 | USD |
CY2020 | us-gaap |
Increase Decrease In Other Operating Capital Net
IncreaseDecreaseInOtherOperatingCapitalNet
|
-733000 | USD |
CY2019 | us-gaap |
Increase Decrease In Other Operating Capital Net
IncreaseDecreaseInOtherOperatingCapitalNet
|
-667000 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
32528000 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
9196000 | USD |
CY2020 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
1687000 | USD |
CY2019 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
2028000 | USD |
CY2020 | us-gaap |
Payments To Acquire Businesses Gross
PaymentsToAcquireBusinessesGross
|
2300000 | USD |
CY2019 | us-gaap |
Payments To Acquire Businesses Gross
PaymentsToAcquireBusinessesGross
|
0 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-3987000 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-2028000 | USD |
CY2020 | us-gaap |
Proceeds From Repayments Of Lines Of Credit
ProceedsFromRepaymentsOfLinesOfCredit
|
-2271000 | USD |
CY2019 | us-gaap |
Proceeds From Repayments Of Lines Of Credit
ProceedsFromRepaymentsOfLinesOfCredit
|
-8552000 | USD |
CY2020 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
3254000 | USD |
CY2019 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
4527000 | USD |
CY2020 | us-gaap |
Payments Of Financing Costs
PaymentsOfFinancingCosts
|
0 | USD |
CY2019 | us-gaap |
Payments Of Financing Costs
PaymentsOfFinancingCosts
|
573000 | USD |
CY2020 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
257000 | USD |
CY2019 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
271000 | USD |
CY2020 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
15000 | USD |
CY2019 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
33000 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-5767000 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-13890000 | USD |
CY2020 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
320000 | USD |
CY2019 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
336000 | USD |
CY2020 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
23094000 | USD |
CY2019 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
-6386000 | USD |
CY2019Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
6297000 | USD |
CY2018Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
12683000 | USD |
CY2020Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
29391000 | USD |
CY2019Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
6297000 | USD |
CY2020Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
28393000 | USD |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
5495000 | USD |
CY2020Q4 | us-gaap |
Restricted Cash And Cash Equivalents At Carrying Value
RestrictedCashAndCashEquivalentsAtCarryingValue
|
998000 | USD |
CY2019Q4 | us-gaap |
Restricted Cash And Cash Equivalents At Carrying Value
RestrictedCashAndCashEquivalentsAtCarryingValue
|
802000 | USD |
CY2020Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
29391000 | USD |
CY2019Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
6297000 | USD |
CY2020 | us-gaap |
Noncash Or Part Noncash Acquisition Value Of Liabilities Assumed1
NoncashOrPartNoncashAcquisitionValueOfLiabilitiesAssumed1
|
32673000 | USD |
CY2019 | us-gaap |
Noncash Or Part Noncash Acquisition Value Of Liabilities Assumed1
NoncashOrPartNoncashAcquisitionValueOfLiabilitiesAssumed1
|
0 | USD |
CY2020 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
5377000 | USD |
CY2019 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
947000 | USD |
CY2020 | us-gaap |
Interest Paid Net
InterestPaidNet
|
398000 | USD |
CY2019 | us-gaap |
Interest Paid Net
InterestPaidNet
|
590000 | USD |
CY2020 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
2 | segment |
CY2020 | us-gaap |
Capitalized Computer Software Amortization1
CapitalizedComputerSoftwareAmortization1
|
600000 | USD |
CY2020 | us-gaap |
Depreciation
Depreciation
|
4400000 | USD |
CY2019 | us-gaap |
Depreciation
Depreciation
|
3900000 | USD |
CY2019 | us-gaap |
Capitalized Computer Software Amortization1
CapitalizedComputerSoftwareAmortization1
|
600000 | USD |
CY2020Q4 | us-gaap |
Goodwill
Goodwill
|
35200000 | USD |
CY2019Q4 | us-gaap |
Goodwill
Goodwill
|
20900000 | USD |
CY2019 | us-gaap |
Impairment Of Long Lived Assets Held For Use
ImpairmentOfLongLivedAssetsHeldForUse
|
0 | USD |
CY2020 | us-gaap |
Impairment Of Long Lived Assets Held For Use
ImpairmentOfLongLivedAssetsHeldForUse
|
0 | USD |
CY2020 | us-gaap |
Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
|
47504 | shares |
CY2019 | us-gaap |
Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
|
32362 | shares |
CY2020 | us-gaap |
Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
|
32682 | shares |
CY2019 | us-gaap |
Shares Paid For Tax Withholding For Share Based Compensation
SharesPaidForTaxWithholdingForShareBasedCompensation
|
64252 | shares |
CY2020 | us-gaap |
Use Of Estimates
UseOfEstimates
|
Preparation of financial statements in conformity with accounting principles generally accepted in the United States requires management to make estimates and assumptions that affect the amounts reported for service revenue, service cost, allowance for doubtful accounts, inventory reserves, goodwill and intangible assets valuation, and income taxes in the consolidated financial statements and accompanying notes. Actual results could differ from these estimates. | |
CY2020Q3 | laws |
Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Right Of Use Assets
BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets
|
620000 | USD |
CY2020 | us-gaap |
Business Acquisitions Pro Forma Revenue
BusinessAcquisitionsProFormaRevenue
|
396679000 | USD |
CY2019 | us-gaap |
Business Acquisitions Pro Forma Revenue
BusinessAcquisitionsProFormaRevenue
|
435486000 | USD |
CY2020 | us-gaap |
Business Acquisitions Pro Forma Net Income Loss
BusinessAcquisitionsProFormaNetIncomeLoss
|
16535000 | USD |
CY2019 | us-gaap |
Business Acquisitions Pro Forma Net Income Loss
BusinessAcquisitionsProFormaNetIncomeLoss
|
7277000 | USD |
us-gaap |
Operating Lease Lease Income
OperatingLeaseLeaseIncome
|
900000 | USD | |
CY2020Q4 | us-gaap |
Inventory Gross
InventoryGross
|
67137000 | USD |
CY2019Q4 | us-gaap |
Inventory Gross
InventoryGross
|
60500000 | USD |
CY2020Q4 | us-gaap |
Inventory Valuation Reserves
InventoryValuationReserves
|
5270000 | USD |
CY2019Q4 | us-gaap |
Inventory Valuation Reserves
InventoryValuationReserves
|
4595000 | USD |
CY2020Q4 | us-gaap |
Inventory Net
InventoryNet
|
61867000 | USD |
CY2019Q4 | us-gaap |
Inventory Net
InventoryNet
|
55905000 | USD |
CY2019Q4 | us-gaap |
Goodwill
Goodwill
|
20923000 | USD |
CY2020 | us-gaap |
Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
|
355000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
74870000 | USD |
CY2019Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
71137000 | USD |
CY2020Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
59070000 | USD |
CY2019Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
54591000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
15800000 | USD |
CY2019Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
16546000 | USD |
CY2018Q4 | us-gaap |
Goodwill
Goodwill
|
20079000 | USD |
CY2019 | us-gaap |
Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
|
854000 | USD |
CY2019 | us-gaap |
Goodwill Transfers
GoodwillTransfers
|
-10000 | USD |
CY2020 | us-gaap |
Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
|
15816000 | USD |
CY2020 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
1918000 | USD |
CY2020Q4 | us-gaap |
Goodwill
Goodwill
|
35176000 | USD |
CY2020 | us-gaap |
Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
|
15800000 | USD |
CY2020 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
1900000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
23638000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
5135000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
18503000 | USD |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
15759000 | USD |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
3424000 | USD |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
12335000 | USD |
CY2020 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
1700000 | USD |
CY2019 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
1300000 | USD |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
20785000 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
4256000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
2662000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
2457000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
2343000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
2247000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
1983000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
|
6811000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
18503000 | USD |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
16226000 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
5418000 | USD |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
4559000 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
9674000 | USD |
CY2020 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
3858000 | USD |
CY2019 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
0 | USD |
CY2020 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
710000 | USD |
CY2019 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
136000 | USD |
CY2020 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
1288000 | USD |
CY2019 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
291000 | USD |
CY2020 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
5856000 | USD |
CY2019 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
427000 | USD |
CY2020 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
236000 | USD |
CY2019 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
2012000 | USD |
CY2020 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
52000 | USD |
CY2019 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
303000 | USD |
CY2020 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
-472000 | USD |
CY2019 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
-289000 | USD |
CY2020 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-184000 | USD |
CY2019 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
2026000 | USD |
CY2020 | us-gaap |
Federal Income Tax Expense Benefit Continuing Operations
FederalIncomeTaxExpenseBenefitContinuingOperations
|
4094000 | USD |
CY2019 | us-gaap |
Federal Income Tax Expense Benefit Continuing Operations
FederalIncomeTaxExpenseBenefitContinuingOperations
|
2012000 | USD |
CY2020 | us-gaap |
State And Local Income Tax Expense Benefit Continuing Operations
StateAndLocalIncomeTaxExpenseBenefitContinuingOperations
|
762000 | USD |
CY2019 | us-gaap |
State And Local Income Tax Expense Benefit Continuing Operations
StateAndLocalIncomeTaxExpenseBenefitContinuingOperations
|
439000 | USD |
CY2020 | us-gaap |
Foreign Income Tax Expense Benefit Continuing Operations
ForeignIncomeTaxExpenseBenefitContinuingOperations
|
816000 | USD |
CY2019 | us-gaap |
Foreign Income Tax Expense Benefit Continuing Operations
ForeignIncomeTaxExpenseBenefitContinuingOperations
|
2000 | USD |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
5672000 | USD |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
2453000 | USD |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-0.022 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-0.045 | |
CY2020 | laws |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance Reversal Percent
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowanceReversalPercent
|
0 | |
CY2019 | laws |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance Reversal Percent
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowanceReversalPercent
|
-0.136 | |
CY2020 | laws |
Effective Income Tax Rate Reconciliation Capital Loss Percent
EffectiveIncomeTaxRateReconciliationCapitalLossPercent
|
0 | |
CY2019 | laws |
Effective Income Tax Rate Reconciliation Capital Loss Percent
EffectiveIncomeTaxRateReconciliationCapitalLossPercent
|
0.136 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
|
-0.020 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
|
-0.115 | |
CY2020 | laws |
Effective Income Tax Rate Reconciliation Compensation Deduction Limitation Percent
EffectiveIncomeTaxRateReconciliationCompensationDeductionLimitationPercent
|
0.015 | |
CY2019 | laws |
Effective Income Tax Rate Reconciliation Compensation Deduction Limitation Percent
EffectiveIncomeTaxRateReconciliationCompensationDeductionLimitationPercent
|
0.101 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.038 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.045 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Repatriation Of Foreign Earnings
EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings
|
0 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Repatriation Of Foreign Earnings
EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings
|
0.031 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
|
0.006 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
|
0.018 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Contingencies Other
EffectiveIncomeTaxRateReconciliationTaxContingenciesOther
|
0.046 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Contingencies Other
EffectiveIncomeTaxRateReconciliationTaxContingenciesOther
|
-0.010 | |
CY2019 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.254 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards Domestic
DeferredTaxAssetsOperatingLossCarryforwardsDomestic
|
7200000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits
|
9947000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
1772000 | USD |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Settlements Other
EffectiveIncomeTaxRateReconciliationTaxSettlementsOther
|
-0.001 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Settlements Other
EffectiveIncomeTaxRateReconciliationTaxSettlementsOther
|
0.002 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
0.001 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
0.017 | |
CY2020 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.273 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards State And Local
DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal
|
7700000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
1200000 | USD |
CY2020Q4 | us-gaap |
Business Acquisition Purchase Price Allocation Goodwill Expected Tax Deductible Amount
BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount
|
35200000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
5431000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
7786000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefits
|
10980000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
1589000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
167000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
152000 | USD |
CY2020Q4 | laws |
Deferred Tax Assets Lease Assets
DeferredTaxAssetsLeaseAssets
|
1061000 | USD |
CY2019Q4 | laws |
Deferred Tax Assets Lease Assets
DeferredTaxAssetsLeaseAssets
|
3326000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
329000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
146000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
19740000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
22946000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
1948000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
2360000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Leasing Arrangements
DeferredTaxLiabilitiesLeasingArrangements
|
1366000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Leasing Arrangements
DeferredTaxLiabilitiesLeasingArrangements
|
2850000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
-975000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
353000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
|
503000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
|
625000 | USD |
CY2020Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
2842000 | USD |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
6188000 | USD |
CY2020Q4 | laws |
Deferred Tax Assets Net Of Deferred Tax Liabilities Before Valuation Allowance
DeferredTaxAssetsNetOfDeferredTaxLiabilitiesBeforeValuationAllowance
|
16898000 | USD |
CY2019Q4 | laws |
Deferred Tax Assets Net Of Deferred Tax Liabilities Before Valuation Allowance
DeferredTaxAssetsNetOfDeferredTaxLiabilitiesBeforeValuationAllowance
|
16758000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
1257000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
1235000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
15641000 | USD |
CY2019Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
15523000 | USD |
CY2019Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
3242000 | USD |
CY2018Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
3612000 | USD |
CY2020 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
15000 | USD |
CY2019 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
13000 | USD |
CY2020 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
1413000 | USD |
CY2019 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
121000 | USD |
CY2020 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
|
0 | USD |
CY2019 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
|
29000 | USD |
CY2020 | us-gaap |
Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
|
984000 | USD |
CY2019 | us-gaap |
Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
|
475000 | USD |
CY2020Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
3686000 | USD |
CY2019Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
3242000 | USD |
CY2020Q4 | us-gaap |
Accrued Employee Benefits Current
AccruedEmployeeBenefitsCurrent
|
14437000 | USD |
CY2019Q4 | us-gaap |
Accrued Employee Benefits Current
AccruedEmployeeBenefitsCurrent
|
14908000 | USD |
CY2020Q4 | us-gaap |
Accrued Salaries Current
AccruedSalariesCurrent
|
9794000 | USD |
CY2019Q4 | us-gaap |
Accrued Salaries Current
AccruedSalariesCurrent
|
9238000 | USD |
CY2020Q4 | us-gaap |
Accrual For Taxes Other Than Income Taxes Current
AccrualForTaxesOtherThanIncomeTaxesCurrent
|
3788000 | USD |
CY2019Q4 | us-gaap |
Accrual For Taxes Other Than Income Taxes Current
AccrualForTaxesOtherThanIncomeTaxesCurrent
|
4387000 | USD |
CY2020Q4 | us-gaap |
Accrued Bonuses Current
AccruedBonusesCurrent
|
240000 | USD |
CY2019Q4 | us-gaap |
Accrued Bonuses Current
AccruedBonusesCurrent
|
916000 | USD |
CY2020Q4 | laws |
Accrued Severance Current
AccruedSeveranceCurrent
|
1103000 | USD |
CY2019Q4 | laws |
Accrued Severance Current
AccruedSeveranceCurrent
|
778000 | USD |
CY2020Q4 | us-gaap |
Deferred Revenue
DeferredRevenue
|
822000 | USD |
CY2019Q4 | us-gaap |
Deferred Revenue
DeferredRevenue
|
648000 | USD |
CY2020Q4 | laws |
Accrued Health Benefits
AccruedHealthBenefits
|
732000 | USD |
CY2019Q4 | laws |
Accrued Health Benefits
AccruedHealthBenefits
|
578000 | USD |
CY2020Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
7576000 | USD |
CY2019Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
7858000 | USD |
CY2020Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
38492000 | USD |
CY2019Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
39311000 | USD |
CY2020 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
4999000 | USD |
CY2019 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
4729000 | USD |
CY2020 | us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
226000 | USD |
CY2019 | us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
206000 | USD |
CY2020 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
28000 | USD |
CY2019 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
30000 | USD |
CY2020 | laws |
Finance Lease Cost
FinanceLeaseCost
|
254000 | USD |
CY2019 | laws |
Finance Lease Cost
FinanceLeaseCost
|
236000 | USD |
CY2020 | us-gaap |
Sublease Income
SubleaseIncome
|
0 | USD |
CY2019 | us-gaap |
Sublease Income
SubleaseIncome
|
160000 | USD |
CY2020 | us-gaap |
Lease Cost
LeaseCost
|
5253000 | USD |
CY2019 | us-gaap |
Lease Cost
LeaseCost
|
4805000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
8246000 | USD |
CY2019Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
10592000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Right Of Use Asset
FinanceLeaseRightOfUseAsset
|
518000 | USD |
CY2019Q4 | us-gaap |
Finance Lease Right Of Use Asset
FinanceLeaseRightOfUseAsset
|
654000 | USD |
CY2020Q4 | laws |
Lease Assets Rightof Use Asset
LeaseAssetsRightofUseAsset
|
8764000 | USD |
CY2019Q4 | laws |
Lease Assets Rightof Use Asset
LeaseAssetsRightofUseAsset
|
11246000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
4360000 | USD |
CY2019Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
3591000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
|
208000 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
|
239000 | USD |
CY2020Q4 | laws |
Lease Liability Current
LeaseLiabilityCurrent
|
4568000 | USD |
CY2019Q4 | laws |
Lease Liability Current
LeaseLiabilityCurrent
|
3830000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
5498000 | USD |
CY2019Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
9133000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
|
240000 | USD |
CY2019Q4 | us-gaap |
Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
|
371000 | USD |
CY2020Q4 | laws |
Lease Liability Noncurrent
LeaseLiabilityNoncurrent
|
5738000 | USD |
CY2019Q4 | laws |
Lease Liability Noncurrent
LeaseLiabilityNoncurrent
|
9504000 | USD |
CY2020 | us-gaap |
Operating Lease Right Of Use Asset Amortization Expense
OperatingLeaseRightOfUseAssetAmortizationExpense
|
5900000 | USD |
CY2019 | us-gaap |
Operating Lease Right Of Use Asset Amortization Expense
OperatingLeaseRightOfUseAssetAmortizationExpense
|
1200000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Right Of Use Asset Accumulated Amortization
FinanceLeaseRightOfUseAssetAccumulatedAmortization
|
400000 | USD |
CY2019Q4 | us-gaap |
Finance Lease Right Of Use Asset Accumulated Amortization
FinanceLeaseRightOfUseAssetAccumulatedAmortization
|
200000 | USD |
CY2020Q4 | laws |
Net Lease Liability Payments Remainderof Fiscal Year
NetLeaseLiabilityPaymentsRemainderofFiscalYear
|
4938000 | USD |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
3212000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Payments Due Year Two
FinanceLeaseLiabilityPaymentsDueYearTwo
|
143000 | USD |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
4719000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Payments Due Next Twelve Months
FinanceLeaseLiabilityPaymentsDueNextTwelveMonths
|
219000 | USD |
CY2020Q4 | laws |
Net Lease Liability Payments Due Year Two
NetLeaseLiabilityPaymentsDueYearTwo
|
3355000 | USD |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
1471000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Payments Due Year Three
FinanceLeaseLiabilityPaymentsDueYearThree
|
89000 | USD |
CY2020Q4 | laws |
Net Lease Liability Payments Due Year Three
NetLeaseLiabilityPaymentsDueYearThree
|
1560000 | USD |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
509000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Payments Due Year Four
FinanceLeaseLiabilityPaymentsDueYearFour
|
25000 | USD |
CY2020Q4 | laws |
Net Lease Liability Payments Due Year Four
NetLeaseLiabilityPaymentsDueYearFour
|
534000 | USD |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
168000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Payments Due Year Five
FinanceLeaseLiabilityPaymentsDueYearFive
|
0 | USD |
CY2020Q4 | laws |
Net Lease Liabilities Payments Due Year Five
NetLeaseLiabilitiesPaymentsDueYearFive
|
168000 | USD |
CY2020Q4 | laws |
Net Lease Liability Payments Dueafter Year Five
NetLeaseLiabilityPaymentsDueafterYearFive
|
462000 | USD |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
|
462000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Payments Due After Year Five
FinanceLeaseLiabilityPaymentsDueAfterYearFive
|
0 | USD |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
683000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Undiscounted Excess Amount
FinanceLeaseLiabilityUndiscountedExcessAmount
|
28000 | USD |
CY2020Q4 | laws |
Net Lease Liability Imputed Interest
NetLeaseLiabilityImputedInterest
|
711000 | USD |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
10541000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Payments Due
FinanceLeaseLiabilityPaymentsDue
|
476000 | USD |
CY2020Q4 | laws |
Net Lease Liability Payments Due
NetLeaseLiabilityPaymentsDue
|
11017000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
9858000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability
FinanceLeaseLiability
|
448000 | USD |
CY2020Q4 | laws |
Net Lease Liability Present Value
NetLeaseLiabilityPresentValue
|
10306000 | USD |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
10500000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P2Y10M24D | |
CY2020Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.052 | |
CY2020Q4 | us-gaap |
Finance Lease Weighted Average Remaining Lease Term1
FinanceLeaseWeightedAverageRemainingLeaseTerm1
|
P2Y6M | |
CY2020Q4 | us-gaap |
Finance Lease Weighted Average Discount Rate Percent
FinanceLeaseWeightedAverageDiscountRatePercent
|
0.053 | |
CY2020 | laws |
Operatingcashflowsfromoperatingleases
Operatingcashflowsfromoperatingleases
|
4256000 | USD |
CY2020 | laws |
Operatingcashflowfromfinancingleases
Operatingcashflowfromfinancingleases
|
28000 | USD |
CY2020 | laws |
Financingcashflowfromfinancingleases
Financingcashflowfromfinancingleases
|
257000 | USD |
CY2020 | laws |
Potential Sharesfrom Msu Grants
PotentialSharesfromMSUGrants
|
32472 | shares |
CY2020 | laws |
Ms Us Exchangedfor Shares
MSUsExchangedforShares
|
24035 | shares |
us-gaap |
Operating Lease Lease Income
OperatingLeaseLeaseIncome
|
900000 | USD | |
CY2020Q4 | laws |
Business Combination Consideration Liability Interest Rate
BusinessCombinationConsiderationLiabilityInterestRate
|
0.018 | |
CY2020Q4 | us-gaap |
Accrual For Environmental Loss Contingencies
AccrualForEnvironmentalLossContingencies
|
100000 | USD |
CY2020 | us-gaap |
Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
|
2900000 | USD |
CY2019 | us-gaap |
Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
|
3200000 | USD |
CY2020 | laws |
Defined Contribution Retirement Plan Discretionary Employer Contribution
DefinedContributionRetirementPlanDiscretionaryEmployerContribution
|
200000 | USD |
CY2019 | laws |
Defined Contribution Retirement Plan Discretionary Employer Contribution
DefinedContributionRetirementPlanDiscretionaryEmployerContribution
|
400000 | USD |
CY2020 | us-gaap |
Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
|
200000 | USD |
CY2020Q4 | us-gaap |
Cash Surrender Value Fair Value Disclosure
CashSurrenderValueFairValueDisclosure
|
6900000 | USD |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Share Based Liabilities Paid
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsShareBasedLiabilitiesPaid
|
500000 | USD |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Share Based Liabilities Paid
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsShareBasedLiabilitiesPaid
|
13400000 | USD |
CY2019Q4 | laws |
Msu Outstanding Balance
MSUOutstandingBalance
|
139643 | shares |
CY2019Q4 | laws |
Potential Sharesfrom Ms Us Outstanding
PotentialSharesfromMSUsOutstanding
|
199303 | shares |
CY2020 | laws |
Msu Grants
MSUGrants
|
21648 | shares |
CY2020 | laws |
Shares Issued On Vestingof Ms Us
SharesIssuedOnVestingofMSUs
|
36052 | shares |
CY2020Q4 | laws |
Msu Outstanding Balance
MSUOutstandingBalance
|
137256 | shares |
CY2020Q4 | laws |
Potential Sharesfrom Ms Us Outstanding
PotentialSharesfromMSUsOutstanding
|
195723 | shares |
CY2020Q4 | us-gaap |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized Stock Options
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
|
0 | USD |
CY2020Q4 | us-gaap |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Number Of Outstanding Options
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
|
80000 | shares |
CY2020 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
27.70 | |
CY2020 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
351591000 | USD |
CY2019 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
370785000 | USD |
CY2020 | us-gaap |
Gross Profit
GrossProfit
|
186538000 | USD |
CY2019 | us-gaap |
Gross Profit
GrossProfit
|
197354000 | USD |
CY2020 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
20550000 | USD |
CY2019 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
9066000 | USD |
CY2020 | us-gaap |
Interest Expense
InterestExpense
|
654000 | USD |
CY2019 | us-gaap |
Interest Expense
InterestExpense
|
603000 | USD |
CY2020 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
889000 | USD |
CY2019 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
1211000 | USD |
CY2019 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
2028000 | USD |
CY2020 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
6701000 | USD |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
20785000 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
9674000 | USD |
CY2020 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
1687000 | USD |
CY2019 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
5893000 | USD |
CY2020Q4 | us-gaap |
Equity Method Investments
EquityMethodInvestments
|
8719000 | USD |
CY2019Q4 | us-gaap |
Stock Repurchase Program Authorized Amount1
StockRepurchaseProgramAuthorizedAmount1
|
7500000 | USD |
CY2019Q4 | us-gaap |
Equity Method Investments
EquityMethodInvestments
|
8548000 | USD |
CY2020Q4 | us-gaap |
Assets
Assets
|
256304000 | USD |
CY2019Q4 | us-gaap |
Assets
Assets
|
204429000 | USD |
CY2020 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
351591000 | USD |
CY2019 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
370785000 | USD |
CY2020Q4 | us-gaap |
Noncurrent Assets
NoncurrentAssets
|
78575000 | USD |
CY2019Q4 | us-gaap |
Noncurrent Assets
NoncurrentAssets
|
61327000 | USD |
CY2020 | us-gaap |
Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
|
47504 | shares |
CY2020Q4 | us-gaap |
Stock Repurchase Program Authorized Amount1
StockRepurchaseProgramAuthorizedAmount1
|
4500000 | USD |
CY2020 | us-gaap |
Related Party Transaction Expenses From Transactions With Related Party
RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty
|
900000 | USD |
CY2020Q1 | laws |
Social Security Tax Employer Deferral Cares Act
SocialSecurityTaxEmployerDeferralCARESAct
|
3500000 | USD |
CY2020 | laws |
Canada Emergency Wage Subsidy
CanadaEmergencyWageSubsidy
|
1400000 | USD |
CY2019 | us-gaap |
Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
|
32362 | shares |
CY2020 | us-gaap |
Treasury Stock Acquired Average Cost Per Share
TreasuryStockAcquiredAverageCostPerShare
|
36.93 | |
CY2019 | us-gaap |
Treasury Stock Acquired Average Cost Per Share
TreasuryStockAcquiredAverageCostPerShare
|
38.13 |