2024 Q1 Form 10-K Financial Statement
#000143774924006037 Filed on February 29, 2024
Income Statement
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
Revenue | $53.48M | $48.88M | $193.5M |
YoY Change | 13.6% | 19.36% | 19.69% |
Cost Of Revenue | $16.81M | $15.62M | $66.44M |
YoY Change | 3.84% | 4.82% | 17.06% |
Gross Profit | $36.67M | $33.27M | $127.0M |
YoY Change | 18.72% | 27.68% | 21.12% |
Gross Profit Margin | 68.56% | 68.05% | 65.66% |
Selling, General & Admin | $20.70M | $17.22M | $72.89M |
YoY Change | 9.93% | 23.03% | 18.19% |
% of Gross Profit | 56.45% | 51.77% | 57.37% |
Research & Development | $4.092M | $4.351M | $16.97M |
YoY Change | 5.6% | 22.43% | 27.62% |
% of Gross Profit | 11.16% | 13.08% | 13.35% |
Depreciation & Amortization | $2.382M | $2.443M | $9.515M |
YoY Change | 1.32% | 6.77% | 0.87% |
% of Gross Profit | 6.5% | 7.34% | 7.49% |
Operating Expenses | $24.79M | $23.06M | $90.34M |
YoY Change | 9.19% | 20.81% | 15.72% |
Operating Profit | $11.87M | $10.21M | $36.71M |
YoY Change | 45.18% | 46.49% | 36.84% |
Interest Expense | $923.0K | $1.107M | $0.00 |
YoY Change | 545.45% | 33.21% | |
% of Operating Profit | 7.77% | 10.85% | 0.0% |
Other Income/Expense, Net | -$314.0K | ||
YoY Change | -3.38% | ||
Pretax Income | $12.80M | $11.31M | $39.48M |
YoY Change | 59.62% | 45.08% | 43.6% |
Income Tax | $2.910M | $2.848M | $9.370M |
% Of Pretax Income | 22.74% | 25.17% | 23.74% |
Net Earnings | $9.887M | $8.465M | $30.11M |
YoY Change | 63.69% | 50.44% | 45.89% |
Net Earnings / Revenue | 18.49% | 17.32% | 15.56% |
Basic Earnings Per Share | $0.44 | $0.38 | $1.36 |
Diluted Earnings Per Share | $0.44 | $0.38 | $1.34 |
COMMON SHARES | |||
Basic Shares Outstanding | 22.34M | 22.26M | 22.22M |
Diluted Shares Outstanding | 22.57M | 22.42M |
Balance Sheet
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $108.3M | $105.1M | $105.1M |
YoY Change | 33.68% | 27.07% | 27.07% |
Cash & Equivalents | $26.60M | $24.27M | $24.27M |
Short-Term Investments | $81.69M | $80.81M | $80.81M |
Other Short-Term Assets | $3.863M | $6.380M | $6.380M |
YoY Change | -16.37% | -5.21% | -5.21% |
Inventory | $60.58M | $58.08M | $58.08M |
Prepaid Expenses | |||
Receivables | $30.24M | $25.06M | $25.06M |
Other Receivables | $0.00 | $0.00 | $0.00 |
Total Short-Term Assets | $203.0M | $194.6M | $194.6M |
YoY Change | 23.18% | 20.32% | 20.32% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $39.97M | $21.75M | $39.78M |
YoY Change | 14.96% | 21.52% | 18.63% |
Goodwill | $65.95M | $65.95M | |
YoY Change | 0.0% | 0.0% | |
Intangibles | $40.24M | $41.71M | |
YoY Change | -11.58% | -10.35% | |
Long-Term Investments | |||
YoY Change | |||
Other Assets | $4.842M | $3.740M | $4.743M |
YoY Change | 24.92% | 277.4% | 73.36% |
Total Long-Term Assets | $151.0M | $152.2M | $152.2M |
YoY Change | 0.6% | 2.31% | 2.31% |
TOTAL ASSETS | |||
Total Short-Term Assets | $203.0M | $194.6M | $194.6M |
Total Long-Term Assets | $151.0M | $152.2M | $152.2M |
Total Assets | $354.0M | $346.8M | $346.8M |
YoY Change | 12.42% | 11.69% | 11.69% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $3.089M | $3.734M | $3.734M |
YoY Change | -8.37% | 28.63% | 28.63% |
Accrued Expenses | $23.65M | $23.65M | $25.73M |
YoY Change | 20.17% | 18.45% | 20.22% |
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 | $26.81M | $29.88M | $29.88M |
YoY Change | 12.16% | 17.96% | 17.96% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Other Long-Term Liabilities | $18.53M | $2.268M | $18.89M |
YoY Change | 10.79% | 4.66% | 11.94% |
Total Long-Term Liabilities | $18.53M | $2.268M | $18.89M |
YoY Change | 10.79% | 4.66% | 11.94% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $26.81M | $29.88M | $29.88M |
Total Long-Term Liabilities | $18.53M | $2.268M | $18.89M |
Total Liabilities | $45.45M | $48.88M | $48.88M |
YoY Change | 11.68% | 15.62% | 15.62% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $121.7M | $115.4M | |
YoY Change | 20.87% | 18.06% | |
Common Stock | $206.6M | $201.0M | |
YoY Change | 7.46% | 6.06% | |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $13.90M | ||
YoY Change | 6.54% | ||
Treasury Stock Shares | |||
Shareholders Equity | $308.5M | $297.9M | $297.9M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $354.0M | $346.8M | $346.8M |
YoY Change | 12.42% | 11.69% | 11.69% |
Cashflow Statement
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $9.887M | $8.465M | $30.11M |
YoY Change | 63.69% | 50.44% | 45.89% |
Depreciation, Depletion And Amortization | $2.382M | $2.443M | $9.515M |
YoY Change | 1.32% | 6.77% | 0.87% |
Cash From Operating Activities | $5.071M | $10.75M | $36.75M |
YoY Change | 122.51% | 163.58% | 44.81% |
INVESTING ACTIVITIES | |||
Capital Expenditures | $1.370M | $1.279M | $7.265M |
YoY Change | -35.68% | 1.51% | 124.99% |
Acquisitions | $0.00 | $899.0K | |
YoY Change | -100.0% | ||
Other Investing Activities | -$991.0K | -$982.0K | -$17.45M |
YoY Change | 18.82% | -214.45% | 144.33% |
Cash From Investing Activities | -$2.361M | -$2.261M | -$24.72M |
YoY Change | -20.34% | 462.44% | 138.31% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | -$5.317M | ||
YoY Change | 88.28% | ||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | $39.00K | -2.686M | -$7.131M |
YoY Change | -102.14% | 26.58% | -22.77% |
NET CHANGE | |||
Cash From Operating Activities | $5.071M | 10.75M | $36.75M |
Cash From Investing Activities | -$2.361M | -2.261M | -$24.72M |
Cash From Financing Activities | $39.00K | -2.686M | -$7.131M |
Net Change In Cash | $2.326M | 5.799M | $5.135M |
YoY Change | -194.67% | 273.41% | -2.73% |
FREE CASH FLOW | |||
Cash From Operating Activities | $5.071M | $10.75M | $36.75M |
Capital Expenditures | $1.370M | $1.279M | $7.265M |
Free Cash Flow | $3.701M | $9.467M | $29.49M |
YoY Change | 2383.89% | 236.07% | 33.13% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2023 | dei |
Document Annual Report
DocumentAnnualReport
|
true | |
CY2023 | dei |
Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
|
Yes | |
CY2023 | dei |
Entity Filer Category
EntityFilerCategory
|
Large Accelerated Filer | |
CY2022 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-108000 | usd |
CY2021 | us-gaap |
Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
|
401000 | usd |
CY2021 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
3479000 | usd |
CY2022 | us-gaap |
Stock Issued During Period Value Restricted Stock Award Net Of Forfeitures
StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
|
1000 | usd |
CY2022 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
4173000 | usd |
CY2022 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
10988000 | usd |
CY2022Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
268201000 | usd |
CY2022 | us-gaap |
Number Of Operating Segments
NumberOfOperatingSegments
|
1 | pure |
CY2023 | dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
FY | |
CY2023 | dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2023 | |
CY2023 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | |
CY2023 | dei |
Amendment Flag
AmendmentFlag
|
false | |
CY2023 | dei |
Entity Central Index Key
EntityCentralIndexKey
|
0001158895 | |
CY2023 | lmat |
Defined Contribution Plan Employers Matching Contribution Annual Vesting Period
DefinedContributionPlanEmployersMatchingContributionAnnualVestingPeriod
|
P6Y | |
CY2023 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Expiration Period
SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
|
P10Y | |
CY2023Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2021 | us-gaap |
Reclassification From Accumulated Other Comprehensive Income Current Period Net Of Tax
ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
|
0 | usd |
CY2022 | us-gaap |
Reclassification From Accumulated Other Comprehensive Income Current Period Net Of Tax
ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
|
0 | usd |
CY2023 | us-gaap |
Reclassification From Accumulated Other Comprehensive Income Current Period Net Of Tax
ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodNetOfTax
|
0 | usd |
CY2021 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
0 | usd |
CY2022 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
0 | usd |
CY2023 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
0 | usd |
CY2023 | us-gaap |
Number Of Operating Segments
NumberOfOperatingSegments
|
1 | pure |
CY2023Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2022Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2023 | ecd |
Non Rule10b51 Arr Trmntd Flag
NonRule10b51ArrTrmntdFlag
|
false | |
CY2023 | ecd |
Rule10b51 Arr Trmntd Flag
Rule10b51ArrTrmntdFlag
|
false | |
CY2023 | ecd |
Non Rule10b51 Arr Adopted Flag
NonRule10b51ArrAdoptedFlag
|
false | |
CY2023 | ecd |
Rule10b51 Arr Adopted Flag
Rule10b51ArrAdoptedFlag
|
false | |
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 Small Business
EntitySmallBusiness
|
false | |
CY2023 | dei |
Entity Emerging Growth Company
EntityEmergingGrowthCompany
|
false | |
CY2023 | dei |
Icfr Auditor Attestation Flag
IcfrAuditorAttestationFlag
|
true | |
CY2023 | dei |
Document Fin Stmt Error Correction Flag
DocumentFinStmtErrorCorrectionFlag
|
false | |
CY2023 | dei |
Entity Shell Company
EntityShellCompany
|
false | |
CY2023Q2 | dei |
Entity Public Float
EntityPublicFloat
|
1300000000 | usd |
CY2024Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
22337216 | |
CY2023 | dei |
Auditor Firm
AuditorFirmId
|
248 | |
CY2023 | dei |
Auditor Name
AuditorName
|
GRANT THORNTON LLP | |
CY2023 | dei |
Auditor Location
AuditorLocation
|
Boston, Massachusetts | |
CY2023Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
24269000 | usd |
CY2022Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
19134000 | usd |
CY2023Q4 | us-gaap |
Available For Sale Securities Debt Securities Current
AvailableForSaleSecuritiesDebtSecuritiesCurrent
|
80805000 | usd |
CY2022Q4 | us-gaap |
Available For Sale Securities Debt Securities Current
AvailableForSaleSecuritiesDebtSecuritiesCurrent
|
63557000 | usd |
CY2023Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
941000 | usd |
CY2022Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
835000 | usd |
CY2023Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
25064000 | usd |
CY2022Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
22040000 | usd |
CY2023Q4 | lmat |
Inventory And Other Deferred Costs
InventoryAndOtherDeferredCosts
|
58080000 | usd |
CY2022Q4 | lmat |
Inventory And Other Deferred Costs
InventoryAndOtherDeferredCosts
|
50271000 | usd |
CY2023Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
6380000 | usd |
CY2022Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
6731000 | usd |
CY2023Q4 | us-gaap |
Assets Current
AssetsCurrent
|
194598000 | usd |
CY2022Q4 | us-gaap |
Assets Current
AssetsCurrent
|
161733000 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
21754000 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
17901000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
18027000 | usd |
CY2022Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
15634000 | usd |
CY2023Q4 | us-gaap |
Goodwill
Goodwill
|
65945000 | usd |
CY2022Q4 | us-gaap |
Goodwill
Goodwill
|
65945000 | usd |
CY2023Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
41711000 | usd |
CY2022Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
46527000 | usd |
CY2023Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
1003000 | usd |
CY2022Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
1745000 | usd |
CY2023Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
3740000 | usd |
CY2022Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
991000 | usd |
CY2023Q4 | us-gaap |
Assets
Assets
|
346778000 | usd |
CY2022Q4 | us-gaap |
Assets
Assets
|
310476000 | usd |
CY2023Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
3734000 | usd |
CY2022Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
2903000 | usd |
CY2023Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
23650000 | usd |
CY2022Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
19967000 | usd |
CY2023Q4 | lmat |
Acquisition Related Obligations
AcquisitionRelatedObligations
|
24000 | usd |
CY2022Q4 | lmat |
Acquisition Related Obligations
AcquisitionRelatedObligations
|
573000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
2471000 | usd |
CY2022Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
1886000 | usd |
CY2023Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
29879000 | usd |
CY2022Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
25329000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
16624000 | usd |
CY2022Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
14710000 | usd |
CY2023Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
107000 | usd |
CY2022Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
69000 | usd |
CY2023Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
2268000 | usd |
CY2022Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
2167000 | usd |
CY2023Q4 | us-gaap |
Liabilities
Liabilities
|
48878000 | usd |
CY2022Q4 | us-gaap |
Liabilities
Liabilities
|
42275000 | usd |
CY2022Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.01 | |
CY2023Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.01 | |
CY2022Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
3000000 | |
CY2023Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
3000000 | |
CY2023Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | usd |
CY2022Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | usd |
CY2022Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2023Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2023Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
37000000 | |
CY2022Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
37000000 | |
CY2023Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
23911760 | |
CY2022Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
23655716 | |
CY2023Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
239000 | usd |
CY2022Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
237000 | usd |
CY2023Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
200755000 | usd |
CY2022Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
189268000 | usd |
CY2023Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
115430000 | usd |
CY2022Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
97773000 | usd |
CY2023Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-4625000 | usd |
CY2022Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-6031000 | usd |
CY2023Q4 | us-gaap |
Treasury Stock Common Shares
TreasuryStockCommonShares
|
1584512 | |
CY2022Q4 | us-gaap |
Treasury Stock Common Shares
TreasuryStockCommonShares
|
1568595 | |
CY2023Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
13899000 | usd |
CY2022Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
13046000 | usd |
CY2023Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
297900000 | usd |
CY2022Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
268201000 | usd |
CY2023Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
346778000 | usd |
CY2022Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
310476000 | usd |
CY2023 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
193484000 | usd |
CY2022 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
161651000 | usd |
CY2021 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
154424000 | usd |
CY2023 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
66435000 | usd |
CY2022 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
56755000 | usd |
CY2021 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
53042000 | usd |
CY2023 | us-gaap |
Gross Profit
GrossProfit
|
127049000 | usd |
CY2022 | us-gaap |
Gross Profit
GrossProfit
|
104896000 | usd |
CY2021 | us-gaap |
Gross Profit
GrossProfit
|
101382000 | usd |
CY2023 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
41054000 | usd |
CY2022 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
32921000 | usd |
CY2021 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
27655000 | usd |
CY2023 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
31832000 | usd |
CY2022 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
28745000 | usd |
CY2021 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
25501000 | usd |
CY2023 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
16966000 | usd |
CY2022 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
13294000 | usd |
CY2021 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
11801000 | usd |
CY2023 | us-gaap |
Restructuring Costs
RestructuringCosts
|
485000 | usd |
CY2022 | us-gaap |
Restructuring Costs
RestructuringCosts
|
3107000 | usd |
CY2021 | us-gaap |
Restructuring Costs
RestructuringCosts
|
0 | usd |
CY2023 | us-gaap |
Operating Expenses
OperatingExpenses
|
90337000 | usd |
CY2022 | us-gaap |
Operating Expenses
OperatingExpenses
|
78067000 | usd |
CY2021 | us-gaap |
Operating Expenses
OperatingExpenses
|
64957000 | usd |
CY2023 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
36712000 | usd |
CY2022 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
26829000 | usd |
CY2021 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
36425000 | usd |
CY2023 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
3077000 | usd |
CY2022 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
986000 | usd |
CY2021 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
197000 | usd |
CY2023 | us-gaap |
Interest Expense
InterestExpense
|
-0 | usd |
CY2022 | us-gaap |
Interest Expense
InterestExpense
|
-0 | usd |
CY2021 | us-gaap |
Interest Expense
InterestExpense
|
2219000 | usd |
CY2023 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
-314000 | usd |
CY2022 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
-325000 | usd |
CY2021 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
-116000 | usd |
CY2023 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
39475000 | usd |
CY2022 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
27490000 | usd |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
34287000 | usd |
CY2023 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
9370000 | usd |
CY2022 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
6854000 | usd |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
7380000 | usd |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
30105000 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
20636000 | usd |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
26907000 | usd |
CY2023 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.36 | |
CY2022 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.94 | |
CY2021 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.27 | |
CY2023 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.34 | |
CY2022 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.93 | |
CY2021 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.25 | |
CY2023 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
22217000 | |
CY2022 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
21975000 | |
CY2021 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
21157000 | |
CY2022 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
22171000 | |
CY2021 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
21475000 | |
CY2021 | us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
0.44 | |
CY2023 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
31511000 | usd |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
172572000 | usd |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
26907000 | usd |
CY2021 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-1910000 | usd |
CY2021 | us-gaap |
Stock Issued During Period Value New Issues
StockIssuedDuringPeriodValueNewIssues
|
58695000 | usd |
CY2021 | us-gaap |
Stock Issued During Period Value Restricted Stock Award Net Of Forfeitures
StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
|
0 | usd |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
30105000 | usd |
CY2023 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
1406000 | usd |
CY2023 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
6170000 | usd |
CY2023 | us-gaap |
Stock Issued During Period Value Restricted Stock Award Net Of Forfeitures
StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
|
0 | usd |
CY2023 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
5319000 | usd |
CY2023 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
853000 | usd |
CY2023 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
12448000 | usd |
CY2023Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
297900000 | usd |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
30105000 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
20636000 | usd |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
26907000 | usd |
CY2023 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
9515000 | usd |
CY2022 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
9433000 | usd |
CY2021 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
11070000 | usd |
CY2023 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
5319000 | usd |
CY2022 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
4173000 | usd |
CY2021 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
3479000 | usd |
CY2023 | us-gaap |
Inventory Write Down
InventoryWriteDown
|
2237000 | usd |
CY2022 | us-gaap |
Inventory Write Down
InventoryWriteDown
|
2572000 | usd |
CY2021 | us-gaap |
Inventory Write Down
InventoryWriteDown
|
3779000 | usd |
CY2023 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
783000 | usd |
CY2022 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-182000 | usd |
CY2021 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
79000 | usd |
CY2023 | us-gaap |
Gain Loss On Sale Of Business
GainLossOnSaleOfBusiness
|
-485000 | usd |
CY2022 | us-gaap |
Gain Loss On Sale Of Business
GainLossOnSaleOfBusiness
|
-1954000 | usd |
CY2021 | us-gaap |
Gain Loss On Sale Of Business
GainLossOnSaleOfBusiness
|
-0 | usd |
CY2023 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
344000 | usd |
CY2022 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
637000 | usd |
CY2021 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
263000 | usd |
CY2023 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-78000 | usd |
CY2021 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-674000 | usd |
CY2023 | us-gaap |
Foreign Currency Transaction Gain Loss Unrealized
ForeignCurrencyTransactionGainLossUnrealized
|
705000 | usd |
CY2022 | us-gaap |
Foreign Currency Transaction Gain Loss Unrealized
ForeignCurrencyTransactionGainLossUnrealized
|
315000 | usd |
CY2021 | us-gaap |
Foreign Currency Transaction Gain Loss Unrealized
ForeignCurrencyTransactionGainLossUnrealized
|
-163000 | usd |
CY2023 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
3135000 | usd |
CY2022 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
3533000 | usd |
CY2021 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
818000 | usd |
CY2023 | lmat |
Increase Decrease In Inventory And Other Deferred Costs
IncreaseDecreaseInInventoryAndOtherDeferredCosts
|
9794000 | usd |
CY2022 | lmat |
Increase Decrease In Inventory And Other Deferred Costs
IncreaseDecreaseInInventoryAndOtherDeferredCosts
|
7418000 | usd |
CY2021 | lmat |
Increase Decrease In Inventory And Other Deferred Costs
IncreaseDecreaseInInventoryAndOtherDeferredCosts
|
5485000 | usd |
CY2023 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
2924000 | usd |
CY2022 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
3096000 | usd |
CY2021 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
1927000 | usd |
CY2023 | us-gaap |
Increase Decrease In Accounts Payable And Other Operating Liabilities
IncreaseDecreaseInAccountsPayableAndOtherOperatingLiabilities
|
4599000 | usd |
CY2022 | us-gaap |
Increase Decrease In Accounts Payable And Other Operating Liabilities
IncreaseDecreaseInAccountsPayableAndOtherOperatingLiabilities
|
645000 | usd |
CY2021 | us-gaap |
Increase Decrease In Accounts Payable And Other Operating Liabilities
IncreaseDecreaseInAccountsPayableAndOtherOperatingLiabilities
|
-1734000 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
36751000 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
25378000 | usd |
CY2021 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
35102000 | usd |
CY2023 | us-gaap |
Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
|
16551000 | usd |
CY2022 | us-gaap |
Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
|
8000000 | usd |
CY2021 | us-gaap |
Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
|
59194000 | usd |
CY2023 | us-gaap |
Payments To Acquire Productive Assets
PaymentsToAcquireProductiveAssets
|
7265000 | usd |
CY2022 | us-gaap |
Payments To Acquire Productive Assets
PaymentsToAcquireProductiveAssets
|
3229000 | usd |
CY2021 | us-gaap |
Payments To Acquire Productive Assets
PaymentsToAcquireProductiveAssets
|
4882000 | usd |
CY2023 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
899000 | usd |
CY2022 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
-0 | usd |
CY2021 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
-0 | usd |
CY2023 | us-gaap |
Proceeds From Sale Of Buildings
ProceedsFromSaleOfBuildings
|
0 | usd |
CY2022 | us-gaap |
Proceeds From Sale Of Buildings
ProceedsFromSaleOfBuildings
|
858000 | usd |
CY2021 | us-gaap |
Proceeds From Sale Of Buildings
ProceedsFromSaleOfBuildings
|
0 | usd |
CY2023 | us-gaap |
Proceeds From Sale And Maturity Of Marketable Securities
ProceedsFromSaleAndMaturityOfMarketableSecurities
|
0 | usd |
CY2022 | us-gaap |
Proceeds From Sale And Maturity Of Marketable Securities
ProceedsFromSaleAndMaturityOfMarketableSecurities
|
0 | usd |
CY2021 | us-gaap |
Proceeds From Sale And Maturity Of Marketable Securities
ProceedsFromSaleAndMaturityOfMarketableSecurities
|
3000000 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-24715000 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-10371000 | usd |
CY2021 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-61076000 | usd |
CY2023 | us-gaap |
Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
|
12448000 | usd |
CY2022 | us-gaap |
Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
|
10988000 | usd |
CY2021 | us-gaap |
Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
|
9336000 | usd |
CY2023 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
6170000 | usd |
CY2022 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
3466000 | usd |
CY2021 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
63241000 | usd |
CY2023 | us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
853000 | usd |
CY2023 | us-gaap |
Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
|
-0 | usd |
CY2022 | us-gaap |
Payment For Contingent Consideration Liability Financing Activities
PaymentForContingentConsiderationLiabilityFinancingActivities
|
1070000 | usd |
CY2023 | us-gaap |
Proceeds From Repayments Of Other Long Term Debt
ProceedsFromRepaymentsOfOtherLongTermDebt
|
-0 | usd |
CY2022 | us-gaap |
Proceeds From Repayments Of Other Long Term Debt
ProceedsFromRepaymentsOfOtherLongTermDebt
|
-0 | usd |
CY2021 | us-gaap |
Proceeds From Repayments Of Other Long Term Debt
ProceedsFromRepaymentsOfOtherLongTermDebt
|
39000000 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-7131000 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-9234000 | usd |
CY2021 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
13702000 | usd |
CY2023 | us-gaap |
Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
230000 | usd |
CY2022 | us-gaap |
Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
-494000 | usd |
CY2021 | us-gaap |
Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
-637000 | usd |
CY2023 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
5135000 | usd |
CY2022 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
5279000 | usd |
CY2021 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
-12909000 | usd |
CY2022Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
19134000 | usd |
CY2021Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
13855000 | usd |
CY2020Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
26764000 | usd |
CY2023Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
24269000 | usd |
CY2022Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
19134000 | usd |
CY2021Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
13855000 | usd |
CY2022 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.94 | |
CY2021 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.27 | |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
30105000 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
20636000 | usd |
CY2023 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt 0pt 0pt 13pt;text-indent:-4pt;"><b><i>Estimates </i></b></p> <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;margin:0pt;text-indent:18pt;">The preparation of financial statements in conformity with U.S. generally accepted accounting principles (GAAP) requires management to make estimates and assumptions that affect the amounts reported in our consolidated financial statements and accompanying notes. The Company is not aware of any specific event or circumstance that would require an update to its accounting estimates or adjustments to the carrying value of its assets and liabilities. Our estimates and assumptions, including those related to bad debts, inventories, intangible assets, sales returns and discounts, share-based compensation, and income taxes, are reviewed on an ongoing basis and updated as appropriate. Actual results could differ from those estimates.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> | |
CY2023 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
193484000 | usd |
CY2022 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
161651000 | usd |
CY2021 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
154424000 | usd |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
26907000 | usd |
CY2023 | us-gaap |
Advertising Expense
AdvertisingExpense
|
240000 | usd |
CY2022 | us-gaap |
Advertising Expense
AdvertisingExpense
|
195000 | usd |
CY2021 | us-gaap |
Advertising Expense
AdvertisingExpense
|
236000 | usd |
CY2023 | us-gaap |
Concentration Risk Credit Risk
ConcentrationRiskCreditRisk
|
<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt 0pt 0pt 13pt;text-indent:-4pt;"><b><i>Concentrations of Credit Risk </i></b></p> <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;margin:0pt;text-indent:18pt;">Our financial instruments that are exposed to concentrations of credit risk consist primarily of cash and cash equivalents and accounts receivable. Cash equivalents represent highly liquid investments with maturities of 90 days or less at the date of purchase. Credit risk related to cash and cash equivalents are limited based on the creditworthiness of the financial institutions at which these funds are held. We maintain cash balances in several banks. Accounts located in the U.S. are insured by the Federal Deposit Insurance Corporation (FDIC) up to $250,000. Certain of our account balances exceed the FDIC limit. Cash balances held outside the U.S. totaled approximately $10.0 million as of December 31, 2023.</p> <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;margin:0pt;text-indent:18pt;">Our accounts receivable are with customers based in the U.S. and internationally. Accounts receivable generally are due within 30 to 60 days of invoice and are stated at amounts due from customers, net of an allowance for credit losses and sales returns, other than in certain European markets where the payment cycle is customarily longer. We perform ongoing credit evaluations of the financial condition of our customers and adjust credit limits based upon payment history and the current creditworthiness of the customers, as determined by a review of their current credit information. We continuously monitor aging reports, collections, and payments from customers, and maintain a provision for estimated credit losses based upon historical experience and any specific customer collection issues we identify.</p> <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;margin:0pt;text-indent:18pt;">We closely monitor outstanding receivables for potential collection risks, including those that may arise from economic conditions, in both the U.S. and international economies. Our European sales to government-owned or supported customers such as hospitals, distributors and agents, particularly in Italy, Spain and France, may be subject to significant payment delays due to government austerity measures impacting funding and payment practices. As of December 31, 2023 our receivables in Italy, Spain and France totaled $1.1 million, $1.0 million and $1.2 million, respectively. Receivables balances with certain government-owned hospitals and government-supported customers in these countries can accumulate over a period of time and then subsequently be settled as lump sum payments. While we believe our allowance for credit losses in these countries is adequate as of December 31, 2023, if significant changes were to occur in the payment practices of these European governments or if government funding becomes unavailable, we may not be able to collect on receivables due to us from these customers and our write offs of uncollectible amounts may increase.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;text-indent:18pt;">We write off accounts receivable when they become uncollectible. Such credit losses have historically been within our expectations and allowances. The allowance for credit losses is our best estimate of the amount of probable credit losses in our existing accounts receivable. We review our allowance for credit losses on a monthly basis and all past due balances are reviewed individually for collectability. The provision for the allowance for credit losses is recorded in general and administrative expenses. The following is a summary of our allowance for credit losses and sales returns:</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: "Times New Roman", Times, serif; text-indent: 0px;"> <tbody><tr class="finHeading" style="vertical-align: bottom; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 39%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>Balance at</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>Additions</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>Deductions</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>Balance at</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> </tr> <tr class="finHeading" style="vertical-align: bottom; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 39%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>Beginning</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>(recoveries) charged</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>from</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>End of</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> </tr> <tr class="finHeading" style="vertical-align: bottom; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 39%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>of Period</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>to Income</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>Reserves</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="2" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>Period</b></p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td> </tr> <tr class="finHeading" style="vertical-align: bottom; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 39%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td colspan="14" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; width: 47%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;">(in thousands)</p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> </tr> <tr style="vertical-align: bottom; font-family: "Times New Roman", Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 39%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Allowance for credit losses and sales returns:</p> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 12%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 13%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 12%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 12%;"> </td> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 1%;"> </td> </tr> <tr style="vertical-align: bottom; font-family: "Times New Roman", Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 39%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Year ended December 31, 2023</p> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 12%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">835</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 13%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">344</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 12%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">238</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">$</td> <td style="width: 12%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">941</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> </tr> <tr style="vertical-align: bottom; font-family: "Times New Roman", Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 39%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Year ended December 31, 2022</p> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 12%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">679</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 13%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">637</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 12%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">481</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 12%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">835</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> </tr> <tr style="vertical-align: bottom; font-family: "Times New Roman", Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"> <td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 39%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Year ended December 31, 2021</p> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 12%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">623</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 13%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">263</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 12%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">207</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td> <td style="width: 12%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">679</td> <td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> </td> </tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> | |
CY2023 | us-gaap |
Marketable Securities Unrealized Gain Loss
MarketableSecuritiesUnrealizedGainLoss
|
1200000 | usd |
CY2022 | us-gaap |
Marketable Securities Unrealized Gain Loss
MarketableSecuritiesUnrealizedGainLoss
|
1800000 | usd |
CY2023 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
22217000 | |
CY2022 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
21975000 | |
CY2023Q4 | us-gaap |
Capitalized Computer Software Net
CapitalizedComputerSoftwareNet
|
3600000 | usd |
CY2021 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
21157000 | |
CY2023 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
206000 | |
CY2022 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
196000 | |
CY2021 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
318000 | |
CY2023 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
22423000 | |
CY2022 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
22171000 | |
CY2021 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
21475000 | |
CY2023 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.34 | |
CY2022 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.93 | |
CY2021 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.25 | |
CY2023 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
295000 | |
CY2022 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
293000 | |
CY2021 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
10000 | |
CY2023Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
3400000 | usd |
CY2022Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
4200000 | usd |
CY2023Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Available For Sale Securities Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
|
1200000 | usd |
CY2022Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Available For Sale Securities Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
|
1800000 | usd |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
30105000 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
20636000 | usd |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
26907000 | usd |
CY2023 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
22217000 | |
CY2022 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
21975000 | |
CY2021 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
21157000 | |
CY2023 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.36 | |
CY2022 | us-gaap |
Restructuring Charges
RestructuringCharges
|
3100000 | usd |
CY2023Q4 | us-gaap |
Inventory Raw Materials
InventoryRawMaterials
|
18333000 | usd |
CY2022Q4 | us-gaap |
Inventory Raw Materials
InventoryRawMaterials
|
14929000 | usd |
CY2023Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
2869000 | usd |
CY2022Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
3662000 | usd |
CY2023Q4 | us-gaap |
Inventory Finished Goods
InventoryFinishedGoods
|
31131000 | usd |
CY2022Q4 | us-gaap |
Inventory Finished Goods
InventoryFinishedGoods
|
26688000 | usd |
CY2023Q4 | us-gaap |
Other Inventory Capitalized Costs
OtherInventoryCapitalizedCosts
|
5747000 | usd |
CY2022Q4 | us-gaap |
Other Inventory Capitalized Costs
OtherInventoryCapitalizedCosts
|
4992000 | usd |
CY2023Q4 | lmat |
Inventory And Other Deferred Costs
InventoryAndOtherDeferredCosts
|
58080000 | usd |
CY2022Q4 | lmat |
Inventory And Other Deferred Costs
InventoryAndOtherDeferredCosts
|
50271000 | usd |
CY2023Q4 | us-gaap |
Other Inventory Materials Supplies And Merchandise Under Consignment
OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment
|
2000000 | usd |
CY2022Q4 | us-gaap |
Other Inventory Materials Supplies And Merchandise Under Consignment
OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment
|
1500000 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
43242000 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
43025000 | usd |
CY2023Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
21488000 | usd |
CY2022Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
25124000 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
21754000 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
17901000 | usd |
CY2023 | us-gaap |
Impairment Of Long Lived Assets Held For Use
ImpairmentOfLongLivedAssetsHeldForUse
|
7100000 | usd |
CY2022 | us-gaap |
Impairment Of Long Lived Assets Held For Use
ImpairmentOfLongLivedAssetsHeldForUse
|
500000 | usd |
CY2021 | us-gaap |
Impairment Of Long Lived Assets Held For Use
ImpairmentOfLongLivedAssetsHeldForUse
|
100000 | usd |
CY2023 | us-gaap |
Depreciation
Depreciation
|
3423000 | usd |
CY2022 | us-gaap |
Depreciation
Depreciation
|
3250000 | usd |
CY2021 | us-gaap |
Depreciation
Depreciation
|
3280000 | usd |
CY2022Q4 | us-gaap |
Goodwill
Goodwill
|
65945000 | usd |
CY2021Q4 | us-gaap |
Goodwill
Goodwill
|
65945000 | usd |
CY2023 | us-gaap |
Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
|
0 | usd |
CY2022 | us-gaap |
Goodwill Acquired During Period
GoodwillAcquiredDuringPeriod
|
0 | usd |
CY2023 | us-gaap |
Goodwill Purchase Accounting Adjustments
GoodwillPurchaseAccountingAdjustments
|
0 | usd |
CY2022 | us-gaap |
Goodwill Purchase Accounting Adjustments
GoodwillPurchaseAccountingAdjustments
|
0 | usd |
CY2023 | us-gaap |
Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
|
0 | usd |
CY2022 | us-gaap |
Goodwill Foreign Currency Translation Gain Loss
GoodwillForeignCurrencyTranslationGainLoss
|
0 | usd |
CY2023Q4 | us-gaap |
Goodwill
Goodwill
|
65945000 | usd |
CY2022Q4 | us-gaap |
Goodwill
Goodwill
|
65945000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
72130000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
30419000 | usd |
CY2023Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
41711000 | usd |
CY2022Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
70854000 | usd |
CY2022Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
24327000 | usd |
CY2022Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
46527000 | usd |
CY2023 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
6092000 | usd |
CY2022 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
6183000 | usd |
CY2021 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
6195000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
5904000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
5554000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
5119000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
4842000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
4456000 | usd |
CY2023 | us-gaap |
Short Term Lease Cost
ShortTermLeaseCost
|
378000 | usd |
CY2022 | us-gaap |
Short Term Lease Cost
ShortTermLeaseCost
|
632000 | usd |
CY2023 | us-gaap |
Lease Cost
LeaseCost
|
2798000 | usd |
CY2022 | us-gaap |
Lease Cost
LeaseCost
|
2835000 | usd |
CY2023 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
3139000 | usd |
CY2023Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
13353000 | usd |
CY2022Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
10770000 | usd |
CY2023Q4 | lmat |
Accrued Expenses Current
AccruedExpensesCurrent
|
5152000 | usd |
CY2022Q4 | lmat |
Accrued Expenses Current
AccruedExpensesCurrent
|
3748000 | usd |
CY2023Q4 | lmat |
Accrued Purchases Current
AccruedPurchasesCurrent
|
4251000 | usd |
CY2022Q4 | lmat |
Accrued Purchases Current
AccruedPurchasesCurrent
|
4640000 | usd |
CY2023Q4 | us-gaap |
Taxes Payable Current
TaxesPayableCurrent
|
390000 | usd |
CY2022Q4 | us-gaap |
Taxes Payable Current
TaxesPayableCurrent
|
449000 | usd |
CY2023Q4 | us-gaap |
Accrued Professional Fees Current
AccruedProfessionalFeesCurrent
|
104000 | usd |
CY2022Q4 | us-gaap |
Accrued Professional Fees Current
AccruedProfessionalFeesCurrent
|
108000 | usd |
CY2023Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
400000 | usd |
CY2022Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
252000 | usd |
CY2023Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
23650000 | usd |
CY2022Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
19967000 | usd |
CY2023Q4 | us-gaap |
Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Noncurrent Liabilities
BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilities
|
1406000 | usd |
CY2022Q4 | us-gaap |
Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Noncurrent Liabilities
BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilities
|
1354000 | usd |
CY2023Q4 | us-gaap |
Accrued Income Taxes Noncurrent
AccruedIncomeTaxesNoncurrent
|
637000 | usd |
CY2022Q4 | us-gaap |
Accrued Income Taxes Noncurrent
AccruedIncomeTaxesNoncurrent
|
636000 | usd |
CY2023Q4 | us-gaap |
Other Sundry Liabilities Noncurrent
OtherSundryLiabilitiesNoncurrent
|
225000 | usd |
CY2022Q4 | us-gaap |
Other Sundry Liabilities Noncurrent
OtherSundryLiabilitiesNoncurrent
|
177000 | usd |
CY2023Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
2268000 | usd |
CY2022Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
2167000 | usd |
CY2023 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
2420000 | usd |
CY2022 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
2203000 | usd |
CY2022 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
2878000 | usd |
CY2023 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
4813000 | usd |
CY2022 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
2766000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P7Y3M18D | |
CY2022Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P7Y1M6D | |
CY2023Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.0657 | pure |
CY2022Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.0493 | pure |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
3622000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
3364000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
2699000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
2503000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
2469000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
|
10906000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
6468000 | usd |
CY2023Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
19095000 | usd |
CY2022Q4 | us-gaap |
Purchase Obligation
PurchaseObligation
|
5100000 | usd |
CY2023 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
37356000 | usd |
CY2022 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
26274000 | usd |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
34153000 | usd |
CY2023 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
2119000 | usd |
CY2022 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
1216000 | usd |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
134000 | usd |
CY2023 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
39475000 | usd |
CY2022 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
27490000 | usd |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
34287000 | usd |
CY2023 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
6203000 | usd |
CY2022 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
5063000 | usd |
CY2021 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
5024000 | usd |
CY2023 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
1300000 | usd |
CY2022 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
938000 | usd |
CY2021 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
990000 | usd |
CY2023 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
1084000 | usd |
CY2022 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
1035000 | usd |
CY2021 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
1287000 | usd |
CY2023 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
8587000 | usd |
CY2022 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
7036000 | usd |
CY2021 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
7301000 | usd |
CY2023 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
616000 | usd |
CY2022 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-144000 | usd |
CY2021 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
63000 | usd |
CY2023 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
122000 | usd |
CY2022 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-83000 | usd |
CY2021 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-9000 | usd |
CY2023 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
45000 | usd |
CY2022 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
45000 | usd |
CY2021 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
25000 | usd |
CY2023 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
783000 | usd |
CY2022 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-182000 | usd |
CY2021 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
79000 | usd |
CY2023 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
9370000 | usd |
CY2022 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
6854000 | usd |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
7380000 | usd |
CY2023Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
600000 | usd |
CY2022Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
612000 | usd |
CY2021Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
768000 | usd |
CY2020Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
820000 | usd |
CY2023 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
0 | usd |
CY2022 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
0 | usd |
CY2021 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
0 | usd |
CY2023 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
|
25000 | usd |
CY2022 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
|
57000 | usd |
CY2021 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
|
52000 | usd |
CY2023 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
|
-0 | usd |
CY2022 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
|
-0 | usd |
CY2021 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Settlements With Taxing Authorities
UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities
|
-0 | usd |
CY2023 | us-gaap |
Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
|
-0 | usd |
CY2022 | us-gaap |
Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
|
99000 | usd |
CY2021 | us-gaap |
Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
|
-0 | usd |
CY2023Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
587000 | usd |
CY2022Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
612000 | usd |
CY2021Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
768000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
2280000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
2002000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
942000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
1027000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Tax Credit Carryforwards
DeferredTaxAssetsTaxCreditCarryforwards
|
1092000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Tax Credit Carryforwards
DeferredTaxAssetsTaxCreditCarryforwards
|
996000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Capital Loss Carryforwards
DeferredTaxAssetsCapitalLossCarryforwards
|
462000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Capital Loss Carryforwards
DeferredTaxAssetsCapitalLossCarryforwards
|
462000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Reserves
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves
|
823000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Reserves
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves
|
1090000 | usd |
CY2023Q4 | lmat |
Deferred Tax Assets Operating Lease Liabilities
DeferredTaxAssetsOperatingLeaseLiabilities
|
3721000 | usd |
CY2022Q4 | lmat |
Deferred Tax Assets Operating Lease Liabilities
DeferredTaxAssetsOperatingLeaseLiabilities
|
3295000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
|
4503000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Goodwill And Intangible Assets
DeferredTaxAssetsGoodwillAndIntangibleAssets
|
4468000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
696000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
446000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
1741000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
573000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
16260000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
14359000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
2996000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
1473000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
|
6311000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
|
5610000 | usd |
CY2023Q4 | lmat |
Deferred Tax Liabilities Operating Lease Right Of Use Assets
DeferredTaxLiabilitiesOperatingLeaseRightOfUseAssets
|
3472000 | usd |
CY2022Q4 | lmat |
Deferred Tax Liabilities Operating Lease Right Of Use Assets
DeferredTaxLiabilitiesOperatingLeaseRightOfUseAssets
|
3066000 | usd |
CY2023Q4 | lmat |
Deferred Tax Liabilities Foreign Branch Deferred Offset
DeferredTaxLiabilitiesForeignBranchDeferredOffset
|
700000 | usd |
CY2022Q4 | lmat |
Deferred Tax Liabilities Foreign Branch Deferred Offset
DeferredTaxLiabilitiesForeignBranchDeferredOffset
|
742000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
|
183000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Liabilities Other
DeferredTaxLiabilitiesOther
|
164000 | usd |
CY2023Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
13662000 | usd |
CY2022Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
11055000 | usd |
CY2023Q4 | lmat |
Deferred Tax Assets Liabilities Net Before Valuation Allowances
DeferredTaxAssetsLiabilitiesNetBeforeValuationAllowances
|
2598000 | usd |
CY2022Q4 | lmat |
Deferred Tax Assets Liabilities Net Before Valuation Allowances
DeferredTaxAssetsLiabilitiesNetBeforeValuationAllowances
|
3304000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
1702000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
1628000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
896000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
1676000 | usd |
CY2023Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
1003000 | usd |
CY2022Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
1745000 | usd |
CY2023Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
107000 | usd |
CY2022Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
69000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
896000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
1676000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
1700000 | usd |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.028 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.027 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.027 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
|
0.017 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
|
0.04 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
|
0.037 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Repatriation Of Foreign Earnings
EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings
|
0.003 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Repatriation Of Foreign Earnings
EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings
|
0 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Repatriation Of Foreign Earnings
EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings
|
0.002 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0.002 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0.002 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0.001 | pure |
CY2023 | lmat |
Effective Income Tax Rate Reconciliation Foreign Deferred Tax Liability Offset And Adjustment
EffectiveIncomeTaxRateReconciliationForeignDeferredTaxLiabilityOffsetAndAdjustment
|
0.001 | pure |
CY2022 | lmat |
Effective Income Tax Rate Reconciliation Foreign Deferred Tax Liability Offset And Adjustment
EffectiveIncomeTaxRateReconciliationForeignDeferredTaxLiabilityOffsetAndAdjustment
|
0.002 | pure |
CY2021 | lmat |
Effective Income Tax Rate Reconciliation Foreign Deferred Tax Liability Offset And Adjustment
EffectiveIncomeTaxRateReconciliationForeignDeferredTaxLiabilityOffsetAndAdjustment
|
0.001 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
|
0.006 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
|
-0 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
|
0.004 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
|
0.018 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
|
-0 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Percent
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
|
0.031 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Contingencies
EffectiveIncomeTaxRateReconciliationTaxContingencies
|
0.001 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Contingencies
EffectiveIncomeTaxRateReconciliationTaxContingencies
|
0.003 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Contingencies
EffectiveIncomeTaxRateReconciliationTaxContingencies
|
0.002 | pure |
CY2023 | lmat |
Effective Income Tax Rate Reconciliation Other Permanent Differences
EffectiveIncomeTaxRateReconciliationOtherPermanentDifferences
|
0.004 | pure |
CY2022 | lmat |
Effective Income Tax Rate Reconciliation Other Permanent Differences
EffectiveIncomeTaxRateReconciliationOtherPermanentDifferences
|
0.018 | pure |
CY2021 | lmat |
Effective Income Tax Rate Reconciliation Other Permanent Differences
EffectiveIncomeTaxRateReconciliationOtherPermanentDifferences
|
0.024 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
0.003 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
0.003 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
0.002 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.237 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.249 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.215 | pure |
CY2023 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
7549000 | usd |
CY2022 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
8343000 | usd |
CY2021 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
10147000 | usd |
CY2023Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
37000000 | |
CY2023Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
3000000 | |
CY2021Q3 | us-gaap |
Stock Issued During Period Shares New Issues
StockIssuedDuringPeriodSharesNewIssues
|
1000000 | |
CY2021Q3 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2021Q3 | us-gaap |
Shares Issued Price Per Share
SharesIssuedPricePerShare
|
54.5 | |
CY2021Q3 | us-gaap |
Stock Issued During Period Value New Issues
StockIssuedDuringPeriodValueNewIssues
|
51000000 | usd |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Additional Shares Authorized
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized
|
5500000 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Authorized
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
|
7118003 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Available For Grant
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
|
273588 | |
CY2022Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Intrinsic Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
|
7107000 | usd |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
|
545062 | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
|
37.38 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
931840 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
28.22 | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P4Y5M26D | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
11442000 | usd |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
151161 | |
CY2020 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
48.6 | |
CY2020 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
217121 | |
CY2020 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
20.95 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
6975000 | usd |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
|
19126 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
|
23.18 | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
846754 | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
33.83 | |
CY2020 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P4Y6M | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
13888000 | usd |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
159275 | |
CY2021 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
47.21 | |
CY2021 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
133963 | |
CY2021 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
25.8 | |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
3021000 | usd |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
|
12091 | |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
|
35.53 | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
859975 | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
37.53 | |
CY2021 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P4Y4M6D | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
7878000 | usd |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
148115 | |
CY2022 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
54.71 | |
CY2022 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
207643 | |
CY2022 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
29.72 | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
5914000 | usd |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
|
19323 | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
|
41.55 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
781124 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
42.78 | |
CY2022 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P4Y5M1D | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
10924000 | usd |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
301692 | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
27.4 | |
CY2020 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
|
P3Y3M18D | |
CY2020Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Intrinsic Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
|
6886000 | usd |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
369593 | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
32.16 | |
CY2021 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
|
P3Y2M1D | |
CY2021Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Intrinsic Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
|
5223000 | usd |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
356519 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
36.83 | |
CY2022 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
|
P3Y2M15D | |
CY2020 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
|
P5Y1M28D | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
|
490382 | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
|
41.59 | |
CY2021 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
|
P5Y2M23D | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
|
424605 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
|
47.78 | |
CY2022 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
|
P5Y5M4D | |
CY2023 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
6200000 | usd |
CY2022 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
3500000 | usd |
CY2021 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
4500000 | usd |
CY2023 | us-gaap |
Stock Repurchased During Period Shares
StockRepurchasedDuringPeriodShares
|
15917 | |
CY2022 | us-gaap |
Stock Repurchased During Period Shares
StockRepurchasedDuringPeriodShares
|
13690 | |
CY2021 | us-gaap |
Stock Repurchased During Period Shares
StockRepurchasedDuringPeriodShares
|
16333 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
|
26883 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
|
54.65 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
|
0 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
|
0 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeited In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
|
1192 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeitures Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
|
47.19 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
|
54164 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
|
50.85 | |
CY2023Q1 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
47075000 | usd |
CY2023Q2 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
50115000 | usd |
CY2023Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
47411000 | usd |
CY2023 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
5319000 | usd |
CY2022 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
4173000 | usd |
CY2021 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
3479000 | usd |
CY2023 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
5319000 | usd |
CY2022 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
4173000 | usd |
CY2021 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
3479000 | usd |
CY2023 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
193484000 | usd |
CY2022 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
161651000 | usd |
CY2021 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
154424000 | usd |
CY2023Q4 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
48883000 | usd |
CY2023Q1 | us-gaap |
Gross Profit
GrossProfit
|
30883000 | usd |
CY2023Q2 | us-gaap |
Gross Profit
GrossProfit
|
32086000 | usd |
CY2023Q3 | us-gaap |
Gross Profit
GrossProfit
|
30815000 | usd |
CY2023Q4 | us-gaap |
Gross Profit
GrossProfit
|
33265000 | usd |
CY2023Q1 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
7874000 | usd |
CY2023Q4 | us-gaap |
Noncurrent Assets
NoncurrentAssets
|
39781000 | usd |
CY2022Q4 | us-gaap |
Noncurrent Assets
NoncurrentAssets
|
33535000 | usd |
CY2022Q4 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliations Recurring Basis Liability Value
FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
|
1339000 | usd |
CY2021Q4 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliations Recurring Basis Liability Value
FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
|
1492000 | usd |
CY2020Q4 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliations Recurring Basis Liability Value
FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
|
2240000 | usd |
CY2023 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Purchases
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
|
0 | usd |
CY2022 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Purchases
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
|
0 | usd |
CY2021 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Purchases
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases
|
0 | usd |
CY2023 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Settlements
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
|
-0 | usd |
CY2022 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Settlements
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
|
-0 | usd |
CY2021 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Settlements
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements
|
-0 | usd |
CY2023 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Gain Loss Included In Earnings
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
|
115000 | usd |
CY2022 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Gain Loss Included In Earnings
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
|
153000 | usd |
CY2021 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliation Recurring Basis Liability Gain Loss Included In Earnings
FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings
|
748000 | usd |
CY2023Q4 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliations Recurring Basis Liability Value
FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
|
1224000 | usd |
CY2022Q4 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliations Recurring Basis Liability Value
FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
|
1339000 | usd |
CY2021Q4 | us-gaap |
Fair Value Measurement With Unobservable Inputs Reconciliations Recurring Basis Liability Value
FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue
|
1492000 | usd |
CY2023Q2 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
9452000 | usd |
CY2023Q3 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
9180000 | usd |
CY2023Q4 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
10206000 | usd |
CY2023Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
6040000 | usd |
CY2023Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
8098000 | usd |
CY2023Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
7502000 | usd |
CY2023Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
8465000 | usd |
CY2023Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.27 | |
CY2023Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.36 | |
CY2023Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.34 | |
CY2023Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.38 | |
CY2023Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.27 | |
CY2023Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.36 | |
CY2023Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.33 | |
CY2023Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.38 | |
CY2022Q1 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
39561000 | usd |
CY2022Q2 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
42108000 | usd |
CY2022Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
39028000 | usd |
CY2022Q4 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
40954000 | usd |
CY2022Q1 | us-gaap |
Gross Profit
GrossProfit
|
25962000 | usd |
CY2022Q2 | us-gaap |
Gross Profit
GrossProfit
|
27810000 | usd |
CY2022Q3 | us-gaap |
Gross Profit
GrossProfit
|
25070000 | usd |
CY2022Q4 | us-gaap |
Gross Profit
GrossProfit
|
26054000 | usd |
CY2022Q1 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
7928000 | usd |
CY2022Q2 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
5784000 | usd |
CY2022Q3 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
6150000 | usd |
CY2022Q4 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
6967000 | usd |
CY2022Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
6038000 | usd |
CY2022Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
3515000 | usd |
CY2022Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
5456000 | usd |
CY2022Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
5627000 | usd |
CY2022Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.28 | |
CY2022Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.16 | |
CY2022Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.25 | |
CY2022Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.26 | |
CY2022Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.27 | |
CY2022Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.16 | |
CY2022Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.25 | |
CY2022Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.25 |