MHH · XBRL financial data
Mastech Digital financial statements, every fiscal year
The same tables from 6 filings, lined up. Matched by XBRL tag: renamed lines keep their history.
How these numbers work
- Every number comes from the company's XBRL financial data filed with the SEC, and each one links to its filing.
- Lines are matched by XBRL tag, so a line renamed between filings keeps its history.
- * marks a quarter worked out from the filing totals: the 10-K year minus the first three quarters, or a year-to-date total minus the earlier one. Fourth-quarter earnings per share is fourth-quarter net income over the fourth-quarter weighted shares.
- 0 means a filing states zero; a dash (—) means no filing states that number.
- “year only” means the 10-K gives the full year but not the quarters needed to work out the fourth. A worked-out quarter of revenue, cost of revenue or operating cash flow more than twice the company's largest quarter of the two years before is shown this way too.
- Gross profit is shown as the company reports it; a worked-out quarter must equal revenue less cost of revenue for that quarter, or it is a dash.
- Operating income can be above gross profit when the company books other operating income between the two, shown on its own line.
- Shares outstanding come from each filing's cover page, as of the date printed there.
- Quarters are fiscal: Q2 FY27 is the second quarter of the company's fiscal 2027.
Income statement
CSVFiscal years (MHH's year ends in late December)
| In thousands of dollars | Dec 31, 2020 | Dec 31, 2021 | Dec 31, 2022 | Dec 31, 2023 | Dec 31, 2024 | Dec 31, 2025 |
|---|---|---|---|---|---|---|
| Revenue | 194,101 | 222,012 | 242,238 | 201,098 | 198,943 | 191,371 |
| Revenue from contracts with customers | 194,101 | 222,012 | 242,238 | 201,098 | 198,943 | 191,371 |
| Cost of revenue | 142,562 | 162,568 | 179,055 | 150,062 | 143,346 | 138,315 |
| Gross profit | 51,539 | 59,444 | 63,183 | 51,036 | 55,597 | 53,056 |
| Selling, general and administrative | — | — | 50,984 | 60,311 | 51,806 | 53,055 |
| General and administrative | — | — | 17,912 | 22,050 | 21,170 | — |
| Total operating expenses | 38,136 | 41,834 | 50,984 | 60,311 | 9,427 | — |
| Operating income (loss) | 13,403 | 17,610 | 12,199 | (9,275) | 3,791 | 1 |
| Other income (expense) | 96 | (49) | 650 | (75) | 27 | 217 |
| Income tax expense (benefit) | 2,772 | 4,665 | 3,779 | (1,893) | 1,022 | 453 |
| Net income (loss) | 9,861 | 12,221 | 8,712 | (7,138) | 3,402 | 609 |
| Earnings per share, basic USD per share | 0.87 | 1.07 | 0.75 | (0.61) | 0.29 | 0.05 |
| Earnings per share, diluted USD per share | 0.83 | 1.02 | 0.72 | (0.61) | 0.28 | 0.05 |
| Weighted average shares, basic thousands of shares | 11,292 | 11,436 | 11,588 | 11,613 | 11,669 | 11,747 |
| Weighted average shares, diluted thousands of shares | 11,950 | 12,007 | 12,077 | 11,613 | 12,014 | 11,950 |
Balance sheet
CSVFiscal years (MHH's year ends in late December)
Cash flows
CSVFiscal years (MHH's year ends in late December)
| In thousands of dollars | Dec 31, 2020 | Dec 31, 2021 | Dec 31, 2022 | Dec 31, 2023 | Dec 31, 2024 | Dec 31, 2025 |
|---|---|---|---|---|---|---|
| Net income (loss) | 9,861 | 12,221 | 8,712 | (7,138) | 3,402 | 609 |
| Stock-based compensation | 2,021 | 2,212 | 2,225 | 3,082 | 2,200 | 3,118 |
| Net cash from operating activities | 21,231 | 5,216 | 12,615 | 15,978 | 7,192 | 11,135 |
| Purchases of property and equipment | 298 | 1,895 | 835 | 335 | 941 | 376 |
| Net cash from investing activities | (9,634) | (2,084) | (818) | (216) | (941) | (486) |
| Proceeds from issuing common stock | 222 | 301 | 263 | 204 | 223 | 91 |
| Net cash from financing activities | (6,714) | (4,093) | (10,414) | (1,578) | 654 | (1,126) |
| Net change in cash | 4,696 | (1,055) | 435 | 14,090 | 6,595 | 8,791 |
Compare with peers
SIC 8742 and related industry codes, similar size. Each row is the latest quarter reported.
How peers are chosen
- SIC 8742 and related industry codes with public float (or, where float is missing, quarterly revenue) between 0.2x and 5x the company's.
- Each row is the latest quarter the company has reported, named in the Quarter column; when that filing is a 10-K, it is the fourth quarter, never the full year.
- Runway shows only for companies burning cash with under $10B of public float.
- * marks a quarter worked out from the filing totals: for a 10-K, the year less the first three quarters; for a 10-Q, the year-to-date total less the earlier one.
- A cell reading “not reported” means the filings give no figure for that quarter alone.
| Company | Cash ($K) | Revenue, quarter ($K) | Operating cash flow, quarter ($K) | Shares outstanding | Runway | Quarter |
|---|---|---|---|---|---|---|
| Mastech Digital | 37,939 | 41,987 | 2,648* | 12.0M | — | 10-QSep 30, 2026 |
| Nordicus Partners | 5.8 | not reported | (160) | 19.4M | 0.0 quarters | 10-QJun 30, 2026 |
| CISO Global | 722 | 5,791 | (69)* | 45.5M | 10.5 quarters | 10-QJun 30, 2026 |
| GenFlat Holdings | 2,464 | 0* | (1,498)* | 13.1M | 1.6 quarters | 10-KJun 30, 2026 |
| T3 Defense | 4,085 | 3,996 | (4,864)* | 1.7M | 1.3 quarters | 10-QJun 30, 2026 |
| Pharma-Bio Serv | 1,518 | 2,336 | 61 | 22.9M | — | 10-QJul 31, 2026 |
| ACCESS Newswire | 2,962 | 5,618 | 173* | 3.8M | — | 10-QJun 30, 2026 |
| Panamera Holdings | 0 | 0 | (45)* | 79.9M | 0.0 quarters | 10-QApr 30, 2026 |
| RTB Digital | 492 | 2,328 | (3,104)* | 14.0M | 0.2 quarters | 10-Q/AJun 30, 2026 |
Not investment advice. Not affiliated with the U.S. SEC.