Hollow marker is the consensus estimate; filled is the reported figure, colored by beat or miss.
Outlined bar is the consensus estimate; solid is reported.
Periods without a consensus estimate or a reported figure show a dash.
| Period | EPS estimate | EPS actual | EPS surprise % | Revenue estimate | Revenue actual | Revenue surprise % |
|---|---|---|---|---|---|---|
| Q4 25 | -$0.47 | -$1.18 | -151.1% | — | $116M | — |
| Q3 25 | $0.67 | $0.56 | -16.4% | — | $162.5M | — |
| Q2 25 | $0.98 | $1.12 | +14.3% | — | $172.1M | — |
| Q1 25 | $0.65 | $1.4 | +115.4% | — | $164.2M | — |
| Q4 24 | -$0.07 | -$1.6 | -2185.7% | — | — | — |
Reported per-share earnings by fiscal year; the line turns dotted where reported figures end and the analyst consensus begins, with the shaded band marking the low–high range.
Reported revenue by fiscal year; the line turns dotted where reported figures end and the analyst consensus begins, with the shaded band marking the low–high range.
Periods without a consensus estimate or a reported figure show a dash.
| Period | EPS estimate | EPS actual | EPS surprise % | Revenue estimate | Revenue actual | Revenue surprise % |
|---|---|---|---|---|---|---|
| FY25 | — | — | — | — | $614.9M | — |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | FY25 |
|---|---|
| Revenue | $614.9M |
| YoY change | — |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | Q1 25 | Q2 25 | Q3 25 | Q4 25 |
|---|---|---|---|---|
| Revenue | $164.2M | $172.1M | $162.5M | $116M |
| YoY change | — | — | — | — |
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | FY25 |
|---|---|
| Revenue | 614.9M |
| Cost of revenue | 501.6M |
| Gross profit | 113.3M |
| Gross margin | 18.4% |
| Research & development | — |
| Selling, general & administrative | 64.4M |
| Operating expenses | 64.4M |
| Operating income | 41.2M |
| Operating margin | 6.7% |
| Non-operating income, net | -19.8M |
| Pretax income | 7M |
| Income tax | 2.3M |
| Net income | 4.7M |
| Net margin | 0.77% |
| EBITDA | 49.4M |
| EPS | — |
| Diluted EPS | — |
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | Q1 25 | Q2 25 | Q3 25 | Q4 25 |
|---|---|---|---|---|
| Revenue | 164.2M | 172.1M | 162.5M | 116M |
| Cost of revenue | 131.1M | 139.4M | 132.4M | 98.7M |
| Gross profit | 33.1M | 32.7M | 30.1M | 17.3M |
| Gross margin | 20.2% | 19% | 18.5% | 14.9% |
| Research & development | — | — | — | — |
| Selling, general & administrative | 13.4M | 15.1M | 16.4M | 19.4M |
| Operating expenses | 13.4M | 15.1M | 16.4M | 19.4M |
| Operating income | 17.8M | 15.7M | 11.8M | -4.1M |
| Operating margin | 10.8% | 9.15% | 7.25% | -3.55% |
| Non-operating income, net | -1.1M | 2.5M | 880K | -22M |
| Pretax income | 13.6M | 13.5M | 8.5M | -28.6M |
| Income tax | 1.5M | 1.2M | 3M | -3.4M |
| Net income | 12.2M | 12.3M | 5.5M | -25.3M |
| Net margin | 7.41% | 7.16% | 3.38% | -21.8% |
| EBITDA | 18.6M | 19.9M | 14.6M | -3.8M |
| EPS | 1.4 | 1.12 | 0.56 | — |
| Diluted EPS | 1.4 | 1.12 | 0.56 | — |
What the company owns (left stack) against what it owes plus shareholders' equity (right stack). The two stacks should match — that's the balance.
Click a row to chart it; unreported figures show a dash.
| Period | FY25 |
|---|---|
| Cash & short-term investments | 65.6M |
| Receivables | 639K |
| Inventory | — |
| Total current assets | 80.3M |
| Property, plant & equipment | 29.1M |
| Goodwill & intangibles | 19M |
| Total assets | 130.6M |
| Accounts payable | 10.7M |
| Short-term debt | 9.9M |
| Total current liabilities | 63.7M |
| Long-term debt | 55.5M |
| Total liabilities | 119.2M |
| Shareholders' equity | 11.4M |
| Total debt | 65.4M |
| Net debt | -268K |
What the company owns (left stack) against what it owes plus shareholders' equity (right stack). The two stacks should match — that's the balance.
Click a row to chart it; unreported figures show a dash.
| Period | Q1 25 | Q2 25 | Q3 25 | Q4 25 |
|---|---|---|---|---|
| Cash & short-term investments | 35M | 48M | 59.3M | 65.6M |
| Receivables | 147K | 38K | 1.5M | 639K |
| Inventory | — | — | — | — |
| Total current assets | 45.6M | 62.7M | 79.2M | 80.3M |
| Property, plant & equipment | 28M | 26.6M | 29.3M | 29.1M |
| Goodwill & intangibles | 21.3M | 20.6M | 19.8M | 19M |
| Total assets | 89.7M | 109.1M | 125.3M | 130.6M |
| Accounts payable | 9.2M | 10.1M | 9.9M | 10.7M |
| Short-term debt | 12.8M | 12.6M | 10.6M | 9.9M |
| Total current liabilities | 41.9M | 44.5M | 42.1M | 63.7M |
| Long-term debt | 49.6M | 59.2M | 61.5M | 55.5M |
| Total liabilities | 94.3M | 104.4M | 104.3M | 119.2M |
| Shareholders' equity | -4.6M | 4.7M | 21M | 11.4M |
| Total debt | 62.4M | 71.8M | 72.2M | 65.4M |
| Net debt | 27.4M | 23.8M | 12.9M | -268K |
Cash from operations, what's left after capex, and what went back to shareholders. Bars below the line are cash going out.
Click a row to chart it; unreported figures show a dash.
| Period | FY25 |
|---|---|
| Net income | 4.7M |
| Depreciation & amortization | 7.7M |
| Stock-based compensation | 4.9M |
| Change in working capital | -4.5M |
| Operating cash flow | 7.3M |
| Capital expenditure | -5.4M |
| Investing cash flow | -13.9M |
| Dividends paid | -10.1M |
| Share repurchases | 0 |
| Financing cash flow | 16.2M |
| Net change in cash | 9.6M |
| Free cash flow | 28.5M |
Cash from operations, what's left after capex, and what went back to shareholders. Bars below the line are cash going out.
Click a row to chart it; unreported figures show a dash.
| Period | Q4 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 |
|---|---|---|---|---|---|
| Net income | — | 12.2M | 12.3M | 5.5M | -25.3M |
| Depreciation & amortization | — | 1.9M | 1.9M | 1.9M | 2M |
| Stock-based compensation | — | 368K | 704K | 2.2M | 1.6M |
| Change in working capital | — | -2M | 707K | -3.6M | 375K |
| Operating cash flow | — | 12.6M | 12M | 9M | -26.3M |
| Capital expenditure | — | -385K | -301K | -4.1M | -634K |
| Investing cash flow | — | -8.2M | -950K | -4.1M | -634K |
| Dividends paid | — | -2.5M | -7.6M | 0 | 15K |
| Share repurchases | — | 0 | 0 | 0 | 0 |
| Financing cash flow | 10.2M | -2.5M | 4M | 8.8M | 6M |
| Net change in cash | 10.2M | 1.9M | 15M | 13.7M | -21M |
| Free cash flow | — | 15.9M | 9.8M | 2.5M | 311K |
Annual history by fiscal year; click a table row below to chart a different metric.
Current values are trailing twelve months where available, otherwise the latest fiscal year; unreported figures show a dash.
| Metric | FY25 | Current |
|---|---|---|
| Market cap | — | 909K |
| Enterprise value | — | 2.1M |
| Metric | FY25 | Current |
|---|---|---|
| P/S | — | 0.01 |
| P/B | — | 0.2 |
| EV/EBITDA | — | 0.04 |
| EV/Sales | — | 0 |
| FCF yield | — | 4.2K% |
| PEG | — | 8.2 |
| Metric | FY25 | Current |
|---|---|---|
| Gross margin | 18.4% | 14.9% |
| Operating margin | 6.7% | -3.55% |
| Net margin | 0.77% | -1% |
| ROE | 41.2% | -54.1% |
| ROA | 3.61% | 24.5% |
| ROIC | 248.8% | 248.8% |
| Return on tangible assets | 4.22% | 4.22% |
| Metric | FY25 | Current |
|---|---|---|
| Current ratio | 1.26 | 1.26 |
| Quick ratio | 1.26 | 1.26 |
| Debt / equity | 5.73 | 5.73 |
| Debt / assets | 0.5 | 0.5 |
| Net debt / EBITDA | -0.01 | -0.01 |
| Interest coverage | 1.49 | 1.49 |
| Effective tax rate | 32.7% | 32.7% |
| Metric | FY25 | Current |
|---|---|---|
| Revenue per share | — | 86 |
| EPS (diluted) | — | -0.86 |
| Book value per share | — | 2.44 |
| FCF per share | — | 3.65 |
| Cash per share | — | 5.9 |
| Metric | FY25 | Current |
|---|---|---|
| Capex / revenue | 0.88% | 0.88% |
| Capex / operating cash flow | 74.2% | 74.2% |
| Payout ratio | 214.5% | 0% |