2018 Q4 Form 10-K Financial Statement
#000119312520090186 Filed on March 30, 2020
Income Statement
Concept | 2018 Q4 | 2018 Q3 | 2018 Q2 |
---|---|---|---|
Revenue | $44.65M | $44.29M | $44.89M |
YoY Change | 10.32% | 12.91% | 27.95% |
Cost Of Revenue | $33.98M | $33.58M | $34.00M |
YoY Change | 9.83% | 10.43% | 21.4% |
Gross Profit | $10.67M | $10.71M | $10.89M |
YoY Change | 11.97% | 21.46% | 53.91% |
Gross Profit Margin | 23.89% | 24.18% | 24.26% |
Selling, General & Admin | $7.791M | $7.530M | $7.110M |
YoY Change | 22.89% | -12.47% | 16.65% |
% of Gross Profit | 73.05% | 70.31% | 65.28% |
Research & Development | |||
YoY Change | |||
% of Gross Profit | |||
Depreciation & Amortization | $842.0K | $830.0K | $760.0K |
YoY Change | 10.79% | 23.88% | 192.31% |
% of Gross Profit | 7.89% | 7.75% | 6.98% |
Operating Expenses | $8.441M | $8.204M | $6.435M |
YoY Change | 19.73% | -4.64% | 5.58% |
Operating Profit | $2.224M | $2.506M | $4.457M |
YoY Change | -10.14% | 1065.58% | 353.87% |
Interest Expense | -$548.0K | -$535.0K | -$615.0K |
YoY Change | 14.17% | 21.87% | 474.77% |
% of Operating Profit | -24.64% | -21.35% | -13.8% |
Other Income/Expense, Net | -$117.0K | $108.0K | $8.000K |
YoY Change | 1070.0% | -1081.82% | 700.0% |
Pretax Income | $1.559M | $2.079M | $3.850M |
YoY Change | -21.66% | -984.68% | 339.5% |
Income Tax | $434.0K | $459.0K | $1.033M |
% Of Pretax Income | 27.84% | 22.08% | 26.83% |
Net Earnings | $874.0K | $1.620M | $2.817M |
YoY Change | 1.04% | -1291.18% | 304.74% |
Net Earnings / Revenue | 1.96% | 3.66% | 6.27% |
Basic Earnings Per Share | $0.08 | $0.15 | $0.26 |
Diluted Earnings Per Share | $0.08 | $0.14 | $0.25 |
COMMON SHARES | |||
Basic Shares Outstanding | 10.98M shares | 10.97M | 10.93M |
Diluted Shares Outstanding | 11.22M | 11.14M |
Balance Sheet
Concept | 2018 Q4 | 2018 Q3 | 2018 Q2 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $1.294M | $2.190M | $750.0K |
YoY Change | -47.82% | -30.7% | 19.05% |
Cash & Equivalents | $1.294M | $2.188M | $747.0K |
Short-Term Investments | |||
Other Short-Term Assets | $1.321M | $1.610M | $1.130M |
YoY Change | -13.66% | -15.26% | -24.67% |
Inventory | |||
Prepaid Expenses | |||
Receivables | $28.91M | $24.21M | $25.05M |
Other Receivables | $0.00 | $0.00 | $0.00 |
Total Short-Term Assets | $40.70M | $41.97M | $37.28M |
YoY Change | 17.37% | 19.14% | 51.11% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $2.208M | $2.141M | $2.202M |
YoY Change | 16.27% | 49.93% | 158.45% |
Goodwill | $26.11M | $28.11M | $28.11M |
YoY Change | -27.17% | -21.43% | 233.52% |
Intangibles | $22.74M | $23.41M | $24.08M |
YoY Change | -10.71% | -10.5% | 248.74% |
Long-Term Investments | |||
YoY Change | |||
Other Assets | $837.0K | $520.0K | $550.0K |
YoY Change | 16.25% | 33.33% | 22.22% |
Total Long-Term Assets | $51.89M | $54.18M | $54.94M |
YoY Change | -18.84% | -15.01% | 230.27% |
TOTAL ASSETS | |||
Total Short-Term Assets | $40.70M | $41.97M | $37.28M |
Total Long-Term Assets | $51.89M | $54.18M | $54.94M |
Total Assets | $92.58M | $96.15M | $92.23M |
YoY Change | -6.11% | -2.86% | 123.26% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $4.127M | $2.724M | $3.561M |
YoY Change | -17.92% | -15.9% | 9.91% |
Accrued Expenses | $8.946M | $9.670M | $11.19M |
YoY Change | -16.0% | 7.21% | 36.8% |
Deferred Revenue | |||
YoY Change | |||
Short-Term Debt | $4.575M | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | $4.575M | $4.575M | $4.384M |
YoY Change | 14.29% | 19.98% | 143.56% |
Total Short-Term Liabilities | $17.91M | $17.09M | $19.24M |
YoY Change | -10.96% | 5.85% | 45.04% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $34.13M | $37.72M | $33.38M |
YoY Change | -0.06% | -4.75% | 328.36% |
Other Long-Term Liabilities | $6.273M | $8.090M | $8.090M |
YoY Change | -63.51% | -52.77% | |
Total Long-Term Liabilities | $34.13M | $37.72M | $33.38M |
YoY Change | -0.06% | -4.75% | 328.36% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $17.91M | $17.09M | $19.24M |
Total Long-Term Liabilities | $34.13M | $37.72M | $33.38M |
Total Liabilities | $58.31M | $62.98M | $60.71M |
YoY Change | -18.39% | -13.58% | 188.3% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $17.61M | $16.74M | $15.12M |
YoY Change | 61.26% | 66.43% | 48.32% |
Common Stock | $20.96M | $20.82M | $20.59M |
YoY Change | 2.89% | 2.7% | 45.03% |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $4.174M | $4.174M | $4.174M |
YoY Change | 0.48% | 0.77% | 0.8% |
Treasury Stock Shares | $1.644M | 1.644M shares | 821.9K shares |
Shareholders Equity | $34.28M | $33.17M | $31.52M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $92.58M | $96.15M | $92.23M |
YoY Change | -6.11% | -2.86% | 123.26% |
Cashflow Statement
Concept | 2018 Q4 | 2018 Q3 | 2018 Q2 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $874.0K | $1.620M | $2.817M |
YoY Change | 1.04% | -1291.18% | 304.74% |
Depreciation, Depletion And Amortization | $842.0K | $830.0K | $760.0K |
YoY Change | 10.79% | 23.88% | 192.31% |
Cash From Operating Activities | $2.799M | -$2.700M | $1.420M |
YoY Change | -43.57% | 28.57% | -62.13% |
INVESTING ACTIVITIES | |||
Capital Expenditures | -$231.0K | -$100.0K | -$310.0K |
YoY Change | 0.43% | -80.0% | -13.89% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | -$25.00K | -$150.0K | -$70.00K |
YoY Change | -82.14% | -99.57% | 600.0% |
Cash From Investing Activities | -$256.0K | -$250.0K | -$380.0K |
YoY Change | -28.89% | -99.29% | 2.7% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | |||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -3.610M | 4.610M | -1.440M |
YoY Change | -31.76% | -88.42% | -60.22% |
NET CHANGE | |||
Cash From Operating Activities | 2.799M | -2.700M | 1.420M |
Cash From Investing Activities | -256.0K | -250.0K | -380.0K |
Cash From Financing Activities | -3.610M | 4.610M | -1.440M |
Net Change In Cash | -1.067M | 1.660M | -400.0K |
YoY Change | 54.64% | -34.65% | 66.67% |
FREE CASH FLOW | |||
Cash From Operating Activities | $2.799M | -$2.700M | $1.420M |
Capital Expenditures | -$231.0K | -$100.0K | -$310.0K |
Free Cash Flow | $3.030M | -$2.600M | $1.730M |
YoY Change | -41.62% | 62.5% | -57.91% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2017 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
116253000 | |
CY2017 | us-gaap |
Gross Profit
GrossProfit
|
31629000 | |
CY2017 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
4081000 | |
CY2017 | us-gaap |
Interest Income Expense Nonoperating Net
InterestIncomeExpenseNonoperatingNet
|
-1131000 | |
CY2017 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
-2000 | |
CY2019 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
145593000 | |
CY2018 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
134636000 | |
CY2019 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
16987000 | |
CY2018 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
11625000 | |
CY2019 | us-gaap |
Interest Income Expense Nonoperating Net
InterestIncomeExpenseNonoperatingNet
|
-1779000 | |
CY2018 | us-gaap |
Interest Income Expense Nonoperating Net
InterestIncomeExpenseNonoperatingNet
|
-2171000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Before Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent
|
-111000 | |
CY2017 | us-gaap |
Other Comprehensive Income Unrealized Gain Loss On Derivatives Arising During Period Tax
OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax
|
7000 | |
CY2018Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
1321000 | |
CY2019 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
11000 | |
CY2018 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
-40000 | |
CY2017 | us-gaap |
Operating Costs And Expenses
OperatingCostsAndExpenses
|
27548000 | |
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 | |
CY2018 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-11056000 | |
CY2017 | us-gaap |
Operating Expenses
OperatingExpenses
|
27548000 | |
CY2019 | us-gaap |
Operating Expenses
OperatingExpenses
|
30994000 | |
CY2018 | us-gaap |
Operating Expenses
OperatingExpenses
|
30903000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Adjustment Before Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentBeforeTax
|
10000 | |
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 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Before Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent
|
31000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Before Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent
|
-278000 | |
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 | |
CY2017 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1626000 | |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
11145000 | |
CY2018 | us-gaap |
Net Income Loss
NetIncomeLoss
|
6691000 | |
CY2017 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
1650000 | |
CY2019 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
10906000 | |
CY2018 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
6555000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Liabilities Net Noncurrent
DeferredTaxAssetsLiabilitiesNetNoncurrent
|
297000 | |
CY2019Q4 | us-gaap |
Deposits Assets Noncurrent
DepositsAssetsNoncurrent
|
405000 | |
CY2018Q4 | us-gaap |
Deposits Assets Noncurrent
DepositsAssetsNoncurrent
|
540000 | |
CY2019Q4 | us-gaap |
Goodwill
Goodwill
|
26106000 | |
CY2019Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
20050000 | |
CY2018Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
22738000 | |
CY2019Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
2981000 | |
CY2018Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
1294000 | |
CY2019Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
22345000 | |
CY2018Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
28913000 | |
CY2019Q4 | us-gaap |
Unbilled Contracts Receivable
UnbilledContractsReceivable
|
10007000 | |
CY2018Q4 | us-gaap |
Unbilled Contracts Receivable
UnbilledContractsReceivable
|
9167000 | |
CY2019Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
1597000 | |
CY2019Q4 | us-gaap |
Assets Current
AssetsCurrent
|
36930000 | |
CY2018Q4 | us-gaap |
Assets Current
AssetsCurrent
|
40695000 | |
CY2019Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
||
CY2018Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
||
CY2019Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
90584000 | |
CY2018Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
92584000 | |
CY2019Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
4575000 | |
CY2018Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
4575000 | |
CY2019Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
4027000 | |
CY2018Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
4127000 | |
CY2019Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
7902000 | |
CY2018Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
7728000 | |
CY2019Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
954000 | |
CY2018Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
1218000 | |
CY2019Q4 | us-gaap |
Deferred Revenue Current
DeferredRevenueCurrent
|
237000 | |
CY2018Q4 | us-gaap |
Deferred Revenue Current
DeferredRevenueCurrent
|
258000 | |
CY2019Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
19091000 | |
CY2018Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
17906000 | |
CY2019Q4 | us-gaap |
Long Term Debt Noncurrent
LongTermDebtNoncurrent
|
20682000 | |
CY2018Q4 | us-gaap |
Long Term Debt Noncurrent
LongTermDebtNoncurrent
|
34129000 | |
CY2018Q4 | us-gaap |
Business Combination Contingent Consideration Liability Noncurrent
BusinessCombinationContingentConsiderationLiabilityNoncurrent
|
6069000 | |
CY2019Q4 | us-gaap |
Accrued Income Taxes Noncurrent
AccruedIncomeTaxesNoncurrent
|
185000 | |
CY2018Q4 | us-gaap |
Accrued Income Taxes Noncurrent
AccruedIncomeTaxesNoncurrent
|
204000 | |
CY2019Q4 | us-gaap |
Liabilities
Liabilities
|
44304000 | |
CY2018Q4 | us-gaap |
Liabilities
Liabilities
|
58308000 | |
CY2019Q4 | us-gaap |
Machinery And Equipment Gross
MachineryAndEquipmentGross
|
1871000 | |
CY2018Q4 | us-gaap |
Machinery And Equipment Gross
MachineryAndEquipmentGross
|
1538000 | |
CY2019Q4 | us-gaap |
Capitalized Computer Software Gross
CapitalizedComputerSoftwareGross
|
2728000 | |
CY2018Q4 | us-gaap |
Capitalized Computer Software Gross
CapitalizedComputerSoftwareGross
|
2096000 | |
CY2019Q4 | us-gaap |
Leasehold Improvements Gross
LeaseholdImprovementsGross
|
496000 | |
CY2018Q4 | us-gaap |
Leasehold Improvements Gross
LeaseholdImprovementsGross
|
464000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
5095000 | |
CY2018Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
4098000 | |
CY2019Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
2619000 | |
CY2018Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
1890000 | |
CY2019Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
||
CY2018Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
||
CY2019Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
127000 | |
CY2018Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
126000 | |
CY2019Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
21939000 | |
CY2018Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
20829000 | |
CY2019Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
28759000 | |
CY2018Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
17614000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-358000 | |
CY2018Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-119000 | |
CY2019Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
4187000 | |
CY2018Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
4174000 | |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
46280000 | |
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
34276000 | |
CY2019Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
4617000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
1396000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
3321000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Noncurrent
DeferredTaxLiabilitiesNoncurrent
|
1025000 | |
CY2016Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
19072000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
24000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-136000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-239000 | |
CY2017 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
381000 | |
CY2018 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
470000 | |
CY2017 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
70000 | |
CY2017Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
27153000 | |
CY2019 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
936000 | |
CY2018 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
118000 | |
CY2017 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
20000 | |
CY2019 | us-gaap |
Stock Issued During Period Value Employee Stock Purchase Plan
StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
|
168000 | |
CY2018 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
20000 | |
CY2019 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
7000 | |
CY2019 | us-gaap |
Treasury Stock Value Acquired Cost Method
TreasuryStockValueAcquiredCostMethod
|
13000 | |
CY2019 | us-gaap |
Depreciation Amortization And Accretion Net
DepreciationAmortizationAndAccretionNet
|
3434000 | |
CY2018 | us-gaap |
Depreciation Amortization And Accretion Net
DepreciationAmortizationAndAccretionNet
|
3182000 | |
CY2018 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
10000 | |
CY2019 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
80000 | |
CY2019 | us-gaap |
Amortization Of Financing Costs
AmortizationOfFinancingCosts
|
104000 | |
CY2018 | us-gaap |
Amortization Of Financing Costs
AmortizationOfFinancingCosts
|
100000 | |
CY2019 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
936000 | |
CY2018 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
470000 | |
CY2019 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
1322000 | |
CY2018 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
171000 | |
CY2019 | us-gaap |
Increase Decrease In Accounts And Other Receivables
IncreaseDecreaseInAccountsAndOtherReceivables
|
-5648000 | |
CY2018 | us-gaap |
Increase Decrease In Accounts And Other Receivables
IncreaseDecreaseInAccountsAndOtherReceivables
|
7428000 | |
CY2019 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
386000 | |
CY2018 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-283000 | |
CY2019 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-100000 | |
CY2019 | us-gaap |
Profit Loss
ProfitLoss
|
11145000 | |
CY2018 | us-gaap |
Profit Loss
ProfitLoss
|
6691000 | |
CY2018 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-901000 | |
CY2019 | us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
174000 | |
CY2018 | us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
-1241000 | |
CY2019 | us-gaap |
Increase Decrease In Other Accrued Liabilities
IncreaseDecreaseInOtherAccruedLiabilities
|
-264000 | |
CY2018 | us-gaap |
Increase Decrease In Other Accrued Liabilities
IncreaseDecreaseInOtherAccruedLiabilities
|
-461000 | |
CY2019 | us-gaap |
Increase Decrease In Deferred Revenue
IncreaseDecreaseInDeferredRevenue
|
-21000 | |
CY2018 | us-gaap |
Increase Decrease In Deferred Revenue
IncreaseDecreaseInDeferredRevenue
|
-172000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
16084000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
-471000 | |
CY2019 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
1014000 | |
CY2018 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
771000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-879000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-1056000 | |
CY2019 | us-gaap |
Repayments Of Debt
RepaymentsOfDebt
|
9575000 | |
CY2018 | us-gaap |
Repayments Of Debt
RepaymentsOfDebt
|
4003000 | |
CY2018 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
118000 | |
CY2019 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-13389000 | |
CY2018 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
550000 | |
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 |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
1687000 | |
CY2018 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
-1184000 | |
CY2017Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
2478000 | |
CY2018 | us-gaap |
Goodwill Impairment Loss
GoodwillImpairmentLoss
|
9738000 | |
CY2019 | mhh |
Increase Decrease In Operating Lease Assets Net
IncreaseDecreaseInOperatingLeaseAssetsNet
|
-100000 | |
CY2018 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
-7000 | |
CY2019 | mhh |
Payments For Recovery Of Noncurrent Deposits
PaymentsForRecoveryOfNoncurrentDeposits
|
-135000 | |
CY2018 | mhh |
Payments For Recovery Of Noncurrent Deposits
PaymentsForRecoveryOfNoncurrentDeposits
|
285000 | |
CY2019 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
168000 | |
CY2018 | us-gaap |
Payments Of Financing Costs
PaymentsOfFinancingCosts
|
71000 | |
CY2019 | us-gaap |
Payments For Repurchase Of Equity
PaymentsForRepurchaseOfEquity
|
13000 | |
CY2018 | us-gaap |
Payments For Repurchase Of Equity
PaymentsForRepurchaseOfEquity
|
20000 | |
CY2017 | us-gaap |
Depreciation Amortization And Accretion Net
DepreciationAmortizationAndAccretionNet
|
1942000 | |
CY2017 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
10000 | |
CY2017 | us-gaap |
Amortization Of Financing Costs
AmortizationOfFinancingCosts
|
99000 | |
CY2017 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
381000 | |
CY2017 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-234000 | |
CY2017 | us-gaap |
Increase Decrease In Accounts And Other Receivables
IncreaseDecreaseInAccountsAndOtherReceivables
|
3322000 | |
CY2017 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
618000 | |
CY2017 | us-gaap |
Profit Loss
ProfitLoss
|
1626000 | |
CY2017 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
1685000 | |
CY2017 | us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
472000 | |
CY2017 | us-gaap |
Increase Decrease In Other Accrued Liabilities
IncreaseDecreaseInOtherAccruedLiabilities
|
1000000 | |
CY2017 | us-gaap |
Increase Decrease In Deferred Revenue
IncreaseDecreaseInDeferredRevenue
|
234000 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
3347000 | |
CY2017 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
1127000 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-35934000 | |
CY2017 | us-gaap |
Repayments Of Debt
RepaymentsOfDebt
|
7253000 | |
CY2017 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
70000 | |
CY2017 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
34226000 | |
CY2017 | us-gaap |
Effect Of Exchange Rate On Cash And Cash Equivalents
EffectOfExchangeRateOnCashAndCashEquivalents
|
10000 | |
CY2017 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
1649000 | |
CY2016Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
829000 | |
CY2017 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
-4000 | |
CY2017 | mhh |
Payments For Recovery Of Noncurrent Deposits
PaymentsForRecoveryOfNoncurrentDeposits
|
8000 | |
CY2017 | us-gaap |
Payments Of Financing Costs
PaymentsOfFinancingCosts
|
435000 | |
CY2017 | us-gaap |
Payments For Repurchase Of Equity
PaymentsForRepurchaseOfEquity
|
20000 | |
CY2019 | mhh |
Maximum Percentage Of Billable Expenses On Revenue From Customer
MaximumPercentageOfBillableExpensesOnRevenueFromCustomer
|
0.02 | |
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 | |
CY2017 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
147882000 | |
CY2019Q4 | us-gaap |
Intangible Assets Gross Excluding Goodwill
IntangibleAssetsGrossExcludingGoodwill
|
28429000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
8379000 | |
CY2018Q4 | us-gaap |
Intangible Assets Gross Excluding Goodwill
IntangibleAssetsGrossExcludingGoodwill
|
28429000 | |
CY2018Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
5691000 | |
CY2019Q4 | us-gaap |
Area Of Land
AreaOfLand
|
88000 | |
CY2019Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
4717000 | |
CY2019Q4 | mhh |
Imputed Interest In Respect Of Operating Leases Future Minimum Rentals Payable
ImputedInterestInRespectOfOperatingLeasesFutureMinimumRentalsPayable
|
546000 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Discount Rate
LesseeOperatingLeaseDiscountRate
|
0.054 | |
CY2017 | us-gaap |
Operating Leases Rent Expense Net
OperatingLeasesRentExpenseNet
|
1200000 | |
CY2019 | us-gaap |
Operating Leases Rent Expense Net
OperatingLeasesRentExpenseNet
|
1600000 | |
CY2018 | us-gaap |
Operating Leases Rent Expense Net
OperatingLeasesRentExpenseNet
|
1400000 | |
CY2019Q4 | us-gaap |
Deferred Finance Costs Noncurrent Net
DeferredFinanceCostsNoncurrentNet
|
263000 | |
CY2018Q4 | us-gaap |
Deferred Finance Costs Noncurrent Net
DeferredFinanceCostsNoncurrentNet
|
367000 | |
CY2019Q4 | us-gaap |
Line Of Credit Facility Current Borrowing Capacity
LineOfCreditFacilityCurrentBorrowingCapacity
|
13000000 | |
CY2018Q4 | us-gaap |
Line Of Credit Facility Current Borrowing Capacity
LineOfCreditFacilityCurrentBorrowingCapacity
|
9000000 | |
CY2017 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
1875000 | |
CY2017 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
1073000 | |
CY2017 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
2948000 | |
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 | |
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 | |
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 | |
CY2017 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
1101000 | |
CY2017 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
159000 | |
CY2017 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
276000 | |
CY2017 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
1536000 | |
CY2017 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-205000 | |
CY2017 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-73000 | |
CY2017 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
64000 | |
CY2018 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
807000 | |
CY2017 | us-gaap |
Deferred Federal State And Local Tax Expense Benefit
DeferredFederalStateAndLocalTaxExpenseBenefit
|
-214000 | |
CY2019 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
1555000 | |
CY2018 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
1494000 | |
CY2019 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
406000 | |
CY2018 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
273000 | |
CY2019 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
751000 | |
CY2019 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
2712000 | |
CY2018 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
2574000 | |
CY2019 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-13000 | |
CY2018 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
317000 | |
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 | |
CY2019 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
1379000 | |
CY2018 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
-264000 | |
CY2019 | us-gaap |
Deferred Federal State And Local Tax Expense Benefit
DeferredFederalStateAndLocalTaxExpenseBenefit
|
1362000 | |
CY2018 | us-gaap |
Deferred Federal State And Local Tax Expense Benefit
DeferredFederalStateAndLocalTaxExpenseBenefit
|
149000 | |
CY2017 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
1002000 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.340 | |
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 | |
CY2017 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
116000 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.039 | |
CY2018 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
387000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.041 | |
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 | |
CY2017 | us-gaap |
Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
|
-28000 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
|
-0.010 | |
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 | |
CY2017 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
1322000 | |
CY2017 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.448 | |
CY2018 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
2723000 | |
CY2018 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.289 | |
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 | |
CY2019 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
404000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.027 | |
CY2019 | us-gaap |
Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
|
414000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Reconciliation Foreign Income Tax Rate Differential
EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
|
0.027 | |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4074000 | |
CY2019 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.268 | |
CY2018Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
263000 | |
CY2019 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
0 | |
CY2019 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
0 | |
CY2019 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
|
243000 | |
CY2019Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
20000 | |
CY2017Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
95000 | |
CY2018 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
208000 | |
CY2018 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
0 | |
CY2018 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
|
40000 | |
CY2016Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
128000 | |
CY2017 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Current Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
|
0 | |
CY2017 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
0 | |
CY2017 | us-gaap |
Unrecognized Tax Benefits Decreases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
|
33000 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Shares Purchased For Award
ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward
|
2574 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Shares Purchased For Award
ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward
|
2574 | |
CY2019 | us-gaap |
Employee Stock Ownership Plan Esop Weighted Average Purchase Price Of Shares Purchased
EmployeeStockOwnershipPlanESOPWeightedAveragePurchasePriceOfSharesPurchased
|
5.05 | |
CY2018 | us-gaap |
Employee Stock Ownership Plan Esop Weighted Average Purchase Price Of Shares Purchased
EmployeeStockOwnershipPlanESOPWeightedAveragePurchasePriceOfSharesPurchased
|
8.01 | |
CY2018 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
141000 | |
CY2019 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
518000 | |
CY2017Q4 | us-gaap |
Business Combination Contingent Consideration Liability Noncurrent
BusinessCombinationContingentConsiderationLiabilityNoncurrent
|
17125000 | |
CY2016Q4 | us-gaap |
Business Combination Contingent Consideration Liability Noncurrent
BusinessCombinationContingentConsiderationLiabilityNoncurrent
|
0 | |
CY2017 | us-gaap |
Revenues
Revenues
|
147882000 | |
CY2017 | mhh |
Gross Margin Percentage
GrossMarginPercentage
|
0.214 | |
CY2019 | mhh |
Gross Margin Percentage
GrossMarginPercentage
|
0.248 | |
CY2018 | mhh |
Gross Margin Percentage
GrossMarginPercentage
|
0.240 | |
CY2018 | us-gaap |
Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
|
-140000 | |
CY2019 | us-gaap |
Business Combination Contingent Consideration Arrangements Change In Amount Of Contingent Consideration Liability1
BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
|
-6069000 | |
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 | |
CY2017 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
1710000 | |
CY2019 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
2688000 | |
CY2018 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
2727000 | |
CY2017 | mhh |
Interest Expenses And Other Net
InterestExpensesAndOtherNet
|
-1133000 | |
CY2019 | mhh |
Interest Expenses And Other Net
InterestExpensesAndOtherNet
|
-1768000 | |
CY2018 | mhh |
Interest Expenses And Other Net
InterestExpensesAndOtherNet
|
-2211000 | |
CY2019 | us-gaap |
Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
|
-110000 | |
CY2019 | dei |
Document Type
DocumentType
|
10-K | |
CY2019 | dei |
Document Period End Date
DocumentPeriodEndDate
|
2019-12-31 | |
CY2019 | dei |
Entity Registrant Name
EntityRegistrantName
|
Mastech Digital, Inc. | |
CY2019 | dei |
Entity Interactive Data Current
EntityInteractiveDataCurrent
|
Yes | |
CY2019 | dei |
Amendment Flag
AmendmentFlag
|
false | |
CY2019 | dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2019 | |
CY2019 | dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
FY | |
CY2019 | dei |
Entity Central Index Key
EntityCentralIndexKey
|
0001437226 | |
CY2019 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | |
CY2019 | dei |
Entity Current Reporting Status
EntityCurrentReportingStatus
|
Yes | |
CY2019 | dei |
Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
|
No | |
CY2019 | dei |
Entity Filer Category
EntityFilerCategory
|
Non-accelerated Filer | |
CY2019 | dei |
Entity Shell Company
EntityShellCompany
|
false | |
CY2019 | dei |
Entity Small Business
EntitySmallBusiness
|
true | |
CY2019 | dei |
Entity Emerging Growth Company
EntityEmergingGrowthCompany
|
false | |
CY2019 | dei |
Security Exchange Name
SecurityExchangeName
|
NYSE | |
CY2019 | dei |
Security12b Title
Security12bTitle
|
Common Stock | |
CY2019 | dei |
Trading Symbol
TradingSymbol
|
MHH | |
CY2020Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
11195304 | |
CY2019Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
338000 | |
CY2018Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
408000 | |
CY2017 | us-gaap |
Business Combination Acquisition Related Costs
BusinessCombinationAcquisitionRelatedCosts
|
2019000 | |
CY2018Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2019Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
250000000 | |
CY2019Q4 | us-gaap |
Preferred Stock No Par Value
PreferredStockNoParValue
|
0 | |
CY2019Q4 | us-gaap |
Assets
Assets
|
90584000 | |
CY2018Q4 | us-gaap |
Assets
Assets
|
92584000 | |
CY2017Q4 | us-gaap |
Assets
Assets
|
98604000 | |
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 | |
CY2017 | mhh |
Payments And Capital Expenditures Incurred But Not Yet Paid To Acquire Property Plant And Equipment
PaymentsAndCapitalExpendituresIncurredButNotYetPaidToAcquirePropertyPlantAndEquipment
|
1439000 | |
CY2019Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
2476000 | |
CY2018Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
2208000 | |
CY2017Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
1899000 | |
CY2019 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
2 | |
CY2018Q4 | us-gaap |
Preferred Stock No Par Value
PreferredStockNoParValue
|
0 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
20000000 | |
CY2018Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
20000000 | |
CY2019Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2018Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2019Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2018Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
250000000 | |
CY2019Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
12700660 | |
CY2018Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
12636332 | |
CY2019Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
1646420 | |
CY2018Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
1643846 | |
CY2017Q4 | us-gaap |
Business Combination Contingent Consideration Liability
BusinessCombinationContingentConsiderationLiability
|
17125000 | |
CY2018Q4 | us-gaap |
Goodwill
Goodwill
|
26106000 | |
CY2019 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
203000 | |
CY2017 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
0 | |
CY2018 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
211000 | |
CY2017 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
74000 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
11029000 | |
CY2018 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
10950000 | |
CY2017 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
9924000 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.01 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
11232000 | |
CY2018 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
11161000 | |
CY2017 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
9998000 | |
CY2017Q3 | us-gaap |
Shares Issued Price Per Share
SharesIssuedPricePerShare
|
3.18 | |
CY2017Q3 | us-gaap |
Shares Issued Price Per Share
SharesIssuedPricePerShare
|
3.50 | |
CY2018 | us-gaap |
Goodwill Other Increase Decrease
GoodwillOtherIncreaseDecrease
|
-555000 | |
CY2019Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
2238000 | |
CY2017 | us-gaap |
Stock Issued During Period Value New Issues
StockIssuedDuringPeriodValueNewIssues
|
6000000 | |
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 | |
CY2017 | mhh |
Income Tax Reconciliation Changes In Excess Tax Benefit From Stock Options And Restricted Shares
IncomeTaxReconciliationChangesInExcessTaxBenefitFromStockOptionsAndRestrictedShares
|
140000 | |
CY2017 | mhh |
Effective Income Tax Rate Reconciliation Changes In Excess Tax Benefit From Stock Options And Restricted Shares
EffectiveIncomeTaxRateReconciliationChangesInExcessTaxBenefitFromStockOptionsAndRestrictedShares
|
-0.047 | |
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 | |
CY2017 | us-gaap |
Income Tax Reconciliation Change In Enacted Tax Rate
IncomeTaxReconciliationChangeInEnactedTaxRate
|
372000 | |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Enacted Tax Rate
EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate
|
0.126 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
88000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
109000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Employee Compensation
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation
|
315000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Employee Compensation
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation
|
228000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
396000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
194000 | |
CY2019Q4 | mhh |
Deferred Tax Assets Tax Deferred Expense Business Acquisition Transaction Costs
DeferredTaxAssetsTaxDeferredExpenseBusinessAcquisitionTransactionCosts
|
414000 | |
CY2018Q4 | mhh |
Deferred Tax Assets Tax Deferred Expense Business Acquisition Transaction Costs
DeferredTaxAssetsTaxDeferredExpenseBusinessAcquisitionTransactionCosts
|
507000 | |
CY2019Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
1213000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
1038000 | |
CY2019Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
221000 | |
CY2018Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
186000 | |
CY2019 | us-gaap |
Goodwill Other Increase Decrease
GoodwillOtherIncreaseDecrease
|
-2017000 | |
CY2018 | us-gaap |
Interest Paid Net
InterestPaidNet
|
2060000 | |
CY2018Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
741000 | |
CY2019Q4 | mhh |
Deferred Tax Liabilities Net
DeferredTaxLiabilitiesNet
|
1025000 | |
CY2018Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
297000 | |
CY2019 | us-gaap |
Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
|
5000000 | |
CY2018 | us-gaap |
Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
|
10000000 | |
CY2017 | us-gaap |
Unrecognized Tax Benefits Reductions Resulting From Lapse Of Applicable Statute Of Limitations
UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
|
12000000 | |
CY2019 | mhh |
Longterm Accrued Income Taxes
LongtermAccruedIncomeTaxes
|
-19000 | |
CY2018 | mhh |
Longterm Accrued Income Taxes
LongtermAccruedIncomeTaxes
|
136000 | |
CY2017 | mhh |
Longterm Accrued Income Taxes
LongtermAccruedIncomeTaxes
|
68000 | |
CY2019 | us-gaap |
Proceeds From Repayments Of Lines Of Credit
ProceedsFromRepaymentsOfLinesOfCredit
|
-3976000 | |
CY2018 | us-gaap |
Proceeds From Repayments Of Lines Of Credit
ProceedsFromRepaymentsOfLinesOfCredit
|
4526000 | |
CY2017 | us-gaap |
Proceeds From Repayments Of Lines Of Credit
ProceedsFromRepaymentsOfLinesOfCredit
|
5364000 | |
CY2017 | us-gaap |
Proceeds From Issuance Of Debt
ProceedsFromIssuanceOfDebt
|
30500000 | |
CY2017 | us-gaap |
Proceeds From Issuance Of Common Stock
ProceedsFromIssuanceOfCommonStock
|
6000000 | |
CY2019 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
7000 | |
CY2019 | us-gaap |
Interest Paid Net
InterestPaidNet
|
1780000 | |
CY2017 | us-gaap |
Interest Paid Net
InterestPaidNet
|
925000 | |
CY2019 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
2634000 | |
CY2018 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
2031000 | |
CY2017 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
1506000 | |
CY2017 | us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
312000 | |
CY2017 | us-gaap |
Payment For Contingent Consideration Liability Investing Activities
PaymentForContingentConsiderationLiabilityInvestingActivities
|
34799000 | |
CY2019 | 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; 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; 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> | |
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 | |
CY2019Q1 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
5700000 | |
CY2019Q1 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
5700000 | |
CY2019 | us-gaap |
Number Of Reportable Segments
NumberOfReportableSegments
|
2 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Remainder Of Fiscal Year
FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
|
2654000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
2625000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
2443000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
2229000 | |
CY2019Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
2149000 | |
CY2019Q4 | us-gaap |
Restricted Cash And Cash Equivalents
RestrictedCashAndCashEquivalents
|
0 | |
CY2018Q4 | us-gaap |
Restricted Cash And Cash Equivalents
RestrictedCashAndCashEquivalents
|
0 | |
CY2019Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations Repayments Of Principal In Next Twelve Months
LongTermDebtAndCapitalLeaseObligationsRepaymentsOfPrincipalInNextTwelveMonths
|
4575000 | |
CY2019Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations Maturities Repayments Of Principal In Year Two
LongTermDebtAndCapitalLeaseObligationsMaturitiesRepaymentsOfPrincipalInYearTwo
|
4956000 | |
CY2017 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
|
198000 | |
CY2019Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations Maturities Repayments Of Principal In Year Three
LongTermDebtAndCapitalLeaseObligationsMaturitiesRepaymentsOfPrincipalInYearThree
|
15989000 | |
CY2019Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations Maturities Repayments Of Principal In Year Four
LongTermDebtAndCapitalLeaseObligationsMaturitiesRepaymentsOfPrincipalInYearFour
|
0 | |
CY2019Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations Maturities Repayments Of Principal In Year Five
LongTermDebtAndCapitalLeaseObligationsMaturitiesRepaymentsOfPrincipalInYearFive
|
0 | |
CY2019Q4 | us-gaap |
Long Term Debt And Capital Lease Obligations
LongTermDebtAndCapitalLeaseObligations
|
25520000 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
|
2.95 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
1111000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable Current
OperatingLeasesFutureMinimumPaymentsReceivableCurrent
|
1615000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable In Two Years
OperatingLeasesFutureMinimumPaymentsReceivableInTwoYears
|
1144000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable In Three Years
OperatingLeasesFutureMinimumPaymentsReceivableInThreeYears
|
1118000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable In Four Years
OperatingLeasesFutureMinimumPaymentsReceivableInFourYears
|
1098000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable In Five Years
OperatingLeasesFutureMinimumPaymentsReceivableInFiveYears
|
288000 | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable Thereafter
OperatingLeasesFutureMinimumPaymentsReceivableThereafter
|
0 | |
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
522000 | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
|
529000 | |
CY2018 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
|
228000 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
4.95 | |
CY2018 | us-gaap |
Stockholders Equity Note Stock Split
StockholdersEquityNoteStockSplit
|
Two-for-one | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Available For Grant
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
|
217000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Award Vesting Period1
ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
|
P5Y | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Expiration Period
SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
|
P10Y | |
CY2019Q4 | us-gaap |
Share Price
SharePrice
|
11.07 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
9600000 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Aggregate Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
|
3000000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
44000 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
373000 | |
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 | |
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 | |
CY2017 | us-gaap |
Employee Service Share Based Compensation Tax Benefit From Compensation Expense
EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
|
141000 | |
CY2019Q4 | us-gaap |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized Stock Options
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
|
3000000 | |
CY2019 | us-gaap |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized Period For Recognition1
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
|
P3Y7M6D | |
CY2016Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
890000 | |
CY2016Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
2.80 | |
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
0 | |
CY2017 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
180000 | |
CY2017 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
0.43 | |
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
|
36000 | |
CY2017 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
|
2.90 | |
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 |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
6.72 | |
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 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
683000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
6.48 | |
CY2018Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
|
3.15 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.028 | |
CY2019 | 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 Dividend Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
|
0.000 | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.497 | |
CY2018 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Expected Volatility Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
|
0.506 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTax
|
-25000 | |
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 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
435000 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
5.52 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
4.25 | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P7Y10M24D | |
CY2019 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
|
P6Y8M12D | |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Fair Value Assumptions Risk Free Interest Rate
ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
|
0.024 | |
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 | |
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 | |
CY2017 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossBeforeReclassificationAndTax
|
10000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax
|
77000 | |
CY2017 | mhh |
Other Comprehensive Income Gain Loss Arising During The Period Before Reclassification And Tax
OtherComprehensiveIncomeGainLossArisingDuringThePeriodBeforeReclassificationAndTax
|
87000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Before Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax
|
-56000 | |
CY2017 | us-gaap |
Reclassification From Aoci Current Period Before Tax Attributable To Parent
ReclassificationFromAociCurrentPeriodBeforeTaxAttributableToParent
|
-56000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTax
|
-7000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Tax
OtherComprehensiveIncomeLossTax
|
-7000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax
|
14000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
24000 | |
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 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 Tax
OtherComprehensiveIncomeLossTax
|
-25000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax
|
71000 | |
CY2018 | us-gaap |
Other Comprehensive Income Loss Net Of Tax
OtherComprehensiveIncomeLossNetOfTax
|
-136000 | |
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 Cash Flow Hedge Gain Loss Before Reclassification And Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax
|
-181000 | |
CY2019 | mhh |
Other Comprehensive Income Gain Loss Arising During The Period Before Reclassification And Tax
OtherComprehensiveIncomeGainLossArisingDuringThePeriodBeforeReclassificationAndTax
|
-310000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss Reclassification Before Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationBeforeTax
|
32000 | |
CY2019 | us-gaap |
Reclassification From Aoci Current Period Before Tax Attributable To Parent
ReclassificationFromAociCurrentPeriodBeforeTaxAttributableToParent
|
32000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification Tax
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTax
|
39000 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Tax
OtherComprehensiveIncomeLossTax
|
39000 | |
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 | |
CY2019Q1 | us-gaap |
Revenues
Revenues
|
45199000 | |
CY2019Q1 | us-gaap |
Gross Profit
GrossProfit
|
10835000 | |
CY2019Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
964000 | |
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 | |
CY2018 | us-gaap |
Revenues
Revenues
|
177164000 | |
CY2018 | us-gaap |
Gross Profit
GrossProfit
|
42528000 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Transaction And Translation Reclassification Adjustment From Aoci Realized Upon Sale Or Liquidation Before Tax
OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationReclassificationAdjustmentFromAOCIRealizedUponSaleOrLiquidationBeforeTax
|
0 | |
CY2017 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
|
0 | |
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 |
Gross Profit
GrossProfit
|
12763000 | |
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 | |
CY2018Q1 | us-gaap |
Revenues
Revenues
|
43333000 | |
CY2018Q1 | us-gaap |
Gross Profit
GrossProfit
|
10261000 | |
CY2018Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1380000 | |
CY2018Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.13 | |
CY2018Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.12 | |
CY2018Q2 | us-gaap |
Revenues
Revenues
|
44894000 | |
CY2018Q2 | us-gaap |
Gross Profit
GrossProfit
|
10892000 | |
CY2018Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2817000 | |
CY2018Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.26 | |
CY2018Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.25 | |
CY2018Q3 | us-gaap |
Revenues
Revenues
|
44292000 | |
CY2018Q3 | us-gaap |
Gross Profit
GrossProfit
|
10710000 | |
CY2018Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1620000 | |
CY2018Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.15 | |
CY2018Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.14 | |
CY2018Q4 | us-gaap |
Revenues
Revenues
|
44645000 | |
CY2018Q4 | us-gaap |
Gross Profit
GrossProfit
|
10665000 | |
CY2018Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
874000 | |
CY2018Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.08 | |
CY2018Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.08 | |
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 Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
|
0 | |
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 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Foreign Currency Translation Adjustment Tax
OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax
|
0 | |
CY2018 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.61 | |
CY2017 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.16 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.99 | |
CY2018 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.60 | |
CY2017 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.16 | |
CY2019 | dei |
Entity Address State Or Province
EntityAddressStateOrProvince
|
PA | |
CY2019 | us-gaap |
Stockholders Equity Note Stock Split
StockholdersEquityNoteStockSplit
|
two-for-one | |
CY2019 | us-gaap |
Stock Repurchase Program Expiration Date
StockRepurchaseProgramExpirationDate
|
2016-12-22 | |
CY2019 | us-gaap |
Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
|
0 | |
CY2018 | us-gaap |
Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
|
0 | |
CY2017 | us-gaap |
Defined Contribution Plan Employer Discretionary Contribution Amount
DefinedContributionPlanEmployerDiscretionaryContributionAmount
|
0 | |
CY2019Q4 | us-gaap |
Lessee Operating Lease Term Of Contract
LesseeOperatingLeaseTermOfContract
|
P5Y | |
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 | |
CY2018Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
-197000 | |
CY2016Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
0 | |
CY2016Q4 | us-gaap |
Aoci Loss Cash Flow Hedge Cumulative Gain Loss After Tax
AociLossCashFlowHedgeCumulativeGainLossAfterTax
|
-7000 | |
CY2016Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-7000 | |
CY2018Q4 | us-gaap |
Aoci Loss Cash Flow Hedge Cumulative Gain Loss After Tax
AociLossCashFlowHedgeCumulativeGainLossAfterTax
|
78000 | |
CY2019Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Foreign Currency Translation Adjustment Net Of Tax
AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax
|
-326000 | |
CY2019Q4 | us-gaap |
Aoci Loss Cash Flow Hedge Cumulative Gain Loss After Tax
AociLossCashFlowHedgeCumulativeGainLossAfterTax
|
-32000 | |
CY2019 | mhh |
Business Combination Contingent Consideration Liability Cash Payments
BusinessCombinationContingentConsiderationLiabilityCashPayments
|
0 | |
CY2018 | mhh |
Business Combination Contingent Consideration Liability Cash Payments
BusinessCombinationContingentConsiderationLiabilityCashPayments
|
0 | |
CY2017 | mhh |
Business Combination Contingent Consideration Liability Cash Payments
BusinessCombinationContingentConsiderationLiabilityCashPayments
|
0 | |
CY2019Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Authorized
ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
|
3900000 | |
CY2019 | us-gaap |
Stockholders Equity Note Stock Split Conversion Ratio1
StockholdersEquityNoteStockSplitConversionRatio1
|
2 | |
CY2017 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Fair Value Assumptions Expected Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
|
P0Y | |
CY2019Q2 | dei |
Entity Public Float
EntityPublicFloat
|
13847000 | |
CY2019 | dei |
Entity Voluntary Filers
EntityVoluntaryFilers
|
No | |
CY2019Q4 | us-gaap |
Operating Leases Future Minimum Payments Receivable
OperatingLeasesFutureMinimumPaymentsReceivable
|
5263000 |