2024 Q3 Form 10-Q Financial Statement
#000110784324000028 Filed on August 06, 2024
Income Statement
Concept | 2024 Q3 | 2024 Q2 |
---|---|---|
Revenue | $153.9M | $148.7M |
YoY Change | 8.36% | 8.38% |
Cost Of Revenue | $28.83M | $26.42M |
YoY Change | 7.83% | -0.93% |
Gross Profit | $125.0M | $122.3M |
YoY Change | 8.48% | 10.63% |
Gross Profit Margin | 81.26% | 82.24% |
Selling, General & Admin | $51.18M | $47.11M |
YoY Change | 16.64% | 16.9% |
% of Gross Profit | 40.93% | 38.52% |
Research & Development | $28.90M | $27.12M |
YoY Change | 4.03% | -1.11% |
% of Gross Profit | 23.11% | 22.18% |
Depreciation & Amortization | $4.391M | $4.780M |
YoY Change | -34.46% | -31.73% |
% of Gross Profit | 3.51% | 3.91% |
Operating Expenses | $80.08M | $74.23M |
YoY Change | 11.75% | 9.61% |
Operating Profit | $44.95M | $48.07M |
YoY Change | 3.12% | 12.24% |
Interest Expense | $7.369M | $6.112M |
YoY Change | 67.48% | 80.08% |
% of Operating Profit | 16.39% | 12.72% |
Other Income/Expense, Net | $7.369M | $6.116M |
YoY Change | 66.42% | -1224.26% |
Pretax Income | $52.32M | $54.18M |
YoY Change | 8.95% | 18.62% |
Income Tax | $6.100M | $10.40M |
% Of Pretax Income | 11.66% | 19.19% |
Net Earnings | $46.21M | $43.77M |
YoY Change | -0.65% | 23.71% |
Net Earnings / Revenue | 30.03% | 29.43% |
Basic Earnings Per Share | $1.26 | $1.19 |
Diluted Earnings Per Share | $1.24 | $1.17 |
COMMON SHARES | ||
Basic Shares Outstanding | 36.81M shares | 36.94M shares |
Diluted Shares Outstanding | 37.14M shares | 37.46M shares |
Balance Sheet
Concept | 2024 Q3 | 2024 Q2 |
---|---|---|
SHORT-TERM ASSETS | ||
Cash & Short-Term Investments | $386.3M | $393.2M |
YoY Change | -9.61% | 12.59% |
Cash & Equivalents | $235.4M | $281.2M |
Short-Term Investments | $150.9M | $112.0M |
Other Short-Term Assets | $35.31M | $31.27M |
YoY Change | 12.8% | -8.09% |
Inventory | ||
Prepaid Expenses | ||
Receivables | $115.0M | $109.6M |
Other Receivables | $0.00 | $0.00 |
Total Short-Term Assets | $536.6M | $534.1M |
YoY Change | -4.55% | 5.09% |
LONG-TERM ASSETS | ||
Property, Plant & Equipment | $27.34M | $27.76M |
YoY Change | -24.38% | -59.38% |
Goodwill | $7.447M | $7.447M |
YoY Change | 0.0% | 0.0% |
Intangibles | $7.451M | $8.172M |
YoY Change | -28.94% | -27.41% |
Long-Term Investments | $186.7M | $162.1M |
YoY Change | 455.6% | 317.27% |
Other Assets | $22.56M | $21.37M |
YoY Change | 22.88% | -71.7% |
Total Long-Term Assets | $371.7M | $342.5M |
YoY Change | 95.96% | 70.08% |
TOTAL ASSETS | ||
Total Short-Term Assets | $536.6M | $534.1M |
Total Long-Term Assets | $371.7M | $342.5M |
Total Assets | $908.3M | $876.6M |
YoY Change | 20.81% | 23.54% |
SHORT-TERM LIABILITIES | ||
YoY Change | ||
Accounts Payable | $1.422M | $1.277M |
YoY Change | 22.06% | -40.88% |
Accrued Expenses | $39.96M | $36.10M |
YoY Change | -19.82% | -44.05% |
Deferred Revenue | $337.8M | $324.3M |
YoY Change | 9.98% | 7.24% |
Short-Term Debt | $0.00 | $0.00 |
YoY Change | ||
Long-Term Debt Due | ||
YoY Change | ||
Total Short-Term Liabilities | $388.5M | $371.8M |
YoY Change | 4.87% | 0.73% |
LONG-TERM LIABILITIES | ||
Long-Term Debt | $0.00 | $0.00 |
YoY Change | ||
Other Long-Term Liabilities | $8.810M | $7.727M |
YoY Change | 35.31% | -87.82% |
Total Long-Term Liabilities | $8.810M | $7.727M |
YoY Change | 35.31% | -87.82% |
TOTAL LIABILITIES | ||
Total Short-Term Liabilities | $388.5M | $371.8M |
Total Long-Term Liabilities | $8.810M | $7.727M |
Total Liabilities | $458.7M | $448.8M |
YoY Change | 6.94% | 3.75% |
SHAREHOLDERS EQUITY | ||
Retained Earnings | -$192.6M | -$195.6M |
YoY Change | -21.18% | -23.37% |
Common Stock | $37.00K | $37.00K |
YoY Change | 0.0% | 0.0% |
Preferred Stock | ||
YoY Change | ||
Treasury Stock (at cost) | ||
YoY Change | ||
Treasury Stock Shares | ||
Shareholders Equity | $449.6M | $427.8M |
YoY Change | ||
Total Liabilities & Shareholders Equity | $908.3M | $876.6M |
YoY Change | 20.81% | 23.54% |
Cashflow Statement
Concept | 2024 Q3 | 2024 Q2 |
---|---|---|
OPERATING ACTIVITIES | ||
Net Income | $46.21M | $43.77M |
YoY Change | -0.65% | 23.71% |
Depreciation, Depletion And Amortization | $4.391M | $4.780M |
YoY Change | -34.46% | -31.73% |
Cash From Operating Activities | $61.04M | $49.82M |
YoY Change | -34.01% | -3.28% |
INVESTING ACTIVITIES | ||
Capital Expenditures | $3.420M | $1.026M |
YoY Change | 90.0% | -27.64% |
Acquisitions | ||
YoY Change | ||
Other Investing Activities | -$59.45M | -$3.685M |
YoY Change | 24.11% | -76.93% |
Cash From Investing Activities | -$62.87M | -$4.711M |
YoY Change | 26.24% | -72.91% |
FINANCING ACTIVITIES | ||
Cash Dividend Paid | ||
YoY Change | ||
Common Stock Issuance & Retirement, Net | ||
YoY Change | ||
Debt Paid & Issued, Net | ||
YoY Change | ||
Cash From Financing Activities | -43.95M | -37.69M |
YoY Change | 118.65% | -9.91% |
NET CHANGE | ||
Cash From Operating Activities | 61.04M | 49.82M |
Cash From Investing Activities | -62.87M | -4.711M |
Cash From Financing Activities | -43.95M | -37.69M |
Net Change In Cash | -45.77M | 7.422M |
YoY Change | -302.54% | -196.28% |
FREE CASH FLOW | ||
Cash From Operating Activities | $61.04M | $49.82M |
Capital Expenditures | $3.420M | $1.026M |
Free Cash Flow | $57.62M | $48.80M |
YoY Change | -36.47% | -2.59% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
32038000 | usd | |
CY2023Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
36909000 | shares |
CY2023Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
36909000 | shares |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P6M | |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
||
CY2023Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | shares |
CY2023Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | shares |
CY2022Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
289129000 | usd |
CY2023Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
29105000 | usd |
CY2023Q1 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
376000 | usd |
CY2023Q1 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
2328000 | usd |
CY2023Q1 | us-gaap |
Stock Repurchased During Period Value
StockRepurchasedDuringPeriodValue
|
67032000 | usd |
CY2023Q1 | us-gaap |
Adjustments Related To Tax Withholding For Share Based Compensation
AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation
|
5105000 | usd |
CY2023Q1 | us-gaap |
Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
|
2988000 | usd |
CY2023Q1 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
16033000 | usd |
CY2023Q2 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
16020000 | usd |
CY2023Q2 | us-gaap |
Stockholders Equity
StockholdersEquity
|
277018000 | usd |
us-gaap |
Use Of Estimates
UseOfEstimates
|
<div style="margin-top:12pt;padding-left:13.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Use of Estimates</span></div><div style="margin-top:12pt;text-align:justify;text-indent:22.5pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of the unaudited condensed consolidated financial statements in conformity with U.S. GAAP requires management to make certain estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of assets and liabilities at the date of the condensed consolidated financial statements and the reported results of operations during the reporting period. The Company’s management regularly assesses these estimates, which primarily affect revenue recognition, allowance for credit loss, the valuation of goodwill and intangible assets, leases, stock-based compensation and income tax provision. Actual results could differ from those estimates and such differences may be material to the accompanying unaudited condensed consolidated financial statements.</span></div> | ||
CY2024Q2 | us-gaap |
Debt Securities Available For Sale Amortized Cost Excluding Accrued Interest After Allowance For Credit Loss
DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
|
381223000 | usd |
CY2024Q2 | us-gaap |
Available For Sale Debt Securities Accumulated Gross Unrealized Gain Before Tax
AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
|
114000 | usd |
CY2024Q2 | us-gaap |
Available For Sale Debt Securities Accumulated Gross Unrealized Loss Before Tax
AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
|
636000 | usd |
CY2024Q2 | us-gaap |
Debt Securities Available For Sale Excluding Accrued Interest
DebtSecuritiesAvailableForSaleExcludingAccruedInterest
|
380701000 | usd |
CY2024Q2 | us-gaap |
Cash
Cash
|
174600000 | usd |
CY2024Q2 | us-gaap |
Debt Securities Available For Sale Continuous Unrealized Loss Position Less Than12 Months
DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
|
300835000 | usd |
CY2024Q2 | us-gaap |
Debt Securities Available For Sale Continuous Unrealized Loss Position Less Than12 Months Accumulated Loss
DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
|
588000 | usd |
CY2024Q2 | us-gaap |
Debt Securities Available For Sale Continuous Unrealized Loss Position12 Months Or Longer
DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
|
15675000 | usd |
CY2024Q2 | us-gaap |
Debt Securities Available For Sale Continuous Unrealized Loss Position12 Months Or Longer Accumulated Loss
DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
|
48000 | usd |
CY2024Q2 | us-gaap |
Debt Securities Available For Sale Unrealized Loss Position
DebtSecuritiesAvailableForSaleUnrealizedLossPosition
|
316510000 | usd |
CY2024Q2 | us-gaap |
Debt Securities Available For Sale Unrealized Loss Position Accumulated Loss
DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
|
636000 | usd |
CY2023Q4 | us-gaap |
Debt Securities Available For Sale Continuous Unrealized Loss Position Less Than12 Months
DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months
|
68211000 | usd |
CY2023Q4 | us-gaap |
Debt Securities Available For Sale Continuous Unrealized Loss Position Less Than12 Months Accumulated Loss
DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss
|
25000 | usd |
CY2023Q4 | us-gaap |
Debt Securities Available For Sale Continuous Unrealized Loss Position12 Months Or Longer
DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger
|
40374000 | usd |
CY2023Q4 | us-gaap |
Debt Securities Available For Sale Continuous Unrealized Loss Position12 Months Or Longer Accumulated Loss
DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss
|
365000 | usd |
CY2023Q4 | us-gaap |
Debt Securities Available For Sale Unrealized Loss Position
DebtSecuritiesAvailableForSaleUnrealizedLossPosition
|
108585000 | usd |
CY2023Q4 | us-gaap |
Debt Securities Available For Sale Unrealized Loss Position Accumulated Loss
DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss
|
390000 | usd |
CY2024Q2 | us-gaap |
Available For Sale Securities Debt Maturities After Five Through Ten Years Amortized Cost
AvailableForSaleSecuritiesDebtMaturitiesAfterFiveThroughTenYearsAmortizedCost
|
218780000 | usd |
CY2024Q2 | us-gaap |
Available For Sale Securities Debt Maturities Within One Year Fair Value
AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue
|
218601000 | usd |
CY2024Q2 | us-gaap |
Available For Sale Securities Debt Maturities After One Through Five Years Amortized Cost
AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsAmortizedCost
|
152307000 | usd |
CY2024Q2 | us-gaap |
Available For Sale Securities Debt Maturities After One Through Five Years Fair Value
AvailableForSaleSecuritiesDebtMaturitiesAfterOneThroughFiveYearsFairValue
|
151897000 | usd |
CY2024Q2 | us-gaap |
Available For Sale Securities Debt Maturities Without Single Maturity Date Amortized Cost
AvailableForSaleSecuritiesDebtMaturitiesWithoutSingleMaturityDateAmortizedCost
|
10136000 | usd |
CY2024Q2 | us-gaap |
Available For Sale Securities Debt Maturities Without Single Maturity Date Fair Value
AvailableForSaleSecuritiesDebtMaturitiesWithoutSingleMaturityDateFairValue
|
10203000 | usd |
CY2024Q2 | us-gaap |
Debt Securities Available For Sale Amortized Cost Excluding Accrued Interest After Allowance For Credit Loss
DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLoss
|
381223000 | usd |
CY2024Q2 | us-gaap |
Debt Securities Available For Sale Excluding Accrued Interest
DebtSecuritiesAvailableForSaleExcludingAccruedInterest
|
380701000 | usd |
CY2018Q4 | us-gaap |
Investments
Investments
|
2500000 | usd |
CY2024Q2 | us-gaap |
Foreign Currency Contract Asset Fair Value Disclosure
ForeignCurrencyContractAssetFairValueDisclosure
|
865000 | usd |
CY2023Q4 | us-gaap |
Foreign Currency Contract Asset Fair Value Disclosure
ForeignCurrencyContractAssetFairValueDisclosure
|
111000 | usd |
CY2024Q2 | us-gaap |
Foreign Currency Contracts Liability Fair Value Disclosure
ForeignCurrencyContractsLiabilityFairValueDisclosure
|
461000 | usd |
CY2023Q4 | us-gaap |
Foreign Currency Contracts Liability Fair Value Disclosure
ForeignCurrencyContractsLiabilityFairValueDisclosure
|
1986000 | usd |
CY2024Q2 | us-gaap |
Gain Loss On Foreign Currency Derivative Instruments Not Designated As Hedging Instruments
GainLossOnForeignCurrencyDerivativeInstrumentsNotDesignatedAsHedgingInstruments
|
-73000 | usd |
CY2023Q2 | us-gaap |
Gain Loss On Foreign Currency Derivative Instruments Not Designated As Hedging Instruments
GainLossOnForeignCurrencyDerivativeInstrumentsNotDesignatedAsHedgingInstruments
|
-109000 | usd |
us-gaap |
Gain Loss On Foreign Currency Derivative Instruments Not Designated As Hedging Instruments
GainLossOnForeignCurrencyDerivativeInstrumentsNotDesignatedAsHedgingInstruments
|
439000 | usd | |
us-gaap |
Gain Loss On Foreign Currency Derivative Instruments Not Designated As Hedging Instruments
GainLossOnForeignCurrencyDerivativeInstrumentsNotDesignatedAsHedgingInstruments
|
150000 | usd | |
CY2024Q2 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-518000 | usd |
CY2023Q2 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-306000 | usd |
us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-2459000 | usd | |
us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-731000 | usd | |
CY2024Q2 | us-gaap |
Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
|
-591000 | usd |
CY2023Q2 | us-gaap |
Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
|
-415000 | usd |
us-gaap |
Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
|
-2020000 | usd | |
us-gaap |
Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
|
-581000 | usd | |
CY2024Q1 | us-gaap |
Oci Before Reclassifications Before Tax Attributable To Parent
OciBeforeReclassificationsBeforeTaxAttributableToParent
|
786000 | usd |
CY2024Q1 | us-gaap |
Reclassification From Aoci Current Period Before Tax Attributable To Parent
ReclassificationFromAociCurrentPeriodBeforeTaxAttributableToParent
|
-218000 | usd |
CY2024Q1 | us-gaap |
Other Comprehensive Income Loss Tax Portion Attributable To Parent1
OtherComprehensiveIncomeLossTaxPortionAttributableToParent1
|
307000 | usd |
CY2024Q1 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
697000 | usd |
CY2024Q2 | us-gaap |
Oci Before Reclassifications Before Tax Attributable To Parent
OciBeforeReclassificationsBeforeTaxAttributableToParent
|
244000 | usd |
CY2024Q2 | us-gaap |
Reclassification From Aoci Current Period Before Tax Attributable To Parent
ReclassificationFromAociCurrentPeriodBeforeTaxAttributableToParent
|
-414000 | usd |
CY2024Q2 | us-gaap |
Other Comprehensive Income Loss Tax Portion Attributable To Parent1
OtherComprehensiveIncomeLossTaxPortionAttributableToParent1
|
185000 | usd |
CY2024Q2 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
473000 | usd |
CY2023Q1 | us-gaap |
Oci Before Reclassifications Before Tax Attributable To Parent
OciBeforeReclassificationsBeforeTaxAttributableToParent
|
688000 | usd |
CY2023Q1 | us-gaap |
Reclassification From Aoci Current Period Before Tax Attributable To Parent
ReclassificationFromAociCurrentPeriodBeforeTaxAttributableToParent
|
534000 | usd |
CY2023Q1 | us-gaap |
Other Comprehensive Income Loss Tax Portion Attributable To Parent1
OtherComprehensiveIncomeLossTaxPortionAttributableToParent1
|
-222000 | usd |
CY2023Q1 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
376000 | usd |
CY2023Q2 | us-gaap |
Oci Before Reclassifications Before Tax Attributable To Parent
OciBeforeReclassificationsBeforeTaxAttributableToParent
|
377000 | usd |
CY2023Q2 | us-gaap |
Reclassification From Aoci Current Period Before Tax Attributable To Parent
ReclassificationFromAociCurrentPeriodBeforeTaxAttributableToParent
|
665000 | usd |
CY2023Q2 | us-gaap |
Other Comprehensive Income Loss Tax Portion Attributable To Parent1
OtherComprehensiveIncomeLossTaxPortionAttributableToParent1
|
-143000 | usd |
CY2023Q2 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-145000 | usd |
CY2024Q2 | us-gaap |
Property Plant And Equipment And Finance Lease Right Of Use Asset Before Accumulated Depreciation And Amortization
PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization
|
253806000 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment And Finance Lease Right Of Use Asset Before Accumulated Depreciation And Amortization
PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization
|
251127000 | usd |
CY2024Q2 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
226048000 | usd |
CY2023Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
218528000 | usd |
CY2024Q2 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
27758000 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
32599000 | usd |
CY2024Q2 | qlys |
Depreciation Depletion And Amortization Excluding Intangible Asset Amortization
DepreciationDepletionAndAmortizationExcludingIntangibleAssetAmortization
|
4000000.0 | usd |
CY2023Q2 | qlys |
Depreciation Depletion And Amortization Excluding Intangible Asset Amortization
DepreciationDepletionAndAmortizationExcludingIntangibleAssetAmortization
|
6100000 | usd |
qlys |
Depreciation Depletion And Amortization Excluding Intangible Asset Amortization
DepreciationDepletionAndAmortizationExcludingIntangibleAssetAmortization
|
8500000 | usd | |
qlys |
Depreciation Depletion And Amortization Excluding Intangible Asset Amortization
DepreciationDepletionAndAmortizationExcludingIntangibleAssetAmortization
|
12600000 | usd | |
CY2024Q2 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
99800000 | usd |
CY2023Q2 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
86400000 | usd |
us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
229600000 | usd | |
us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
200200000 | usd | |
CY2023Q4 | us-gaap |
Contract With Customer Liability
ContractWithCustomerLiability
|
364900000 | usd |
CY2022Q4 | us-gaap |
Contract With Customer Liability
ContractWithCustomerLiability
|
317200000 | usd |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
111389000 | usd |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
160431000 | usd |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
78439000 | usd |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
13341000 | usd |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
997000 | usd |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
272000 | usd |
CY2024Q2 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
364869000 | usd |
CY2024Q2 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
148708000 | usd |
CY2023Q2 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
137209000 | usd |
us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
294513000 | usd | |
us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
267892000 | usd | |
CY2024Q2 | us-gaap |
Capitalized Contract Cost Net Current
CapitalizedContractCostNetCurrent
|
6301000 | usd |
CY2023Q4 | us-gaap |
Capitalized Contract Cost Net Current
CapitalizedContractCostNetCurrent
|
5858000 | usd |
CY2024Q2 | us-gaap |
Capitalized Contract Cost Net Noncurrent
CapitalizedContractCostNetNoncurrent
|
12667000 | usd |
CY2023Q4 | us-gaap |
Capitalized Contract Cost Net Noncurrent
CapitalizedContractCostNetNoncurrent
|
11844000 | usd |
CY2024Q2 | us-gaap |
Amortization Of Deferred Sales Commissions
AmortizationOfDeferredSalesCommissions
|
1800000 | usd |
CY2023Q2 | us-gaap |
Amortization Of Deferred Sales Commissions
AmortizationOfDeferredSalesCommissions
|
1500000 | usd |
us-gaap |
Amortization Of Deferred Sales Commissions
AmortizationOfDeferredSalesCommissions
|
3400000 | usd | |
us-gaap |
Amortization Of Deferred Sales Commissions
AmortizationOfDeferredSalesCommissions
|
2900000 | usd | |
CY2023Q2 | us-gaap |
Capitalized Contract Cost Impairment Loss
CapitalizedContractCostImpairmentLoss
|
0 | usd |
CY2024Q2 | us-gaap |
Capitalized Contract Cost Impairment Loss
CapitalizedContractCostImpairmentLoss
|
0 | usd |
CY2022Q4 | us-gaap |
Accounts Receivable Net
AccountsReceivableNet
|
121800000 | usd |
CY2022Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
293700000 | usd |
CY2022Q4 | us-gaap |
Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
|
23500000 | usd |
CY2024Q2 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
41887000 | usd |
CY2024Q2 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
33755000 | usd |
CY2024Q2 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
8132000 | usd |
CY2024Q2 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
8172000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
41887000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
32212000 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
9675000 | usd |
CY2023Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
9715000 | usd |
CY2024Q2 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
800000 | usd |
CY2023Q2 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
800000 | usd |
us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
1500000 | usd | |
us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
1500000 | usd | |
CY2024Q2 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Remainder Of Fiscal Year
FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
|
1361000 | usd |
CY2024Q2 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
2556000 | usd |
CY2024Q2 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
2477000 | usd |
CY2024Q2 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
1738000 | usd |
CY2024Q2 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
8132000 | usd |
CY2024Q2 | us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
3800000 | usd |
CY2023Q2 | us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
4200000 | usd |
us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
7600000 | usd | |
us-gaap |
Operating Lease Expense
OperatingLeaseExpense
|
8200000 | usd | |
us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
7073000 | usd | |
us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
7699000 | usd | |
us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
27822000 | usd | |
us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
121000 | usd | |
CY2024Q2 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P4Y6M | |
CY2023Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P3Y1M6D | |
CY2024Q2 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.073 | |
CY2023Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.052 | |
CY2024Q2 | us-gaap |
Lessee Operating Lease Liability Payments Remainder Of Fiscal Year
LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear
|
6847000 | usd |
CY2024Q2 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
12569000 | usd |
CY2024Q2 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
12172000 | usd |
CY2024Q2 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
12225000 | usd |
CY2024Q2 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
9448000 | usd |
CY2024Q2 | qlys |
Lessee Operating Lease Liability To Be Paid After Year Four
LesseeOperatingLeaseLiabilityToBePaidAfterYearFour
|
7313000 | usd |
CY2024Q2 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
60574000 | usd |
CY2024Q2 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
10014000 | usd |
CY2024Q2 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
50560000 | usd |
CY2024Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Available For Grant
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
|
2716000 | shares |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
1447000 | shares |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
97.98 | |
CY2023 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P6Y6M | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
142302000 | usd |
us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
137000 | shares | |
us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
167.29 | ||
us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
107000 | shares | |
us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
55.74 | ||
us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
|
46000 | shares | |
us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
|
123.66 | ||
CY2024Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
1431000 | shares |
CY2024Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
106.93 | |
us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P6Y6M | ||
CY2024Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
54911000 | usd |
CY2024Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
|
1276000 | shares |
CY2024Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
|
102.70 | |
us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
|
P6Y2M12D | ||
CY2024Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Aggregate Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
|
53581000 | usd |
CY2024Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
|
791000 | shares |
CY2024Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice
|
81.61 | |
us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested And Expected To Vest Exercisable Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1
|
P4Y10M24D | ||
CY2024Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Exercisable Aggregate Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue
|
48263000 | usd |
us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Award Vesting Period1
ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
|
P4Y | ||
CY2024Q2 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
17086000 | usd |
CY2023Q2 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
16005000 | usd |
us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
36117000 | usd | |
CY2018Q1 | srt |
Stock Repurchase Program Authorized Amount1
StockRepurchaseProgramAuthorizedAmount1
|
100000000.0 | usd |
CY2018Q4 | qlys |
Stock Repurchase Program Additional Authorized Amount1
StockRepurchaseProgramAdditionalAuthorizedAmount1
|
100000000.0 | usd |
CY2019Q4 | qlys |
Stock Repurchase Program Additional Authorized Amount1
StockRepurchaseProgramAdditionalAuthorizedAmount1
|
100000000.0 | usd |
CY2020Q2 | qlys |
Stock Repurchase Program Additional Authorized Amount1
StockRepurchaseProgramAdditionalAuthorizedAmount1
|
100000000.0 | usd |
CY2021Q1 | qlys |
Stock Repurchase Program Additional Authorized Amount1
StockRepurchaseProgramAdditionalAuthorizedAmount1
|
100000000.0 | usd |
CY2021Q4 | qlys |
Stock Repurchase Program Additional Authorized Amount1
StockRepurchaseProgramAdditionalAuthorizedAmount1
|
200000000.0 | usd |
CY2022Q2 | qlys |
Stock Repurchase Program Additional Authorized Amount1
StockRepurchaseProgramAdditionalAuthorizedAmount1
|
200000000.0 | usd |
CY2023Q1 | qlys |
Stock Repurchase Program Additional Authorized Amount1
StockRepurchaseProgramAdditionalAuthorizedAmount1
|
100000000.0 | usd |
CY2024Q1 | qlys |
Stock Repurchase Program Additional Authorized Amount1
StockRepurchaseProgramAdditionalAuthorizedAmount1
|
200000000.0 | usd |
CY2024Q2 | srt |
Stock Repurchase Program Authorized Amount1
StockRepurchaseProgramAuthorizedAmount1
|
1200000000 | usd |
us-gaap |
Stock Repurchased And Retired During Period Shares
StockRepurchasedAndRetiredDuringPeriodShares
|
337000 | shares | |
us-gaap |
Stock Repurchased And Retired During Period Shares
StockRepurchasedAndRetiredDuringPeriodShares
|
930000 | shares | |
us-gaap |
Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
|
53000000.0 | usd | |
us-gaap |
Stock Repurchased And Retired During Period Value
StockRepurchasedAndRetiredDuringPeriodValue
|
108800000 | usd | |
CY2024Q2 | us-gaap |
Stock Repurchase Program Remaining Authorized Repurchase Amount1
StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1
|
230700000 | usd |
CY2024Q2 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
10400000 | usd |
CY2023Q2 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
10300000 | usd |
CY2024Q2 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.192 | |
CY2023Q2 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.225 | |
us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
20200000 | usd | |
us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
18500000 | usd | |
us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.195 | ||
us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.223 | ||
CY2024Q2 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
12700000 | usd |
CY2024Q2 | us-gaap |
Unrecognized Tax Benefits That Would Impact Effective Tax Rate
UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
|
6700000 | usd |
CY2023Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
11900000 | usd |
CY2023Q4 | us-gaap |
Unrecognized Tax Benefits That Would Impact Effective Tax Rate
UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
|
6100000 | usd |
us-gaap |
Number Of Operating Segments
NumberOfOperatingSegments
|
1 | segment | |
us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
1 | segment | |
CY2024Q2 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
148708000 | usd |
CY2023Q2 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
137209000 | usd |
us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
294513000 | usd | |
us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
267892000 | usd | |
CY2024Q2 | us-gaap |
Noncurrent Assets
NoncurrentAssets
|
71858000 | usd |
CY2023Q4 | us-gaap |
Noncurrent Assets
NoncurrentAssets
|
54990000 | usd |
CY2024Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
43772000 | usd |
CY2023Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
35382000 | usd |
us-gaap |
Net Income Loss
NetIncomeLoss
|
83503000 | usd | |
us-gaap |
Net Income Loss
NetIncomeLoss
|
64487000 | usd | |
CY2024Q2 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
36915000 | shares |
CY2023Q2 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
36842000 | shares |
us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
36935000 | shares | |
us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
36954000 | shares | |
CY2024Q2 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
364000 | shares |
CY2023Q2 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
460000 | shares |
us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
418000 | shares | |
us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
475000 | shares | |
CY2024Q2 | us-gaap |
Incremental Common Shares Attributable To Call Options And Warrants
IncrementalCommonSharesAttributableToCallOptionsAndWarrants
|
182000 | shares |
CY2023Q2 | us-gaap |
Incremental Common Shares Attributable To Call Options And Warrants
IncrementalCommonSharesAttributableToCallOptionsAndWarrants
|
131000 | shares |
us-gaap |
Incremental Common Shares Attributable To Call Options And Warrants
IncrementalCommonSharesAttributableToCallOptionsAndWarrants
|
237000 | shares | |
us-gaap |
Incremental Common Shares Attributable To Call Options And Warrants
IncrementalCommonSharesAttributableToCallOptionsAndWarrants
|
120000 | shares | |
CY2024Q2 | us-gaap |
Incremental Common Shares Attributable To Equity Unit Purchase Agreements
IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements
|
3000 | shares |
CY2023Q2 | us-gaap |
Incremental Common Shares Attributable To Equity Unit Purchase Agreements
IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements
|
2000 | shares |
us-gaap |
Incremental Common Shares Attributable To Equity Unit Purchase Agreements
IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements
|
4000 | shares | |
us-gaap |
Incremental Common Shares Attributable To Equity Unit Purchase Agreements
IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements
|
2000 | shares | |
CY2024Q2 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
37464000 | shares |
CY2023Q2 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
37435000 | shares |
us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
37594000 | shares | |
us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
37551000 | shares | |
CY2024Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.19 | |
CY2023Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.96 | |
us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
2.26 | ||
us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.75 | ||
CY2024Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.17 | |
CY2023Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.95 | |
us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
2.22 | ||
us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.72 | ||
CY2024Q2 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
622000 | shares |
CY2023Q2 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
1214000 | shares |
us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
474000 | shares | |
us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
1291000 | shares | |
CY2024Q2 | ecd |
Non Rule10b51 Arr Adopted Flag
NonRule10b51ArrAdoptedFlag
|
false | |
CY2024Q2 | ecd |
Rule10b51 Arr Adopted Flag
Rule10b51ArrAdoptedFlag
|
false | |
CY2024Q2 | ecd |
Non Rule10b51 Arr Trmntd Flag
NonRule10b51ArrTrmntdFlag
|
false | |
CY2024Q2 | ecd |
Rule10b51 Arr Trmntd Flag
Rule10b51ArrTrmntdFlag
|
false |