XML 79 R65.htm IDEA: XBRL DOCUMENT
v3.23.1

Stock-Based Compensation - Summary of Information Regarding the Company's Outstanding and Exercisable Stock Options (Detail) - $ / shares | 12 Months Ended |  |  |
--- | --- | --- | --- | ---
Dec. 31, 2022 | Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Options Outstanding | 2,326,000 | 2,041,000 | 2,009,000 | 1,721,000
Weighted Average Remaining Contractual Life (in years) | 7 years 2 months 12 days |  |  |
Weighted Average Exercise Price | $ 11.38 | $ 10.66 | $ 9.4 | $ 5.52
Options Exercisable | 951,000 |  |  |
Weighted average remaining contractual life, options exercisable | 5 years 3 months 18 days |  |  |
Weighted average exercise price, options exercisable | $ 8.01 |  |  |
Range One [Member] |  |  |  |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Options Outstanding | 355,000 |  |  |
Lower range of exercise price | $ 0.01 |  |  |
Upper range of exercise price | $ 4 |  |  |
Weighted Average Remaining Contractual Life (in years) | 3 years 3 months 18 days |  |  |
Weighted Average Exercise Price | $ 3.56 |  |  |
Options Exercisable | 355,000 |  |  |
Range of exercise prices, minimum, options exercisable | $ 0.01 |  |  |
Range of exercise price, maximum, options exercisable | $ 4 |  |  |
Weighted average remaining contractual life, options exercisable | 3 years 3 months 18 days |  |  |
Weighted average exercise price, options exercisable | $ 3.56 |  |  |
Range Two [Member] |  |  |  |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Options Outstanding | 581,000 |  |  |
Lower range of exercise price | $ 4.01 |  |  |
Upper range of exercise price | $ 8 |  |  |
Weighted Average Remaining Contractual Life (in years) | 5 years 9 months 18 days |  |  |
Weighted Average Exercise Price | $ 6.83 |  |  |
Options Exercisable | 349,000 |  |  |
Range of exercise prices, minimum, options exercisable | $ 4.01 |  |  |
Range of exercise price, maximum, options exercisable | $ 8 |  |  |
Weighted average remaining contractual life, options exercisable | 5 years 9 months 18 days |  |  |
Weighted average exercise price, options exercisable | $ 6.85 |  |  |
Range Three [Member] |  |  |  |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Lower range of exercise price | 8.01 |  |  |
Upper range of exercise price | 12 |  |  |
Range of exercise prices, minimum, options exercisable | 8.01 |  |  |
Range of exercise price, maximum, options exercisable | $ 12 |  |  |
Range Four [Member] |  |  |  |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Options Outstanding | 1,149,000 |  |  |
Lower range of exercise price | $ 12.01 |  |  |
Upper range of exercise price | $ 16 |  |  |
Weighted Average Remaining Contractual Life (in years) | 8 years 9 months 18 days |  |  |
Weighted Average Exercise Price | $ 14.81 |  |  |
Options Exercisable | 179,000 |  |  |
Range of exercise prices, minimum, options exercisable | $ 12.01 |  |  |
Range of exercise price, maximum, options exercisable | $ 16 |  |  |
Weighted average remaining contractual life, options exercisable | 7 years 2 months 12 days |  |  |
Weighted average exercise price, options exercisable | $ 15.49 |  |  |
Range Five [Member] |  |  |  |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Options Outstanding | 241,000 |  |  |
Lower range of exercise price | $ 16.01 |  |  |
Upper range of exercise price | $ 20 |  |  |
Weighted Average Remaining Contractual Life (in years) | 8 years 9 months 18 days |  |  |
Weighted Average Exercise Price | $ 17.51 |  |  |
Options Exercisable | 68,000 |  |  |
Range of exercise prices, minimum, options exercisable | $ 16.01 |  |  |
Range of exercise price, maximum, options exercisable | $ 20 |  |  |
Weighted average remaining contractual life, options exercisable | 8 years 8 months 12 days |  |  |
Weighted average exercise price, options exercisable | $ 17.52 |  |  |

X
- Definition Share-based compensation arrangement by share-based payment award options exercisable, exercise price per share, maximum. + References No definition available. + Details
Name: | mhh_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableExercisePricePerShareMaximum
Namespace Prefix: | mhh_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Share-based compensation arrangement by share-based payment award options exercisable exercise price per share minimum. + References No definition available. + Details
Name: | mhh_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableExercisePricePerShareMinimum
Namespace Prefix: | mhh_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References No definition available. + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iii) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | instant

X
- Definition The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iii) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | instant

X
- Definition Number of options outstanding, including both vested and non-vested options. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1)(ii) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1)(i) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | instant

X
- Definition Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1)(ii) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1)(i) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | instant

X
- Definition The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (g) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (g) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (e)(1) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=mhh_RangeOneMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=mhh_RangeTwoMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=mhh_RangeThreeMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=mhh_RangeFourMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=mhh_RangeFiveMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |