GHM · XBRL financial data
Graham 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 (GHM's year ends in late March)
| In thousands of dollars | Mar 31, 2021 | Mar 31, 2022 | Mar 31, 2023 | Mar 31, 2024 | Mar 31, 2025 | Mar 31, 2026 |
|---|---|---|---|---|---|---|
| Revenue from contracts with customers | 97,489 | 122,814 | 157,118 | 185,533 | 209,896 | 245,293 |
| Cost of goods and services sold | 77,020 | 113,685 | 131,710 | 144,948 | 157,035 | 187,543 |
| Gross profit | 20,469 | 9,129 | 25,408 | 40,585 | 52,861 | 57,750 |
| Research and development | 3,367 | 3,845 | 4,144 | 3,944 | 4,039 | 6,354 |
| Selling, general and administrative | 17,471 | 20,386 | 23,063 | 32,217 | 37,143 | 41,562 |
| Other operating income (expense) | — | 827 | 0 | (80) | 1,215 | 621 |
| Operating income (loss) | 2,998 | (11,343) | 1,250 | 6,922 | 15,188 | 15,017 |
| Interest income | 167 | 50 | 129 | — | — | — |
| Interest expense | 11 | 450 | 1,068 | 248 | (583) | (257) |
| Income tax expense (benefit) | 893 | (2,443) | 194 | 1,018 | 3,177 | 2,260 |
| Net income (loss) | 2,374 | (8,773) | 367 | 4,556 | 12,230 | 12,500 |
| Earnings per share, basic USD per share | 0.24 | (0.83) | 0.03 | 0.42 | 1.12 | 1.14 |
| Earnings per share, diluted USD per share | 0.24 | (0.83) | 0.03 | 0.42 | 1.11 | 1.12 |
| Weighted average shares, basic thousands of shares | 9,959 | 10,541 | 10,614 | 10,743 | 10,884 | 10,988 |
| Weighted average shares, diluted thousands of shares | 9,959 | 10,541 | 10,654 | 10,844 | 11,066 | 11,138 |
Balance sheet
CSVFiscal years (GHM's year ends in late March)
Cash flows
CSVFiscal years (GHM's year ends in late March)
| In thousands of dollars | Mar 31, 2021 | Mar 31, 2022 | Mar 31, 2023 | Mar 31, 2024 | Mar 31, 2025 | Mar 31, 2026 |
|---|---|---|---|---|---|---|
| Net income (loss) | 2,374 | (8,773) | 367 | 4,556 | 12,230 | 12,500 |
| Stock-based compensation | 864 | 809 | 806 | 1,279 | 1,957 | 2,131 |
| Net cash from operating activities | (1,722) | (2,219) | 13,914 | 28,120 | 24,316 | 15,933 |
| Purchases of property and equipment | 2,158 | 2,324 | 3,749 | 9,226 | 18,957 | 16,054 |
| Net cash from investing activities | 32,397 | (57,106) | (3,749) | (15,994) | (19,127) | (43,065) |
| Proceeds from issuing common stock | — | 0 | 0 | 476 | 653 | 832 |
| Share repurchases | 23 | 41 | 21 | 58 | 854 | — |
| Dividends paid | 4,391 | 3,523 | 0 | 0 | — | — |
| Proceeds from long-term debt | 4,599 | 58,250 | 5,000 | 13,000 | 0 | 33,000 |
| Repayments of long-term debt | 4,599 | 39,750 | 11,000 | 25,500 | 0 | 20,000 |
| Net cash from financing activities | (4,454) | 14,419 | (6,441) | (13,391) | (521) | 11,956 |
| Net change in cash | 26,577 | (44,791) | 3,516 | (1,318) | 4,638 | (14,997) |
Compare with peers
SIC 3560 and related industry codes, similar size. Each row is the latest quarter reported.
How peers are chosen
- SIC 3560 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-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 |
|---|---|---|---|---|---|---|
| Graham | 71,427 | 69,760 | 46,720* | 11.7M | — | 10-QSep 30, 2026 |
| Serve Robotics | 79,112 | 3,238 | (43,316)* | 86.7M | 5.4 quarters | 10-QJun 30, 2026 |
| Gorman Rupp | 59,302 | 193,254 | 52,448* | 26.4M | — | 10-QSep 30, 2026 |
| Churchill Capital Corp XI | 1,253 | not reported | (158)* | not reported | 7.9 quarters | 10-QJun 30, 2026 |
| CECO Environmental | 61,066 | 0* | (19,326)* | 58.6M | 3.2 quarters | 10-QJun 30, 2026 |
| Symbotic | 1,746,446 | 720,838 | (147,297)* | 603.9M | 11.9 quarters | 10-QJun 27, 2026 |
| Ouster | 88,899 | 59,325 | (29,349)* | 73.0M | 20.9 quarters | 10-QSep 30, 2026 |
| Twin Disc | 26,728 | 88,745 | 11,532 | 14.5M | — | 10-QSep 25, 2026 |
| Perma-Pipe International Holdings | 31,778 | 59,567 | 7,237* | 8.2M | — | 10-QJul 31, 2026 |
Not investment advice. Not affiliated with the U.S. SEC.
