2021 Q4 Form 10-Q Financial Statement
#000156459021054914 Filed on November 05, 2021
Income Statement
Concept | 2021 Q4 | 2020 Q4 | 2020 Q3 |
---|---|---|---|
Revenue | $116.4M | $98.66M | $92.05M |
YoY Change | 17.98% | -9.36% | |
Cost Of Revenue | $7.938M | $5.200M | $4.200M |
YoY Change | 52.65% | -30.0% | |
Gross Profit | $108.5M | $93.50M | $87.90M |
YoY Change | 16.01% | -7.96% | |
Gross Profit Margin | 93.18% | 94.77% | 95.5% |
Selling, General & Admin | $70.28M | $67.40M | $73.20M |
YoY Change | 4.27% | 10.41% | |
% of Gross Profit | 64.79% | 72.09% | 83.28% |
Research & Development | |||
YoY Change | |||
% of Gross Profit | |||
Depreciation & Amortization | $1.645M | $1.700M | $1.700M |
YoY Change | -3.24% | 0.0% | |
% of Gross Profit | 1.52% | 1.82% | 1.93% |
Operating Expenses | $76.35M | $73.10M | $78.70M |
YoY Change | 4.44% | 0.43% | |
Operating Profit | $32.12M | $20.41M | $9.120M |
YoY Change | 57.39% | -60.66% | |
Interest Expense | $13.00K | $300.0K | $300.0K |
YoY Change | -95.67% | -66.67% | |
% of Operating Profit | 0.04% | 1.47% | 3.29% |
Other Income/Expense, Net | $257.0K | $3.915M | $11.99M |
YoY Change | -93.44% | 491.47% | |
Pretax Income | $32.39M | $24.64M | $21.41M |
YoY Change | 31.46% | -15.06% | |
Income Tax | $7.815M | $6.600M | $5.100M |
% Of Pretax Income | 24.13% | 26.79% | 23.82% |
Net Earnings | $24.57M | $18.08M | $16.35M |
YoY Change | 35.89% | -16.74% | |
Net Earnings / Revenue | 21.11% | 18.33% | 17.76% |
Basic Earnings Per Share | $0.47 | $0.35 | $0.31 |
Diluted Earnings Per Share | $460.9K | $0.34 | $0.31 |
COMMON SHARES | |||
Basic Shares Outstanding | 52.62M | 52.32M | 52.26M |
Diluted Shares Outstanding | 53.31M | 53.21M | 53.14M |
Balance Sheet
Concept | 2021 Q4 | 2020 Q4 | 2020 Q3 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $254.8M | $207.7M | $190.2M |
YoY Change | 22.67% | -9.43% | |
Cash & Equivalents | $297.7M | $76.30M | $155.9M |
Short-Term Investments | $25.00M | $20.10M | $34.20M |
Other Short-Term Assets | $18.74M | $11.00M | $14.80M |
YoY Change | 70.35% | 12.12% | |
Inventory | |||
Prepaid Expenses | |||
Receivables | $139.9M | $110.0M | $109.3M |
Other Receivables | $0.00 | $0.00 | $0.00 |
Total Short-Term Assets | $452.8M | $328.6M | $314.3M |
YoY Change | 37.79% | -10.59% | |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $59.97M | $80.50M | $80.40M |
YoY Change | -25.5% | 35.54% | |
Goodwill | $8.607M | ||
YoY Change | |||
Intangibles | |||
YoY Change | |||
Long-Term Investments | |||
YoY Change | |||
Other Assets | $1.521M | $116.9M | $109.9M |
YoY Change | -98.7% | 12998.93% | |
Total Long-Term Assets | $231.0M | $206.1M | $198.9M |
YoY Change | 12.07% | 3.08% | |
TOTAL ASSETS | |||
Total Short-Term Assets | $452.8M | $328.6M | $314.3M |
Total Long-Term Assets | $231.0M | $206.1M | $198.9M |
Total Assets | $683.7M | $534.7M | $513.2M |
YoY Change | 27.87% | -5.75% | |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $21.44M | $18.60M | $16.20M |
YoY Change | 15.28% | -1.82% | |
Accrued Expenses | $92.78M | $68.40M | $64.70M |
YoY Change | 35.65% | -14.42% | |
Deferred Revenue | $19.76M | ||
YoY Change | |||
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | |||
YoY Change | |||
Total Short-Term Liabilities | $153.0M | $96.40M | $89.78M |
YoY Change | 58.7% | -11.14% | |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Other Long-Term Liabilities | $2.886M | $95.10M | $2.939M |
YoY Change | -96.97% | 5.23% | |
Total Long-Term Liabilities | $2.886M | $95.10M | $2.939M |
YoY Change | -96.97% | 5.23% | |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $153.0M | $96.40M | $89.78M |
Total Long-Term Liabilities | $2.886M | $95.10M | $2.939M |
Total Liabilities | $266.7M | $191.5M | $180.6M |
YoY Change | 39.26% | -3.52% | |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $478.4M | $402.0M | |
YoY Change | 7.47% | ||
Common Stock | $281.5M | $259.7M | |
YoY Change | 6.94% | ||
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $340.8M | $325.7M | |
YoY Change | 27.0% | ||
Treasury Stock Shares | $13.59M | $14.08M | |
Shareholders Equity | $417.1M | $343.2M | $332.6M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $683.7M | $534.7M | $513.2M |
YoY Change | 27.87% | -5.75% |
Cashflow Statement
Concept | 2021 Q4 | 2020 Q4 | 2020 Q3 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $24.57M | $18.08M | $16.35M |
YoY Change | 35.89% | -16.74% | |
Depreciation, Depletion And Amortization | $1.645M | $1.700M | $1.700M |
YoY Change | -3.24% | 0.0% | |
Cash From Operating Activities | $24.93M | $28.20M | $48.00M |
YoY Change | -11.61% | 74.55% | |
INVESTING ACTIVITIES | |||
Capital Expenditures | -$1.191M | -$1.600M | -$1.200M |
YoY Change | -25.56% | -73.33% | |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | -$25.00M | $14.00M | $12.00M |
YoY Change | -278.55% | -7.69% | |
Cash From Investing Activities | -$26.19M | $12.40M | $10.80M |
YoY Change | -311.19% | 27.06% | |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | |||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -8.769M | -9.300M | -8.600M |
YoY Change | -5.71% | 19.44% | |
NET CHANGE | |||
Cash From Operating Activities | 24.93M | 28.20M | 48.00M |
Cash From Investing Activities | -26.19M | 12.40M | 10.80M |
Cash From Financing Activities | -8.769M | -9.300M | -8.600M |
Net Change In Cash | -10.03M | 31.30M | 50.20M |
YoY Change | -132.05% | 74.31% | |
FREE CASH FLOW | |||
Cash From Operating Activities | $24.93M | $28.20M | $48.00M |
Capital Expenditures | -$1.191M | -$1.600M | -$1.200M |
Free Cash Flow | $26.12M | $29.80M | $49.20M |
YoY Change | -12.36% | 53.75% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
us-gaap |
Stock Repurchased During Period Value
StockRepurchasedDuringPeriodValue
|
7000000 | ||
us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
211000 | ||
us-gaap |
Stock Granted During Period Value Sharebased Compensation
StockGrantedDuringPeriodValueSharebasedCompensation
|
7637000 | ||
us-gaap |
Stock Issued During Period Value Restricted Stock Award Net Of Forfeitures
StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
|
-15666000 | ||
us-gaap |
Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
|
-4000 | ||
us-gaap |
Dividends
Dividends
|
21856000 | ||
us-gaap |
Net Income Loss
NetIncomeLoss
|
56248000 | ||
CY2021Q3 | us-gaap |
Stockholders Equity
StockholdersEquity
|
387767000 | |
CY2021Q4 | us-gaap |
Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
|
518000 | |
CY2021Q4 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
1135000 | |
CY2021Q4 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
1840000 | |
us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
1628000 | ||
us-gaap |
Stock Repurchased During Period Value
StockRepurchasedDuringPeriodValue
|
40049000 | ||
us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-1602000 | ||
us-gaap |
Stock Granted During Period Value Sharebased Compensation
StockGrantedDuringPeriodValueSharebasedCompensation
|
8645000 | ||
us-gaap |
Stock Issued During Period Value Restricted Stock Award Net Of Forfeitures
StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
|
-15263000 | ||
us-gaap |
Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
|
-43000 | ||
us-gaap |
Dividends
Dividends
|
20291000 | ||
us-gaap |
Net Income Loss
NetIncomeLoss
|
42628000 | ||
CY2020Q3 | us-gaap |
Stockholders Equity
StockholdersEquity
|
332567000 | |
CY2020Q4 | us-gaap |
Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
|
479000 | |
CY2020Q4 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
1691000 | |
CY2020Q4 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
550000 | |
CY2020Q4 | us-gaap |
Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
|
-129000 | |
CY2020Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
18084000 | |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
343197000 | |
us-gaap |
Profit Loss
ProfitLoss
|
80822000 | ||
us-gaap |
Profit Loss
ProfitLoss
|
60712000 | ||
us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
4943000 | ||
us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
5176000 | ||
us-gaap |
Accretion Amortization Of Discounts And Premiums Investments
AccretionAmortizationOfDiscountsAndPremiumsInvestments
|
11000 | ||
us-gaap |
Accretion Amortization Of Discounts And Premiums Investments
AccretionAmortizationOfDiscountsAndPremiumsInvestments
|
150000 | ||
us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
2890000 | ||
us-gaap |
Share Based Compensation
ShareBasedCompensation
|
13326000 | ||
us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-2505000 | ||
us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-7284000 | ||
us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
8439000 | ||
expo |
Increase Decrease In Operation Lease Right Of Use Assets
IncreaseDecreaseInOperationLeaseRightOfUseAssets
|
472000 | ||
expo |
Increase Decrease In Operation Lease Right Of Use Assets
IncreaseDecreaseInOperationLeaseRightOfUseAssets
|
331000 | ||
us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
5784000 | ||
us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
311000 | ||
us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
3053000 | ||
us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
-12507000 | ||
us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
-3320000 | ||
us-gaap |
Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
|
34994000 | ||
us-gaap |
Proceeds From Maturities Prepayments And Calls Of Shortterm Investments
ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments
|
35000000 | ||
us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
7000000 | ||
us-gaap |
Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
79000 | ||
us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
32260000 | ||
us-gaap |
Use Of Estimates
UseOfEstimates
|
<p style="text-align:justify;margin-top:10pt;margin-bottom:0pt;text-indent:5.56%;color:#auto;font-family:Times New Roman;font-weight:bold;font-size:10pt;font-style:normal;text-transform:none;font-variant: normal;">Use of Estimates. <span style="font-weight:normal;">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the period. Items subject to such estimates and assumptions include accounting for revenue recognition and estimating the allowance for contract losses and doubtful accounts. Actual results could differ from those estimates.</span></p> | ||
CY2021Q4 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
4517000 | |
us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
7724000 | ||
CY2021Q4 | expo |
Subcontractor Fees Not Included In Revenues
SubcontractorFeesNotIncludedInRevenues
|
1219000 | |
CY2020Q4 | expo |
Subcontractor Fees Not Included In Revenues
SubcontractorFeesNotIncludedInRevenues
|
347000 | |
expo |
Subcontractor Fees Not Included In Revenues
SubcontractorFeesNotIncludedInRevenues
|
9923000 | ||
CY2021Q4 | us-gaap |
Assets Fair Value Disclosure
AssetsFairValueDisclosure
|
205856000 | |
CY2021Q4 | us-gaap |
Deferred Compensation Liability Current And Noncurrent
DeferredCompensationLiabilityCurrentAndNoncurrent
|
105342000 | |
CY2021Q4 | us-gaap |
Liabilities Fair Value Disclosure
LiabilitiesFairValueDisclosure
|
105342000 | |
CY2021Q1 | us-gaap |
Assets Fair Value Disclosure
AssetsFairValueDisclosure
|
185190000 | |
CY2021Q1 | us-gaap |
Deferred Compensation Liability Current And Noncurrent
DeferredCompensationLiabilityCurrentAndNoncurrent
|
88977000 | |
CY2021Q1 | us-gaap |
Liabilities Fair Value Disclosure
LiabilitiesFairValueDisclosure
|
88977000 | |
CY2021Q4 | us-gaap |
Available For Sale Debt Securities Amortized Cost Basis
AvailableForSaleDebtSecuritiesAmortizedCostBasis
|
254783000 | |
CY2021Q4 | us-gaap |
Available For Sale Debt Securities Accumulated Gross Unrealized Gain Before Tax
AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
|
0 | |
CY2021Q4 | us-gaap |
Available For Sale Debt Securities Accumulated Gross Unrealized Loss Before Tax
AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
|
0 | |
CY2021Q4 | us-gaap |
Available For Sale Securities Debt Securities
AvailableForSaleSecuritiesDebtSecurities
|
254783000 | |
CY2021Q1 | us-gaap |
Available For Sale Debt Securities Amortized Cost Basis
AvailableForSaleDebtSecuritiesAmortizedCostBasis
|
242518000 | |
CY2021Q1 | us-gaap |
Available For Sale Debt Securities Accumulated Gross Unrealized Gain Before Tax
AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
|
8000 | |
CY2021Q1 | us-gaap |
Available For Sale Debt Securities Accumulated Gross Unrealized Loss Before Tax
AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
|
0 | |
CY2021Q1 | us-gaap |
Available For Sale Securities Debt Securities
AvailableForSaleSecuritiesDebtSecurities
|
242526000 | |
CY2021Q1 | us-gaap |
Deferred Compensation Plan Assets
DeferredCompensationPlanAssets
|
88747000 | |
CY2021Q4 | us-gaap |
Deferred Compensation Liability Current And Noncurrent
DeferredCompensationLiabilityCurrentAndNoncurrent
|
105342000 | |
CY2021Q4 | expo |
Change In Market Value Of Deferred Compensation Trust Assets
ChangeInMarketValueOfDeferredCompensationTrustAssets
|
-258000 | |
CY2020Q4 | expo |
Change In Market Value Of Deferred Compensation Trust Assets
ChangeInMarketValueOfDeferredCompensationTrustAssets
|
3220000 | |
CY2021Q4 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
52618000 | |
CY2020Q4 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
52316000 | |
us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
52597000 | ||
CY2021Q4 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
53312000 | |
CY2020Q4 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
53209000 | |
us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
53316000 | ||
CY2021Q4 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
0 | |
CY2020Q4 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
40000 | |
us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
0 | ||
expo |
Share Based Compensation Arrangements By Share Based Payment Award Options Expiration Term
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationTerm
|
P10Y | ||
CY2021Q4 | us-gaap |
Deferred Compensation Plan Assets
DeferredCompensationPlanAssets
|
104279000 | |
expo |
Change In Market Value Of Deferred Compensation Trust Assets
ChangeInMarketValueOfDeferredCompensationTrustAssets
|
9997000 | ||
expo |
Change In Market Value Of Deferred Compensation Trust Assets
ChangeInMarketValueOfDeferredCompensationTrustAssets
|
-399000 | ||
us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
16481000 | ||
us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
9370000 | ||
us-gaap |
Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
|
-65000 | ||
us-gaap |
Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
|
-172000 | ||
expo |
Vested Restricted Stock Awards Issued To Settle Accrued Bonuses
VestedRestrictedStockAwardsIssuedToSettleAccruedBonuses
|
7637000 | ||
expo |
Vested Restricted Stock Awards Issued To Settle Accrued Bonuses
VestedRestrictedStockAwardsIssuedToSettleAccruedBonuses
|
8645000 | ||
us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
368000 | ||
us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
322000 | ||
us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
792000 | ||
us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
1802000 | ||
CY2021Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
4815000 | |
CY2021Q1 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
3995000 | |
CY2021Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
144039000 | |
CY2021Q1 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
111565000 | |
us-gaap |
Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
|
377000 | ||
CY2021Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
4815000 | |
CY2021Q1 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
3995000 | |
us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
1197000 | ||
CY2021Q4 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
116405000 | |
CY2020Q4 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
98663000 | |
us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
352763000 | ||
us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
296661000 | ||
CY2021Q4 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
32119000 | |
CY2020Q4 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
20407000 | |
us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
85549000 | ||
us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
65515000 | ||
CY2021Q4 | us-gaap |
Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
|
1398000 | |
CY2020Q4 | us-gaap |
Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
|
1621000 | |
us-gaap |
Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
|
5203000 | ||
us-gaap |
Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
|
4304000 | ||
CY2021Q4 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
1645000 | |
CY2020Q4 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
1689000 | |
us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
4943000 | ||
us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
5176000 | ||
CY2021Q4 | expo |
Number Of Clients Comprising10 Percent Of Revenues
NumberOfClientsComprising10PercentOfRevenues
|
1 | |
expo |
Number Of Clients Comprising10 Percent Of Revenues
NumberOfClientsComprising10PercentOfRevenues
|
1 | ||
CY2021Q4 | expo |
Number Of Client Comprised More Than Ten Percent Of Revenue
NumberOfClientComprisedMoreThanTenPercentOfRevenue
|
0 | |
expo |
Number Of Client Comprised More Than Ten Percent Of Revenue
NumberOfClientComprisedMoreThanTenPercentOfRevenue
|
0 | ||
CY2020Q4 | expo |
Number Of Client Comprised More Than Ten Percent Of Revenue
NumberOfClientComprisedMoreThanTenPercentOfRevenue
|
0 | |
expo |
Number Of Client Comprised More Than Ten Percent Of Revenue
NumberOfClientComprisedMoreThanTenPercentOfRevenue
|
0 | ||
CY2021Q4 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1566000 | |
CY2020Q4 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1508000 | |
CY2021Q1 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P4Y6M | |
CY2021Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.041 | |
CY2021Q1 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.042 | |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Remainder Of Fiscal Year
LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear
|
1581000 | |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
5805000 | |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
4067000 | |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
2355000 | |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
1539000 | |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
1531000 | |
CY2021Q4 | expo |
Lessee Operating Lease Liability Payments Due Year Six
LesseeOperatingLeaseLiabilityPaymentsDueYearSix
|
1466000 |