MG · XBRL financial data
Mistras Group financial statements, every fiscal year
The same tables from 7 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 (MG'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 from contracts with customers | 592,571 | 677,131 | 687,373 | 705,473 | 729,640 | 724,024 |
| Gross profit | 178,531 | 197,147 | 198,173 | 203,807 | 213,109 | 204,511 |
| Research and development | 2,892 | 2,518 | 1,994 | 1,723 | 1,119 | 1,028 |
| Selling, general and administrative | 156,937 | 161,334 | 166,595 | 166,749 | 156,388 | 139,876 |
| Operating income (loss) | (101,217) | 18,170 | 19,799 | (1,904) | 39,826 | 40,572 |
| Interest expense | 12,955 | 10,882 | 10,505 | 16,761 | 17,067 | 14,643 |
| Other income (expense) | — | — | — | 0 | 1,485 | (3,451) |
| Income tax expense (benefit) | (14,706) | 3,395 | 2,720 | (1,220) | 5,274 | 5,557 |
| Net income (loss) | (99,461) | 3,860 | 6,499 | (17,453) | 18,958 | 16,837 |
| Earnings per share, basic USD per share | (3.41) | 0.13 | 0.22 | (0.58) | 0.61 | 0.54 |
| Earnings per share, diluted USD per share | (3.41) | 0.13 | 0.21 | (0.58) | 0.60 | 0.53 |
| Weighted average shares, basic thousands of shares | 29,147 | 29,572 | 29,901 | 30,330 | 30,926 | 31,408 |
| Weighted average shares, diluted thousands of shares | 29,147 | 30,130 | 30,229 | 30,330 | 31,608 | 32,058 |
Balance sheet
CSVFiscal years (MG's year ends in late December)
Cash flows
CSVFiscal years (MG'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) | (99,461) | 3,860 | 6,499 | (17,453) | 18,958 | 16,837 |
| Stock-based compensation | 5,851 | 5,421 | 5,335 | 5,712 | 5,072 | 7,785 |
| Depreciation and amortization | 35,705 | 34,921 | 33,294 | 34,099 | 33,010 | 31,008 |
| Net cash from operating activities | 67,802 | 42,261 | 26,406 | 26,748 | 50,129 | 32,981 |
| Purchases of property and equipment | 15,396 | 18,161 | 12,591 | 20,854 | 17,902 | 24,674 |
| Net cash from investing activities | (14,969) | (18,551) | (12,238) | (22,133) | (21,366) | (25,122) |
| Proceeds from long-term debt | 2,284 | 0 | 125,000 | 611 | 0 | 0 |
| Repayments of long-term debt | 5,976 | 16,262 | 81,405 | 7,598 | 9,096 | 11,913 |
| Net cash from financing activities | (44,169) | (23,245) | (16,323) | (7,706) | (27,398) | (595) |
| Net change in cash | 10,744 | (1,650) | (3,622) | (2,842) | 671 | 9,691 |
Compare with peers
SIC 8711 and related industry codes, similar size; rows marked “added: same SIC” fill a short list. Each row is the latest quarter reported.
How peers are chosen
- SIC 8711 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.
- Fewer than three companies fall in that range, so the list adds same-SIC (8711) companies nearest in public float, each marked “added: same SIC”.
- 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-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.
- A cell reading “year only” links to a 10-K that gives only the full year: without all three earlier quarters there is no fourth quarter to work out, and the year total is never shown as a quarter.
| Company | Cash ($K) | Revenue, quarter ($K) | Operating cash flow, quarter ($K) | Shares outstanding | Runway | Quarter |
|---|---|---|---|---|---|---|
| Mistras Group | 18,987 | 204,621 | 11,718* | 31.9M | — | 10-QSep 30, 2026 |
| Willdan Groupadded: same SIC | 34,870 | 231,028 | 43,880* | 15.2M | — | 10-QJul 3, 2026 |
| Acorn Energyadded: same SIC | 4,478 | 2,489 | 224* | 2.5M | — | 10-QJun 30, 2026 |
| Vseadded: same SIC | 75,360 | 449,137 | 27,557* | 28.1M | — | 10-QJun 30, 2026 |
| HyOrcadded: same SIC | 54 | 24 | (414)* | 758.0M | 0.1 quarters | 10-QJun 30, 2026 |
| OFA Groupadded: same SIC | 178 | 15 | (1,332) | not reported | 0.1 quarters | 10-QJun 30, 2026 |
| Tetra Techadded: same SIC | 230,835 | 1,308,555 | 228,942* | 256.0M | — | 10-QJun 28, 2026 |
| Aecomadded: same SIC | 1,012,932 | 3,586,067 | not reported | 128.7M | — | 10-QJul 3, 2026 |
| Julong Holdingadded: same SIC | 62,247 | year only | year only | 21.4M | — | 20-FSep 30, 2025 |
Not investment advice. Not affiliated with the U.S. SEC.