2021 Q1 Form 10-K Financial Statement
#000119312521082076 Filed on March 16, 2021
Income Statement
Concept | 2021 Q1 | 2020 Q4 | 2020 Q3 |
---|---|---|---|
Revenue | $49.78M | $48.71M | $47.38M |
YoY Change | -1.29% | -3.28% | -4.36% |
Cost Of Revenue | $36.97M | $35.64M | $34.29M |
YoY Change | -1.95% | -5.22% | -7.85% |
Gross Profit | $12.80M | $13.07M | $13.09M |
YoY Change | 0.67% | 2.44% | 6.17% |
Gross Profit Margin | 25.72% | 26.84% | 27.63% |
Selling, General & Admin | $10.14M | $8.536M | $8.217M |
YoY Change | -0.99% | -0.69% | -4.3% |
% of Gross Profit | 79.21% | 65.29% | 62.77% |
Research & Development | |||
YoY Change | |||
% of Gross Profit | |||
Depreciation & Amortization | $997.0K | $990.0K | $858.0K |
YoY Change | 14.2% | 15.52% | -1.27% |
% of Gross Profit | 7.79% | 7.57% | 6.55% |
Operating Expenses | $10.94M | $9.328M | $8.873M |
YoY Change | 6.76% | 0.36% | -4.17% |
Operating Profit | $1.869M | $3.746M | $4.217M |
YoY Change | -24.52% | 8.02% | 37.36% |
Interest Expense | -$232.0K | -$196.0K | -$164.0K |
YoY Change | -16.85% | -45.4% | -60.29% |
% of Operating Profit | -12.41% | -5.23% | -3.89% |
Other Income/Expense, Net | -$27.00K | ||
YoY Change | -181.82% | ||
Pretax Income | $1.637M | $2.900M | $4.026M |
YoY Change | -27.24% | -7.67% | 49.67% |
Income Tax | $443.0K | $875.0K | $1.028M |
% Of Pretax Income | 27.06% | 30.17% | 25.53% |
Net Earnings | $1.194M | $2.025M | $2.998M |
YoY Change | -36.12% | -10.95% | 53.82% |
Net Earnings / Revenue | 2.4% | 4.16% | 6.33% |
Basic Earnings Per Share | $0.10 | $0.18 | $0.26 |
Diluted Earnings Per Share | $0.10 | $0.17 | $0.25 |
COMMON SHARES | |||
Basic Shares Outstanding | 11.42M | 11.38M | 11.38M |
Diluted Shares Outstanding | 12.04M |
Balance Sheet
Concept | 2021 Q1 | 2020 Q4 | 2020 Q3 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $7.242M | $7.677M | $4.014M |
YoY Change | 181.24% | 157.53% | 104.48% |
Cash & Equivalents | $7.242M | $7.677M | $4.014M |
Short-Term Investments | |||
Other Short-Term Assets | $1.238M | $1.346M | $2.647M |
YoY Change | 19.5% | -15.72% | 90.16% |
Inventory | |||
Prepaid Expenses | |||
Receivables | $36.21M | $22.04M | $18.73M |
Other Receivables | $0.00 | $0.00 | $0.00 |
Total Short-Term Assets | $44.69M | $41.16M | $37.92M |
YoY Change | 20.1% | 11.45% | -1.03% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $5.094M | $1.971M | $2.133M |
YoY Change | 112.87% | -20.4% | -15.82% |
Goodwill | $32.51M | $26.11M | |
YoY Change | 24.53% | 0.0% | |
Intangibles | $21.93M | $18.05M | |
YoY Change | 9.38% | -12.88% | |
Long-Term Investments | |||
YoY Change | |||
Other Assets | $1.263M | $1.192M | $392.0K |
YoY Change | 225.52% | 194.32% | -4.39% |
Total Long-Term Assets | $60.00M | $60.89M | $50.33M |
YoY Change | 14.05% | 13.48% | -8.11% |
TOTAL ASSETS | |||
Total Short-Term Assets | $44.69M | $41.16M | $37.92M |
Total Long-Term Assets | $60.00M | $60.89M | $50.33M |
Total Assets | $104.7M | $102.0M | $88.24M |
YoY Change | 16.56% | 12.65% | -5.19% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $3.915M | $2.589M | $3.114M |
YoY Change | 13.81% | -35.71% | -28.56% |
Accrued Expenses | $15.10M | $14.50M | $13.15M |
YoY Change | 31.04% | 41.47% | 4.65% |
Deferred Revenue | |||
YoY Change | |||
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | -100.0% | ||
Long-Term Debt Due | $4.400M | $4.400M | $4.575M |
YoY Change | -48.46% | -3.83% | 0.0% |
Total Short-Term Liabilities | $23.82M | $21.97M | $20.94M |
YoY Change | 1.0% | 15.09% | -3.69% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $11.80M | $12.88M | $3.865M |
YoY Change | -11.7% | -37.75% | -82.86% |
Other Long-Term Liabilities | $7.615M | $7.667M | $5.850M |
YoY Change | 137.67% | 118.68% | 50.39% |
Total Long-Term Liabilities | $19.41M | $12.88M | $3.865M |
YoY Change | 45.31% | -37.75% | -82.86% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $23.82M | $21.97M | $20.94M |
Total Long-Term Liabilities | $19.41M | $12.88M | $3.865M |
Total Liabilities | $43.23M | $42.51M | $31.38M |
YoY Change | 5.46% | -4.04% | -36.3% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $38.62M | $36.60M | |
YoY Change | 34.29% | 38.17% | |
Common Stock | $25.64M | $25.03M | |
YoY Change | 16.19% | 14.68% | |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $4.187M | $4.187M | |
YoY Change | 0.0% | 0.0% | |
Treasury Stock Shares | $1.646M | $1.646M | |
Shareholders Equity | $61.46M | $59.53M | $56.86M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $104.7M | $102.0M | $88.24M |
YoY Change | 16.56% | 12.65% | -5.19% |
Cashflow Statement
Concept | 2021 Q1 | 2020 Q4 | 2020 Q3 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $1.194M | $2.025M | $2.998M |
YoY Change | -36.12% | -10.95% | 53.82% |
Depreciation, Depletion And Amortization | $997.0K | $990.0K | $858.0K |
YoY Change | 14.2% | 15.52% | -1.27% |
Cash From Operating Activities | $774.0K | $4.293M | $5.363M |
YoY Change | -72.31% | 42.11% | 24.43% |
INVESTING ACTIVITIES | |||
Capital Expenditures | -$128.0K | -$38.00K | -$105.0K |
YoY Change | -207.56% | -70.31% | -64.04% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | -$63.00K | -$9.349M | -$7.000K |
YoY Change | -470.59% | -187080.0% | -118.92% |
Cash From Investing Activities | -$191.0K | -$9.387M | -$112.0K |
YoY Change | 87.25% | 7531.71% | -56.08% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | |||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -999.0K | 8.746M | -6.087M |
YoY Change | -64.72% | -580.02% | 4.14% |
NET CHANGE | |||
Cash From Operating Activities | 774.0K | 4.293M | 5.363M |
Cash From Investing Activities | -191.0K | -9.387M | -112.0K |
Cash From Financing Activities | -999.0K | 8.746M | -6.087M |
Net Change In Cash | -416.0K | 3.652M | -836.0K |
YoY Change | 2.46% | 239.41% | -53.3% |
FREE CASH FLOW | |||
Cash From Operating Activities | $774.0K | $4.293M | $5.363M |
Capital Expenditures | -$128.0K | -$38.00K | -$105.0K |
Free Cash Flow | $902.0K | $4.331M | $5.468M |
YoY Change | -66.29% | 37.54% | 18.82% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2020Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
7677000 | |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
2981000 | |
CY2020Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
22036000 | |
CY2019Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
22345000 | |
CY2020Q4 | us-gaap |
Unbilled Contracts Receivable
UnbilledContractsReceivable
|
10098000 | |
CY2019Q4 | us-gaap |
Unbilled Contracts Receivable
UnbilledContractsReceivable
|
10007000 | |
CY2020Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
1346000 | |
CY2019Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
1597000 | |
CY2020Q4 | us-gaap |
Assets Current
AssetsCurrent
|
41157000 | |
CY2019Q4 | us-gaap |
Assets Current
AssetsCurrent
|
36930000 | |
CY2020Q4 | us-gaap |
Machinery And Equipment Gross
MachineryAndEquipmentGross
|
1931000 | |
CY2019Q4 | us-gaap |
Machinery And Equipment Gross
MachineryAndEquipmentGross
|
1871000 | |
CY2020Q4 | us-gaap |
Capitalized Computer Software Gross
CapitalizedComputerSoftwareGross
|
2730000 | |
CY2019Q4 | us-gaap |
Capitalized Computer Software Gross
CapitalizedComputerSoftwareGross
|
2728000 | |
CY2020Q4 | us-gaap |
Leasehold Improvements Gross
LeaseholdImprovementsGross
|
563000 | |
CY2019Q4 | us-gaap |
Leasehold Improvements Gross
LeaseholdImprovementsGross
|
496000 | |
CY2020Q4 | us-gaap |
Deposits Assets Noncurrent
DepositsAssetsNoncurrent
|
396000 | |
CY2019Q4 | us-gaap |
Deposits Assets Noncurrent
DepositsAssetsNoncurrent
|
405000 | |
CY2020Q4 | us-gaap |
Goodwill
Goodwill
|
32510000 | |
CY2019Q4 | us-gaap |
Goodwill
Goodwill
|
26106000 | |
CY2020Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
21930000 | |
CY2019Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
20050000 | |
CY2020Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
102046000 | |
CY2019Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
90584000 | |
CY2020Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
4400000 | |
CY2019Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
4575000 | |
CY2020Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
2589000 | |
CY2019Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
4027000 | |
CY2020Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
12374000 | |
CY2019Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
7902000 | |
CY2020Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
1051000 | |
CY2019Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
954000 | |
CY2020Q4 | us-gaap |
Deferred Revenue Current
DeferredRevenueCurrent
|
478000 | |
CY2019Q4 | us-gaap |
Deferred Revenue Current
DeferredRevenueCurrent
|
237000 | |
CY2020Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
21971000 | |
CY2019Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
19091000 | |
CY2020Q4 | us-gaap |
Long Term Debt Noncurrent
LongTermDebtNoncurrent
|
12875000 | |
CY2019Q4 | us-gaap |
Long Term Debt Noncurrent
LongTermDebtNoncurrent
|
20682000 | |
CY2020Q4 | us-gaap |
Accrued Income Taxes Noncurrent
AccruedIncomeTaxesNoncurrent
|
165000 | |
CY2020Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
3253000 | |
CY2019Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
2619000 | |
CY2020Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
3286000 | |
CY2019Q4 | us-gaap |
Accrued Income Taxes Noncurrent
AccruedIncomeTaxesNoncurrent
|
185000 | |
CY2020Q4 | us-gaap |
Liabilities
Liabilities
|
42513000 | |
CY2019Q4 | us-gaap |
Liabilities
Liabilities
|
44304000 | |
CY2020Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
||
CY2019Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
||
CY2020Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
130000 | |
CY2019Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
127000 | |
CY2020Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
25509000 | |
CY2019Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
21939000 | |
CY2020Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
38620000 | |
CY2019Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
28759000 | |
CY2020Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-539000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-358000 | |
CY2020Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
4187000 | |
CY2019Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
4187000 | |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
59533000 | |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
46280000 | |
CY2020Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
1079000 | |
CY2020Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
2325000 | |
CY2020 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
142562000 | |
CY2019 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
145593000 | |
CY2018 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
134636000 | |
CY2018 | us-gaap |
Gross Profit
GrossProfit
|
42528000 | |
CY2020 | us-gaap |
Operating Costs And Expenses
OperatingCostsAndExpenses
|
38136000 | |
CY2019 | us-gaap |
Operating Costs And Expenses
OperatingCostsAndExpenses
|
37063000 | |
CY2018 | us-gaap |
Operating Costs And Expenses
OperatingCostsAndExpenses
|
32221000 | |
CY2019 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-6069000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Before Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent
|
-278000 | |
CY2020 | us-gaap |
Operating Expenses
OperatingExpenses
|
38136000 | |
CY2020 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
13403000 | |
CY2019 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
16987000 | |
CY2018 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
11625000 | |
CY2020 | us-gaap |
Interest Income Expense Nonoperating Net
InterestIncomeExpenseNonoperatingNet
|
-866000 | |
CY2019 | us-gaap |
Interest Income Expense Nonoperating Net
InterestIncomeExpenseNonoperatingNet
|
-1779000 | |
CY2018 | us-gaap |
Interest Income Expense Nonoperating Net
InterestIncomeExpenseNonoperatingNet
|
-2171000 | |
CY2018 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
-40000 | |
CY2020 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
96000 | |
CY2019 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
11000 | |
CY2019 | us-gaap |
Operating Expenses
OperatingExpenses
|
30994000 | |
CY2018 | us-gaap |
Operating Expenses
OperatingExpenses
|
30903000 | |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
9861000 | |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
11145000 | |
CY2018 | us-gaap |
Net Income Loss
NetIncomeLoss
|
6691000 | |
CY2020 | us-gaap |
Other Comprehensive Income Unrealized Gain Loss On Derivatives Arising During Period Before Tax
OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax
|
8000 | |
CY2019 | us-gaap |
Other Comprehensive Income Unrealized Gain Loss On Derivatives Arising During Period Before Tax
OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax
|
-149000 | |
CY2018 | us-gaap |
Other Comprehensive Income Unrealized Gain Loss On Derivatives Arising During Period Before Tax
OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax
|
96000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Before Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax
|
-187000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Before Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax
|
-129000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Before Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax
|
-207000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Before Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent
|
-179000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Before Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent
|
-111000 | |
CY2020 | us-gaap |
Other Comprehensive Income Unrealized Gain Loss On Derivatives Arising During Period Tax
OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax
|
2000 | |
CY2019 | us-gaap |
Other Comprehensive Income Unrealized Gain Loss On Derivatives Arising During Period Tax
OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax
|
-39000 | |
CY2018 | us-gaap |
Other Comprehensive Income Unrealized Gain Loss On Derivatives Arising During Period Tax
OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax
|
25000 | |
CY2020 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
9680000 | |
CY2019 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
10906000 | |
CY2018 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
6555000 | |
CY2017Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
27153000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-136000 | |
CY2018 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
470000 | |
CY2018 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
118000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-181000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-239000 | |
CY2019 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
936000 | |
CY2020 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
2021000 | |
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
34276000 | |
CY2018 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
20000 | |
CY2019 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
7000 | |
CY2020 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
1330000 | |
CY2019 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
13000 | |
CY2019 | us-gaap |
Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
|
168000 | |
CY2020 | us-gaap |
Profit Loss
ProfitLoss
|
9861000 | |
CY2019 | us-gaap |
Profit Loss
ProfitLoss
|
11145000 | |
CY2018 | us-gaap |
Profit Loss
ProfitLoss
|
6691000 | |
CY2020 | us-gaap |
Depreciation Amortization And Accretion Net
DepreciationAmortizationAndAccretionNet
|
3589000 | |
CY2019 | us-gaap |
Depreciation Amortization And Accretion Net
DepreciationAmortizationAndAccretionNet
|
3434000 | |
CY2018 | us-gaap |
Depreciation Amortization And Accretion Net
DepreciationAmortizationAndAccretionNet
|
3182000 | |
CY2019 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
80000 | |
CY2018 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
10000 | |
CY2020 | us-gaap |
Amortization Of Financing Costs
AmortizationOfFinancingCosts
|
284000 | |
CY2019 | us-gaap |
Amortization Of Financing Costs
AmortizationOfFinancingCosts
|
104000 | |
CY2018 | us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
-1241000 | |
CY2018 | us-gaap |
Increase Decrease In Other Accrued Liabilities
IncreaseDecreaseInOtherAccruedLiabilities
|
-461000 | |
CY2018 | us-gaap |
Increase Decrease In Deferred Revenue
IncreaseDecreaseInDeferredRevenue
|
-172000 | |
CY2020 | us-gaap |
Proceeds From Repayments Of Lines Of Credit
ProceedsFromRepaymentsOfLinesOfCredit
|
-9551000 | |
CY2019 | us-gaap |
Proceeds From Repayments Of Lines Of Credit
ProceedsFromRepaymentsOfLinesOfCredit
|
-3976000 | |
CY2018 | us-gaap |
Amortization Of Financing Costs
AmortizationOfFinancingCosts
|
100000 | |
CY2020 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
2021000 | |
CY2019 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
936000 | |
CY2018 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
470000 | |
CY2020 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-1821000 | |
CY2019 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
1322000 | |
CY2018 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
171000 | |
CY2020 | us-gaap |
Increase Decrease In Accounts And Other Receivables
IncreaseDecreaseInAccountsAndOtherReceivables
|
-2133000 | |
CY2019 | us-gaap |
Increase Decrease In Accounts And Other Receivables
IncreaseDecreaseInAccountsAndOtherReceivables
|
-5648000 | |
CY2020 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-251000 | |
CY2019 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
386000 | |
CY2020 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-1613000 | |
CY2019 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-100000 | |
CY2020 | us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
6287000 | |
CY2019 | us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
174000 | |
CY2020 | us-gaap |
Increase Decrease In Other Accrued Liabilities
IncreaseDecreaseInOtherAccruedLiabilities
|
91000 | |
CY2019 | us-gaap |
Increase Decrease In Other Accrued Liabilities
IncreaseDecreaseInOtherAccruedLiabilities
|
-264000 | |
CY2020 | us-gaap |
Increase Decrease In Deferred Revenue
IncreaseDecreaseInDeferredRevenue
|
146000 | |
CY2019 | us-gaap |
Increase Decrease In Deferred Revenue
IncreaseDecreaseInDeferredRevenue
|
-21000 | |
CY2020 | us-gaap |
Repayments Of Debt
RepaymentsOfDebt
|
15969000 | |
CY2019 | us-gaap |
Repayments Of Debt
RepaymentsOfDebt
|
9575000 | |
CY2020 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
298000 | |
CY2019 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
1014000 | |
CY2020 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-9634000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-879000 | |
CY2020 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
21231000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
16084000 | |
CY2020 | mhh |
Increase Decrease In Operating Lease Assets Net
IncreaseDecreaseInOperatingLeaseAssetsNet
|
-18000 | |
CY2018 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
-7000 | |
CY2020 | mhh |
Payments For Recovery Of Noncurrent Deposits
PaymentsForRecoveryOfNoncurrentDeposits
|
-9000 | |
CY2019 | mhh |
Payments For Recovery Of Noncurrent Deposits
PaymentsForRecoveryOfNoncurrentDeposits
|
-135000 | |
CY2020 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
222000 | |
CY2020 | mhh |
Longterm Accrued Income Taxes
LongtermAccruedIncomeTaxes
|
-20000 | |
CY2019 | mhh |
Longterm Accrued Income Taxes
LongtermAccruedIncomeTaxes
|
-19000 | |
CY2018 | mhh |
Longterm Accrued Income Taxes
LongtermAccruedIncomeTaxes
|
136000 | |
CY2018 | us-gaap |
Increase Decrease In Accounts And Other Receivables
IncreaseDecreaseInAccountsAndOtherReceivables
|
7428000 | |
CY2018 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-283000 | |
CY2018 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-901000 | |
CY2018 | us-gaap |
Proceeds From Repayments Of Lines Of Credit
ProceedsFromRepaymentsOfLinesOfCredit
|
4526000 | |
CY2018 | us-gaap |
Repayments Of Debt
RepaymentsOfDebt
|
4003000 | |
CY2019 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
7000 | |
CY2018 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
118000 | |
CY2020 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
1330000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
550000 | |
CY2020 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-6714000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-13389000 | |
CY2018 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
771000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-1056000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
-471000 | |
CY2020 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
-187000 | |
CY2019 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
-129000 | |
CY2018 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
-207000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
683000 | |
CY2020Q4 | us-gaap |
Intangible Assets Gross Excluding Goodwill
IntangibleAssetsGrossExcludingGoodwill
|
33099000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
8379000 | |
CY2019Q4 | us-gaap |
Intangible Assets Gross Excluding Goodwill
IntangibleAssetsGrossExcludingGoodwill
|
28429000 | |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
3168000 | |
CY2020Q4 | us-gaap |
Deferred Finance Costs Noncurrent Net
DeferredFinanceCostsNoncurrentNet
|
225000 | |
CY2019Q4 | us-gaap |
Deferred Finance Costs Noncurrent Net
DeferredFinanceCostsNoncurrentNet
|
263000 | |
CY2020 | dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2020 | |
CY2018 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
-1184000 | |
CY2020 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
4696000 | |
CY2019 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
1687000 | |
CY2018Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
1294000 | |
CY2017Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
2478000 | |
CY2020 | us-gaap |
Interest Paid Net
InterestPaidNet
|
779000 | |
CY2019 | us-gaap |
Interest Paid Net
InterestPaidNet
|
1780000 | |
CY2018 | us-gaap |
Interest Paid Net
InterestPaidNet
|
2060000 | |
CY2020 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
2681000 | |
CY2019 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
2634000 | |
CY2018 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
2031000 | |
CY2018 | mhh |
Payments For Recovery Of Noncurrent Deposits
PaymentsForRecoveryOfNoncurrentDeposits
|
285000 | |
CY2018 | us-gaap |
Payments Of Financing Costs
PaymentsOfFinancingCosts
|
71000 | |
CY2018 | us-gaap |
Payments For Repurchase Of Equity
PaymentsForRepurchaseOfEquity
|
20000 | |
CY2019 | us-gaap |
Payments For Repurchase Of Equity
PaymentsForRepurchaseOfEquity
|
13000 | |
CY2020 | mhh |
Maximum Percentage Of Billable Expenses On Revenue From Customer
MaximumPercentageOfBillableExpensesOnRevenueFromCustomer
|
0.02 | |
CY2020 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
194101000 | |
CY2019 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
193574000 | |
CY2018 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
177164000 | |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
11169000 | |
CY2020Q4 | us-gaap |
Debt Instrument Unused Borrowing Capacity Amount
DebtInstrumentUnusedBorrowingCapacityAmount
|
22000000 | |
CY2019Q4 | us-gaap |
Debt Instrument Unused Borrowing Capacity Amount
DebtInstrumentUnusedBorrowingCapacityAmount
|
13000000 | |
CY2019Q1 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
5700000 | |
CY2020Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
3404000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Discount Rate
LesseeOperatingLeaseDiscountRate
|
0.053 | |
CY2020 | us-gaap |
Operating Leases Rent Expense Net
OperatingLeasesRentExpenseNet
|
1600000 | |
CY2019 | us-gaap |
Operating Leases Rent Expense Net
OperatingLeasesRentExpenseNet
|
1600000 | |
CY2018 | us-gaap |
Operating Leases Rent Expense Net
OperatingLeasesRentExpenseNet
|
1400000 | |
CY2017Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
674000 | |
CY2017Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
3.43 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
495000 | |
CY2018 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
52000 | |
CY2018 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
2.08 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
|
6000 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
|
3.20 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
1111000 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
4.95 | |
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
6.48 | |
CY2019 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
6000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
1.18 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
|
67000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
|
6.35 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
1721000 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
800000 | |
CY2020 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
305000 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
|
207000 | |
CY2020 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
15.49 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
|
8.04 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
5.52 | |
CY2020Q4 | us-gaap |
Share Price
SharePrice
|
15.90 | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
13100000 | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Aggregate Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
|
4200000 | |
CY2020 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
4.36 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
4300000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
44000 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
11232000 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
373000 | |
CY2020 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
|
655000 | |
CY2018 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
|
529000 | |
CY2017 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
|
228000 | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
2009000 | |
CY2020 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P7Y10M24D | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
9.40 | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
386000 | |
CY2020 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
|
P6Y3M18D | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
4.93 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.014 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.024 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0.000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0.000 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.527 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.497 | |
CY2020 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P3Y10M24D | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P5Y | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
|
6.36 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
|
2.95 | |
CY2020 | us-gaap |
Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
|
590000 | |
CY2019 | us-gaap |
Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
|
252000 | |
CY2018 | us-gaap |
Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
|
128000 | |
CY2020Q4 | us-gaap |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized Stock Options
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
|
5700000 | |
CY2020 | us-gaap |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized Period For Recognition1
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
|
P3Y | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Shares Purchased For Award
ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward
|
0 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Shares Purchased For Award
ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward
|
2574 | |
CY2020 | us-gaap |
Employee Stock Ownership Plan Esop Weighted Average Purchase Price Of Shares Purchased
EmployeeStockOwnershipPlanESOPWeightedAveragePurchasePriceOfSharesPurchased
|
0 | |
CY2019 | us-gaap |
Employee Stock Ownership Plan Esop Weighted Average Purchase Price Of Shares Purchased
EmployeeStockOwnershipPlanESOPWeightedAveragePurchasePriceOfSharesPurchased
|
5.05 | |
CY2020 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
0 | |
CY2019 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
518000 | |
CY2018 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
141000 | |
CY2020 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
658000 | |
CY2019 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
203000 | |
CY2018 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
211000 | |
CY2020 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
11292000 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
11029000 | |
CY2018 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
10950000 | |
CY2020 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.87 | |
CY2020 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
11950000 | |
CY2018 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
11161000 | |
CY2017Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
10000 | |
CY2017Q4 | us-gaap |
Aoci Loss Cash Flow Hedge Cumulative Gain Loss After Tax
AociLossCashFlowHedgeCumulativeGainLossAfterTax
|
7000 | |
CY2017Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
17000 | |
CY2018 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossBeforeReclassificationAndTax
|
-207000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax
|
98000 | |
CY2018 | mhh |
Other Comprehensive Income Gain Loss Arising During The Period Before Reclassification And Tax
OtherComprehensiveIncomeGainLossArisingDuringThePeriodBeforeReclassificationAndTax
|
-109000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Reclassification Adjustment From Aoci Realized Upon Sale Or Liquidation Before Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationReclassificationAdjustmentFromAOCIRealizedUponSaleOrLiquidationBeforeTax
|
0 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Before Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax
|
-2000 | |
CY2018 | us-gaap |
Reclassification From Aoci Current Period Before Tax Attributable To Parent
ReclassificationFromAociCurrentPeriodBeforeTaxAttributableToParent
|
-2000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
|
0 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTax
|
-25000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Tax
OtherComprehensiveIncomeLossTax
|
-25000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
-136000 | |
CY2018Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
-197000 | |
CY2019 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossBeforeReclassificationAndTax
|
-129000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Reclassification Adjustment From Aoci Realized Upon Sale Or Liquidation Before Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationReclassificationAdjustmentFromAOCIRealizedUponSaleOrLiquidationBeforeTax
|
0 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax
|
71000 | |
CY2019 | us-gaap |
Reclassification From Aoci Current Period Before Tax Attributable To Parent
ReclassificationFromAociCurrentPeriodBeforeTaxAttributableToParent
|
32000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Tax
OtherComprehensiveIncomeLossTax
|
39000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Tax
OtherComprehensiveIncomeLossTax
|
-2000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Reclassification Adjustment From Aoci Realized Upon Sale Or Liquidation Before Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationReclassificationAdjustmentFromAOCIRealizedUponSaleOrLiquidationBeforeTax
|
0 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
|
0 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
|
0 | |
CY2020Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
-513000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
-326000 | |
CY2020Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.16 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax
|
-181000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Before Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax
|
32000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Before Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax
|
121000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTax
|
39000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTax
|
-2000 | |
CY2018Q4 | us-gaap |
Aoci Loss Cash Flow Hedge Cumulative Gain Loss After Tax
AociLossCashFlowHedgeCumulativeGainLossAfterTax
|
78000 | |
CY2019Q4 | us-gaap |
Aoci Loss Cash Flow Hedge Cumulative Gain Loss After Tax
AociLossCashFlowHedgeCumulativeGainLossAfterTax
|
-32000 | |
CY2020Q2 | us-gaap |
Revenues
Revenues
|
47583000 | |
CY2020Q2 | us-gaap |
Gross Profit
GrossProfit
|
12656000 | |
CY2020Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2969000 | |
CY2020Q4 | us-gaap |
Aoci Loss Cash Flow Hedge Cumulative Gain Loss After Tax
AociLossCashFlowHedgeCumulativeGainLossAfterTax
|
-26000 | |
CY2019 | mhh |
Other Comprehensive Income Gain Loss Arising During The Period Before Reclassification And Tax
OtherComprehensiveIncomeGainLossArisingDuringThePeriodBeforeReclassificationAndTax
|
-310000 | |
CY2020 | us-gaap |
Reclassification From Aoci Current Period Before Tax Attributable To Parent
ReclassificationFromAociCurrentPeriodBeforeTaxAttributableToParent
|
121000 | |
CY2020Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.26 | |
CY2020Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.25 | |
CY2020Q3 | us-gaap |
Revenues
Revenues
|
47383000 | |
CY2020Q3 | us-gaap |
Gross Profit
GrossProfit
|
13090000 | |
CY2018Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-119000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax
|
6000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax
|
-110000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
-239000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
-181000 | |
CY2019Q4 | us-gaap |
Business Combination Contingent Consideration Liability Noncurrent
BusinessCombinationContingentConsiderationLiabilityNoncurrent
|
0 | |
CY2018Q4 | us-gaap |
Business Combination Contingent Consideration Liability Noncurrent
BusinessCombinationContingentConsiderationLiabilityNoncurrent
|
6069000 | |
CY2017Q4 | us-gaap |
Business Combination Contingent Consideration Liability Noncurrent
BusinessCombinationContingentConsiderationLiabilityNoncurrent
|
17125000 | |
CY2020 | mhh |
Business Combination Contingent Consideration Liability Cash Payments
BusinessCombinationContingentConsiderationLiabilityCashPayments
|
0 | |
CY2019 | mhh |
Business Combination Contingent Consideration Liability Cash Payments
BusinessCombinationContingentConsiderationLiabilityCashPayments
|
0 | |
CY2018 | mhh |
Business Combination Contingent Consideration Liability Cash Payments
BusinessCombinationContingentConsiderationLiabilityCashPayments
|
0 | |
CY2020Q1 | us-gaap |
Revenues
Revenues
|
50425000 | |
CY2020Q1 | us-gaap |
Gross Profit
GrossProfit
|
12719000 | |
CY2020Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1869000 | |
CY2020Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.17 | |
CY2020Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2998000 | |
CY2020Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.26 | |
CY2020Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.25 | |
CY2020Q4 | us-gaap |
Revenues
Revenues
|
48710000 | |
CY2020 | us-gaap |
Revenues
Revenues
|
194101000 | |
CY2020 | us-gaap |
Gross Profit
GrossProfit
|
51539000 | |
CY2020Q4 | us-gaap |
Gross Profit
GrossProfit
|
13074000 | |
CY2020Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2025000 | |
CY2020Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.18 | |
CY2020Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.17 | |
CY2018 | us-gaap |
Revenues
Revenues
|
177164000 | |
CY2020 | mhh |
Interest Expenses And Other Net
InterestExpensesAndOtherNet
|
-770000 | |
CY2019Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
250000000 | |
CY2019Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
12700660 | |
CY2020Q4 | us-gaap |
Assets
Assets
|
102046000 | |
CY2019Q4 | us-gaap |
Assets
Assets
|
90584000 | |
CY2018Q4 | us-gaap |
Assets
Assets
|
92584000 | |
CY2020 | mhh |
Payments And Capital Expenditures Incurred But Not Yet Paid To Acquire Property Plant And Equipment
PaymentsAndCapitalExpendituresIncurredButNotYetPaidToAcquirePropertyPlantAndEquipment
|
298000 | |
CY2019 | mhh |
Payments And Capital Expenditures Incurred But Not Yet Paid To Acquire Property Plant And Equipment
PaymentsAndCapitalExpendituresIncurredButNotYetPaidToAcquirePropertyPlantAndEquipment
|
1014000 | |
CY2018 | mhh |
Payments And Capital Expenditures Incurred But Not Yet Paid To Acquire Property Plant And Equipment
PaymentsAndCapitalExpendituresIncurredButNotYetPaidToAcquirePropertyPlantAndEquipment
|
771000 | |
CY2020 | mhh |
Gross Margin Percentage
GrossMarginPercentage
|
0.266 | |
CY2019 | mhh |
Gross Margin Percentage
GrossMarginPercentage
|
0.248 | |
CY2018 | mhh |
Gross Margin Percentage
GrossMarginPercentage
|
0.240 | |
CY2020Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
1646420 | |
CY2018 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
2727000 | |
CY2020 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
2790000 | |
CY2019 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
2688000 | |
CY2018 | mhh |
Interest Expenses And Other Net
InterestExpensesAndOtherNet
|
-2211000 | |
CY2019 | mhh |
Interest Expenses And Other Net
InterestExpensesAndOtherNet
|
-1768000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
5095000 | |
CY2019Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
4617000 | |
CY2020Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
796000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
1396000 | |
CY2020 | dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
FY | |
CY2019 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-6069000 | |
CY2018 | us-gaap |
Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
|
-140000 | |
CY2020 | us-gaap |
Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
|
650000 | |
CY2019 | us-gaap |
Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
|
-110000 | |
CY2020 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | |
CY2020 | dei |
Entity Current Reporting Status
EntityCurrentReportingStatus
|
Yes | |
CY2020 | dei |
Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
|
No | |
CY2020 | dei |
Entity Voluntary Filers
EntityVoluntaryFilers
|
No | |
CY2020 | dei |
Entity Filer Category
EntityFilerCategory
|
Accelerated Filer | |
CY2020 | dei |
Entity Registrant Name
EntityRegistrantName
|
Mastech Digital, Inc. | |
CY2020Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
1971000 | |
CY2020 | dei |
Document Type
DocumentType
|
10-K | |
CY2020 | dei |
Entity Interactive Data Current
EntityInteractiveDataCurrent
|
Yes | |
CY2020 | dei |
Amendment Flag
AmendmentFlag
|
false | |
CY2020 | dei |
Document Period End Date
DocumentPeriodEndDate
|
2020-12-31 | |
CY2020 | dei |
Security12b Title
Security12bTitle
|
Common Stock | |
CY2020 | dei |
Trading Symbol
TradingSymbol
|
MHH | |
CY2020 | dei |
Security Exchange Name
SecurityExchangeName
|
NYSE | |
CY2020 | dei |
Entity Address State Or Province
EntityAddressStateOrProvince
|
PA | |
CY2020 | dei |
Entity Small Business
EntitySmallBusiness
|
true | |
CY2020 | dei |
Entity Emerging Growth Company
EntityEmergingGrowthCompany
|
false | |
CY2020 | dei |
Entity Shell Company
EntityShellCompany
|
false | |
CY2020Q2 | dei |
Entity Public Float
EntityPublicFloat
|
81727000 | |
CY2021Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
11417953 | |
CY2020Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
5224000 | |
CY2019Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
1646420 | |
CY2018 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-11056000 | |
CY2020 | us-gaap |
Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
|
222000 | |
CY2018 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
9738000 | |
CY2019 | mhh |
Increase Decrease In Operating Lease Assets Net
IncreaseDecreaseInOperatingLeaseAssetsNet
|
-100000 | |
CY2020 | dei |
Entity Central Index Key
EntityCentralIndexKey
|
0001437226 | |
CY2020Q4 | us-gaap |
Business Combination Contingent Consideration Liability Noncurrent
BusinessCombinationContingentConsiderationLiabilityNoncurrent
|
2882000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
3321000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
1025000 | |
CY2020Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
||
CY2019Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
||
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
413000 | |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
338000 | |
CY2020Q4 | us-gaap |
Preferred Stock No Par Value
PreferredStockNoParValue
|
0 | |
CY2020Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
20000000 | |
CY2020Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2019Q4 | us-gaap |
Preferred Stock No Par Value
PreferredStockNoParValue
|
0 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
20000000 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2020Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
250000000 | |
CY2020Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
13039893 | |
CY2020 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
-4000 | |
CY2020 | us-gaap |
Payment For Contingent Consideration Liability Investing Activities
PaymentForContingentConsiderationLiabilityInvestingActivities
|
9345000 | |
CY2020 | us-gaap |
Proceeds From Issuance Of Debt
ProceedsFromIssuanceOfDebt
|
17500000 | |
CY2019 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
168000 | |
CY2020 | us-gaap |
Payments Of Financing Costs
PaymentsOfFinancingCosts
|
246000 | |
CY2020 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<div style="font-family: times new roman; font-size: 10pt; margin-top: 18pt; margin-bottom: 0pt; margin-left: 4%;"><div style="font-family: "times new roman"; font-size: 10pt; color: rgb(0, 0, 0); letter-spacing: 0px; top: 0px;;display:inline;"><div style="font-weight:bold;display:inline;">Use of Estimates </div></div></div> <div style="text-indent: 4%; font-family: times new roman; font-size: 10pt; margin-top: 6pt; margin-bottom: 0pt;"><div style="font-family: "times new roman"; font-size: 10pt; color: rgb(0, 0, 0); letter-spacing: 0px; top: 0px;;display:inline;">The preparation of financial statements in conformity with GAAP 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 periods presented. Actual results could differ from these estimates. </div></div> <table border="0" style="width:100%; table-layout:fixed;" cellspacing="0" cellpadding="0"><tr><td></td></tr></table> | |
CY2019Q4 | us-gaap |
Gross Profit
GrossProfit
|
12763000 | |
CY2019Q1 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
5700000 | |
CY2020 | us-gaap |
Stockholders Equity Note Stock Split
StockholdersEquityNoteStockSplit
|
two-for-one | |
CY2020 | us-gaap |
Stock Repurchase Program Expiration Date
StockRepurchaseProgramExpirationDate
|
2016-12-22 | |
CY2020 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
2 | |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
2987000 | |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
2772000 | |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
2693000 | |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
2553000 | |
CY2020Q4 | us-gaap |
Restricted Cash And Cash Equivalents
RestrictedCashAndCashEquivalents
|
0 | |
CY2019Q4 | us-gaap |
Restricted Cash And Cash Equivalents
RestrictedCashAndCashEquivalents
|
0 | |
CY2020Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations Repayments Of Principal In Next Twelve Months
LongTermDebtAndCapitalLeaseObligationsRepaymentsOfPrincipalInNextTwelveMonths
|
4400000 | |
CY2020Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations Maturities Repayments Of Principal In Year Two
LongTermDebtAndCapitalLeaseObligationsMaturitiesRepaymentsOfPrincipalInYearTwo
|
4400000 | |
CY2020Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations Maturities Repayments Of Principal In Year Three
LongTermDebtAndCapitalLeaseObligationsMaturitiesRepaymentsOfPrincipalInYearThree
|
8700000 | |
CY2020Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations
LongTermDebtAndCapitalLeaseObligations
|
17500000 | |
CY2020Q4 | us-gaap |
Area Of Land
AreaOfLand
|
86000 | |
CY2020Q4 | us-gaap |
Lessee Operating Lease Term Of Contract
LesseeOperatingLeaseTermOfContract
|
P4Y | |
CY2019Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
4717000 | |
CY2020Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable Current
OperatingLeasesFutureMinimumPaymentsReceivableCurrent
|
1243000 | |
CY2020Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable In Two Years
OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears
|
1128000 | |
CY2020Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable In Three Years
OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears
|
1080000 | |
CY2020Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable In Four Years
OperatingLeasesFutureMinimumPaymentsReceivableInFourYears
|
287000 | |
CY2020Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable In Five Years
OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears
|
0 | |
CY2020Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable Thereafter
OperatingLeasesFutureMinimumPaymentsReceivableThereafter
|
0 | |
CY2020Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable
OperatingLeasesFutureMinimumPaymentsReceivable
|
3738000 | |
CY2020Q4 | mhh |
Imputed Interest In Respect Of Operating Leases Future Minimum Rentals Payable
ImputedInterestInRespectOfOperatingLeasesFutureMinimumRentalsPayable
|
334000 | |
CY2020 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1700000 | |
CY2019 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1600000 | |
CY2018 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1300000 | |
CY2020 | us-gaap |
Capital Lease Obligations Incurred
CapitalLeaseObligationsIncurred
|
200000 | |
CY2019 | us-gaap |
Capital Lease Obligations Incurred
CapitalLeaseObligationsIncurred
|
500000 | |
CY2018 | us-gaap |
Capital Lease Obligations Incurred
CapitalLeaseObligationsIncurred
|
800000 | |
CY2020 | us-gaap |
Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
|
0 | |
CY2019 | us-gaap |
Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
|
0 | |
CY2018 | us-gaap |
Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
|
0 | |
CY2020Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations Maturities Repayments Of Principal In Year Four
LongTermDebtAndCapitalLeaseObligationsMaturitiesRepaymentsOfPrincipalInYearFour
|
0 | |
CY2020Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations Maturities Repayments Of Principal In Year Five
LongTermDebtAndCapitalLeaseObligationsMaturitiesRepaymentsOfPrincipalInYearFive
|
0 | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Authorized
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
|
4900000 | |
CY2020 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Expiration Period
SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
|
P10Y | |
CY2018 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-11056000 | |
CY2018 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
9738000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
2476000 | |
CY2018Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
2208000 | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P5Y | |
CY2018 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P5Y | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Method Used
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsMethodUsed
|
The fair value of the six-month “look-back” option in the Company’s employee stock purchase plans is estimated by adding the fair value of 15% of one share of stock to the fair value of 85% of an option on one share of stock. | |
CY2018 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
6.72 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.028 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0.000 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.506 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
|
3.15 | |
CY2018 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P5Y | |
CY2018 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.61 | |
CY2020 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.83 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.99 | |
CY2018 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.60 | |
CY2020 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossBeforeReclassificationAndTax
|
-187000 | |
CY2020Q4 | mhh |
Accruedpayrolltaxesnoncurrent
Accruedpayrolltaxesnoncurrent
|
2295000 | |
CY2020Q4 | us-gaap |
Line Of Credit Facility Maximum Borrowing Capacity
LineOfCreditFacilityMaximumBorrowingCapacity
|
15000000 | |
CY2019Q1 | us-gaap |
Revenues
Revenues
|
45199000 | |
CY2019Q1 | us-gaap |
Gross Profit
GrossProfit
|
10835000 | |
CY2019Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
964000 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.01 | |
CY2020Q4 | us-gaap |
Business Combination Contingent Consideration Liability
BusinessCombinationContingentConsiderationLiability
|
2882000 | |
CY2020 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax
|
-113000 | |
CY2020 | mhh |
Other Comprehensive Income Gain Loss Arising During The Period Before Reclassification And Tax
OtherComprehensiveIncomeGainLossArisingDuringThePeriodBeforeReclassificationAndTax
|
-300000 | |
CY2019Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.09 | |
CY2019Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.09 | |
CY2019Q2 | us-gaap |
Revenues
Revenues
|
48472000 | |
CY2019Q2 | us-gaap |
Gross Profit
GrossProfit
|
12054000 | |
CY2019Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
5958000 | |
CY2019Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.54 | |
CY2019Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.53 | |
CY2019Q3 | us-gaap |
Revenues
Revenues
|
49543000 | |
CY2019Q3 | us-gaap |
Gross Profit
GrossProfit
|
12329000 | |
CY2019Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1949000 | |
CY2019Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.18 | |
CY2019Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.17 | |
CY2019Q4 | us-gaap |
Revenues
Revenues
|
50360000 | |
CY2019Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2274000 | |
CY2019Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.21 | |
CY2019Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.20 | |
CY2019 | us-gaap |
Revenues
Revenues
|
193574000 | |
CY2019 | us-gaap |
Gross Profit
GrossProfit
|
47981000 | |
CY2020 | dei |
Icfr Auditor Attestation Flag
IcfrAuditorAttestationFlag
|
true | |
CY2020Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2019Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2020 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
2 | |
CY2020 | dei |
Document Annual Report
DocumentAnnualReport
|
true | |
CY2020 | dei |
Document Transition Report
DocumentTransitionReport
|
false | |
CY2018 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
387000 | |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
11476000 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
6787000 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
7520000 | |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
1157000 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
8432000 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
1894000 | |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
12633000 | |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
15219000 | |
CY2018 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
9414000 | |
CY2020 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
3044000 | |
CY2019 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
1555000 | |
CY2018 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
1494000 | |
CY2020 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
752000 | |
CY2019 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
406000 | |
CY2018 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
273000 | |
CY2020 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
797000 | |
CY2019 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
751000 | |
CY2018 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
807000 | |
CY2020 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
4593000 | |
CY2019 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
2712000 | |
CY2018 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
2574000 | |
CY2020 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-1340000 | |
CY2019 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-13000 | |
CY2018 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
317000 | |
CY2020 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-327000 | |
CY2019 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-4000 | |
CY2018 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
96000 | |
CY2020 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
-326000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.027 | |
CY2019 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
1372000 | |
CY2018 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
-264000 | |
CY2020 | us-gaap |
Deferred Federal State And Local Tax Expense Benefit
DeferredFederalStateAndLocalTaxExpenseBenefit
|
-1993000 | |
CY2019 | us-gaap |
Deferred Federal State And Local Tax Expense Benefit
DeferredFederalStateAndLocalTaxExpenseBenefit
|
1355000 | |
CY2018 | us-gaap |
Deferred Federal State And Local Tax Expense Benefit
DeferredFederalStateAndLocalTaxExpenseBenefit
|
149000 | |
CY2020 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
2653000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | |
CY2019 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
3196000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | |
CY2018 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
1977000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | |
CY2020 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
602000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.047 | |
CY2019 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
404000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.041 | |
CY2020 | mhh |
Income Tax Reconciliation Changes In Excess Tax Benefit From Stock Options And Restricted Shares
IncomeTaxReconciliationChangesInExcessTaxBenefitFromStockOptionsAndRestrictedShares
|
920000 | |
CY2020 | mhh |
Effective Income Tax Rate Reconciliation Changes In Excess Tax Benefit From Stock Options And Restricted Shares
EffectiveIncomeTaxRateReconciliationChangesInExcessTaxBenefitFromStockOptionsAndRestrictedShares
|
-0.073 | |
CY2019 | mhh |
Income Tax Reconciliation Changes In Excess Tax Benefit From Stock Options And Restricted Shares
IncomeTaxReconciliationChangesInExcessTaxBenefitFromStockOptionsAndRestrictedShares
|
9000 | |
CY2019 | mhh |
Effective Income Tax Rate Reconciliation Changes In Excess Tax Benefit From Stock Options And Restricted Shares
EffectiveIncomeTaxRateReconciliationChangesInExcessTaxBenefitFromStockOptionsAndRestrictedShares
|
-0.001 | |
CY2018 | mhh |
Income Tax Reconciliation Changes In Excess Tax Benefit From Stock Options And Restricted Shares
IncomeTaxReconciliationChangesInExcessTaxBenefitFromStockOptionsAndRestrictedShares
|
93000 | |
CY2018 | mhh |
Effective Income Tax Rate Reconciliation Changes In Excess Tax Benefit From Stock Options And Restricted Shares
EffectiveIncomeTaxRateReconciliationChangesInExcessTaxBenefitFromStockOptionsAndRestrictedShares
|
-0.010 | |
CY2018 | us-gaap |
Income Tax Reconciliation Change In Enacted Tax Rate
IncomeTaxReconciliationChangeInEnactedTaxRate
|
251000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Enacted Tax Rate
EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
|
0.027 | |
CY2020 | mhh |
Income Tax Reconciliation Charge For Global Intangible Low Taxed Income
IncomeTaxReconciliationChargeForGlobalIntangibleLowTaxedIncome
|
-20000 | |
CY2020 | mhh |
Effective Income Tax Rate Reconciliation Charge For Global Intangible Low Taxed Rate
EffectiveIncomeTaxRateReconciliationChargeForGlobalIntangibleLowTaxedRate
|
-0.002 | |
CY2019 | mhh |
Income Tax Reconciliation Charge For Global Intangible Low Taxed Income
IncomeTaxReconciliationChargeForGlobalIntangibleLowTaxedIncome
|
69000 | |
CY2019 | mhh |
Effective Income Tax Rate Reconciliation Charge For Global Intangible Low Taxed Rate
EffectiveIncomeTaxRateReconciliationChargeForGlobalIntangibleLowTaxedRate
|
0.005 | |
CY2020 | us-gaap |
Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
|
285000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
|
0.023 | |
CY2019 | us-gaap |
Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
|
407000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
|
0.027 | |
CY2018 | us-gaap |
Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
|
201000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
|
0.021 | |
CY2020 | us-gaap |
Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
172000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0.014 | |
CY2019 | us-gaap |
Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
7000 | |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
2772000 | |
CY2020 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.219 | |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4074000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.268 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
2723000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.289 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
101000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
88000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Employee Compensation
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation
|
457000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Employee Compensation
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation
|
315000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
738000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
396000 | |
CY2020Q4 | mhh |
Deferred Tax Assets Tax Deferred Expense Covid19 Payroll Tax Deferment
DeferredTaxAssetsTaxDeferredExpenseCovid19PayrollTaxDeferment
|
1207000 | |
CY2020Q4 | mhh |
Deferred Tax Assets Tax Deferred Expense Business Acquisition Transaction Costs
DeferredTaxAssetsTaxDeferredExpenseBusinessAcquisitionTransactionCosts
|
515000 | |
CY2019Q4 | mhh |
Deferred Tax Assets Tax Deferred Expense Business Acquisition Transaction Costs
DeferredTaxAssetsTaxDeferredExpenseBusinessAcquisitionTransactionCosts
|
414000 | |
CY2020Q4 | mhh |
Deferred Tax Assets Tax Deferred Expense Operating Losses Net
DeferredTaxAssetsTaxDeferredExpenseOperatingLossesNet
|
179000 | |
CY2019Q4 | mhh |
Deferred Tax Assets Tax Deferred Expense Operating Losses Net
DeferredTaxAssetsTaxDeferredExpenseOperatingLossesNet
|
7000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
3197000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
1220000 | |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
217000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
221000 | |
CY2020 | us-gaap |
Goodwill Other Increase Decrease
GoodwillOtherIncreaseDecrease
|
-2005000 | |
CY2019 | us-gaap |
Goodwill Other Increase Decrease
GoodwillOtherIncreaseDecrease
|
-2017000 | |
CY2020Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
2222000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
2238000 | |
CY2020Q4 | mhh |
Deferred Tax Liabilities Valuation Allowance
DeferredTaxLiabilitiesValuationAllowance
|
179000 | |
CY2019Q4 | mhh |
Deferred Tax Liabilities Valuation Allowance
DeferredTaxLiabilitiesValuationAllowance
|
7000 | |
CY2020Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
796000 | |
CY2019Q4 | mhh |
Deferred Tax Liabilities Net
DeferredTaxLiabilitiesNet
|
1025000 | |
CY2019Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
20000 | |
CY2018Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
263000 | |
CY2017Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
95000 | |
CY2020 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
0 | |
CY2019 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
0 | |
CY2018 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
208000 | |
CY2020 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
0 | |
CY2019 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
0 | |
CY2018 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
0 | |
CY2020 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
|
20000 | |
CY2019 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
|
243000 | |
CY2018 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
|
40000 | |
CY2020Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
0 | |
CY2020Q4 | mhh |
Deferred Tax Liabilities Valuation Allowance
DeferredTaxLiabilitiesValuationAllowance
|
179000 | |
CY2019Q4 | mhh |
Deferred Tax Liabilities Valuation Allowance
DeferredTaxLiabilitiesValuationAllowance
|
7000 |