2021 Q4 Form 10-K Financial Statement
#000117184322001850 Filed on March 14, 2022
Income Statement
Concept | 2021 Q4 | 2021 Q3 | 2021 Q2 |
---|---|---|---|
Revenue | $56.34M | $50.72M | $50.66M |
YoY Change | 24.78% | 17.15% | 18.79% |
Cost Of Revenue | $43.27M | $38.71M | $37.24M |
YoY Change | 28.13% | 18.11% | 13.9% |
Gross Profit | $13.08M | $12.02M | $13.41M |
YoY Change | 14.85% | 14.13% | 34.83% |
Gross Profit Margin | 23.21% | 23.69% | 26.48% |
Selling, General & Admin | $8.137M | $6.806M | $7.228M |
YoY Change | 29.36% | 0.22% | 8.45% |
% of Gross Profit | 62.23% | 56.64% | 53.88% |
Research & Development | |||
YoY Change | |||
% of Gross Profit | |||
Depreciation & Amortization | $2.201M | $2.037M | $2.102M |
YoY Change | 6.84% | -1.12% | 1.06% |
% of Gross Profit | 16.83% | 16.95% | 15.67% |
Operating Expenses | $8.137M | $6.806M | $7.228M |
YoY Change | 29.36% | 0.22% | 8.45% |
Operating Profit | $4.938M | $5.077M | $6.207M |
YoY Change | -3.06% | 36.3% | 107.31% |
Interest Expense | -$28.00K | -$16.00K | $21.00K |
YoY Change | 40.0% | -194.12% | -36.36% |
% of Operating Profit | -0.57% | -0.32% | 0.34% |
Other Income/Expense, Net | $24.00K | -$4.000K | -$4.000K |
YoY Change | -88.57% | ||
Pretax Income | $4.630M | $5.057M | $6.224M |
YoY Change | -5.89% | 36.38% | 112.71% |
Income Tax | $1.411M | $1.268M | $1.509M |
% Of Pretax Income | 30.48% | 25.07% | 24.24% |
Net Earnings | $3.219M | $3.789M | $4.715M |
YoY Change | -22.81% | 26.81% | 103.41% |
Net Earnings / Revenue | 5.71% | 7.47% | 9.31% |
Basic Earnings Per Share | $0.43 | $0.50 | $0.63 |
Diluted Earnings Per Share | $0.42 | $0.50 | $0.62 |
COMMON SHARES | |||
Basic Shares Outstanding | 7.531M | 7.531M | 7.527M |
Diluted Shares Outstanding | 7.597M | 7.573M |
Balance Sheet
Concept | 2021 Q4 | 2021 Q3 | 2021 Q2 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $11.12M | $33.09M | $30.27M |
YoY Change | -54.06% | 90.2% | 146.12% |
Cash & Equivalents | $11.12M | $33.09M | $30.27M |
Short-Term Investments | |||
Other Short-Term Assets | $3.383M | $3.077M | $2.957M |
YoY Change | 30.12% | -16.84% | -13.03% |
Inventory | $33.44M | $21.67M | $21.16M |
Prepaid Expenses | $3.383M | $3.077M | $2.957M |
Receivables | $39.38M | $32.46M | $31.22M |
Other Receivables | $0.00 | $832.0K | $854.0K |
Total Short-Term Assets | $87.32M | $91.13M | $86.47M |
YoY Change | 21.51% | 32.92% | 35.28% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $56.57M | $52.98M | $53.70M |
YoY Change | 5.23% | -2.52% | -2.65% |
Goodwill | $107.9M | $51.84M | $51.84M |
YoY Change | 108.16% | 0.0% | 0.0% |
Intangibles | $67.59M | $18.78M | $19.09M |
YoY Change | 242.76% | -6.27% | -6.18% |
Long-Term Investments | |||
YoY Change | |||
Other Assets | $1.102M | $199.0K | $153.0K |
YoY Change | 620.26% | 34.46% | 4.08% |
Total Long-Term Assets | $246.8M | $129.6M | $130.8M |
YoY Change | 87.92% | -1.93% | -1.86% |
TOTAL ASSETS | |||
Total Short-Term Assets | $87.32M | $91.13M | $86.47M |
Total Long-Term Assets | $246.8M | $129.6M | $130.8M |
Total Assets | $334.1M | $220.7M | $217.3M |
YoY Change | 64.43% | 9.98% | 10.17% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $10.61M | $7.556M | $8.355M |
YoY Change | 157.49% | 66.18% | 54.29% |
Accrued Expenses | $12.70M | $8.361M | $8.192M |
YoY Change | 59.87% | -0.64% | 15.17% |
Deferred Revenue | $4.247M | $1.671M | $1.903M |
YoY Change | 125.07% | -14.13% | -28.13% |
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | $4.000M | $15.00K | $15.00K |
YoY Change | |||
Total Short-Term Liabilities | $34.71M | $18.76M | $19.64M |
YoY Change | 129.28% | 16.79% | 18.56% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $71.00M | $74.00K | $78.00K |
YoY Change | -26.0% | -22.0% | |
Other Long-Term Liabilities | $19.26M | $1.071M | $1.131M |
YoY Change | 1415.5% | -32.0% | 6.6% |
Total Long-Term Liabilities | $90.26M | $1.071M | $1.131M |
YoY Change | 7001.65% | -32.0% | 6.6% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $34.71M | $18.76M | $19.64M |
Total Long-Term Liabilities | $90.26M | $1.071M | $1.131M |
Total Liabilities | $139.7M | $29.93M | $30.97M |
YoY Change | 430.9% | 6.05% | 10.59% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $160.8M | $157.6M | $153.8M |
YoY Change | 10.96% | 11.96% | 11.64% |
Common Stock | $75.00K | $75.00K | $75.00K |
YoY Change | 0.0% | 0.0% | 0.0% |
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 | $194.4M | $190.8M | $186.3M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $334.1M | $220.7M | $217.3M |
YoY Change | 64.43% | 9.98% | 10.17% |
Cashflow Statement
Concept | 2021 Q4 | 2021 Q3 | 2021 Q2 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $3.219M | $3.789M | $4.715M |
YoY Change | -22.81% | 26.81% | 103.41% |
Depreciation, Depletion And Amortization | $2.201M | $2.037M | $2.102M |
YoY Change | 6.84% | -1.12% | 1.06% |
Cash From Operating Activities | $618.0K | $3.788M | $6.557M |
YoY Change | -92.55% | -36.87% | 9.28% |
INVESTING ACTIVITIES | |||
Capital Expenditures | -$1.118M | -$995.0K | -$1.832M |
YoY Change | -14.66% | 9.34% | 62.12% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | -$96.12M | $30.00K | $21.00K |
YoY Change | -62.5% | 5.0% | |
Cash From Investing Activities | -$97.23M | -$965.0K | -$1.811M |
YoY Change | 7322.37% | 16.27% | 63.15% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | |||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | 74.64M | -2.000K | 153.0K |
YoY Change | -37419.0% | 206.0% | |
NET CHANGE | |||
Cash From Operating Activities | 618.0K | 3.788M | 6.557M |
Cash From Investing Activities | -97.23M | -965.0K | -1.811M |
Cash From Financing Activities | 74.64M | -2.000K | 153.0K |
Net Change In Cash | -21.98M | 2.821M | 4.899M |
YoY Change | -423.67% | -45.44% | -0.83% |
FREE CASH FLOW | |||
Cash From Operating Activities | $618.0K | $3.788M | $6.557M |
Capital Expenditures | -$1.118M | -$995.0K | -$1.832M |
Free Cash Flow | $1.736M | $4.783M | $8.389M |
YoY Change | -81.94% | -30.78% | 17.66% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2021Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | |
CY2020Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | |
CY2021Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2020Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2021Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
20000000 | |
CY2020Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
20000000 | |
CY2021Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
7564645 | |
CY2021 | dei |
Auditor Location
AuditorLocation
|
Boston, MA | |
CY2021Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
USD | |
CY2020Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
USD | |
CY2021Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.01 | |
CY2020Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.01 | |
CY2021Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
1000000 | |
CY2020Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
1000000 | |
CY2020Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
7529625 | |
CY2021Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
7535086 | |
CY2020Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
7500066 | |
CY2021Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
29599 | |
CY2020Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
29599 | |
CY2021 | us-gaap |
Number Of Operating Segments
NumberOfOperatingSegments
|
1 | pure |
CY2021 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
1 | pure |
CY2021Q4 | us-gaap |
Cash Equivalents At Carrying Value
CashEquivalentsAtCarryingValue
|
0 | USD |
CY2020Q4 | us-gaap |
Cash Equivalents At Carrying Value
CashEquivalentsAtCarryingValue
|
0 | USD |
CY2021 | us-gaap |
Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
|
0 | |
CY2020 | us-gaap |
Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
|
0 | |
CY2019 | us-gaap |
Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
|
0 | |
CY2021Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
0 | USD |
CY2020Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
0 | USD |
CY2021 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
10716 | |
CY2020 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
14892 | |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0 | pure |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0 | pure |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0 | pure |
CY2021 | us-gaap |
Number Of Operating Segments
NumberOfOperatingSegments
|
1 | pure |
CY2021 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
1 | pure |
CY2021Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
11117000 | USD |
CY2020Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
24234000 | USD |
CY2021Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
39384000 | USD |
CY2020Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
26428000 | USD |
CY2021Q4 | us-gaap |
Inventory Net
InventoryNet
|
33436000 | USD |
CY2020Q4 | us-gaap |
Inventory Net
InventoryNet
|
18642000 | USD |
CY2021Q4 | us-gaap |
Prepaid Expense Current
PrepaidExpenseCurrent
|
3383000 | USD |
CY2020Q4 | us-gaap |
Prepaid Expense Current
PrepaidExpenseCurrent
|
2560000 | USD |
CY2021Q4 | us-gaap |
Assets Current
AssetsCurrent
|
87320000 | USD |
CY2020Q4 | us-gaap |
Assets Current
AssetsCurrent
|
71864000 | USD |
CY2021Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
126837000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
118388000 | USD |
CY2021Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
70268000 | USD |
CY2020Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
64633000 | USD |
CY2021Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
56569000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
53755000 | USD |
CY2021Q4 | us-gaap |
Goodwill
Goodwill
|
107905000 | USD |
CY2020Q4 | us-gaap |
Goodwill
Goodwill
|
51838000 | USD |
CY2021Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
67585000 | USD |
CY2020Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
19718000 | USD |
CY2021Q4 | us-gaap |
Deferred Compensation Plan Assets
DeferredCompensationPlanAssets
|
4327000 | USD |
CY2020Q4 | us-gaap |
Deferred Compensation Plan Assets
DeferredCompensationPlanAssets
|
3724000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Right Of Use Asset
FinanceLeaseRightOfUseAsset
|
271000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Right Of Use Asset
FinanceLeaseRightOfUseAsset
|
100000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
9053000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
2052000 | USD |
CY2021Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
1102000 | USD |
CY2020Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
153000 | USD |
CY2021Q4 | us-gaap |
Assets
Assets
|
334132000 | USD |
CY2020Q4 | us-gaap |
Assets
Assets
|
203204000 | USD |
CY2021Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
10611000 | USD |
CY2020Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
4121000 | USD |
CY2021Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
12700000 | USD |
CY2020Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
7944000 | USD |
CY2021Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
4247000 | USD |
CY2020Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
1887000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
|
58000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
|
15000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
2181000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
1154000 | USD |
CY2021Q4 | us-gaap |
Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
|
909000 | USD |
CY2020Q4 | us-gaap |
Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
|
16000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
4000000 | USD |
CY2020Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
0 | USD |
CY2021Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
34706000 | USD |
CY2020Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
15137000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Noncurrent
LongTermDebtNoncurrent
|
71000000 | USD |
CY2020Q4 | us-gaap |
Long Term Debt Noncurrent
LongTermDebtNoncurrent
|
0 | USD |
CY2021Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
3263000 | USD |
CY2020Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
5057000 | USD |
CY2021Q4 | us-gaap |
Deferred Compensation Liability Classified Noncurrent
DeferredCompensationLiabilityClassifiedNoncurrent
|
4337000 | USD |
CY2020Q4 | us-gaap |
Deferred Compensation Liability Classified Noncurrent
DeferredCompensationLiabilityClassifiedNoncurrent
|
3810000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
|
215000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability Noncurrent
FinanceLeaseLiabilityNoncurrent
|
86000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
6903000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
950000 | USD |
CY2021Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
19262000 | USD |
CY2020Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
1271000 | USD |
CY2021Q4 | us-gaap |
Liabilities
Liabilities
|
139686000 | USD |
CY2020Q4 | us-gaap |
Liabilities
Liabilities
|
26311000 | USD |
CY2021Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | USD |
CY2020Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | USD |
CY2021Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
75000 | USD |
CY2020Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
75000 | USD |
CY2021Q4 | us-gaap |
Additional Paid In Capital
AdditionalPaidInCapital
|
34151000 | USD |
CY2020Q4 | us-gaap |
Additional Paid In Capital
AdditionalPaidInCapital
|
32484000 | USD |
CY2021Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
160807000 | USD |
CY2020Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
144921000 | USD |
CY2021Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
587000 | USD |
CY2020Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
587000 | USD |
CY2021Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
194446000 | USD |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
176893000 | USD |
CY2021Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
334132000 | USD |
CY2020Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
203204000 | USD |
CY2021 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
206320000 | USD |
CY2020 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
179373000 | USD |
CY2019 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
198381000 | USD |
CY2021 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
155206000 | USD |
CY2020 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
134689000 | USD |
CY2019 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
144422000 | USD |
CY2021 | us-gaap |
Gross Profit
GrossProfit
|
51114000 | USD |
CY2020 | us-gaap |
Gross Profit
GrossProfit
|
44684000 | USD |
CY2019 | us-gaap |
Gross Profit
GrossProfit
|
53959000 | USD |
CY2021 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
29480000 | USD |
CY2020 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
27493000 | USD |
CY2019 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
29251000 | USD |
CY2021 | us-gaap |
Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
|
430000 | USD |
CY2020 | us-gaap |
Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
|
0 | USD |
CY2019 | us-gaap |
Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
|
0 | USD |
CY2021 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
14000 | USD |
CY2020 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
-459000 | USD |
CY2019 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
-0 | USD |
CY2021 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
21218000 | USD |
CY2020 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
16732000 | USD |
CY2019 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
24708000 | USD |
CY2021 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
49000 | USD |
CY2020 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
0 | USD |
CY2019 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
0 | USD |
CY2021 | us-gaap |
Interest Expense
InterestExpense
|
88000 | USD |
CY2020 | us-gaap |
Interest Expense
InterestExpense
|
83000 | USD |
CY2019 | us-gaap |
Interest Expense
InterestExpense
|
674000 | USD |
CY2021 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
26000 | USD |
CY2020 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
-366000 | USD |
CY2019 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
-388000 | USD |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
21205000 | USD |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
16283000 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
23646000 | USD |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
5319000 | USD |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
2914000 | USD |
CY2020 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
7568000 | |
CY2021 | us-gaap |
Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
|
2428000 | USD |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
3896000 | USD |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
15886000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
13369000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
19750000 | USD |
CY2021 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
2.11 | |
CY2020 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.79 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
2.66 | |
CY2021 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
2.09 | |
CY2020 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.77 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
2.63 | |
CY2021 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
7524000 | |
CY2020 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
7484000 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
7424000 | |
CY2021 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
7615000 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
7516000 | |
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
140457000 | USD |
CY2019 | us-gaap |
Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
|
1591000 | USD |
CY2019 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
705000 | USD |
CY2019 | us-gaap |
Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
|
512000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
19750000 | USD |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
161991000 | USD |
CY2020 | us-gaap |
Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
|
1807000 | USD |
CY2020 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
474000 | USD |
CY2020 | us-gaap |
Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
|
748000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
13369000 | USD |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
176893000 | USD |
CY2021 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
162000 | USD |
CY2021 | us-gaap |
Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
|
923000 | USD |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
15886000 | USD |
CY2021Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
194446000 | USD |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
15886000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
13369000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
19750000 | USD |
CY2021 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
8410000 | USD |
CY2020 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
8268000 | USD |
CY2019 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
8172000 | USD |
CY2021 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
14000 | USD |
CY2020 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
-459000 | USD |
CY2019 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
-0 | USD |
CY2021 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
2428000 | USD |
CY2020 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
1807000 | USD |
CY2019 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
1591000 | USD |
CY2021 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
3000 | USD |
CY2020 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
2000 | USD |
CY2019 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
0 | USD |
CY2021 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-1794000 | USD |
CY2020 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
136000 | USD |
CY2019 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
792000 | USD |
CY2021 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
7754000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-2220000 | USD |
CY2019 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
327000 | USD |
CY2021 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
4496000 | USD |
CY2020 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
366000 | USD |
CY2019 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
-1300000 | USD |
CY2019 | us-gaap |
Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
|
0 | USD |
CY2021 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
14293000 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
25037000 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
31229000 | USD |
CY2021 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
5395000 | USD |
CY2020 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
4368000 | USD |
CY2019 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
5778000 | USD |
CY2021 | us-gaap |
Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
|
114000 | USD |
CY2021 | us-gaap |
Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
|
557000 | USD |
CY2020 | us-gaap |
Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
|
256000 | USD |
CY2019 | us-gaap |
Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
|
98000 | USD |
CY2021 | us-gaap |
Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
|
-893000 | USD |
CY2020 | us-gaap |
Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
|
-295000 | USD |
CY2019 | us-gaap |
Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
|
-2006000 | USD |
CY2021 | us-gaap |
Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
|
681000 | USD |
CY2020 | us-gaap |
Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
|
73000 | USD |
CY2019 | us-gaap |
Increase Decrease In Other Operating Assets
IncreaseDecreaseInOtherOperatingAssets
|
-110000 | USD |
CY2021 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
102000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-681000 | USD |
CY2019 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-2472000 | USD |
CY2021 | us-gaap |
Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
|
1006000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
|
-539000 | USD |
CY2019 | us-gaap |
Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
|
25000 | USD |
CY2021 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
2294000 | USD |
CY2020 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
-687000 | USD |
CY2019 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
67000 | USD |
CY2021 | us-gaap |
Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
|
-1433000 | USD |
CY2020 | us-gaap |
Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
|
1083000 | USD |
CY2019 | us-gaap |
Increase Decrease In Other Operating Liabilities
IncreaseDecreaseInOtherOperatingLiabilities
|
313000 | USD |
CY2020 | us-gaap |
Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
|
107000 | USD |
CY2019 | us-gaap |
Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
|
4000 | USD |
CY2021 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-101459000 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-4261000 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-5774000 | USD |
CY2021 | us-gaap |
Proceeds From Lines Of Credit
ProceedsFromLinesOfCredit
|
34839000 | USD |
CY2020 | us-gaap |
Proceeds From Lines Of Credit
ProceedsFromLinesOfCredit
|
5500000 | USD |
CY2019 | us-gaap |
Proceeds From Lines Of Credit
ProceedsFromLinesOfCredit
|
0 | USD |
CY2021 | us-gaap |
Repayments Of Lines Of Credit
RepaymentsOfLinesOfCredit
|
-0 | USD |
CY2020 | us-gaap |
Repayments Of Lines Of Credit
RepaymentsOfLinesOfCredit
|
5500000 | USD |
CY2019 | us-gaap |
Repayments Of Lines Of Credit
RepaymentsOfLinesOfCredit
|
8000000 | USD |
CY2021 | us-gaap |
Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
|
40000000 | USD |
CY2020 | us-gaap |
Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
|
0 | USD |
CY2021 | us-gaap |
Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
|
-0 | USD |
CY2020 | us-gaap |
Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
|
-0 | USD |
CY2019 | us-gaap |
Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
|
17143000 | USD |
CY2021 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
29000 | USD |
CY2020 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
11000 | USD |
CY2019 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
-0 | USD |
CY2021 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
162000 | USD |
CY2020 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
474000 | USD |
CY2019 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
705000 | USD |
CY2021 | us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
923000 | USD |
CY2020 | us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
748000 | USD |
CY2019 | us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
512000 | USD |
CY2021 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
74049000 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-285000 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-24950000 | USD |
CY2021 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
-13117000 | USD |
CY2020 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
20491000 | USD |
CY2019 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
505000 | USD |
CY2020Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
24234000 | USD |
CY2019Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
3743000 | USD |
CY2018Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
3238000 | USD |
CY2021Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
11117000 | USD |
CY2020Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
24234000 | USD |
CY2019Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
3743000 | USD |
CY2021 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> </td><td style="width: 36pt;"> <p style="font-family: Times New Roman;font-size: 10pt;font-variant:normal;margin:0pt;"><i>(b)</i></p> </td><td style="width: auto;"> <p style="font-family: Times New Roman;font-size: 10pt;font-variant:normal;margin:0pt;"><i>Use of Estimates</i></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; text-align: justify; margin: 0pt 0pt 0pt 72pt;">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 the fair value of intangible assets, 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.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> | |
CY2020Q4 | us-gaap |
Goodwill
Goodwill
|
51838000 | USD |
CY2021Q4 | us-gaap |
Goodwill
Goodwill
|
107905000 | USD |
CY2021Q4 | us-gaap |
Business Acquisition Purchase Price Allocation Goodwill Expected Tax Deductible Amount
BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount
|
104400000 | USD |
CY2021 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
8500000 | USD |
CY2020 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
8200000 | USD |
CY2019 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
8800000 | USD |
CY2021 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
206320000 | USD |
CY2020 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
179373000 | USD |
CY2019 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
198381000 | USD |
CY2020Q4 | us-gaap |
Contract With Customer Liability
ContractWithCustomerLiability
|
1887000 | USD |
CY2019Q4 | us-gaap |
Contract With Customer Liability
ContractWithCustomerLiability
|
2574000 | USD |
CY2021 | us-gaap |
Contract With Customer Liability Increase Decrease For Contract Acquired In Business Combination
ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
|
69000 | USD |
CY2020 | us-gaap |
Contract With Customer Liability Increase Decrease For Contract Acquired In Business Combination
ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
|
0 | USD |
CY2021 | ufpt |
Contract With Customer Liability Increase Due To Consideration Received From Customers
ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers
|
4007000 | USD |
CY2020 | ufpt |
Contract With Customer Liability Increase Due To Consideration Received From Customers
ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers
|
2673000 | USD |
CY2021 | ufpt |
Contract With Customer Liability Revenue Recognized During Period
ContractWithCustomerLiabilityRevenueRecognizedDuringPeriod
|
1716000 | USD |
CY2020 | ufpt |
Contract With Customer Liability Revenue Recognized During Period
ContractWithCustomerLiabilityRevenueRecognizedDuringPeriod
|
3360000 | USD |
CY2021Q4 | us-gaap |
Contract With Customer Liability
ContractWithCustomerLiability
|
4247000 | USD |
CY2020Q4 | us-gaap |
Contract With Customer Liability
ContractWithCustomerLiability
|
1887000 | USD |
CY2020Q4 | us-gaap |
Contract With Customer Asset Net
ContractWithCustomerAssetNet
|
271000 | USD |
CY2019Q4 | us-gaap |
Contract With Customer Asset Net
ContractWithCustomerAssetNet
|
72000 | USD |
CY2021 | ufpt |
Contract With Customer Asset Increase Decrease For Unbilled Revenue Recognized
ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized
|
1815000 | USD |
CY2020 | ufpt |
Contract With Customer Asset Increase Decrease For Unbilled Revenue Recognized
ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized
|
3147000 | USD |
CY2021 | us-gaap |
Contract With Customer Asset Reclassified To Receivable
ContractWithCustomerAssetReclassifiedToReceivable
|
2012000 | USD |
CY2020 | us-gaap |
Contract With Customer Asset Reclassified To Receivable
ContractWithCustomerAssetReclassifiedToReceivable
|
2948000 | USD |
CY2021Q4 | us-gaap |
Contract With Customer Asset Net
ContractWithCustomerAssetNet
|
74000 | USD |
CY2020Q4 | us-gaap |
Contract With Customer Asset Net
ContractWithCustomerAssetNet
|
271000 | USD |
CY2021 | us-gaap |
Interest Paid Net
InterestPaidNet
|
53000 | USD |
CY2020 | us-gaap |
Interest Paid Net
InterestPaidNet
|
71000 | USD |
CY2019 | us-gaap |
Interest Paid Net
InterestPaidNet
|
664000 | USD |
CY2021 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
5914000 | USD |
CY2020 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
2481000 | USD |
CY2019 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
1255000 | USD |
CY2021 | us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
135000 | USD |
CY2020Q2 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
2318000 | USD |
CY2020 | us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
225000 | USD |
CY2019 | us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
213000 | USD |
CY2021 | ufpt |
Noncash Or Part Noncash Acquisition Contingent Consideration Liability Assumed
NoncashOrPartNoncashAcquisitionContingentConsiderationLiabilityAssumed
|
9731000 | USD |
CY2020 | ufpt |
Noncash Or Part Noncash Acquisition Contingent Consideration Liability Assumed
NoncashOrPartNoncashAcquisitionContingentConsiderationLiabilityAssumed
|
0 | USD |
CY2019 | ufpt |
Noncash Or Part Noncash Acquisition Contingent Consideration Liability Assumed
NoncashOrPartNoncashAcquisitionContingentConsiderationLiabilityAssumed
|
0 | USD |
CY2021Q4 | ufpt |
Noncompetition Agreement Payment Liability Noncurrent
NoncompetitionAgreementPaymentLiabilityNoncurrent
|
8855000 | USD |
CY2020Q4 | ufpt |
Noncompetition Agreement Payment Liability Noncurrent
NoncompetitionAgreementPaymentLiabilityNoncurrent
|
0 | USD |
CY2019Q4 | ufpt |
Noncompetition Agreement Payment Liability Noncurrent
NoncompetitionAgreementPaymentLiabilityNoncurrent
|
0 | USD |
CY2021 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
5299000 | USD |
CY2020 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
0 | USD |
CY2019 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
0 | USD |
CY2021 | ufpt |
Increase In Operating Lease Liability
IncreaseInOperatingLeaseLiability
|
5299000 | USD |
CY2020 | ufpt |
Increase In Operating Lease Liability
IncreaseInOperatingLeaseLiability
|
-0 | USD |
CY2019 | ufpt |
Increase In Operating Lease Liability
IncreaseInOperatingLeaseLiability
|
-0 | USD |
CY2021Q4 | us-gaap |
Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
|
39903000 | USD |
CY2020Q4 | us-gaap |
Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
|
26912000 | USD |
CY2021Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
519000 | USD |
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
484000 | USD |
CY2021Q4 | us-gaap |
Receivables Net Current
ReceivablesNetCurrent
|
39384000 | USD |
CY2020Q4 | us-gaap |
Receivables Net Current
ReceivablesNetCurrent
|
26428000 | USD |
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
484000 | USD |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
486000 | USD |
CY2021 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
179000 | USD |
CY2020 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
13000 | USD |
CY2021 | us-gaap |
Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
|
144000 | USD |
CY2020 | us-gaap |
Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
|
15000 | USD |
CY2021Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
519000 | USD |
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
484000 | USD |
CY2020Q3 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
2988000 | USD |
CY2020Q4 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
4172000 | USD |
CY2020Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.52 | |
CY2020Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.31 | |
CY2020Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.40 | |
CY2020Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.56 | |
CY2020Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.52 | |
CY2020Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.31 | |
CY2020Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.40 | |
CY2020Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.55 | |
CY2021Q4 | us-gaap |
Inventory Raw Materials Net Of Reserves
InventoryRawMaterialsNetOfReserves
|
22184000 | USD |
CY2020Q4 | us-gaap |
Inventory Raw Materials Net Of Reserves
InventoryRawMaterialsNetOfReserves
|
12229000 | USD |
CY2021Q4 | us-gaap |
Inventory Work In Process Net Of Reserves
InventoryWorkInProcessNetOfReserves
|
4205000 | USD |
CY2020Q4 | us-gaap |
Inventory Work In Process Net Of Reserves
InventoryWorkInProcessNetOfReserves
|
1991000 | USD |
CY2021Q4 | us-gaap |
Inventory Finished Goods Net Of Reserves
InventoryFinishedGoodsNetOfReserves
|
7047000 | USD |
CY2020Q4 | us-gaap |
Inventory Finished Goods Net Of Reserves
InventoryFinishedGoodsNetOfReserves
|
4422000 | USD |
CY2021Q4 | us-gaap |
Inventory Net
InventoryNet
|
33436000 | USD |
CY2020Q4 | us-gaap |
Inventory Net
InventoryNet
|
18642000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
72567000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
4982000 | USD |
CY2021Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
67585000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
23384000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
3666000 | USD |
CY2020Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
19718000 | USD |
CY2021 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
1300000 | USD |
CY2020 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
1300000 | USD |
CY2019 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
1300000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
4118000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
4033000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
4026000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
4026000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
4023000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
|
47359000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
67585000 | USD |
CY2021 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
7113000 | USD |
CY2021Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.55 | |
CY2021Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.63 | |
CY2021Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
126837000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
118388000 | USD |
CY2021Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
70268000 | USD |
CY2020Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
64633000 | USD |
CY2021Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
56569000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
53755000 | USD |
CY2021 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
7100000 | USD |
CY2020 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
7000000.0 | USD |
CY2019 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
6900000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt
LongTermDebt
|
75000000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
4000000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Noncurrent
LongTermDebtNoncurrent
|
71000000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Next Twelve Months
LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
|
4000000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Two
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
|
4000000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Three
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
|
4000000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Four
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
|
4000000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive
|
59000000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt
LongTermDebt
|
75000000 | USD |
CY2021Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.50 | |
CY2021Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.43 | |
CY2021Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.55 | |
CY2021Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.62 | |
CY2021Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.50 | |
CY2021Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.42 | |
CY2021 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
7524000 | |
CY2020 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
7484000 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
7424000 | |
CY2021 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
91000 | |
CY2020 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
84000 | |
CY2019 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
92000 | |
CY2021 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
7615000 | |
CY2020 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
7568000 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
7516000 | |
CY2019 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
16536 | |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due After Year Five
FinanceLeaseLiabilityPaymentsDueAfterYearFive
|
6000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
|
3298000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due
FinanceLeaseLiabilityPaymentsDue
|
287000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
9968000 | USD |
CY2020 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
2778000 | USD |
CY2019 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
3104000 | USD |
CY2021 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-1399000 | USD |
CY2020 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-28000 | USD |
CY2021 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
5793000 | USD |
CY2020 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
2223000 | USD |
CY2021Q4 | us-gaap |
Accrued Salaries Current
AccruedSalariesCurrent
|
4878000 | USD |
CY2020Q4 | us-gaap |
Accrued Salaries Current
AccruedSalariesCurrent
|
2443000 | USD |
CY2021Q4 | us-gaap |
Self Insurance Reserve Current
SelfInsuranceReserveCurrent
|
414000 | USD |
CY2020Q4 | us-gaap |
Self Insurance Reserve Current
SelfInsuranceReserveCurrent
|
921000 | USD |
CY2021Q4 | us-gaap |
Accrued Vacation Current
AccruedVacationCurrent
|
1620000 | USD |
CY2020Q4 | us-gaap |
Accrued Vacation Current
AccruedVacationCurrent
|
1538000 | USD |
CY2021Q4 | us-gaap |
Accrued Payroll Taxes Current
AccruedPayrollTaxesCurrent
|
905000 | USD |
CY2020Q4 | us-gaap |
Accrued Payroll Taxes Current
AccruedPayrollTaxesCurrent
|
810000 | USD |
CY2021Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
4883000 | USD |
CY2020Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
2232000 | USD |
CY2021Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
12700000 | USD |
CY2020Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
7944000 | USD |
CY2019 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
2920000 | USD |
CY2021 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
1320000 | USD |
CY2020 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
555000 | USD |
CY2019 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
184000 | USD |
CY2019 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
485000 | USD |
CY2021 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-395000 | USD |
CY2020 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
164000 | USD |
CY2019 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
307000 | USD |
CY2021 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-1794000 | USD |
CY2020 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
136000 | USD |
CY2019 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
792000 | USD |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
5319000 | USD |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
2914000 | USD |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
3896000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Undiscounted Excess Amount
FinanceLeaseLiabilityUndiscountedExcessAmount
|
14000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
884000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability
FinanceLeaseLiability
|
273000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
9084000 | USD |
CY2021 | us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
1400000 | USD |
CY2020 | us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
1300000 | USD |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.337 | pure |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.328 | pure |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.289 | pure |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.008 | pure |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.003 | pure |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.023 | pure |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
|
57.34 | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
|
43.95 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
|
38.61 | |
CY2021 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P6Y2M12D | |
CY2020 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P6Y1M6D | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P6Y | |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
|
19.60 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
|
14.10 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
|
12.70 | |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
34000 | USD |
CY2019 | us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
1200000 | USD |
CY2020Q1 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
48277000 | USD |
CY2020Q2 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
42644000 | USD |
CY2020Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
43299000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
|
380000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
|
351000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
706000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
550000 | USD |
CY2021Q4 | ufpt |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Current
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent
|
1842000 | USD |
CY2020Q4 | ufpt |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Current
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent
|
802000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
668000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
524000 | USD |
CY2021Q4 | ufpt |
Deferred Tax Assets Lease Liability
DeferredTaxAssetsLeaseLiability
|
2427000 | USD |
CY2020Q4 | ufpt |
Deferred Tax Assets Lease Liability
DeferredTaxAssetsLeaseLiability
|
567000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
|
877000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
|
0 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
365000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
USD | |
CY2021Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
17000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
123000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
7282000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
2917000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
17000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
64000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
7265000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
2853000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
4481000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
4527000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
|
3628000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
|
2795000 | USD |
CY2021Q4 | ufpt |
Deferred Tax Liabilities Right Of Use Asset
DeferredTaxLiabilitiesRightOfUseAsset
|
2419000 | USD |
CY2020Q4 | ufpt |
Deferred Tax Liabilities Right Of Use Asset
DeferredTaxLiabilitiesRightOfUseAsset
|
554000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
-0 | USD |
CY2021Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
10528000 | USD |
CY2020Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
7910000 | USD |
CY2021Q4 | ufpt |
Aggregate Deferred Tax Liabilities Noncurrent
AggregateDeferredTaxLiabilitiesNoncurrent
|
3263000 | USD |
CY2020Q4 | ufpt |
Aggregate Deferred Tax Liabilities Noncurrent
AggregateDeferredTaxLiabilitiesNoncurrent
|
5057000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
7300000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
17000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
64000 | USD |
CY2021 | us-gaap |
Valuation Allowance Deferred Tax Asset Change In Amount
ValuationAllowanceDeferredTaxAssetChangeInAmount
|
-47000 | USD |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | pure |
CY2020Q4 | us-gaap |
Defined Benefit Plan Assets For Plan Benefits Noncurrent
DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent
|
3700000 | USD |
CY2020Q4 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
45153000 | USD |
CY2020Q1 | us-gaap |
Gross Profit
GrossProfit
|
12823000 | USD |
CY2020Q2 | us-gaap |
Gross Profit
GrossProfit
|
9949000 | USD |
CY2020Q3 | us-gaap |
Gross Profit
GrossProfit
|
10528000 | USD |
CY2020Q4 | us-gaap |
Gross Profit
GrossProfit
|
11384000 | USD |
CY2020Q1 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
3891000 | USD |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | pure |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | pure |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.040 | pure |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.042 | pure |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.018 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
|
0 | pure |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
|
0.001 | pure |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Meals And Entertainment
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
|
0.002 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits
EffectiveIncomeTaxRateReconciliationTaxCredits
|
0.017 | pure |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits
EffectiveIncomeTaxRateReconciliationTaxCredits
|
0.072 | pure |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits
EffectiveIncomeTaxRateReconciliationTaxCredits
|
0.062 | pure |
CY2021 | ufpt |
Effective Income Tax Rate Reconciliation Return To Provision Adjustments Percent
EffectiveIncomeTaxRateReconciliationReturnToProvisionAdjustmentsPercent
|
0.007 | pure |
CY2020 | ufpt |
Effective Income Tax Rate Reconciliation Return To Provision Adjustments Percent
EffectiveIncomeTaxRateReconciliationReturnToProvisionAdjustmentsPercent
|
0 | pure |
CY2019 | ufpt |
Effective Income Tax Rate Reconciliation Return To Provision Adjustments Percent
EffectiveIncomeTaxRateReconciliationReturnToProvisionAdjustmentsPercent
|
0 | pure |
CY2021 | ufpt |
Effective Income Tax Rate Reconciliation Unrecognized Tax Benefits Adjustments
EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments
|
0 | pure |
CY2020 | ufpt |
Effective Income Tax Rate Reconciliation Unrecognized Tax Benefits Adjustments
EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments
|
0 | pure |
CY2019 | ufpt |
Effective Income Tax Rate Reconciliation Unrecognized Tax Benefits Adjustments
EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments
|
-0.007 | pure |
CY2021 | ufpt |
Effective Income Tax Rate Reconciliation Tax Benefits From Sharebased Compensation Cost Percent
EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent
|
0 | pure |
CY2020 | ufpt |
Effective Income Tax Rate Reconciliation Tax Benefits From Sharebased Compensation Cost Percent
EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent
|
-0.012 | pure |
CY2019 | ufpt |
Effective Income Tax Rate Reconciliation Tax Benefits From Sharebased Compensation Cost Percent
EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent
|
-0.007 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
|
0.007 | pure |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
|
0.008 | pure |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
|
0.006 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
0.006 | pure |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
0.002 | pure |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
0.004 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-0.002 | pure |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0 | pure |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0.001 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.251 | pure |
CY2020 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.179 | pure |
CY2019 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.165 | pure |
CY2021Q4 | ufpt |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Next Twelve Months
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths
|
1411000 | USD |
CY2021Q4 | ufpt |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Year Two
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo
|
898000 | USD |
CY2021Q4 | ufpt |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Year Three
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree
|
116000 | USD |
CY2021Q4 | us-gaap |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
|
2425000 | USD |
CY2019Q4 | us-gaap |
Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
|
486000 | USD |
CY2018Q4 | us-gaap |
Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
|
564000 | USD |
CY2021 | us-gaap |
Valuation Allowances And Reserves Charged To Cost And Expense
ValuationAllowancesAndReservesChargedToCostAndExpense
|
179000 | USD |
CY2020 | us-gaap |
Valuation Allowances And Reserves Charged To Cost And Expense
ValuationAllowancesAndReservesChargedToCostAndExpense
|
13000 | USD |
CY2019 | us-gaap |
Valuation Allowances And Reserves Charged To Cost And Expense
ValuationAllowancesAndReservesChargedToCostAndExpense
|
-52000 | USD |
CY2021 | us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
27000 | USD |
CY2020 | us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
10000 | USD |
CY2021 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
3000 | USD |
CY2020 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
2000 | USD |
CY2021 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
1263000 | USD |
CY2020 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
1207000 | USD |
CY2021 | us-gaap |
Variable Lease Cost
VariableLeaseCost
|
263000 | USD |
CY2020 | us-gaap |
Variable Lease Cost
VariableLeaseCost
|
215000 | USD |
CY2021 | us-gaap |
Short Term Lease Cost
ShortTermLeaseCost
|
43000 | USD |
CY2020 | us-gaap |
Short Term Lease Cost
ShortTermLeaseCost
|
28000 | USD |
CY2021 | us-gaap |
Lease Cost
LeaseCost
|
1599000 | USD |
CY2020 | us-gaap |
Lease Cost
LeaseCost
|
1462000 | USD |
CY2021 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1284000 | USD |
CY2020 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1212000 | USD |
CY2021 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
29000 | USD |
CY2020 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
11000 | USD |
CY2021 | us-gaap |
Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
|
198000 | USD |
CY2020 | us-gaap |
Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
|
110000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Weighted Average Remaining Lease Term1
FinanceLeaseWeightedAverageRemainingLeaseTerm1
|
P4Y6M14D | |
CY2021Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P3Y11M12D | |
CY2020Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P1Y9M10D | |
CY2021Q4 | us-gaap |
Finance Lease Weighted Average Discount Rate Percent
FinanceLeaseWeightedAverageDiscountRatePercent
|
0.0210 | pure |
CY2020Q4 | us-gaap |
Finance Lease Weighted Average Discount Rate Percent
FinanceLeaseWeightedAverageDiscountRatePercent
|
0.0226 | pure |
CY2021Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.0263 | pure |
CY2020Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.0437 | pure |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due Next Twelve Months
FinanceLeaseLiabilityPaymentsDueNextTwelveMonths
|
63000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
2212000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due Year Two
FinanceLeaseLiabilityPaymentsDueYearTwo
|
63000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
1297000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due Year Three
FinanceLeaseLiabilityPaymentsDueYearThree
|
63000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
1230000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due Year Four
FinanceLeaseLiabilityPaymentsDueYearFour
|
63000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
1100000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due Year Five
FinanceLeaseLiabilityPaymentsDueYearFive
|
29000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
831000 | USD |
CY2021Q4 | us-gaap |
Business Combination Contingent Consideration Liability Noncurrent
BusinessCombinationContingentConsiderationLiabilityNoncurrent
|
9731000 | USD |
CY2020Q4 | us-gaap |
Business Combination Contingent Consideration Liability Noncurrent
BusinessCombinationContingentConsiderationLiabilityNoncurrent
|
0 | USD |
CY2021Q4 | ufpt |
Noncompetition Agreement Payment Liability Noncurrent
NoncompetitionAgreementPaymentLiabilityNoncurrent
|
8855000 | USD |
CY2020Q4 | ufpt |
Noncompetition Agreement Payment Liability Noncurrent
NoncompetitionAgreementPaymentLiabilityNoncurrent
|
0 | USD |
CY2021Q4 | ufpt |
Other Liabilities Noncurrent Other
OtherLiabilitiesNoncurrentOther
|
676000 | USD |
CY2020Q4 | ufpt |
Other Liabilities Noncurrent Other
OtherLiabilitiesNoncurrentOther
|
1271000 | USD |
CY2021Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
19262000 | USD |
CY2020Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
1271000 | USD |
CY2021 | us-gaap |
Valuation Allowances And Reserves Deductions
ValuationAllowancesAndReservesDeductions
|
144000 | USD |
CY2020 | us-gaap |
Valuation Allowances And Reserves Deductions
ValuationAllowancesAndReservesDeductions
|
15000 | USD |
CY2019 | us-gaap |
Valuation Allowances And Reserves Deductions
ValuationAllowancesAndReservesDeductions
|
26000 | USD |
CY2021Q4 | us-gaap |
Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
|
519000 | USD |
CY2020Q4 | us-gaap |
Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
|
484000 | USD |
CY2019Q4 | us-gaap |
Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
|
486000 | USD |
CY2021 | us-gaap |
Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
|
600000 | USD |
CY2020 | us-gaap |
Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
|
900000 | USD |
CY2019 | us-gaap |
Defined Contribution Plan Cost Recognized
DefinedContributionPlanCostRecognized
|
1000000.0 | USD |
CY2021 | ufpt |
Self Iinsured Health Insurance Program Stop Loss Amount
SelfIinsuredHealthInsuranceProgramStopLossAmount
|
225000 | USD |
CY2021Q4 | us-gaap |
Deferred Compensation Liability Classified Noncurrent
DeferredCompensationLiabilityClassifiedNoncurrent
|
4300000 | USD |
CY2020Q4 | us-gaap |
Deferred Compensation Liability Classified Noncurrent
DeferredCompensationLiabilityClassifiedNoncurrent
|
3800000 | USD |
CY2021Q4 | us-gaap |
Defined Benefit Plan Assets For Plan Benefits Noncurrent
DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent
|
4300000 | USD |
CY2021 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
206320000 | USD |
CY2021 | ufpt |
Revenue From Contract With Customer Including Assessed Tax Percentage
RevenueFromContractWithCustomerIncludingAssessedTaxPercentage
|
1.000 | pure |
CY2020 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
179373000 | USD |
CY2020 | ufpt |
Revenue From Contract With Customer Including Assessed Tax Percentage
RevenueFromContractWithCustomerIncludingAssessedTaxPercentage
|
1.000 | pure |
CY2019 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
198381000 | USD |
CY2019 | ufpt |
Revenue From Contract With Customer Including Assessed Tax Percentage
RevenueFromContractWithCustomerIncludingAssessedTaxPercentage
|
1.000 | pure |
CY2021Q1 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
48599000 | USD |
CY2021Q2 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
50655000 | USD |
CY2021Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
50723000 | USD |
CY2021Q4 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
56343000 | USD |
CY2021Q1 | us-gaap |
Gross Profit
GrossProfit
|
12609000 | USD |
CY2021Q2 | us-gaap |
Gross Profit
GrossProfit
|
13414000 | USD |
CY2021Q3 | us-gaap |
Gross Profit
GrossProfit
|
12016000 | USD |
CY2021Q4 | us-gaap |
Gross Profit
GrossProfit
|
13075000 | USD |
CY2021Q1 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
4163000 | USD |
CY2021Q2 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
4715000 | USD |
CY2021Q3 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
3789000 | USD |
CY2021Q4 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
3219000 | USD |
CY2020Q4 | us-gaap |
Valuation Allowances And Reserves Balance
ValuationAllowancesAndReservesBalance
|
484000 | USD |