2019 Q4 Form 10-K Financial Statement

#000117184320001695 Filed on March 13, 2020

View on sec.gov

Income Statement

Concept 2019 Q4 2018 Q4 2018 Q3
Revenue $50.26M $50.70M $47.81M
YoY Change -0.86% 36.21% 33.98%
Cost Of Revenue $36.49M $37.99M $35.38M
YoY Change -3.95% 29.31% 28.69%
Gross Profit $13.77M $12.71M $12.43M
YoY Change 8.37% 62.13% 51.73%
Gross Profit Margin 27.4% 25.06% 26.0%
Selling, General & Admin $7.030M $7.210M $6.541M
YoY Change -2.5% 24.74% 14.9%
% of Gross Profit 51.05% 56.74% 52.62%
Research & Development
YoY Change
% of Gross Profit
Depreciation & Amortization $2.050M $2.010M $1.950M
YoY Change 1.99% 36.73% 42.34%
% of Gross Profit 14.89% 15.82% 15.69%
Operating Expenses $7.030M $7.210M $6.541M
YoY Change -2.5% 24.74% 14.9%
Operating Profit $6.740M $5.496M $5.885M
YoY Change 22.63% 167.19% 135.4%
Interest Expense -$80.00K -$290.0K $355.0K
YoY Change -72.41% -583.33% 2858.33%
% of Operating Profit -1.19% -5.28% 6.03%
Other Income/Expense, Net $70.00K -$70.00K $85.00K
YoY Change -200.0%
Pretax Income $6.740M $5.140M $5.627M
YoY Change 31.13% 142.45% 120.58%
Income Tax $960.0K $730.0K $1.493M
% Of Pretax Income 14.24% 14.2% 26.53%
Net Earnings $5.780M $4.410M $4.134M
YoY Change 31.07% 62.13% 143.89%
Net Earnings / Revenue 11.5% 8.7% 8.65%
Basic Earnings Per Share $0.78 $0.60 $0.56
Diluted Earnings Per Share $0.77 $0.59 $0.56
COMMON SHARES
Basic Shares Outstanding 7.366M
Diluted Shares Outstanding 7.435M

Balance Sheet

Concept 2019 Q4 2018 Q4 2018 Q3
SHORT-TERM ASSETS
Cash & Short-Term Investments $3.700M $3.200M $5.100M
YoY Change 15.63% -91.58% -86.29%
Cash & Equivalents $3.743M $3.238M $5.088M
Short-Term Investments
Other Short-Term Assets $2.300M $2.200M $2.200M
YoY Change 4.55% 22.22% 0.0%
Inventory $18.28M $19.58M $19.90M
Prepaid Expenses $2.304M $2.206M $2.219M
Receivables $28.65M $28.32M $30.10M
Other Receivables $300.0K $2.300M $1.000M
Total Short-Term Assets $53.25M $55.63M $58.32M
YoY Change -4.27% -25.91% -22.9%
LONG-TERM ASSETS
Property, Plant & Equipment $56.74M $57.67M $58.46M
YoY Change -1.61% 7.48% 12.46%
Goodwill $51.84M $51.84M $51.84M
YoY Change 0.0% 607.98% 607.98%
Intangibles $20.98M $22.23M $22.55M
YoY Change -5.65% 28439.24%
Long-Term Investments
YoY Change
Other Assets $147.0K $201.0K $275.0K
YoY Change -26.87% 39.58% -86.71%
Total Long-Term Assets $135.5M $134.0M $135.4M
YoY Change 1.15% 112.21% 120.4%
TOTAL ASSETS
Total Short-Term Assets $53.25M $55.63M $58.32M
Total Long-Term Assets $135.5M $134.0M $135.4M
Total Assets $188.8M $189.6M $193.8M
YoY Change -0.44% 37.18% 41.34%
SHORT-TERM LIABILITIES
YoY Change
Accounts Payable $4.577M $6.836M $7.970M
YoY Change -33.05% 63.54% 60.75%
Accrued Expenses $8.483M $8.458M $6.569M
YoY Change 0.3% 54.74% 22.65%
Deferred Revenue $2.574M $2.507M $3.918M
YoY Change 2.67% 744.11%
Short-Term Debt $0.00 $0.00 $0.00
YoY Change
Long-Term Debt Due $2.857M $2.857M
YoY Change 3301.19%
Total Short-Term Liabilities $16.78M $20.66M $21.31M
YoY Change -18.75% 107.76% 104.98%
LONG-TERM LIABILITIES
Long-Term Debt $22.29M $31.00M
YoY Change
Other Long-Term Liabilities $334.0K $24.00K $65.00K
YoY Change 1291.67% -70.73% -44.92%
Total Long-Term Liabilities $334.0K $22.31M $31.07M
YoY Change -98.5% 27107.32% 26226.27%
TOTAL LIABILITIES
Total Short-Term Liabilities $16.78M $20.66M $21.31M
Total Long-Term Liabilities $334.0K $22.31M $31.07M
Total Liabilities $26.77M $49.14M $57.96M
YoY Change -45.53% 239.02% 258.28%
SHAREHOLDERS EQUITY
Retained Earnings $131.6M $111.8M $107.4M
YoY Change 17.67% 14.6% 13.23%
Common Stock $74.00K $74.00K $74.00K
YoY Change 0.0% 1.37% 1.37%
Preferred Stock
YoY Change
Treasury Stock (at cost) $587.0K $587.0K $587.0K
YoY Change 0.0% 0.0% 0.0%
Treasury Stock Shares $29.56K $29.56K $29.56K
Shareholders Equity $162.0M $140.5M $135.8M
YoY Change
Total Liabilities & Shareholders Equity $188.8M $189.6M $193.8M
YoY Change -0.44% 37.18% 41.34%

Cashflow Statement

Concept 2019 Q4 2018 Q4 2018 Q3
OPERATING ACTIVITIES
Net Income $5.780M $4.410M $4.134M
YoY Change 31.07% 62.13% 143.89%
Depreciation, Depletion And Amortization $2.050M $2.010M $1.950M
YoY Change 1.99% 36.73% 42.34%
Cash From Operating Activities $8.840M $7.770M $6.100M
YoY Change 13.77% 74.22% 20.08%
INVESTING ACTIVITIES
Capital Expenditures -$1.400M -$910.0K -$1.530M
YoY Change 53.85% -74.0% -36.51%
Acquisitions
YoY Change
Other Investing Activities $0.00 $0.00 $10.00K
YoY Change
Cash From Investing Activities -$1.390M -$910.0K -$1.520M
YoY Change 52.75% -74.07% -36.67%
FINANCING ACTIVITIES
Cash Dividend Paid
YoY Change
Common Stock Issuance & Retirement, Net
YoY Change
Debt Paid & Issued, Net
YoY Change
Cash From Financing Activities -15.10M -8.710M -5.410M
YoY Change 73.36% 3686.96% -9116.67%
NET CHANGE
Cash From Operating Activities 8.840M 7.770M 6.100M
Cash From Investing Activities -1.390M -910.0K -1.520M
Cash From Financing Activities -15.10M -8.710M -5.410M
Net Change In Cash -7.650M -1.850M -830.0K
YoY Change 313.51% -356.94% -130.29%
FREE CASH FLOW
Cash From Operating Activities $8.840M $7.770M $6.100M
Capital Expenditures -$1.400M -$910.0K -$1.530M
Free Cash Flow $10.24M $8.680M $7.630M
YoY Change 17.97% 9.05% 1.87%

Facts In Submission

Frame Concept Type Concept / XBRL Key Value Unit
CY2019 dei Entity Filer Category
EntityFilerCategory
Accelerated Filer
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
0000914156
CY2020Q1 dei Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
7463260
CY2019 dei Entity Current Reporting Status
EntityCurrentReportingStatus
Yes
CY2019 dei Entity Emerging Growth Company
EntityEmergingGrowthCompany
false
CY2019 dei Entity Interactive Data Current
EntityInteractiveDataCurrent
Yes
CY2019Q2 dei Entity Public Float
EntityPublicFloat
279729924
CY2019 dei Entity Registrant Name
EntityRegistrantName
UFP TECHNOLOGIES INC
CY2019 dei Entity Shell Company
EntityShellCompany
false
CY2019 dei Entity Small Business
EntitySmallBusiness
true
CY2019 dei Entity Voluntary Filers
EntityVoluntaryFilers
No
CY2019 dei Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
No
CY2019 dei Security12b Title
Security12bTitle
Common Stock
CY2019 dei Trading Symbol
TradingSymbol
ufpt
CY2019Q4 ufpt Aggregate Deferred Tax Liabilities Noncurrent
AggregateDeferredTaxLiabilitiesNoncurrent
4921000
CY2018Q4 ufpt Aggregate Deferred Tax Liabilities Noncurrent
AggregateDeferredTaxLiabilitiesNoncurrent
4129000
CY2019 ufpt Cashless Exercise Of Stock Options
CashlessExerciseOfStockOptions
0
CY2018 ufpt Cashless Exercise Of Stock Options
CashlessExerciseOfStockOptions
0
CY2017 ufpt Cashless Exercise Of Stock Options
CashlessExerciseOfStockOptions
172000
CY2019 ufpt Contract With Customer Asset Increase Decrease For Unbilled Revenue Recognized
ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized
831000
CY2018 ufpt Contract With Customer Asset Increase Decrease For Unbilled Revenue Recognized
ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized
301000
CY2019 ufpt Contract With Customer Liability Increase Due To Consideration Received From Customers
ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers
3216000
CY2018 ufpt Contract With Customer Liability Increase Due To Consideration Received From Customers
ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers
4188000
CY2018 ufpt Cumulative Effects Of New Accounting Principle In Period Of Adoption
CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption
-71000
CY2019Q4 ufpt Deferred Tax Assets Lease Liability
DeferredTaxAssetsLeaseLiability
795000
CY2018Q4 ufpt Deferred Tax Assets Lease Liability
DeferredTaxAssetsLeaseLiability
11000
CY2019Q4 ufpt Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Current
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent
578000
CY2018Q4 ufpt Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Current
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent
447000
CY2019Q4 ufpt Deferred Tax Liabilities Right Of Use Asset
DeferredTaxLiabilitiesRightOfUseAsset
781000
CY2018Q4 ufpt Deferred Tax Liabilities Right Of Use Asset
DeferredTaxLiabilitiesRightOfUseAsset
CY2019 ufpt Effective Income Tax Rate Reconciliation Tax Benefits From Sharebased Compensation Cost Percent
EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent
-0.007
CY2018 ufpt Effective Income Tax Rate Reconciliation Tax Benefits From Sharebased Compensation Cost Percent
EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent
-0.013
CY2017 ufpt Effective Income Tax Rate Reconciliation Tax Benefits From Sharebased Compensation Cost Percent
EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent
-0.014
CY2019Q4 ufpt Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Year Three
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree
409000
CY2019Q4 ufpt Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Year Two
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo
746000
CY2019 ufpt Effective Income Tax Rate Reconciliation Unrecognized Tax Benefits Adjustments
EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments
-0.007
CY2018 ufpt Effective Income Tax Rate Reconciliation Unrecognized Tax Benefits Adjustments
EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments
CY2017 ufpt Effective Income Tax Rate Reconciliation Unrecognized Tax Benefits Adjustments
EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments
CY2019Q4 ufpt Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Next Twelve Months
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths
1115000
CY2019Q4 ufpt Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Year Four
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour
48000
CY2019 ufpt Proceeds From Stock Options Exercised Net
ProceedsFromStockOptionsExercisedNet
705000
CY2018 ufpt Proceeds From Stock Options Exercised Net
ProceedsFromStockOptionsExercisedNet
1270000
CY2017 ufpt Proceeds From Stock Options Exercised Net
ProceedsFromStockOptionsExercisedNet
677000
CY2019 ufpt Revenue From Contract With Customer Including Assessed Tax Percentage
RevenueFromContractWithCustomerIncludingAssessedTaxPercentage
1
CY2018 ufpt Revenue From Contract With Customer Including Assessed Tax Percentage
RevenueFromContractWithCustomerIncludingAssessedTaxPercentage
1
CY2017 ufpt Revenue From Contract With Customer Including Assessed Tax Percentage
RevenueFromContractWithCustomerIncludingAssessedTaxPercentage
1
CY2019 ufpt Self Iinsured Health Insurance Program Stop Loss Amount
SelfIinsuredHealthInsuranceProgramStopLossAmount
225000
CY2019Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
4577000
CY2018Q4 us-gaap Accounts Payable Current
AccountsPayableCurrent
6836000
CY2019Q4 us-gaap Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
29134000
CY2018Q4 us-gaap Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
28885000
CY2019Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
28648000
CY2018Q4 us-gaap Accounts Receivable Net Current
AccountsReceivableNetCurrent
28321000
CY2019Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
8483000
CY2018Q4 us-gaap Accrued Liabilities Current
AccruedLiabilitiesCurrent
8458000
CY2019Q4 us-gaap Accrued Salaries Current
AccruedSalariesCurrent
3961000
CY2018Q4 us-gaap Accrued Salaries Current
AccruedSalariesCurrent
3542000
CY2019Q4 us-gaap Accrued Vacation Current
AccruedVacationCurrent
1315000
CY2018Q4 us-gaap Accrued Vacation Current
AccruedVacationCurrent
1131000
CY2019Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
59350000
CY2018Q4 us-gaap Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
54112000
CY2019Q4 us-gaap Additional Paid In Capital
AdditionalPaidInCapital
30952000
CY2018Q4 us-gaap Additional Paid In Capital
AdditionalPaidInCapital
29168000
CY2017 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
296000
CY2018 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
144000
CY2019 us-gaap Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
512000
CY2018 us-gaap Adjustments To Additional Paid In Capital Tax Effect From Share Based Compensation
AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
167000
CY2019Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
486000
CY2018Q4 us-gaap Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
564000
CY2019 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
1300000
CY2018 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
1200000
CY2017 us-gaap Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
300000
CY2019 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
16536
CY2018 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
10344
CY2017 us-gaap Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
27336
CY2019Q4 us-gaap Assets
Assets
188758000
CY2018Q4 us-gaap Assets
Assets
189598000
CY2019Q4 us-gaap Assets Current
AssetsCurrent
53250000
CY2018Q4 us-gaap Assets Current
AssetsCurrent
55626000
CY2019Q4 us-gaap Business Acquisition Purchase Price Allocation Goodwill Expected Tax Deductible Amount
BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount
47900000
CY2019 us-gaap Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
CY2018 us-gaap Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
1089000
CY2017 us-gaap Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
CY2019 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
213000
CY2018 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
218000
CY2017 us-gaap Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
85000
CY2018Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
3238000
CY2017Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
37978000
CY2016Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
31359000
CY2019Q4 us-gaap Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
3743000
CY2019 us-gaap Cash And Cash Equivalents Period Increase Decrease
CashAndCashEquivalentsPeriodIncreaseDecrease
505000
CY2018 us-gaap Cash And Cash Equivalents Period Increase Decrease
CashAndCashEquivalentsPeriodIncreaseDecrease
-34740000
CY2017 us-gaap Cash And Cash Equivalents Period Increase Decrease
CashAndCashEquivalentsPeriodIncreaseDecrease
6619000
CY2019Q4 us-gaap Cash Equivalents At Carrying Value
CashEquivalentsAtCarryingValue
0
CY2018Q4 us-gaap Cash Equivalents At Carrying Value
CashEquivalentsAtCarryingValue
0
CY2019Q4 us-gaap Cash Uninsured Amount
CashUninsuredAmount
4700000
CY2019Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
CY2018Q4 us-gaap Commitments And Contingencies
CommitmentsAndContingencies
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
20000000
CY2018Q4 us-gaap Common Stock Shares Authorized
CommonStockSharesAuthorized
20000000
CY2019Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
7475768
CY2018Q4 us-gaap Common Stock Shares Issued
CommonStockSharesIssued
7415002
CY2019Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
7446209
CY2018Q4 us-gaap Common Stock Shares Outstanding
CommonStockSharesOutstanding
7385443
CY2019Q4 us-gaap Common Stock Value
CommonStockValue
74000
CY2018Q4 us-gaap Common Stock Value
CommonStockValue
74000
CY2017 us-gaap Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
3668000
CY2019 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
185000
CY2018 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
439000
CY2018Q4 us-gaap Contract With Customer Asset Net
ContractWithCustomerAssetNet
65000
CY2017Q4 us-gaap Contract With Customer Asset Net
ContractWithCustomerAssetNet
CY2019Q4 us-gaap Contract With Customer Asset Net
ContractWithCustomerAssetNet
72000
CY2019 us-gaap Contract With Customer Asset Reclassified To Receivable
ContractWithCustomerAssetReclassifiedToReceivable
824000
CY2018 us-gaap Contract With Customer Asset Reclassified To Receivable
ContractWithCustomerAssetReclassifiedToReceivable
236000
CY2018Q4 us-gaap Contract With Customer Liability
ContractWithCustomerLiability
2507000
CY2017Q4 us-gaap Contract With Customer Liability
ContractWithCustomerLiability
871000
CY2019Q4 us-gaap Contract With Customer Liability
ContractWithCustomerLiability
2574000
CY2019Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
2574000
CY2018Q4 us-gaap Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
2507000
CY2019 us-gaap Contract With Customer Liability Increase Decrease For Contract Acquired In Business Combination
ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
CY2018 us-gaap Contract With Customer Liability Increase Decrease For Contract Acquired In Business Combination
ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
2175000
CY2019 us-gaap Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
3149000
CY2018 us-gaap Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
4727000
CY2019 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
144422000
CY2018 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
142147000
CY2017 us-gaap Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
112356000
CY2019 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
2920000
CY2018 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
1772000
CY2017 us-gaap Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
3117000
CY2019 us-gaap Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
3105000
CY2018 us-gaap Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
2211000
CY2019Q1 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.50
CY2017 us-gaap Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
551000
CY2019Q4 us-gaap Deferred Compensation Liability Classified Noncurrent
DeferredCompensationLiabilityClassifiedNoncurrent
2788000
CY2018Q4 us-gaap Deferred Compensation Liability Classified Noncurrent
DeferredCompensationLiabilityClassifiedNoncurrent
2044000
CY2019Q4 us-gaap Deferred Compensation Plan Assets
DeferredCompensationPlanAssets
2775000
CY2018Q4 us-gaap Deferred Compensation Plan Assets
DeferredCompensationPlanAssets
2034000
CY2019 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
485000
CY2018 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
1917000
CY2017 us-gaap Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
-1091000
CY2019 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
792000
CY2018 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
1881000
CY2017 us-gaap Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
-1019000
CY2019Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
7666000
CY2018Q4 us-gaap Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
6065000
CY2019Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
4921000
CY2018Q4 us-gaap Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
4129000
CY2019 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
306000
CY2018 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
-36000
CY2017 us-gaap Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
72000
CY2019Q4 us-gaap Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
73000
CY2018Q4 us-gaap Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
141000
CY2019Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
2881000
CY2018Q4 us-gaap Deferred Tax Assets Gross
DeferredTaxAssetsGross
1936000
CY2019Q4 us-gaap Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
396000
CY2018Q4 us-gaap Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
421000
CY2019Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
2745000
CY2018Q4 us-gaap Deferred Tax Assets Net
DeferredTaxAssetsNet
1936000
CY2019Q4 us-gaap Deferred Tax Assets Tax Credit Carryforwards
DeferredTaxAssetsTaxCreditCarryforwards
274000
CY2018Q4 us-gaap Deferred Tax Assets Tax Credit Carryforwards
DeferredTaxAssetsTaxCreditCarryforwards
257000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Postretirement Benefits
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits
CY2018Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Postretirement Benefits
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits
2000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
403000
CY2018Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
290000
CY2019Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
362000
CY2018Q4 us-gaap Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
367000
CY2019Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
136000
CY2018Q4 us-gaap Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
CY2019Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
2008000
CY2018Q4 us-gaap Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
1397000
CY2019Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
4877000
CY2018Q4 us-gaap Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
4668000
CY2019Q4 us-gaap Defined Benefit Plan Assets For Plan Benefits Noncurrent
DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent
2800000
CY2018Q4 us-gaap Defined Benefit Plan Assets For Plan Benefits Noncurrent
DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent
2000000
CY2019 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
1000000
CY2018 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
1100000
CY2017 us-gaap Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
800000
CY2019 us-gaap Depreciation And Amortization
DepreciationAndAmortization
6900000
CY2018 us-gaap Depreciation And Amortization
DepreciationAndAmortization
6600000
CY2017 us-gaap Depreciation And Amortization
DepreciationAndAmortization
5300000
CY2019 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
8172000
CY2018 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
7831000
CY2017 us-gaap Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
5635000
CY2019Q2 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.62
CY2019Q3 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.76
CY2019Q4 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.78
CY2018Q1 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.24
CY2018Q2 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.54
CY2018Q3 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.56
CY2018Q4 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
0.60
CY2019 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
2.66
CY2018 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.95
CY2017 us-gaap Earnings Per Share Basic
EarningsPerShareBasic
1.27
CY2019Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.50
CY2019Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.62
CY2019Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.75
CY2019Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.76
CY2018Q1 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.24
CY2018Q2 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.54
CY2018Q3 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.56
CY2018Q4 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
0.59
CY2019 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
2.63
CY2018 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.93
CY2017 us-gaap Earnings Per Share Diluted
EarningsPerShareDiluted
1.26
CY2019 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.165
CY2018 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.222
CY2017 us-gaap Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
0.223
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.34
CY2019 us-gaap Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
0.001
CY2018 us-gaap Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
CY2017 us-gaap Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
CY2019 us-gaap Effective Income Tax Rate Reconciliation Change In Enacted Tax Rate
EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
CY2018 us-gaap Effective Income Tax Rate Reconciliation Change In Enacted Tax Rate
EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
CY2017 us-gaap Effective Income Tax Rate Reconciliation Change In Enacted Tax Rate
EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
-0.111
CY2019 us-gaap Effective Income Tax Rate Reconciliation Deductions Qualified Production Activities
EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities
CY2018 us-gaap Effective Income Tax Rate Reconciliation Deductions Qualified Production Activities
EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities
CY2017 us-gaap Effective Income Tax Rate Reconciliation Deductions Qualified Production Activities
EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities
0.026
CY2019 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
0.002
CY2018 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
0.002
CY2017 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
0.003
CY2019 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
CY2018 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
0.001
CY2017 us-gaap Effective Income Tax Rate Reconciliation Nondeductible Expense Share Based Compensation Cost
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
0.001
CY2019 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.004
CY2018 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.005
CY2017 us-gaap Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
0.001
CY2019 us-gaap Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
0.006
CY2018 us-gaap Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
0.008
CY2017 us-gaap Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
CY2019 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.018
CY2018 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.028
CY2017 us-gaap Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
0.035
CY2019 us-gaap Effective Income Tax Rate Reconciliation Tax Credits
EffectiveIncomeTaxRateReconciliationTaxCredits
0.062
CY2018 us-gaap Effective Income Tax Rate Reconciliation Tax Credits
EffectiveIncomeTaxRateReconciliationTaxCredits
0.019
CY2017 us-gaap Effective Income Tax Rate Reconciliation Tax Credits
EffectiveIncomeTaxRateReconciliationTaxCredits
0.006
CY2019Q4 us-gaap Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
2318000
CY2019Q1 us-gaap Finance Lease Liability
FinanceLeaseLiability
0
CY2019Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
2409000
CY2018Q4 us-gaap Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
1152000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
14868000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
1257000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
1164000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
1172000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
1257000
CY2019Q4 us-gaap Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
1257000
CY2019Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
23384000
CY2018Q4 us-gaap Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
23384000
CY2019Q4 us-gaap Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
20975000
CY2019 us-gaap Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
CY2018 us-gaap Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
47000
CY2017 us-gaap Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
-7000
CY2019 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
CY2018 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
47000
CY2017 us-gaap Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
-7000
CY2019Q4 us-gaap Goodwill
Goodwill
51838000
CY2018Q4 us-gaap Goodwill
Goodwill
51838000
CY2019Q1 us-gaap Gross Profit
GrossProfit
12497000
CY2019Q2 us-gaap Gross Profit
GrossProfit
14371000
CY2019Q3 us-gaap Gross Profit
GrossProfit
13321000
CY2019Q4 us-gaap Gross Profit
GrossProfit
13770000
CY2018Q1 us-gaap Gross Profit
GrossProfit
10185000
CY2018Q2 us-gaap Gross Profit
GrossProfit
12986000
CY2018Q3 us-gaap Gross Profit
GrossProfit
12431000
CY2018Q4 us-gaap Gross Profit
GrossProfit
12706000
CY2019 us-gaap Gross Profit
GrossProfit
53959000
CY2018 us-gaap Gross Profit
GrossProfit
48308000
CY2017 us-gaap Gross Profit
GrossProfit
35487000
CY2019 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
23646000
CY2018 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
18403000
CY2017 us-gaap Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
11859000
CY2019 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
3896000
CY2018 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
4092000
CY2017 us-gaap Income Tax Expense Benefit
IncomeTaxExpenseBenefit
2649000
CY2019 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
1255000
CY2018 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
3463000
CY2017 us-gaap Income Taxes Paid Net
IncomeTaxesPaidNet
3878000
CY2019Q4 us-gaap Income Taxes Receivable
IncomeTaxesReceivable
279000
CY2018Q4 us-gaap Income Taxes Receivable
IncomeTaxesReceivable
2285000
CY2019 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
-2472000
CY2018 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
1113000
CY2017 us-gaap Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
93000
CY2019 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
327000
CY2018 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
2556000
CY2017 us-gaap Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
132000
CY2019 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
25000
CY2018 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
1472000
CY2017 us-gaap Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
974000
CY2019 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
67000
CY2018 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
35000
CY2017 us-gaap Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
91000
CY2019 us-gaap Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
-2006000
CY2018 us-gaap Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
1268000
CY2017 us-gaap Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
210000
CY2019 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
-1300000
CY2018 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
2295000
CY2017 us-gaap Increase Decrease In Inventories
IncreaseDecreaseInInventories
-1288000
CY2019 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
-110000
CY2018 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
76000
CY2017 us-gaap Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
228000
CY2019 us-gaap Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
313000
CY2018 us-gaap Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
-44000
CY2017 us-gaap Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
246000
CY2019 us-gaap Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
98000
CY2018 us-gaap Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
249000
CY2017 us-gaap Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
-446000
CY2019 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
92000
CY2018 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
83000
CY2017 us-gaap Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
89000
CY2019Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
20975000
CY2018Q4 us-gaap Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
22232000
CY2019 us-gaap Interest Expense
InterestExpense
674000
CY2018 us-gaap Interest Expense
InterestExpense
1320000
CY2017 us-gaap Interest Expense
InterestExpense
50000
CY2019 us-gaap Interest Paid Net
InterestPaidNet
664000
CY2018 us-gaap Interest Paid Net
InterestPaidNet
1303000
CY2017 us-gaap Interest Paid Net
InterestPaidNet
47000
CY2019Q4 us-gaap Inventory Finished Goods Net Of Reserves
InventoryFinishedGoodsNetOfReserves
5457000
CY2018Q4 us-gaap Inventory Finished Goods Net Of Reserves
InventoryFinishedGoodsNetOfReserves
5328000
CY2019Q4 us-gaap Inventory Net
InventoryNet
18276000
CY2019 us-gaap Lease Cost
LeaseCost
1468000
CY2018Q4 us-gaap Inventory Net
InventoryNet
19576000
CY2019Q4 us-gaap Inventory Raw Materials Net Of Reserves
InventoryRawMaterialsNetOfReserves
10540000
CY2018Q4 us-gaap Inventory Raw Materials Net Of Reserves
InventoryRawMaterialsNetOfReserves
11727000
CY2019Q4 us-gaap Inventory Work In Process Net Of Reserves
InventoryWorkInProcessNetOfReserves
2279000
CY2018Q4 us-gaap Inventory Work In Process Net Of Reserves
InventoryWorkInProcessNetOfReserves
2521000
CY2019 us-gaap Investment Income Interest
InvestmentIncomeInterest
0
CY2018 us-gaap Investment Income Interest
InvestmentIncomeInterest
47000
CY2017 us-gaap Investment Income Interest
InvestmentIncomeInterest
216000
CY2019 us-gaap Lease And Rental Expense
LeaseAndRentalExpense
1200000
CY2018 us-gaap Lease And Rental Expense
LeaseAndRentalExpense
1200000
CY2017 us-gaap Lease And Rental Expense
LeaseAndRentalExpense
900000
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
3284000
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
1173000
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
36000
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
957000
CY2019Q4 us-gaap Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
1118000
CY2019Q4 us-gaap Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
194000
CY2019Q4 us-gaap Liabilities
Liabilities
26767000
CY2018Q4 us-gaap Liabilities
Liabilities
49141000
CY2019Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
188758000
CY2018Q4 us-gaap Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
189598000
CY2019Q4 us-gaap Liabilities Current
LiabilitiesCurrent
16308000
CY2018Q4 us-gaap Liabilities Current
LiabilitiesCurrent
20658000
CY2019Q4 us-gaap Long Term Debt
LongTermDebt
CY2018Q4 us-gaap Long Term Debt
LongTermDebt
25143000
CY2019Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
CY2018Q4 us-gaap Long Term Debt Current
LongTermDebtCurrent
2857000
CY2019Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
CY2018Q4 us-gaap Long Term Debt Noncurrent
LongTermDebtNoncurrent
22286000
CY2019 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-24950000
CY2018 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
26269000
CY2017 us-gaap Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
-475000
CY2019 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-5774000
CY2018 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-82329000
CY2017 us-gaap Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
-10375000
CY2019 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
31229000
CY2018 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
21320000
CY2017 us-gaap Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
17469000
CY2019 us-gaap Net Income Loss
NetIncomeLoss
19750000
CY2018 us-gaap Net Income Loss
NetIncomeLoss
14311000
CY2017 us-gaap Net Income Loss
NetIncomeLoss
9210000
CY2019Q1 us-gaap Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
3734000
CY2019Q2 us-gaap Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
4598000
CY2019Q3 us-gaap Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
5641000
CY2019Q4 us-gaap Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
5777000
CY2018Q1 us-gaap Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
1777000
CY2018Q2 us-gaap Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
3990000
CY2018Q3 us-gaap Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
4134000
CY2018Q4 us-gaap Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
4410000
CY2019 us-gaap Open Tax Year
OpenTaxYear
2016 2017 2018 2019
CY2019 us-gaap Operating Income Loss
OperatingIncomeLoss
24708000
CY2018 us-gaap Operating Income Loss
OperatingIncomeLoss
19612000
CY2017 us-gaap Operating Income Loss
OperatingIncomeLoss
11693000
CY2019 us-gaap Operating Lease Cost
OperatingLeaseCost
1222000
CY2019Q4 us-gaap Operating Lease Liability
OperatingLeaseLiability
3090000
CY2019Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
674000
CY2018Q4 us-gaap Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
0
CY2019Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
2416000
CY2018Q4 us-gaap Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
0
CY2019 us-gaap Operating Lease Payments
OperatingLeasePayments
1208000
CY2019Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
3034000
CY2018Q4 us-gaap Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
0
CY2019Q4 us-gaap Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
0.0445
CY2019Q4 us-gaap Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
P2Y251D
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due
OperatingLeasesFutureMinimumPaymentsDue
4195000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due Current
OperatingLeasesFutureMinimumPaymentsDueCurrent
1051000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Five Years
OperatingLeasesFutureMinimumPaymentsDueInFiveYears
36000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Four Years
OperatingLeasesFutureMinimumPaymentsDueInFourYears
975000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Three Years
OperatingLeasesFutureMinimumPaymentsDueInThreeYears
1063000
CY2018Q4 us-gaap Operating Leases Future Minimum Payments Due In Two Years
OperatingLeasesFutureMinimumPaymentsDueInTwoYears
1070000
CY2019Q4 us-gaap Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
2174000
CY2018Q4 us-gaap Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
2632000
CY2019Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
147000
CY2018Q4 us-gaap Other Assets Noncurrent
OtherAssetsNoncurrent
201000
CY2019Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
334000
CY2018Q4 us-gaap Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
24000
CY2019 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
-388000
CY2018 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
64000
CY2017 us-gaap Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
CY2019 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
512000
CY2018 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
144000
CY2017 us-gaap Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
296000
CY2019 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
CY2018 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
76978000
CY2017 us-gaap Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
CY2019 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
5778000
CY2018 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
5428000
CY2017 us-gaap Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
10382000
CY2019Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.01
CY2018Q4 us-gaap Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
0.01
CY2019Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
1000000
CY2018Q4 us-gaap Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
1000000
CY2019Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2018Q4 us-gaap Preferred Stock Shares Issued
PreferredStockSharesIssued
0
CY2019Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2018Q4 us-gaap Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
0
CY2019Q4 us-gaap Preferred Stock Value
PreferredStockValue
0
CY2018Q4 us-gaap Preferred Stock Value
PreferredStockValue
0
CY2019Q4 us-gaap Prepaid Expense Current
PrepaidExpenseCurrent
2304000
CY2018Q4 us-gaap Prepaid Expense Current
PrepaidExpenseCurrent
2206000
CY2019 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
-52000
CY2018 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
77000
CY2017 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
7000
CY2017 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
5000000
CY2019 us-gaap Prior Period Reclassification Adjustment Description
PriorPeriodReclassificationAdjustmentDescription
<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-size: 10pt; margin: 0pt 0 0pt 27.35pt"><div style="display: inline; font-style: italic;">Revisions</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Certain revisions have been made to the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017</div> Consolidated Statements of Income to conform to the current year presentation relating to a reclassification of material overcharge settlement to selling, general and administrative expenses. The reclassification resulted in the removal of the material overcharge settlement line item and a decrease in selling, general and administrative expenses of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$104</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$121</div> thousand for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> respectively. These revisions had <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">no</div> impact on previously reported operating or net income and are deemed immaterial to the previously issued financial statements.</div></div></div>
CY2019 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
CY2018 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
20000000
CY2017 us-gaap Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
CY2019 us-gaap Proceeds From Lines Of Credit
ProceedsFromLinesOfCredit
CY2018 us-gaap Proceeds From Lines Of Credit
ProceedsFromLinesOfCredit
36000000
CY2017 us-gaap Proceeds From Lines Of Credit
ProceedsFromLinesOfCredit
CY2019 us-gaap Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
4000
CY2019Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
116089000
CY2018Q4 us-gaap Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
111779000
CY2019Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
56739000
CY2018Q4 us-gaap Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
57667000
CY2018 us-gaap Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
-50000
CY2019Q4 us-gaap Receivables Net Current
ReceivablesNetCurrent
28648000
CY2018Q4 us-gaap Receivables Net Current
ReceivablesNetCurrent
28321000
CY2019 us-gaap Repayments Of Lines Of Credit
RepaymentsOfLinesOfCredit
8000000
CY2018 us-gaap Repayments Of Lines Of Credit
RepaymentsOfLinesOfCredit
28000000
CY2017 us-gaap Repayments Of Lines Of Credit
RepaymentsOfLinesOfCredit
CY2019 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
17143000
CY2018 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
2857000
CY2017 us-gaap Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
856000
CY2019 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
9500000
CY2018 us-gaap Research And Development Expense
ResearchAndDevelopmentExpense
10500000
CY2019 us-gaap Restructuring Charges
RestructuringCharges
CY2018 us-gaap Restructuring Charges
RestructuringCharges
CY2017 us-gaap Restructuring Charges
RestructuringCharges
63000
CY2019Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
131552000
CY2018Q4 us-gaap Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
111802000
CY2019Q1 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
47328000
CY2019Q2 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
51399000
CY2019Q3 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
49394000
CY2019Q4 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
50260000
CY2018Q1 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
42931000
CY2018Q2 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
49019000
CY2018Q3 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
47808000
CY2018Q4 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
50697000
CY2019 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
198381000
CY2018 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
190455000
CY2017 us-gaap Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
147843000
CY2019Q4 us-gaap Self Insurance Reserve Current
SelfInsuranceReserveCurrent
1033000
CY2018Q4 us-gaap Self Insurance Reserve Current
SelfInsuranceReserveCurrent
1153000
CY2019 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
29251000
CY2018 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
27654000
CY2017 us-gaap Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
23724000
CY2019 us-gaap Share Based Compensation
ShareBasedCompensation
1591000
CY2018 us-gaap Share Based Compensation
ShareBasedCompensation
1212000
CY2017 us-gaap Share Based Compensation
ShareBasedCompensation
1068000
CY2019 us-gaap Short Term Lease Cost
ShortTermLeaseCost
27000
CY2017 us-gaap Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
1068000
CY2018 us-gaap Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
1212000
CY2019 us-gaap Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
1591000
CY2017 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
677000
CY2018 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
1270000
CY2019 us-gaap Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
705000
CY2019Q4 us-gaap Stockholders Equity
StockholdersEquity
161991000
CY2018Q4 us-gaap Stockholders Equity
StockholdersEquity
140457000
CY2016Q4 us-gaap Stockholders Equity
StockholdersEquity
113053000
CY2017Q4 us-gaap Stockholders Equity
StockholdersEquity
123712000
CY2019Q4 us-gaap Treasury Stock Shares
TreasuryStockShares
29559
CY2018Q4 us-gaap Treasury Stock Shares
TreasuryStockShares
29559
CY2019 us-gaap Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
0
CY2017 us-gaap Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
0
CY2018 us-gaap Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
0
CY2019Q4 us-gaap Treasury Stock Value
TreasuryStockValue
587000
CY2018Q4 us-gaap Treasury Stock Value
TreasuryStockValue
587000
CY2019Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
0
CY2018Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
150000
CY2017Q4 us-gaap Unrecognized Tax Benefits
UnrecognizedTaxBenefits
150000
CY2019 us-gaap Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
150000
CY2018 us-gaap Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
CY2019Q1 us-gaap Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
156000000
CY2019Q4 us-gaap Unrecognized Tax Benefits Income Tax Penalties And Interest Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
0
CY2018Q4 us-gaap Unrecognized Tax Benefits Income Tax Penalties And Interest Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued
153000
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"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(b)</div></td> <td><div style="display: inline; font-style: italic;">Use of Estimates</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The preparation of consolidated financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, including allowance for doubtful accounts and the net realizable value of inventory, and the fair value of goodwill, and disclosure of contingent assets and liabilities at the date of the consolidated financial statements, and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates.</div></div></div>
CY2018Q4 us-gaap Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
564000
CY2017Q4 us-gaap Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
652000
CY2016Q4 us-gaap Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
567000
CY2019Q4 us-gaap Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
486000
CY2019 us-gaap Valuation Allowances And Reserves Charged To Cost And Expense
ValuationAllowancesAndReservesChargedToCostAndExpense
-52000
CY2018 us-gaap Valuation Allowances And Reserves Charged To Cost And Expense
ValuationAllowancesAndReservesChargedToCostAndExpense
-50000
CY2017 us-gaap Valuation Allowances And Reserves Charged To Cost And Expense
ValuationAllowancesAndReservesChargedToCostAndExpense
116000
CY2019 us-gaap Valuation Allowances And Reserves Deductions
ValuationAllowancesAndReservesDeductions
26000
CY2018 us-gaap Valuation Allowances And Reserves Deductions
ValuationAllowancesAndReservesDeductions
38000
CY2017 us-gaap Valuation Allowances And Reserves Deductions
ValuationAllowancesAndReservesDeductions
31000
CY2019 us-gaap Variable Lease Cost
VariableLeaseCost
219000
CY2019 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
7516000
CY2018 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
7430000
CY2017 us-gaap Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
7337000
CY2019 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
7424000
CY2018 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
7347000
CY2017 us-gaap Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
7248000

Files In Submission

Name View Source Status
0001171843-20-001695-index-headers.html Edgar Link pending
0001171843-20-001695-index.html Edgar Link pending
0001171843-20-001695.txt Edgar Link pending
0001171843-20-001695-xbrl.zip Edgar Link pending
exh_2101.htm Edgar Link pending
exh_2301.htm Edgar Link pending
exh_3101.htm Edgar Link pending
exh_3102.htm Edgar Link pending
exh_3201.htm Edgar Link pending
f10k_031320p.htm Edgar Link pending
FilingSummary.xml Edgar Link unprocessable
Financial_Report.xlsx Edgar Link pending
R1.htm Edgar Link pending
R10.htm Edgar Link pending
R11.htm Edgar Link pending
R12.htm Edgar Link pending
R13.htm Edgar Link pending
R14.htm Edgar Link pending
R15.htm Edgar Link pending
R16.htm Edgar Link pending
R17.htm Edgar Link pending
R18.htm Edgar Link pending
R19.htm Edgar Link pending
R2.htm Edgar Link pending
R20.htm Edgar Link pending
R21.htm Edgar Link pending
R22.htm Edgar Link pending
R23.htm Edgar Link pending
R24.htm Edgar Link pending
R25.htm Edgar Link pending
R26.htm Edgar Link pending
R27.htm Edgar Link pending
R28.htm Edgar Link pending
R29.htm Edgar Link pending
R3.htm Edgar Link pending
R30.htm Edgar Link pending
R31.htm Edgar Link pending
R32.htm Edgar Link pending
R33.htm Edgar Link pending
R34.htm Edgar Link pending
R35.htm Edgar Link pending
R36.htm Edgar Link pending
R37.htm Edgar Link pending
R38.htm Edgar Link pending
R39.htm Edgar Link pending
R4.htm Edgar Link pending
R40.htm Edgar Link pending
R41.htm Edgar Link pending
R42.htm Edgar Link pending
R43.htm Edgar Link pending
R44.htm Edgar Link pending
R45.htm Edgar Link pending
R46.htm Edgar Link pending
R47.htm Edgar Link pending
R48.htm Edgar Link pending
R49.htm Edgar Link pending
R5.htm Edgar Link pending
R50.htm Edgar Link pending
R51.htm Edgar Link pending
R52.htm Edgar Link pending
R53.htm Edgar Link pending
R54.htm Edgar Link pending
R55.htm Edgar Link pending
R56.htm Edgar Link pending
R57.htm Edgar Link pending
R58.htm Edgar Link pending
R59.htm Edgar Link pending
R6.htm Edgar Link pending
R60.htm Edgar Link pending
R61.htm Edgar Link pending
R62.htm Edgar Link pending
R63.htm Edgar Link pending
R64.htm Edgar Link pending
R65.htm Edgar Link pending
R66.htm Edgar Link pending
R67.htm Edgar Link pending
R68.htm Edgar Link pending
R69.htm Edgar Link pending
R7.htm Edgar Link pending
R70.htm Edgar Link pending
R71.htm Edgar Link pending
R72.htm Edgar Link pending
R73.htm Edgar Link pending
R74.htm Edgar Link pending
R75.htm Edgar Link pending
R76.htm Edgar Link pending
R77.htm Edgar Link pending
R78.htm Edgar Link pending
R79.htm Edgar Link pending
R8.htm Edgar Link pending
R80.htm Edgar Link pending
R81.htm Edgar Link pending
R82.htm Edgar Link pending
R83.htm Edgar Link pending
R84.htm Edgar Link pending
R85.htm Edgar Link pending
R86.htm Edgar Link pending
R87.htm Edgar Link pending
R88.htm Edgar Link pending
R89.htm Edgar Link pending
R9.htm Edgar Link pending
report.css Edgar Link pending
Show.js Edgar Link pending
ufpt-20191231.xml Edgar Link completed
ufpt-20191231.xsd Edgar Link pending
ufpt-20191231_cal.xml Edgar Link unprocessable
ufpt-20191231_def.xml Edgar Link unprocessable
ufpt-20191231_lab.xml Edgar Link unprocessable
ufpt-20191231_pre.xml Edgar Link unprocessable