2020 Q4 Form 10-Q Financial Statement
#000156459020052004 Filed on November 06, 2020
Income Statement
Concept | 2020 Q4 | 2019 Q3 | 2019 Q2 |
---|---|---|---|
Revenue | $98.66M | $101.5M | $106.5M |
YoY Change | 6.55% | 11.38% | |
Cost Of Revenue | $5.200M | $6.000M | $6.200M |
YoY Change | -9.09% | 10.71% | |
Gross Profit | $93.50M | $95.50M | $100.3M |
YoY Change | 7.67% | 11.44% | |
Gross Profit Margin | 94.77% | 94.04% | 94.17% |
Selling, General & Admin | $67.40M | $66.30M | $69.80M |
YoY Change | 9.95% | 16.53% | |
% of Gross Profit | 72.09% | 69.42% | 69.59% |
Research & Development | |||
YoY Change | |||
% of Gross Profit | |||
Depreciation & Amortization | $1.700M | $1.700M | $1.600M |
YoY Change | 6.25% | 6.67% | |
% of Gross Profit | 1.82% | 1.78% | 1.6% |
Operating Expenses | $73.10M | $78.36M | $81.68M |
YoY Change | 4.89% | 11.68% | |
Operating Profit | $20.41M | $23.18M | $24.82M |
YoY Change | 12.58% | 10.43% | |
Interest Expense | $300.0K | $900.0K | $900.0K |
YoY Change | 28.57% | 80.0% | |
% of Operating Profit | 1.47% | 3.88% | 3.63% |
Other Income/Expense, Net | $3.915M | $2.027M | $4.028M |
YoY Change | -40.29% | 65.01% | |
Pretax Income | $24.64M | $25.21M | $28.85M |
YoY Change | 5.09% | 15.78% | |
Income Tax | $6.600M | $5.578M | $7.857M |
% Of Pretax Income | 26.79% | 22.13% | 27.23% |
Net Earnings | $18.08M | $19.63M | $20.99M |
YoY Change | 12.49% | 13.94% | |
Net Earnings / Revenue | 18.33% | 19.33% | 19.71% |
Basic Earnings Per Share | $0.35 | $0.37 | $0.40 |
Diluted Earnings Per Share | $0.34 | $0.36 | $0.39 |
COMMON SHARES | |||
Basic Shares Outstanding | 52.32M | 52.80M | 52.75M |
Diluted Shares Outstanding | 53.21M | 54.00M | 53.87M |
Balance Sheet
Concept | 2020 Q4 | 2019 Q3 | 2019 Q2 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $207.7M | $210.0M | $194.5M |
YoY Change | 3.75% | 0.62% | |
Cash & Equivalents | $76.30M | $132.8M | $104.5M |
Short-Term Investments | $20.10M | $77.10M | $90.00M |
Other Short-Term Assets | $11.00M | $13.20M | $10.50M |
YoY Change | 17.86% | 14.13% | |
Inventory | |||
Prepaid Expenses | |||
Receivables | $110.0M | $128.3M | $129.7M |
Other Receivables | $0.00 | $0.00 | $0.00 |
Total Short-Term Assets | $328.6M | $351.5M | $334.7M |
YoY Change | 4.47% | 4.91% | |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $80.50M | $59.32M | $56.11M |
YoY Change | 34.91% | 35.54% | |
Goodwill | $8.607M | $8.607M | |
YoY Change | 0.0% | ||
Intangibles | |||
YoY Change | |||
Long-Term Investments | |||
YoY Change | |||
Other Assets | $116.9M | $839.0K | $949.0K |
YoY Change | -40.71% | -98.91% | |
Total Long-Term Assets | $206.1M | $193.0M | $186.0M |
YoY Change | 33.64% | 36.05% | |
TOTAL ASSETS | |||
Total Short-Term Assets | $328.6M | $351.5M | $334.7M |
Total Long-Term Assets | $206.1M | $193.0M | $186.0M |
Total Assets | $534.7M | $544.5M | $520.6M |
YoY Change | 13.22% | 14.25% | |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $18.60M | $16.50M | $19.70M |
YoY Change | 25.0% | 58.87% | |
Accrued Expenses | $68.40M | $75.60M | $64.70M |
YoY Change | 14.37% | 13.91% | |
Deferred Revenue | $8.900M | $8.550M | |
YoY Change | |||
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | |||
YoY Change | |||
Total Short-Term Liabilities | $96.40M | $101.0M | $92.88M |
YoY Change | 14.62% | 20.16% | |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Other Long-Term Liabilities | $95.10M | $2.793M | $2.846M |
YoY Change | -4.05% | -95.23% | |
Total Long-Term Liabilities | $95.10M | $2.793M | $2.846M |
YoY Change | -4.05% | -95.23% | |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $96.40M | $101.0M | $92.88M |
Total Long-Term Liabilities | $95.10M | $2.793M | $2.846M |
Total Liabilities | $191.5M | $187.2M | $176.8M |
YoY Change | 24.59% | 29.14% | |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $374.0M | $363.0M | |
YoY Change | 12.35% | ||
Common Stock | $242.8M | $241.0M | |
YoY Change | 7.67% | ||
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $256.4M | $257.5M | |
YoY Change | 14.08% | ||
Treasury Stock Shares | $13.68M | $13.79M | |
Shareholders Equity | $343.2M | $357.3M | $343.9M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $534.7M | $544.5M | $520.6M |
YoY Change | 13.22% | 14.25% |
Cashflow Statement
Concept | 2020 Q4 | 2019 Q3 | 2019 Q2 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $18.08M | $19.63M | $20.99M |
YoY Change | 12.49% | 13.94% | |
Depreciation, Depletion And Amortization | $1.700M | $1.700M | $1.600M |
YoY Change | 6.25% | 6.67% | |
Cash From Operating Activities | $28.20M | $27.50M | $37.10M |
YoY Change | 45.5% | 53.31% | |
INVESTING ACTIVITIES | |||
Capital Expenditures | -$1.600M | -$4.500M | -$6.800M |
YoY Change | 36.36% | -417.91% | |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | $14.00M | $13.00M | $3.100M |
YoY Change | -320.34% | ||
Cash From Investing Activities | $12.40M | $8.500M | -$3.700M |
YoY Change | -193.41% | 68.18% | |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | |||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -9.300M | -7.200M | -7.800M |
YoY Change | 9.09% | 21.88% | |
NET CHANGE | |||
Cash From Operating Activities | 28.20M | 27.50M | 37.10M |
Cash From Investing Activities | 12.40M | 8.500M | -3.700M |
Cash From Financing Activities | -9.300M | -7.200M | -7.800M |
Net Change In Cash | 31.30M | 28.80M | 25.60M |
YoY Change | 800.0% | 64.1% | |
FREE CASH FLOW | |||
Cash From Operating Activities | $28.20M | $27.50M | $37.10M |
Capital Expenditures | -$1.600M | -$4.500M | -$6.800M |
Free Cash Flow | $29.80M | $32.00M | $43.90M |
YoY Change | 44.14% | 98.99% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
307085000 | ||
us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
11290000 | ||
us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
15345000 | ||
us-gaap |
Dividends
Dividends
|
20291000 | ||
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 |
Dividends
Dividends
|
10045000 | |
CY2020Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
18084000 | |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
343197000 | |
us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-124000 | ||
us-gaap |
Stock Granted During Period Value Sharebased Compensation
StockGrantedDuringPeriodValueSharebasedCompensation
|
7947000 | ||
us-gaap |
Stock Issued During Period Value Restricted Stock Award Net Of Forfeitures
StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
|
-11183000 | ||
us-gaap |
Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
|
403000 | ||
us-gaap |
Dividends
Dividends
|
16999000 | ||
us-gaap |
Net Income Loss
NetIncomeLoss
|
43706000 | ||
CY2019Q2 | us-gaap |
Stockholders Equity
StockholdersEquity
|
343852000 | |
CY2019Q3 | us-gaap |
Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
|
389000 | |
CY2019Q3 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
735000 | |
CY2019Q3 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
1748000 | |
CY2019Q3 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Net Of Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
|
-533000 | |
CY2019Q3 | us-gaap |
Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
|
-30000 | |
CY2019Q3 | us-gaap |
Dividends
Dividends
|
8515000 | |
us-gaap |
Labor And Related Expense
LaborAndRelatedExpense
|
185616000 | ||
us-gaap |
Other Cost And Expense Operating
OtherCostAndExpenseOperating
|
24448000 | ||
expo |
Cost Incurred From Reimbursable Expense
CostIncurredFromReimbursableExpense
|
17915000 | ||
us-gaap |
Operating Expenses
OperatingExpenses
|
243324000 | ||
us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
63761000 | ||
us-gaap |
Labor And Related Expense
LaborAndRelatedExpense
|
180541000 | ||
us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.16 | ||
us-gaap |
Operating Expenses
OperatingExpenses
|
231146000 | ||
us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
9395000 | ||
us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
65515000 | ||
us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.14 | ||
us-gaap |
Net Income Loss
NetIncomeLoss
|
60712000 | ||
us-gaap |
Other Cost And Expense Operating
OtherCostAndExpenseOperating
|
23736000 | ||
us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
52383000 | ||
expo |
Cost Incurred From Reimbursable Expense
CostIncurredFromReimbursableExpense
|
15579000 | ||
us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
4592000 | ||
us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
70107000 | ||
CY2020Q4 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Gain Loss Arising During Period Net Of Tax
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
|
550000 | |
us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Gain Loss Arising During Period Net Of Tax
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
|
-1052000 | ||
us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
5348000 | ||
us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
0.57 | ||
CY2019Q3 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Gain Loss Arising During Period Net Of Tax
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
|
-533000 | |
us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
53342000 | ||
us-gaap |
Net Income Loss
NetIncomeLoss
|
60712000 | ||
us-gaap |
Proceeds From Issuance Of Shares Under Incentive And Share Based Compensation Plans Including Stock Options
ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
|
3013000 | ||
us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
11196000 | ||
CY2020Q4 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
52316000 | |
CY2020Q4 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
53209000 | |
CY2020Q4 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
40000 | |
us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
4144000 | ||
us-gaap |
Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
|
38693000 | ||
us-gaap |
Proceeds From Maturities Prepayments And Calls Of Shortterm Investments
ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments
|
44000000 | ||
us-gaap |
Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
|
845000 | ||
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
313909000 | |
us-gaap |
Investment Income Net
InvestmentIncomeNet
|
1496000 | ||
us-gaap |
Investment Income Net
InvestmentIncomeNet
|
2894000 | ||
CY2020Q4 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
3915000 | |
CY2019Q3 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
1112000 | |
us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
3096000 | ||
us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
10729000 | ||
us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
13623000 | ||
us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
77384000 | ||
us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
14045000 | ||
us-gaap |
Net Income Loss
NetIncomeLoss
|
63339000 | ||
us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.20 | ||
us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.17 | ||
us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
52694000 | ||
us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
53906000 | ||
us-gaap |
Common Stock Dividends Per Share Declared
CommonStockDividendsPerShareDeclared
|
0.48 | ||
us-gaap |
Net Income Loss
NetIncomeLoss
|
63339000 | ||
us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Gain Loss Arising During Period Net Of Tax
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
|
-657000 | ||
us-gaap |
Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
|
-172000 | ||
us-gaap |
Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
|
373000 | ||
us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
59488000 | ||
us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
63055000 | ||
CY2020Q1 | us-gaap |
Stockholders Equity
StockholdersEquity
|
350251000 | |
us-gaap |
Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
|
905000 | ||
us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
1628000 | ||
us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
5758000 | ||
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 |
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 |
Deferred Compensation Liability Current And Noncurrent
DeferredCompensationLiabilityCurrentAndNoncurrent
|
80052000 | |
us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
40049000 | ||
us-gaap |
Proceeds From Issuance Of Shares Under Incentive And Share Based Compensation Plans Including Stock Options
ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions
|
1969000 | ||
us-gaap |
Profit Loss
ProfitLoss
|
60712000 | ||
us-gaap |
Profit Loss
ProfitLoss
|
63339000 | ||
us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
5176000 | ||
CY2019Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
19633000 | |
CY2019Q3 | us-gaap |
Stockholders Equity
StockholdersEquity
|
357279000 | |
us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
4904000 | ||
us-gaap |
Accretion Amortization Of Discounts And Premiums Investments
AccretionAmortizationOfDiscountsAndPremiumsInvestments
|
150000 | ||
us-gaap |
Accretion Amortization Of Discounts And Premiums Investments
AccretionAmortizationOfDiscountsAndPremiumsInvestments
|
442000 | ||
us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
2890000 | ||
us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
2146000 | ||
us-gaap |
Share Based Compensation
ShareBasedCompensation
|
13326000 | ||
us-gaap |
Share Based Compensation
ShareBasedCompensation
|
13585000 | ||
us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-2505000 | ||
us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-1671000 | ||
us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-7284000 | ||
us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
24665000 | ||
us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
8439000 | ||
us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
5604000 | ||
expo |
Increase Decrease In Operation Lease Right Of Use Assets
IncreaseDecreaseInOperationLeaseRightOfUseAssets
|
331000 | ||
expo |
Increase Decrease In Operation Lease Right Of Use Assets
IncreaseDecreaseInOperationLeaseRightOfUseAssets
|
-24000 | ||
us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
311000 | ||
us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
3102000 | ||
us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
-12507000 | ||
us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
-2159000 | ||
us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
-3320000 | ||
us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
-266000 | ||
us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
62447000 | ||
us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
52293000 | ||
us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
17024000 | ||
us-gaap |
Proceeds From Maturities Prepayments And Calls Of Shortterm Investments
ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments
|
35000000 | ||
us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
30856000 | ||
us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-11717000 | ||
us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
15263000 | ||
us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
11183000 | ||
us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
25223000 | ||
CY2020Q1 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
176436000 | |
CY2018Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
127059000 | |
CY2020Q4 | us-gaap |
Assets Fair Value Disclosure
AssetsFairValueDisclosure
|
175949000 | |
us-gaap |
Use Of Estimates
UseOfEstimates
|
<p style="text-align:justify;margin-top:10pt;margin-bottom:0pt;text-indent:7.69%;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. The Company’s estimate of its allowance for contract losses and doubtful accounts takes into consideration the macroeconomic effect of global events such as the COVID-19 pandemic which may impact the ability of its customers to pay.</span></p> | ||
CY2020Q4 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
3491000 | |
us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
7864000 | ||
CY2020Q4 | expo |
Subcontractor Fees Not Included In Revenues
SubcontractorFeesNotIncludedInRevenues
|
347000 | |
CY2019Q3 | expo |
Subcontractor Fees Not Included In Revenues
SubcontractorFeesNotIncludedInRevenues
|
1344000 | |
expo |
Subcontractor Fees Not Included In Revenues
SubcontractorFeesNotIncludedInRevenues
|
7718000 | ||
expo |
Subcontractor Fees Not Included In Revenues
SubcontractorFeesNotIncludedInRevenues
|
11743000 | ||
CY2020Q4 | us-gaap |
Deferred Compensation Liability Current And Noncurrent
DeferredCompensationLiabilityCurrentAndNoncurrent
|
80052000 | |
CY2020Q4 | us-gaap |
Liabilities Fair Value Disclosure
LiabilitiesFairValueDisclosure
|
80052000 | |
CY2020Q1 | us-gaap |
Assets Fair Value Disclosure
AssetsFairValueDisclosure
|
172310000 | |
CY2020Q1 | us-gaap |
Deferred Compensation Liability Current And Noncurrent
DeferredCompensationLiabilityCurrentAndNoncurrent
|
76357000 | |
CY2020Q1 | us-gaap |
Liabilities Fair Value Disclosure
LiabilitiesFairValueDisclosure
|
76357000 | |
CY2020Q4 | us-gaap |
Available For Sale Debt Securities Amortized Cost Basis
AvailableForSaleDebtSecuritiesAmortizedCostBasis
|
207624000 | |
CY2020Q4 | us-gaap |
Available For Sale Debt Securities Accumulated Gross Unrealized Gain Before Tax
AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
|
94000 | |
CY2020Q4 | us-gaap |
Available For Sale Debt Securities Accumulated Gross Unrealized Loss Before Tax
AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
|
0 | |
CY2020Q4 | us-gaap |
Available For Sale Securities Debt Securities
AvailableForSaleSecuritiesDebtSecurities
|
207718000 | |
CY2020Q1 | us-gaap |
Available For Sale Debt Securities Amortized Cost Basis
AvailableForSaleDebtSecuritiesAmortizedCostBasis
|
231277000 | |
CY2020Q1 | us-gaap |
Available For Sale Debt Securities Accumulated Gross Unrealized Gain Before Tax
AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
|
324000 | |
CY2020Q1 | us-gaap |
Available For Sale Debt Securities Accumulated Gross Unrealized Loss Before Tax
AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
|
0 | |
CY2020Q1 | us-gaap |
Available For Sale Securities Debt Securities
AvailableForSaleSecuritiesDebtSecurities
|
231601000 | |
expo |
Share Based Compensation Arrangements By Share Based Payment Award Options Expiration Term
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationTerm
|
P10Y | ||
CY2019Q3 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
52802000 | |
us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
52383000 | ||
us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
52694000 | ||
CY2019Q3 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
54002000 | |
us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
53342000 | ||
us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
53906000 | ||
us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
34139 | ||
us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
0 | ||
CY2019Q3 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
0 | |
CY2019Q1 | us-gaap |
Stock Repurchase Program Authorized Amount1
StockRepurchaseProgramAuthorizedAmount1
|
75000000 | |
CY2020Q2 | us-gaap |
Stock Repurchase Program Authorized Amount1
StockRepurchaseProgramAuthorizedAmount1
|
45000000 | |
us-gaap |
Treasury Stock Shares Acquired
TreasuryStockSharesAcquired
|
636000 | ||
us-gaap |
Payments For Repurchase Of Common Stock
PaymentsForRepurchaseOfCommonStock
|
40049000 | ||
CY2020Q4 | us-gaap |
Stock Repurchase Program Remaining Authorized Repurchase Amount1
StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1
|
75455000 | |
CY2020Q4 | us-gaap |
Deferred Compensation Plan Assets
DeferredCompensationPlanAssets
|
79573000 | |
CY2020Q1 | us-gaap |
Deferred Compensation Plan Assets
DeferredCompensationPlanAssets
|
75934000 | |
CY2020Q1 | us-gaap |
Deferred Compensation Liability Current And Noncurrent
DeferredCompensationLiabilityCurrentAndNoncurrent
|
76357000 | |
CY2020Q4 | expo |
Change In Market Value Of Deferred Compensation Trust Assets
ChangeInMarketValueOfDeferredCompensationTrustAssets
|
3220000 | |
CY2019Q3 | expo |
Change In Market Value Of Deferred Compensation Trust Assets
ChangeInMarketValueOfDeferredCompensationTrustAssets
|
361000 | |
expo |
Change In Market Value Of Deferred Compensation Trust Assets
ChangeInMarketValueOfDeferredCompensationTrustAssets
|
-399000 | ||
expo |
Change In Market Value Of Deferred Compensation Trust Assets
ChangeInMarketValueOfDeferredCompensationTrustAssets
|
8415000 | ||
us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
9370000 | ||
us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
14884000 | ||
us-gaap |
Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
|
-172000 | ||
us-gaap |
Other Comprehensive Income Unrealized Holding Gain Loss On Securities Arising During Period Net Of Tax
OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax
|
373000 | ||
expo |
Vested Restricted Stock Awards Issued To Settle Accrued Bonuses
VestedRestrictedStockAwardsIssuedToSettleAccruedBonuses
|
8645000 | ||
expo |
Vested Restricted Stock Awards Issued To Settle Accrued Bonuses
VestedRestrictedStockAwardsIssuedToSettleAccruedBonuses
|
7947000 | ||
us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
322000 | ||
us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
2326000 | ||
us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
1802000 | ||
us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
28678000 | ||
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
5834000 | |
CY2020Q1 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
4295000 | |
CY2020Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
109964000 | |
CY2020Q1 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
120138000 | |
CY2020Q1 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
4295000 | |
us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
2890000 | ||
us-gaap |
Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
|
1351000 | ||
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
5834000 | |
CY2020Q4 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
98663000 | |
CY2019Q3 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
101548000 | |
us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
296661000 | ||
us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
307085000 | ||
CY2020Q4 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
20407000 | |
CY2019Q3 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
23184000 | |
us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
65515000 | ||
us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
63761000 | ||
CY2020Q4 | us-gaap |
Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
|
1621000 | |
CY2019Q3 | us-gaap |
Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
|
4878000 | |
us-gaap |
Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
|
4304000 | ||
us-gaap |
Property Plant And Equipment Additions
PropertyPlantAndEquipmentAdditions
|
18119000 | ||
CY2020Q4 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
1689000 | |
CY2019Q3 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
1672000 | |
us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
5176000 | ||
us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
4904000 | ||
CY2020Q4 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1508000 | |
CY2019Q3 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1699000 | |
us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
5552000 | ||
us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
5980000 | ||
CY2020Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P4Y7M6D | |
CY2020Q1 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P5Y2M12D | |
CY2020Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.042 | |
CY2020Q1 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.044 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Remainder Of Fiscal Year
LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear
|
1371000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
6524000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
5308000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
3644000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
2252000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
1491000 | |
CY2020Q4 | expo |
Lessee Operating Lease Liability Payments Due Year Six
LesseeOperatingLeaseLiabilityPaymentsDueYearSix
|
1507000 | |
CY2020Q4 | expo |
Lessee Operating Lease Liability Payments Due Year Seven
LesseeOperatingLeaseLiabilityPaymentsDueYearSeven
|
1466000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
23563000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
2710000 | |
CY2020Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
20853000 |