2024 Q1 Form 10-K Financial Statement
#000181188424000009 Filed on March 26, 2024
Income Statement
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
Revenue | $11.34M | $12.33M | $50.22M |
YoY Change | -9.42% | -9.15% | -3.93% |
Cost Of Revenue | $4.574M | $5.235M | $20.19M |
YoY Change | -2.2% | -0.23% | 0.5% |
Gross Profit | $6.766M | $7.098M | $30.04M |
YoY Change | -13.73% | -14.76% | -6.7% |
Gross Profit Margin | 59.66% | 57.55% | 59.81% |
Selling, General & Admin | $2.617M | $3.008M | $5.380M |
YoY Change | -19.72% | -4.02% | -54.84% |
% of Gross Profit | 38.68% | 42.38% | 17.91% |
Research & Development | $266.0K | $146.0K | $560.0K |
YoY Change | 84.72% | 18.7% | 13.59% |
% of Gross Profit | 3.93% | 2.06% | 1.86% |
Depreciation & Amortization | $156.0K | $1.025M | $6.315M |
YoY Change | 0.65% | -41.02% | 931.86% |
% of Gross Profit | 2.31% | 14.44% | 21.02% |
Operating Expenses | $2.883M | $3.154M | $11.60M |
YoY Change | -15.31% | -3.16% | -6.49% |
Operating Profit | $3.883M | $3.944M | $18.44M |
YoY Change | -12.53% | -22.21% | -6.84% |
Interest Expense | $3.036M | $3.036M | |
YoY Change | 359.3% | 359.3% | |
% of Operating Profit | 76.98% | 16.47% | |
Other Income/Expense, Net | $915.0K | -$1.963M | $276.0K |
YoY Change | 34.56% | 1302.14% | 46.81% |
Pretax Income | $4.798M | $5.017M | $20.09M |
YoY Change | -6.27% | -10.27% | -2.76% |
Income Tax | $842.0K | $731.0K | $3.454M |
% Of Pretax Income | 17.55% | 14.57% | 17.19% |
Net Earnings | $3.956M | $4.286M | $16.64M |
YoY Change | -6.12% | -5.91% | 0.98% |
Net Earnings / Revenue | 34.89% | 34.75% | 33.12% |
Basic Earnings Per Share | $1.09 | $4.58 | |
Diluted Earnings Per Share | $1.09 | $1.18 | $4.57 |
COMMON SHARES | |||
Basic Shares Outstanding | 3.589M shares | 3.630M shares | 3.629M shares |
Diluted Shares Outstanding | 3.618M shares | 3.637M shares |
Balance Sheet
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $93.81M | $92.87M | $92.87M |
YoY Change | 15.94% | 23.74% | 23.74% |
Cash & Equivalents | $93.81M | $92.87M | $92.87M |
Short-Term Investments | |||
Other Short-Term Assets | $510.0K | $428.0K | $428.0K |
YoY Change | 15.38% | -16.89% | -16.89% |
Inventory | $9.240M | $9.582M | $9.582M |
Prepaid Expenses | |||
Receivables | $3.591M | $3.391M | $3.337M |
Other Receivables | $0.00 | $0.00 | $54.00K |
Total Short-Term Assets | $107.1M | $106.3M | $106.3M |
YoY Change | 12.66% | 18.18% | 18.18% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $10.27M | $10.55M | $10.55M |
YoY Change | 0.24% | 3.2% | 3.2% |
Goodwill | $13.64M | $13.69M | |
YoY Change | 1.01% | 2.53% | |
Intangibles | $4.388M | $4.946M | |
YoY Change | -50.78% | -52.34% | |
Long-Term Investments | |||
YoY Change | |||
Other Assets | |||
YoY Change | |||
Total Long-Term Assets | $28.29M | $29.19M | $29.19M |
YoY Change | -13.37% | -14.04% | -14.04% |
TOTAL ASSETS | |||
Total Short-Term Assets | $107.1M | $106.3M | $106.3M |
Total Long-Term Assets | $28.29M | $29.19M | $29.19M |
Total Assets | $135.4M | $135.5M | $135.5M |
YoY Change | 6.0% | 9.35% | 9.35% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $998.0K | $769.0K | $769.0K |
YoY Change | -2.92% | -36.86% | -36.86% |
Accrued Expenses | $4.476M | $3.941M | $3.614M |
YoY Change | -11.3% | -16.89% | -17.96% |
Deferred Revenue | |||
YoY Change | |||
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | |||
YoY Change | |||
Total Short-Term Liabilities | $5.474M | $4.710M | $4.710M |
YoY Change | -9.88% | -20.97% | -20.97% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Other Long-Term Liabilities | $698.0K | $993.0K | $993.0K |
YoY Change | -44.43% | -37.82% | -37.82% |
Total Long-Term Liabilities | $698.0K | $993.0K | $993.0K |
YoY Change | -44.43% | -37.82% | -37.82% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $5.474M | $4.710M | $4.710M |
Total Long-Term Liabilities | $698.0K | $993.0K | $993.0K |
Total Liabilities | $7.699M | $7.145M | $7.145M |
YoY Change | -21.05% | -25.73% | -25.73% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $139.0M | $138.3M | |
YoY Change | 7.62% | 9.79% | |
Common Stock | $36.00K | $630.0K | |
YoY Change | -89.94% | 119.51% | |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | |||
YoY Change | |||
Treasury Stock Shares | |||
Shareholders Equity | $127.7M | $128.3M | $128.3M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $135.4M | $135.5M | $135.5M |
YoY Change | 6.0% | 9.35% | 9.35% |
Cashflow Statement
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $3.956M | $4.286M | $16.64M |
YoY Change | -6.12% | -5.91% | 0.98% |
Depreciation, Depletion And Amortization | $156.0K | $1.025M | $6.315M |
YoY Change | 0.65% | -41.02% | 931.86% |
Cash From Operating Activities | $5.276M | $5.331M | $22.28M |
YoY Change | -23.7% | -6.14% | 5.36% |
INVESTING ACTIVITIES | |||
Capital Expenditures | $22.00K | $89.00K | $639.0K |
YoY Change | -48.84% | 134.21% | -21.01% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | $27.00K | ||
YoY Change | |||
Cash From Investing Activities | $5.000K | -$89.00K | -$639.0K |
YoY Change | -111.63% | 134.21% | -21.88% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | $1.089M | $4.282M | |
YoY Change | 1.78% | 35.38% | |
Common Stock Issuance & Retirement, Net | $117.0K | ||
YoY Change | -94.96% | ||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -$3.983M | -1.075M | -4.165M |
YoY Change | 279.69% | 16.85% | -24.05% |
NET CHANGE | |||
Cash From Operating Activities | $5.276M | 5.331M | 22.28M |
Cash From Investing Activities | $5.000K | -89.00K | -639.0K |
Cash From Financing Activities | -$3.983M | -1.075M | -4.165M |
Net Change In Cash | $940.0K | 4.167M | 17.48M |
YoY Change | -83.96% | -11.75% | 24.14% |
FREE CASH FLOW | |||
Cash From Operating Activities | $5.276M | $5.331M | $22.28M |
Capital Expenditures | $22.00K | $89.00K | $639.0K |
Free Cash Flow | $5.254M | $5.242M | $21.64M |
YoY Change | -23.54% | -7.09% | 6.41% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2023Q4 | us-gaap |
Operating Lease Right Of Use Asset Statement Of Financial Position Extensible List
OperatingLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList
|
http://fasb.org/us-gaap/2023#FiniteLivedIntangibleAssetsGross | |
CY2022Q4 | us-gaap |
Operating Lease Right Of Use Asset Statement Of Financial Position Extensible List
OperatingLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList
|
http://fasb.org/us-gaap/2023#FiniteLivedIntangibleAssetsGross | |
CY2023 | dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2023 | |
CY2023 | dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
FY | |
CY2023Q4 | us-gaap |
Operating Lease Liability Current Statement Of Financial Position Extensible List
OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList
|
http://fasb.org/us-gaap/2023#AccruedLiabilitiesCurrent | |
CY2023 | dei |
Document Type
DocumentType
|
10-K | |
CY2023 | dei |
Document Annual Report
DocumentAnnualReport
|
true | |
CY2023 | dei |
Document Period End Date
DocumentPeriodEndDate
|
2023-12-31 | |
CY2023 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | |
CY2023 | dei |
Document Transition Report
DocumentTransitionReport
|
false | |
CY2023 | dei |
Entity File Number
EntityFileNumber
|
001-12575 | |
CY2023 | dei |
Entity Registrant Name
EntityRegistrantName
|
UTAH MEDICAL PRODUCTS INC | |
CY2023 | dei |
Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
|
UT | |
CY2023 | dei |
Entity Tax Identification Number
EntityTaxIdentificationNumber
|
87-0342734 | |
CY2023 | dei |
Entity Address Address Line1
EntityAddressAddressLine1
|
7043 South 300 West | |
CY2023 | dei |
Entity Address City Or Town
EntityAddressCityOrTown
|
Midvale | |
CY2023 | dei |
Entity Address State Or Province
EntityAddressStateOrProvince
|
UT | |
CY2023 | dei |
Entity Address Postal Zip Code
EntityAddressPostalZipCode
|
84047 | |
CY2023 | dei |
City Area Code
CityAreaCode
|
801 | |
CY2023 | dei |
Local Phone Number
LocalPhoneNumber
|
566-1200 | |
CY2023 | dei |
Security12b Title
Security12bTitle
|
Common stock, $0.01 par value | |
CY2023 | dei |
Trading Symbol
TradingSymbol
|
UTMD | |
CY2023 | dei |
Security Exchange Name
SecurityExchangeName
|
NASDAQ | |
CY2023 | dei |
Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
|
No | |
CY2023 | dei |
Entity Voluntary Filers
EntityVoluntaryFilers
|
No | |
CY2023 | dei |
Entity Current Reporting Status
EntityCurrentReportingStatus
|
Yes | |
CY2023 | dei |
Entity Interactive Data Current
EntityInteractiveDataCurrent
|
Yes | |
CY2023 | dei |
Entity Filer Category
EntityFilerCategory
|
Non-accelerated Filer | |
CY2023 | dei |
Entity Small Business
EntitySmallBusiness
|
true | |
CY2023 | dei |
Entity Emerging Growth Company
EntityEmergingGrowthCompany
|
false | |
CY2023 | dei |
Icfr Auditor Attestation Flag
IcfrAuditorAttestationFlag
|
false | |
CY2023 | dei |
Document Fin Stmt Error Correction Flag
DocumentFinStmtErrorCorrectionFlag
|
false | |
CY2023 | dei |
Entity Shell Company
EntityShellCompany
|
false | |
CY2023Q2 | dei |
Entity Public Float
EntityPublicFloat
|
313392922 | usd |
CY2024Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
3589014 | shares |
CY2023 | dei |
Auditor Name
AuditorName
|
Haynie & Company | |
CY2023 | dei |
Auditor Location
AuditorLocation
|
Salt Lake City, Utah | |
CY2023 | dei |
Auditor Firm
AuditorFirmId
|
457 | |
CY2023Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
92868000 | usd |
CY2022Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
75052000 | usd |
CY2023Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
3391000 | usd |
CY2022Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
5538000 | usd |
CY2023Q4 | us-gaap |
Inventory Net
InventoryNet
|
9582000 | usd |
CY2022Q4 | us-gaap |
Inventory Net
InventoryNet
|
8814000 | usd |
CY2023Q4 | us-gaap |
Other Assets Current
OtherAssetsCurrent
|
428000 | usd |
CY2022Q4 | us-gaap |
Other Assets Current
OtherAssetsCurrent
|
515000 | usd |
CY2023Q4 | us-gaap |
Assets Current
AssetsCurrent
|
106269000 | usd |
CY2022Q4 | us-gaap |
Assets Current
AssetsCurrent
|
89919000 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
10551000 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
10224000 | usd |
CY2023Q4 | us-gaap |
Goodwill
Goodwill
|
13692000 | usd |
CY2022Q4 | us-gaap |
Goodwill
Goodwill
|
13354000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
54296000 | usd |
CY2022Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
52755000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
49350000 | usd |
CY2022Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
42378000 | usd |
CY2023Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
4946000 | usd |
CY2022Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
10377000 | usd |
CY2023Q4 | us-gaap |
Assets
Assets
|
135458000 | usd |
CY2022Q4 | us-gaap |
Assets
Assets
|
123874000 | usd |
CY2023Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
769000 | usd |
CY2022Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
1218000 | usd |
CY2023Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
3941000 | usd |
CY2022Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
4742000 | usd |
CY2023Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
4710000 | usd |
CY2022Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
5960000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
295000 | usd |
CY2022Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
341000 | usd |
CY2023Q4 | us-gaap |
Tax Cuts And Jobs Act Of2017 Transition Tax For Accumulated Foreign Earnings Liability Noncurrent
TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiabilityNoncurrent
|
698000 | usd |
CY2022Q4 | us-gaap |
Tax Cuts And Jobs Act Of2017 Transition Tax For Accumulated Foreign Earnings Liability Noncurrent
TaxCutsAndJobsActOf2017TransitionTaxForAccumulatedForeignEarningsLiabilityNoncurrent
|
1256000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
1120000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
1514000 | usd |
CY2023Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
322000 | usd |
CY2022Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
549000 | usd |
CY2023Q4 | us-gaap |
Liabilities
Liabilities
|
7145000 | usd |
CY2022Q4 | us-gaap |
Liabilities
Liabilities
|
9620000 | usd |
CY2023Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
0 | usd |
CY2022Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
0 | usd |
CY2023Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2022Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2023Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
50000000 | shares |
CY2022Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
50000000 | shares |
CY2023Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
3630000 | shares |
CY2023Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
3630000 | shares |
CY2022Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
3628000 | shares |
CY2022Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
3628000 | shares |
CY2023Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
36000 | usd |
CY2022Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
36000 | usd |
CY2023Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
|
-10658000 | usd |
CY2022Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Before Tax1
AccumulatedOtherComprehensiveIncomeLossBeforeTax1
|
-12039000 | usd |
CY2023Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
594000 | usd |
CY2022Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
251000 | usd |
CY2023Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
138341000 | usd |
CY2022Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
126006000 | usd |
CY2023Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
128313000 | usd |
CY2022Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
114254000 | usd |
CY2023Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
135458000 | usd |
CY2022Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
123874000 | usd |
CY2023 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
50224000 | usd |
CY2022 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
52281000 | usd |
CY2021 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
49054000 | usd |
CY2023 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
20186000 | usd |
CY2022 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
20085000 | usd |
CY2021 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
18137000 | usd |
CY2023 | us-gaap |
Gross Profit
GrossProfit
|
30038000 | usd |
CY2022 | us-gaap |
Gross Profit
GrossProfit
|
32196000 | usd |
CY2021 | us-gaap |
Gross Profit
GrossProfit
|
30917000 | usd |
CY2023 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
1685000 | usd |
CY2022 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
1507000 | usd |
CY2021 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
1414000 | usd |
CY2023 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
560000 | usd |
CY2022 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
493000 | usd |
CY2021 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
526000 | usd |
CY2023 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
11016000 | usd |
CY2022 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
10406000 | usd |
CY2021 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
10097000 | usd |
CY2023 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
16777000 | usd |
CY2022 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
19790000 | usd |
CY2021 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
18880000 | usd |
CY2023 | us-gaap |
Other Interest And Dividend Income
OtherInterestAndDividendIncome
|
3036000 | usd |
CY2022 | us-gaap |
Other Interest And Dividend Income
OtherInterestAndDividendIncome
|
661000 | usd |
CY2021 | us-gaap |
Other Interest And Dividend Income
OtherInterestAndDividendIncome
|
166000 | usd |
CY2023 | us-gaap |
Royalty Income Nonoperating
RoyaltyIncomeNonoperating
|
20000 | usd |
CY2022 | us-gaap |
Royalty Income Nonoperating
RoyaltyIncomeNonoperating
|
20000 | usd |
CY2021 | us-gaap |
Royalty Income Nonoperating
RoyaltyIncomeNonoperating
|
15000 | usd |
CY2023 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
256000 | usd |
CY2022 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
188000 | usd |
CY2021 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
0 | usd |
CY2023 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
20089000 | usd |
CY2022 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
20659000 | usd |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
19061000 | usd |
CY2023 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
3454000 | usd |
CY2022 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4186000 | usd |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4273000 | usd |
CY2023 | us-gaap |
Profit Loss
ProfitLoss
|
16635000 | usd |
CY2022 | us-gaap |
Profit Loss
ProfitLoss
|
16473000 | usd |
CY2021 | us-gaap |
Profit Loss
ProfitLoss
|
14788000 | usd |
CY2023 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
4.58 | |
CY2022 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
4.53 | |
CY2021 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
4.05 | |
CY2023 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
4.57 | |
CY2022 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
4.52 | |
CY2021 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
4.04 | |
CY2023 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
|
0 | usd |
CY2022 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
|
0 | usd |
CY2021 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
|
0 | usd |
CY2023 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
1381000 | usd |
CY2022 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-2986000 | usd |
CY2021 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-773000 | usd |
CY2023 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
18016000 | usd |
CY2022 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
13487000 | usd |
CY2021 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
14015000 | usd |
CY2023 | us-gaap |
Profit Loss
ProfitLoss
|
16635000 | usd |
CY2022 | us-gaap |
Profit Loss
ProfitLoss
|
16473000 | usd |
CY2021 | us-gaap |
Profit Loss
ProfitLoss
|
14788000 | usd |
CY2023 | us-gaap |
Depreciation
Depreciation
|
623000 | usd |
CY2022 | us-gaap |
Depreciation
Depreciation
|
612000 | usd |
CY2021 | us-gaap |
Depreciation
Depreciation
|
636000 | usd |
CY2023 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
5692000 | usd |
CY2022 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
6417000 | usd |
CY2021 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
6645000 | usd |
CY2023 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
-33000 | usd |
CY2022 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
30000 | usd |
CY2021 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
24000 | usd |
CY2023 | us-gaap |
Operating Lease Right Of Use Asset Amortization Expense
OperatingLeaseRightOfUseAssetAmortizationExpense
|
53000 | usd |
CY2022 | us-gaap |
Operating Lease Right Of Use Asset Amortization Expense
OperatingLeaseRightOfUseAssetAmortizationExpense
|
53000 | usd |
CY2021 | us-gaap |
Operating Lease Right Of Use Asset Amortization Expense
OperatingLeaseRightOfUseAssetAmortizationExpense
|
3000 | usd |
CY2023 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-693000 | usd |
CY2022 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-401000 | usd |
CY2021 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-92000 | usd |
CY2023 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
225000 | usd |
CY2022 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
183000 | usd |
CY2021 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
166000 | usd |
CY2023 | us-gaap |
Deferred Tax Expense From Stock Options Exercised
DeferredTaxExpenseFromStockOptionsExercised
|
12000 | usd |
CY2022 | us-gaap |
Deferred Tax Expense From Stock Options Exercised
DeferredTaxExpenseFromStockOptionsExercised
|
6000 | usd |
CY2021 | us-gaap |
Deferred Tax Expense From Stock Options Exercised
DeferredTaxExpenseFromStockOptionsExercised
|
39000 | usd |
CY2023 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-2270000 | usd |
CY2022 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
511000 | usd |
CY2021 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
1088000 | usd |
CY2023 | us-gaap |
Increase Decrease In Other Receivables
IncreaseDecreaseInOtherReceivables
|
0 | usd |
CY2022 | us-gaap |
Increase Decrease In Other Receivables
IncreaseDecreaseInOtherReceivables
|
14000 | usd |
CY2021 | us-gaap |
Increase Decrease In Other Receivables
IncreaseDecreaseInOtherReceivables
|
42000 | usd |
CY2023 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
670000 | usd |
CY2022 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
2353000 | usd |
CY2021 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
485000 | usd |
CY2023 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-45000 | usd |
CY2022 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
64000 | usd |
CY2021 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
81000 | usd |
CY2023 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-456000 | usd |
CY2022 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
464000 | usd |
CY2021 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-23000 | usd |
CY2023 | us-gaap |
Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
|
-1422000 | usd |
CY2022 | us-gaap |
Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
|
252000 | usd |
CY2021 | us-gaap |
Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
|
713000 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
22281000 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
21147000 | usd |
CY2021 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
21203000 | usd |
CY2023 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
639000 | usd |
CY2022 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
809000 | usd |
CY2021 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
552000 | usd |
CY2023 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
0 | usd |
CY2022 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
9000 | usd |
CY2021 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
0 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-639000 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-818000 | usd |
CY2021 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-552000 | usd |
CY2023 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
117000 | usd |
CY2022 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
174000 | usd |
CY2021 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
560000 | usd |
CY2023 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
0 | usd |
CY2022 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
2495000 | usd |
CY2021 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
0 | usd |
CY2023 | us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
4282000 | usd |
CY2022 | us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
3163000 | usd |
CY2021 | us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
11465000 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-4165000 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-5484000 | usd |
CY2021 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-10905000 | usd |
CY2023 | us-gaap |
Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
339000 | usd |
CY2022 | us-gaap |
Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
-767000 | usd |
CY2021 | us-gaap |
Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
-362000 | usd |
CY2023 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
17816000 | usd |
CY2022 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
14078000 | usd |
CY2021 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
9384000 | usd |
CY2022Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
75052000 | usd |
CY2021Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
60974000 | usd |
CY2020Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
51590000 | usd |
CY2023Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
92868000 | usd |
CY2022Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
75052000 | usd |
CY2021Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
60974000 | usd |
CY2023 | us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
4827000 | usd |
CY2022 | us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
4970000 | usd |
CY2021 | us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
4617000 | usd |
CY2023 | us-gaap |
Interest Paid
InterestPaid
|
0 | usd |
CY2022 | us-gaap |
Interest Paid
InterestPaid
|
0 | usd |
CY2021 | us-gaap |
Interest Paid
InterestPaid
|
0 | usd |
CY2020Q4 | us-gaap |
Stockholders Equity Including Portion Attributable To Noncontrolling Interest
StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
|
102822000 | usd |
CY2021 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
787000 | usd |
CY2021 | fil |
Common Stock Received And Retired Upon Exercise Of Stock Options
CommonStockReceivedAndRetiredUponExerciseOfStockOptions
|
-227000 | usd |
CY2021 | us-gaap |
Stock Option Plan Expense
StockOptionPlanExpense
|
166000 | usd |
CY2021 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-773000 | usd |
CY2021 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
10425000 | usd |
CY2021 | us-gaap |
Profit Loss
ProfitLoss
|
14788000 | usd |
CY2021Q4 | us-gaap |
Stockholders Equity Including Portion Attributable To Noncontrolling Interest
StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
|
107138000 | usd |
CY2022 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
211000 | usd |
CY2022 | fil |
Common Stock Received And Retired Upon Exercise Of Stock Options
CommonStockReceivedAndRetiredUponExerciseOfStockOptions
|
-37000 | usd |
CY2022 | us-gaap |
Stock Option Plan Expense
StockOptionPlanExpense
|
183000 | usd |
CY2022 | us-gaap |
Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
|
-2495000 | usd |
CY2022 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-2986000 | usd |
CY2022 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
4233000 | usd |
CY2022 | us-gaap |
Profit Loss
ProfitLoss
|
16473000 | usd |
CY2022Q4 | us-gaap |
Stockholders Equity Including Portion Attributable To Noncontrolling Interest
StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
|
114255000 | usd |
CY2023 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
117000 | usd |
CY2023 | us-gaap |
Stock Option Plan Expense
StockOptionPlanExpense
|
225000 | usd |
CY2023 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
1381000 | usd |
CY2023 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
4300000 | usd |
CY2023 | us-gaap |
Profit Loss
ProfitLoss
|
16635000 | usd |
CY2023Q4 | us-gaap |
Stockholders Equity Including Portion Attributable To Noncontrolling Interest
StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
|
128313000 | usd |
CY2023 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<p style="font:10pt Times New Roman;margin:0"><span style="border-bottom:1px solid #000000">Use of Estimates in the Preparation of Financial Statements</span></p> <p style="font:10pt Times New Roman;margin:0"> </p> <p style="font:10pt Times New Roman;margin:0">The preparation of 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 and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Although actual results could differ from those estimates, management believes it has considered and disclosed all relevant information in making its estimates that materially affect reported performance and current values.</p> | |
CY2023Q4 | fil |
Foreign Currency Exchange Rate Translation Gb Pto Usd
ForeignCurrencyExchangeRateTranslationGBPtoUSD
|
1.2739 | pure |
CY2023Q4 | fil |
Foreign Currency Exchange Rate Translation Au Dto Usd
ForeignCurrencyExchangeRateTranslationAUDtoUSD
|
0.6825 | pure |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
1931000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
1931000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
422000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
10000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
8000 | usd |
CY2023 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
225000 | usd |
CY2022 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
183000 | usd |
CY2021 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
166000 | usd |
CY2023Q4 | us-gaap |
Litigation Reserve
LitigationReserve
|
257000 | usd |
CY2022Q4 | us-gaap |
Litigation Reserve
LitigationReserve
|
204000 | usd |
CY2023 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
3629000 | shares |
CY2022 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
3637000 | shares |
CY2021 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
3647000 | shares |
CY2023 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
8000 | shares |
CY2022 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
6000 | shares |
CY2021 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
13000 | shares |
CY2023 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
3637000 | shares |
CY2022 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
3643000 | shares |
CY2021 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
3660000 | shares |
CY2023Q4 | us-gaap |
Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
|
3488000 | usd |
CY2022Q4 | us-gaap |
Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
|
5720000 | usd |
CY2023Q4 | us-gaap |
Interest Receivable And Other Assets
InterestReceivableAndOtherAssets
|
53000 | usd |
CY2022Q4 | us-gaap |
Interest Receivable And Other Assets
InterestReceivableAndOtherAssets
|
51000 | usd |
CY2023Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
151000 | usd |
CY2022Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
182000 | usd |
CY2023Q4 | us-gaap |
Accounts And Other Receivables Net Current
AccountsAndOtherReceivablesNetCurrent
|
3390000 | usd |
CY2022Q4 | us-gaap |
Accounts And Other Receivables Net Current
AccountsAndOtherReceivablesNetCurrent
|
5589000 | usd |
CY2023Q4 | us-gaap |
Inventory Finished Goods Net Of Reserves
InventoryFinishedGoodsNetOfReserves
|
1685000 | usd |
CY2022Q4 | us-gaap |
Inventory Finished Goods Net Of Reserves
InventoryFinishedGoodsNetOfReserves
|
1896000 | usd |
CY2023Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
1503000 | usd |
CY2022Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
1193000 | usd |
CY2023Q4 | us-gaap |
Inventory Raw Materials
InventoryRawMaterials
|
6394000 | usd |
CY2022Q4 | us-gaap |
Inventory Raw Materials
InventoryRawMaterials
|
5725000 | usd |
CY2023Q4 | us-gaap |
Inventory Net
InventoryNet
|
9582000 | usd |
CY2022Q4 | us-gaap |
Inventory Net
InventoryNet
|
8814000 | usd |
CY2022Q4 | us-gaap |
Goodwill
Goodwill
|
13354000 | usd |
CY2021Q4 | us-gaap |
Goodwill
Goodwill
|
14098000 | usd |
CY2023 | us-gaap |
Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
|
338000 | usd |
CY2022 | us-gaap |
Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
|
-744000 | usd |
CY2023 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
0 | usd |
CY2022 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
0 | usd |
CY2023Q4 | us-gaap |
Goodwill
Goodwill
|
13692000 | usd |
CY2022Q4 | us-gaap |
Goodwill
Goodwill
|
13354000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Patents Gross
FiniteLivedPatentsGross
|
2209000 | usd |
CY2022Q4 | us-gaap |
Finite Lived Patents Gross
FiniteLivedPatentsGross
|
2198000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Noncompete Agreements Gross
FiniteLivedNoncompeteAgreementsGross
|
127000 | usd |
CY2022Q4 | us-gaap |
Finite Lived Noncompete Agreements Gross
FiniteLivedNoncompeteAgreementsGross
|
121000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Trademarks Gross
FiniteLivedTrademarksGross
|
9360000 | usd |
CY2022Q4 | us-gaap |
Finite Lived Trademarks Gross
FiniteLivedTrademarksGross
|
8887000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Customer Relationships Gross
FiniteLivedCustomerRelationshipsGross
|
9108000 | usd |
CY2022Q4 | us-gaap |
Finite Lived Customer Relationships Gross
FiniteLivedCustomerRelationshipsGross
|
8635000 | usd |
CY2023Q4 | us-gaap |
Other Finite Lived Intangible Assets Gross
OtherFiniteLivedIntangibleAssetsGross
|
21000000 | usd |
CY2022Q4 | us-gaap |
Other Finite Lived Intangible Assets Gross
OtherFiniteLivedIntangibleAssetsGross
|
21000000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
342000 | usd |
CY2022Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
395000 | usd |
CY2023Q4 | fil |
Finite Lived Regulatory Approvals And Product Certifications Gross
FiniteLivedRegulatoryApprovalsAndProductCertificationsGross
|
12150000 | usd |
CY2022Q4 | fil |
Finite Lived Regulatory Approvals And Product Certifications Gross
FiniteLivedRegulatoryApprovalsAndProductCertificationsGross
|
11519000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
54296000 | usd |
CY2022Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
52755000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
49350000 | usd |
CY2022Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
42378000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
4946000 | usd |
CY2022Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
10377000 | usd |
CY2023Q4 | us-gaap |
Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
|
327000 | usd |
CY2022Q4 | us-gaap |
Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
|
337000 | usd |
CY2023Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
1294000 | usd |
CY2022Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
1318000 | usd |
CY2023Q4 | us-gaap |
Litigation Reserve Current
LitigationReserveCurrent
|
257000 | usd |
CY2022Q4 | us-gaap |
Litigation Reserve Current
LitigationReserveCurrent
|
204000 | usd |
CY2023Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
2063000 | usd |
CY2022Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
2883000 | usd |
CY2023Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
3941000 | usd |
CY2022Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
4742000 | usd |
CY2023Q1 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
12520000 | usd |
CY2023Q2 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
12866000 | usd |
CY2023Q3 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
12505000 | usd |
CY2023Q4 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
12333000 | usd |
CY2023Q1 | us-gaap |
Gross Profit
GrossProfit
|
7843000 | usd |
CY2023Q2 | us-gaap |
Gross Profit
GrossProfit
|
7739000 | usd |
CY2023Q3 | us-gaap |
Gross Profit
GrossProfit
|
7359000 | usd |
CY2023Q4 | us-gaap |
Gross Profit
GrossProfit
|
7098000 | usd |
CY2023Q1 | us-gaap |
Profit Loss
ProfitLoss
|
4214000 | usd |
CY2023Q2 | us-gaap |
Profit Loss
ProfitLoss
|
4200000 | usd |
CY2023Q3 | us-gaap |
Profit Loss
ProfitLoss
|
3935000 | usd |
CY2023Q4 | us-gaap |
Profit Loss
ProfitLoss
|
4287000 | usd |
CY2023Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.16 | |
CY2023Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.15 | |
CY2023Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.08 | |
CY2023Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.18 | |
CY2022Q1 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
12323000 | usd |
CY2022Q2 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
13428000 | usd |
CY2022Q3 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
12955000 | usd |
CY2022Q4 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
13575000 | usd |
CY2022Q1 | us-gaap |
Gross Profit
GrossProfit
|
7533000 | usd |
CY2022Q2 | us-gaap |
Gross Profit
GrossProfit
|
8151000 | usd |
CY2022Q3 | us-gaap |
Gross Profit
GrossProfit
|
8186000 | usd |
CY2022Q4 | us-gaap |
Gross Profit
GrossProfit
|
8327000 | usd |
CY2022Q1 | us-gaap |
Profit Loss
ProfitLoss
|
3534000 | usd |
CY2022Q2 | us-gaap |
Profit Loss
ProfitLoss
|
4103000 | usd |
CY2022Q3 | us-gaap |
Profit Loss
ProfitLoss
|
4280000 | usd |
CY2022Q4 | us-gaap |
Profit Loss
ProfitLoss
|
4555000 | usd |
CY2022Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.96 | |
CY2022Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.12 | |
CY2022Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.18 | |
CY2022Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.25 | |
CY2021Q1 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
10964000 | usd |
CY2021Q2 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
12604000 | usd |
CY2021Q3 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
12572000 | usd |
CY2021Q4 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
12914000 | usd |
CY2021Q1 | us-gaap |
Gross Profit
GrossProfit
|
6947000 | usd |
CY2021Q2 | us-gaap |
Gross Profit
GrossProfit
|
7785000 | usd |
CY2021Q3 | us-gaap |
Gross Profit
GrossProfit
|
8073000 | usd |
CY2021Q4 | us-gaap |
Gross Profit
GrossProfit
|
8112000 | usd |
CY2021Q1 | us-gaap |
Profit Loss
ProfitLoss
|
3024000 | usd |
CY2021Q2 | us-gaap |
Profit Loss
ProfitLoss
|
3426000 | usd |
CY2021Q3 | us-gaap |
Profit Loss
ProfitLoss
|
4206000 | usd |
CY2021Q4 | us-gaap |
Profit Loss
ProfitLoss
|
4131000 | usd |
CY2021Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.83 | |
CY2021Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.94 | |
CY2021Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.15 | |
CY2021Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.13 | |
CY2023Q4 | us-gaap |
Land
Land
|
1638000 | usd |
CY2022Q4 | us-gaap |
Land
Land
|
1593000 | usd |
CY2023Q4 | us-gaap |
Buildings And Improvements Gross
BuildingsAndImprovementsGross
|
13907000 | usd |
CY2022Q4 | us-gaap |
Buildings And Improvements Gross
BuildingsAndImprovementsGross
|
13601000 | usd |
CY2023Q4 | us-gaap |
Machinery And Equipment Gross
MachineryAndEquipmentGross
|
17315000 | usd |
CY2022Q4 | us-gaap |
Machinery And Equipment Gross
MachineryAndEquipmentGross
|
17068000 | usd |
CY2023Q4 | us-gaap |
Construction In Progress Gross
ConstructionInProgressGross
|
1413000 | usd |
CY2022Q4 | us-gaap |
Construction In Progress Gross
ConstructionInProgressGross
|
906000 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
34273000 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
33168000 | usd |
CY2023Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
23722000 | usd |
CY2022Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
22944000 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
10551000 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
10224000 | usd |
CY2023Q4 | us-gaap |
Land
Land
|
1638000 | usd |
CY2023Q4 | us-gaap |
Buildings And Improvements Gross
BuildingsAndImprovementsGross
|
13907000 | usd |
CY2023Q4 | us-gaap |
Machinery And Equipment Gross
MachineryAndEquipmentGross
|
17315000 | usd |
CY2023Q4 | us-gaap |
Construction In Progress Gross
ConstructionInProgressGross
|
1413000 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
34273000 | usd |
CY2023Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
23722000 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
10551000 | usd |
CY2022Q4 | us-gaap |
Land
Land
|
1593000 | usd |
CY2022Q4 | us-gaap |
Buildings And Improvements Gross
BuildingsAndImprovementsGross
|
13601000 | usd |
CY2022Q4 | us-gaap |
Machinery And Equipment Gross
MachineryAndEquipmentGross
|
17068000 | usd |
CY2022Q4 | us-gaap |
Construction In Progress Gross
ConstructionInProgressGross
|
906000 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
33168000 | usd |
CY2022Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
22944000 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
10224000 | usd |
CY2023Q4 | us-gaap |
Long Term Debt
LongTermDebt
|
0 | usd |
CY2022Q4 | us-gaap |
Long Term Debt
LongTermDebt
|
0 | usd |
CY2023 | fil |
Litigation Expense
LitigationExpense
|
1660000 | usd |
CY2022 | fil |
Litigation Expense
LitigationExpense
|
670000 | usd |
CY2021 | fil |
Litigation Expense
LitigationExpense
|
22000 | usd |
CY2023Q4 | us-gaap |
Product Warranty Accrual
ProductWarrantyAccrual
|
0 | usd |
CY2022Q4 | us-gaap |
Product Warranty Accrual
ProductWarrantyAccrual
|
0 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
110000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
103000 | usd |
CY2021Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
88000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
31000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
39000 | usd |
CY2021Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
31000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
|
90000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
|
90000 | usd |
CY2021Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
|
58000 | usd |
CY2023Q4 | fil |
Deferred Tax Liabilities Depreciation And Amortization
DeferredTaxLiabilitiesDepreciationAndAmortization
|
1673000 | usd |
CY2022Q4 | fil |
Deferred Tax Liabilities Depreciation And Amortization
DeferredTaxLiabilitiesDepreciationAndAmortization
|
2295000 | usd |
CY2021Q4 | fil |
Deferred Tax Liabilities Depreciation And Amortization
DeferredTaxLiabilitiesDepreciationAndAmortization
|
2859000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
1442000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
2063000 | usd |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
2682000 | usd |
CY2023 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
4075000 | usd |
CY2022 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
4632000 | usd |
CY2021 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
3983000 | usd |
CY2023 | fil |
Deferred Income Tax Expense
DeferredIncomeTaxExpense
|
-621000 | usd |
CY2022 | fil |
Deferred Income Tax Expense
DeferredIncomeTaxExpense
|
-446000 | usd |
CY2021 | fil |
Deferred Income Tax Expense
DeferredIncomeTaxExpense
|
290000 | usd |
CY2023 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
3454000 | usd |
CY2022 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4186000 | usd |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4273000 | usd |
CY2023 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
2346000 | usd |
CY2022 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
2620000 | usd |
CY2021 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
2520000 | usd |
CY2023 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
439000 | usd |
CY2022 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
490000 | usd |
CY2021 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
448000 | usd |
CY2023 | us-gaap |
Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
|
951000 | usd |
CY2022 | us-gaap |
Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
|
1129000 | usd |
CY2021 | us-gaap |
Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
|
1010000 | usd |
CY2023 | us-gaap |
Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
|
3000 | usd |
CY2022 | us-gaap |
Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
|
3000 | usd |
CY2021 | us-gaap |
Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
|
6000 | usd |
CY2023 | us-gaap |
Interest Income Securities Tax Exempt
InterestIncomeSecuritiesTaxExempt
|
195000 | usd |
CY2022 | us-gaap |
Interest Income Securities Tax Exempt
InterestIncomeSecuritiesTaxExempt
|
0 | usd |
CY2021 | us-gaap |
Interest Income Securities Tax Exempt
InterestIncomeSecuritiesTaxExempt
|
0 | usd |
CY2023 | fil |
Adjustment To Deferred Tax Liability
AdjustmentToDeferredTaxLiability
|
0 | usd |
CY2022 | fil |
Adjustment To Deferred Tax Liability
AdjustmentToDeferredTaxLiability
|
0 | usd |
CY2021 | fil |
Adjustment To Deferred Tax Liability
AdjustmentToDeferredTaxLiability
|
-391000 | usd |
CY2023 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
-84000 | usd |
CY2022 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
-50000 | usd |
CY2021 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
-90000 | usd |
CY2023 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
3454000 | usd |
CY2022 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4186000 | usd |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4273000 | usd |
CY2023 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
11170000 | usd |
CY2022 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
12475000 | usd |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
12004000 | usd |
CY2023 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
8919000 | usd |
CY2022 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
8184000 | usd |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
7057000 | usd |
CY2023 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
20089000 | usd |
CY2022 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
20659000 | usd |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
19061000 | usd |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Authorized
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
|
285000 | shares |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
84000 | shares |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
|
19000 | shares |
CY2023 | fil |
Price Range Per Share Granted
PriceRangePerShareGranted
|
77.07 - 77.07 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
|
400 | shares |
CY2023 | fil |
Price Range Per Share Expired
PriceRangePerShareExpired
|
77.05 - 77.05 | |
CY2023 | fil |
Price Range Per Share Exercised
PriceRangePerShareExercised
|
49.18 - 77.05 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
84000 | shares |
CY2023 | fil |
Price Range Per Share Outstanding
PriceRangePerShareOutstanding
|
49.18 - 82.60 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
50000 | shares |
CY2023 | fil |
Price Range Per Share Total Exercisable
PriceRangePerShareTotalExercisable
|
49.18 - 82.60 | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
|
21000 | shares |
CY2022 | fil |
Price Range Per Share Granted
PriceRangePerShareGranted
|
82.60 - 82.60 | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
|
2000 | shares |
CY2022 | fil |
Price Range Per Share Expired
PriceRangePerShareExpired
|
33.30 - 77.05 | |
CY2022 | fil |
Price Range Per Share Exercised
PriceRangePerShareExercised
|
33.30 - 77.05 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
67000 | shares |
CY2022 | fil |
Price Range Per Share Outstanding
PriceRangePerShareOutstanding
|
33.30 - 77.05 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
40000 | shares |
CY2022 | fil |
Price Range Per Share Total Exercisable
PriceRangePerShareTotalExercisable
|
33.30 - 77.05 | |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
|
0 | shares |
CY2021 | fil |
Price Range Per Share Granted
PriceRangePerShareGranted
|
- - - | |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
|
3000 | shares |
CY2021 | fil |
Price Range Per Share Expired
PriceRangePerShareExpired
|
74.64 - 77.05 | |
CY2021 | fil |
Price Range Per Share Exercised
PriceRangePerShareExercised
|
26.52 - 77.05 | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
52000 | shares |
CY2021 | fil |
Price Range Per Share Outstanding
PriceRangePerShareOutstanding
|
33.30 - 77.05 | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
34000 | shares |
CY2021 | fil |
Price Range Per Share Total Exercisable
PriceRangePerShareTotalExercisable
|
33.30 - 77.05 | |
CY2023 | us-gaap |
Employee Service Share Based Compensation Tax Benefit From Exercise Of Stock Options
EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
|
12000 | usd |
CY2022 | us-gaap |
Employee Service Share Based Compensation Tax Benefit From Exercise Of Stock Options
EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
|
6000 | usd |
CY2021 | us-gaap |
Employee Service Share Based Compensation Tax Benefit From Exercise Of Stock Options
EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
|
39000 | usd |
CY2023 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
225000 | usd |
CY2022 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
183000 | usd |
CY2021 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
166000 | usd |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Payments
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments
|
0.309 | usd |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Payments
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments
|
0.305 | usd |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.3167 | pure |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.2987 | pure |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.0475 | pure |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.0409 | pure |
CY2023 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P5Y7M6D | |
CY2022 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P5Y8M12D | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
|
25.09 | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
|
25.34 | |
CY2023Q4 | us-gaap |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
|
702000 | usd |
CY2023Q4 | fil |
Employee Service Share Based Compensation Nonvested Awards Compensation Cost Not Yet Recognized To Be Recognized Over The Next Twelve Months
EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedToBeRecognizedOverTheNextTwelveMonths
|
225000 | usd |
CY2023 | fil |
Employee Service Share Based Compensation Nonvested Awards Compensation Cost Not Yet Recognized To Be Recognized Over The Next Twelve Months Period For Recognition
EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedToBeRecognizedOverTheNextTwelveMonthsPeriodForRecognition
|
P12M | |
CY2023Q4 | fil |
Employee Service Share Based Compensation Nonvested Awards Compensation Cost Not Yet Recognized To Be Recognized Over The Next Four Years
EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedToBeRecognizedOverTheNextFourYears
|
477 | usd |
CY2023 | fil |
Employee Service Share Based Compensation Nonvested Awards Compensation Cost Not Yet Recognized To Be Recognized Over The Next Four Years Period For Recognition
EmployeeServiceShareBasedCompensationNonvestedAwardsCompensationCostNotYetRecognizedToBeRecognizedOverTheNextFourYearsPeriodForRecognition
|
P4Y | |
CY2023 | us-gaap |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Lower Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
|
49.18 | |
CY2023 | us-gaap |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Upper Range Limit
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
|
82.6 | |
CY2023Q4 | us-gaap |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Number Of Outstanding Options
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
|
84301 | shares |
CY2023Q4 | fil |
Weighted Average Remaining Contractual Life Years
WeightedAverageRemainingContractualLifeYears
|
6.79 | pure |
CY2023Q4 | us-gaap |
Sharebased Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Outstanding Options Weighted Average Exercise Price Beginning Balance1
SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
|
74.56 | |
CY2023Q4 | us-gaap |
Share Based Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Number Of Exercisable Options
ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions
|
48485 | shares |
CY2023Q4 | us-gaap |
Sharebased Compensation Shares Authorized Under Stock Option Plans Exercise Price Range Exercisable Options Weighted Average Exercise Price1
SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1
|
70.95 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
31000 | usd |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
141000 | usd |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
591000 | usd |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
814000 | usd |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
1812000 | usd |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
1595000 | usd |
CY2023 | fil |
Company Sales In The United States
CompanySalesInTheUnitedStates
|
30413000 | usd |
CY2022 | fil |
Company Sales In The United States
CompanySalesInTheUnitedStates
|
34524000 | usd |
CY2021 | fil |
Company Sales In The United States
CompanySalesInTheUnitedStates
|
31758000 | usd |
CY2023 | fil |
Company Sales In Europe
CompanySalesInEurope
|
8918000 | usd |
CY2022 | fil |
Company Sales In Europe
CompanySalesInEurope
|
7214000 | usd |
CY2021 | fil |
Company Sales In Europe
CompanySalesInEurope
|
7434000 | usd |
CY2023 | fil |
Company Sales Other
CompanySalesOther
|
10893000 | usd |
CY2022 | fil |
Company Sales Other
CompanySalesOther
|
10543000 | usd |
CY2021 | fil |
Company Sales Other
CompanySalesOther
|
9862000 | usd |
CY2023Q4 | fil |
Long Lived Assets In The United States
LongLivedAssetsInTheUnitedStates
|
11462000 | usd |
CY2022Q4 | fil |
Long Lived Assets In The United States
LongLivedAssetsInTheUnitedStates
|
14875000 | usd |
CY2021Q4 | fil |
Long Lived Assets In The United States
LongLivedAssetsInTheUnitedStates
|
19104000 | usd |
CY2023Q4 | fil |
Long Lived Assets In England
LongLivedAssetsInEngland
|
13838000 | usd |
CY2022Q4 | fil |
Long Lived Assets In England
LongLivedAssetsInEngland
|
15184000 | usd |
CY2021Q4 | fil |
Long Lived Assets In England
LongLivedAssetsInEngland
|
19339000 | usd |
CY2023Q4 | fil |
Long Lived Assets In Ireland
LongLivedAssetsInIreland
|
2963000 | usd |
CY2022Q4 | fil |
Long Lived Assets In Ireland
LongLivedAssetsInIreland
|
2954000 | usd |
CY2021Q4 | fil |
Long Lived Assets In Ireland
LongLivedAssetsInIreland
|
2990000 | usd |
CY2023Q4 | fil |
Long Lived Assets In Australia
LongLivedAssetsInAustralia
|
336000 | usd |
CY2022Q4 | fil |
Long Lived Assets In Australia
LongLivedAssetsInAustralia
|
337000 | usd |
CY2021Q4 | fil |
Long Lived Assets In Australia
LongLivedAssetsInAustralia
|
392000 | usd |
CY2023Q4 | fil |
Long Lived Assets In Canada
LongLivedAssetsInCanada
|
589000 | usd |
CY2022Q4 | fil |
Long Lived Assets In Canada
LongLivedAssetsInCanada
|
593000 | usd |
CY2021Q4 | fil |
Long Lived Assets In Canada
LongLivedAssetsInCanada
|
653000 | usd |
CY2023 | us-gaap |
Royalty Income Nonoperating
RoyaltyIncomeNonoperating
|
20000 | usd |
CY2022 | us-gaap |
Royalty Income Nonoperating
RoyaltyIncomeNonoperating
|
20000 | usd |
CY2021 | us-gaap |
Royalty Income Nonoperating
RoyaltyIncomeNonoperating
|
15000 | usd |
CY2023Q4 | us-gaap |
Contractual Obligation
ContractualObligation
|
4529000 | usd |
CY2023 | us-gaap |
Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
|
184000 | usd |
CY2022 | us-gaap |
Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
|
159000 | usd |
CY2021 | us-gaap |
Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
|
165000 | usd |
CY2023Q4 | fil |
Lessee Operating Lease For Parking Lot Term Of Contract
LesseeOperatingLeaseForParkingLotTermOfContract
|
P8Y | |
CY2023Q4 | fil |
Lessee Operating Lease For Automobile Term Of Contract
LesseeOperatingLeaseForAutomobileTermOfContract
|
P6M | |
CY2022 | fil |
Lessee Operating Lease For Parking Lot Adjustment To Lease Payments Required Every Five Years Based On Change In Cpi
LesseeOperatingLeaseForParkingLotAdjustmentToLeasePaymentsRequiredEveryFiveYearsBasedOnChangeInCPI
|
87000 | usd |
CY2023 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
65000 | usd |
CY2022 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
64000 | usd |
CY2021 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
63000 | usd |
CY2023 | us-gaap |
Profit Loss
ProfitLoss
|
16635000 | usd |
CY2022 | us-gaap |
Profit Loss
ProfitLoss
|
16473000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
342000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
47000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
295000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
342000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
45000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
41000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
42000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
43000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
44000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
|
125000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
381000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
39000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
342000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P7Y4M24D | |
CY2023Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.03 | pure |
CY2021 | us-gaap |
Profit Loss
ProfitLoss
|
14788000 | usd |
CY2023 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
3629000 | shares |
CY2022 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
3637000 | shares |
CY2021 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
3647000 | shares |
CY2023 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
8000 | shares |
CY2022 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
6000 | shares |
CY2021 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
13000 | shares |
CY2023 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
3637000 | shares |
CY2022 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
3643000 | shares |
CY2021 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
3660000 | shares |
CY2023 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
4.58 | |
CY2022 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
4.53 | |
CY2021 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
4.05 | |
CY2023 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
4.57 | |
CY2022 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
4.52 | |
CY2021 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
4.04 | |
CY2023 | ecd |
Rule10b51 Arr Adopted Flag
Rule10b51ArrAdoptedFlag
|
false | |
CY2023 | ecd |
Non Rule10b51 Arr Adopted Flag
NonRule10b51ArrAdoptedFlag
|
false | |
CY2023 | ecd |
Rule10b51 Arr Trmntd Flag
Rule10b51ArrTrmntdFlag
|
false | |
CY2023 | ecd |
Non Rule10b51 Arr Trmntd Flag
NonRule10b51ArrTrmntdFlag
|
false |