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 % |
|---|---|---|---|---|---|---|
| Q2 26 | -$1.22 | -$0.55 | +54.9% | — | $74.8M | — |
| Q1 26 | -$0.04 | $0.69 | +1825.0% | — | $79M | — |
| Q4 25 | -$1.13 | -$0.06 | +94.7% | — | $73.9M | — |
| Q3 25 | -$0.21 | -$0.18 | +14.3% | — | $74M | — |
| Q2 25 | -$1.13 | -$1.18 | -4.4% | — | $71.9M | — |
| Q1 25 | -$0.72 | -$0.73 | -1.4% | — | $71.9M | — |
| Q4 24 | -$1.09 | -$1.77 | -62.4% | — | $63M | — |
| Q3 24 | — | -$1.28 | — | — | $60.3M | — |
| Q2 24 | -$1.31 | -$1.61 | -22.9% | — | $58.9M | — |
| Q1 24 | -$1.32 | -$0.13 | +90.2% | — | $65.1M | — |
| Q4 23 | -$1.79 | -$4.46 | -149.2% | — | $56.1M | — |
| Q3 23 | -$1.79 | -$0.71 | +60.3% | — | $54.8M | — |
| Q2 23 | -$2.25 | -$1.57 | +30.2% | — | $54.1M | — |
| Q1 23 | -$2.5 | -$2.25 | +10.0% | — | $55.1M | — |
| Q4 22 | -$3 | -$3.75 | -25.0% | — | $48.8M | — |
| Q3 22 | -$3 | -$2 | +33.3% | — | $50.3M | — |
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 | — | -$0.12 | — | — | $291.8M | — |
| FY24 | — | -$5.96 | — | — | $247.2M | — |
| FY23 | — | -$8.97 | — | — | $221.6M | — |
| FY22 | — | -$9.75 | — | — | $209.5M | — |
| FY21 | — |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|---|---|
| Revenue | $91.9M | $247.2M | $303.1M | $209.5M | $221.6M | $247.2M | $291.8M |
| YoY change | — | +169.1% | +22.6% | -30.9% | +5.77% | +11.6% | +18% |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | Q3 23 | Q4 23 |
|---|
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|---|---|
| Revenue | 91.9M | 247.2M | 303.1M | 209.5M | 221.6M | 247.2M | 291.8M |
| Cost of revenue | 71.2M | 167.4M | 214.1M | 172.1M | 179.9M | 201.4M | 240.2M |
| Gross profit | 20.7M | 79.8M | 89M | 37.4M | 41.7M | 45.8M | 51.6M |
| Gross margin | 22.5% | 32.3% | 29.4% | 17.9% | 18.8% | 18.5% | 17.7% |
| Research & development | — | — | — | — | — | — | — |
| Selling, general & administrative | 11.1M | 14.1M | 44.2M | 49.9M | 40.4M | 36.1M | 37.3M |
| Operating expenses | 20.9M | 26.8M | 59M | 65.5M | 53.5M | 50.2M | 51.3M |
| Operating income | -229K | 53M | 30M | -28.1M | -11.8M | -4.4M | 300K |
| Operating margin | -0.25% | 21.4% | 9.88% | -13.4% | -5.32% | -1.79% | 0.1% |
| Non-operating income, net | -10M | -16.4M | 8.3M | 6.1M | -8.6M | -3.6M | 21.7M |
| Pretax income | -18.8M | 23M | 21.7M | -40.5M | -36.5M | -25.8M | 1.7M |
| Income tax | 0 | 487K | 539K | -50K | 165K | 143K | 319K |
| Net income | -18.8M | 22.5M | 21.2M | -40.5M | -36.7M | -25.9M | 1.4M |
| Net margin | -20.5% | 9.11% | 7% | -19.3% | -16.5% | -10.5% | 0.47% |
| EBITDA | 46.9M | 164.4M | 173.9M | 89.9M | 116.8M | 137.7M | 193.6M |
| EPS | -4.85 | 5.82 | 7.75 | -9.75 | -8.97 | -5.96 | -0.12 |
| Diluted EPS | -4.85 | 5.82 | 6.5 | -9.75 | -8.97 | -5.96 | -0.12 |
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | 54.8M | 56.1M | 65.1M | 58.9M | 60.3M | 63M | 71.9M | 71.9M | 74M | 73.9M | 79M | 74.8M |
| Cost of revenue | 43.3M | 51.4M | 48.6M | 48.9M | 48.4M | 55.6M | 57.6M | 60.7M | 59.5M | 62.4M | 60.8M | 63.3M |
| Gross profit | 11.5M | 4.7M | 16.5M | 9.9M | 11.9M | 7.4M | 14.3M | 11.2M | 14.6M | 11.5M | 18.2M | 11.5M |
| Gross margin | 20.9% | 8.37% | 25.3% | 16.9% | 19.8% | 11.8% | 19.9% | 15.5% | 19.7% | 15.6% | 23% | 15.4% |
| Research & development | — | — | — | — | — | — | — | — | — | — | — | — |
| Selling, general & administrative | 8.9M | 8.6M | — | — | — | — | — | — | — | — | — | — |
| Operating expenses | 20.9M | 11.9M | 12.7M | 12.5M | 16.4M | -27.6M | 14.9M | 12.6M | 12.1M | -25.5M | 13.9M | 13.4M |
| Operating income | -440K | -7.2M | 3.8M | -2.6M | -4.4M | -1.2M | -536K | -1.4M | 2.5M | -217K | 4.3M | -1.9M |
| Operating margin | -0.8% | -12.9% | 5.84% | -4.45% | -7.37% | -1.85% | -0.75% | -1.96% | 3.33% | -0.29% | 5.49% | -2.58% |
| Non-operating income, net | 382K | -7M | -162K | 109K | 75K | -3.7M | -36K | -1M | -1.6M | 24.4M | 4.3M | 630K |
| Pretax income | -4M | -18.1M | -565K | -6.8M | -8.8M | -9.5M | -5.7M | -7.8M | -5M | 20.1M | 5.6M | -4.3M |
| Income tax | 19K | 112K | 5K | 61K | 47K | 30K | 29K | 61K | -50K | 279K | -44K | 73K |
| Net income | -4.1M | -18.2M | -570K | -6.9M | -8.9M | -9.6M | -5.7M | -7.8M | -4.9M | 19.8M | 5.7M | -4.4M |
| Net margin | -7.4% | -32.5% | -0.88% | -11.7% | -14.7% | -15.2% | -7.91% | -10.9% | -6.68% | 26.8% | 7.2% | -5.87% |
| EBITDA | 31.4M | 29.3M | 38.2M | 26.9M | 30.3M | 36.7M | 45.6M | 33.9M | 43.8M | 70.4M | 51.8M | 33.6M |
| EPS | -0.98 | -4.46 | -0.13 | -1.61 | -2.05 | -2.12 | -1.23 | -1.63 | -0.94 | 3.77 | 0.07 | -1.41 |
| Diluted EPS | -0.98 | -4.46 | -0.13 | -1.61 | -2.05 | -2.12 | -1.23 | -1.63 | -0.94 | 3.77 | 0.07 | -1.41 |
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 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Market cap | — | — | — | — | — | — | — | 392M |
| Enterprise value | — | — | — | — | — | — | — | 451.2M |
| Shares outstanding | 3.9M | 3.9M | 2.7M | 3.9M | 4.1M | 4.3M | 4.8M | 4.8M |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| P/E | — | — | — | — | — | — | — | 2.73 |
| P/S | — | — | — | — | — | — | — | 1.34 |
| P/B | — | — | — | — | — | — | — | -0.7 |
| EV/EBITDA | — | — | — | — | — | — | — | 2.33 |
| EV/Sales | — | — | — | — | — | — | — | 1.55 |
| Earnings yield | — | — | — | — | — | — | — | 36.6% |
| FCF yield | — | — | — | — | — | — | — | 75.9% |
| PEG | — | — | — | — | — | — | — | -0.2 |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Gross margin | 22.5% | 32.3% | 29.4% | 17.9% | 18.8% | 18.5% | 17.7% | 15.4% |
| Operating margin | -0.25% | 21.4% | 9.88% | -13.4% | -5.32% | -1.79% | 0.1% | 7.62% |
| Net margin | -20.5% | 9.11% | 7% | -19.3% | -16.5% | -10.5% | 0.47% | 17.7% |
| ROE | — | -2.4K% | 52% | 2K% | 131% | 55.4% | -3.58% | 1.46% |
| ROA | — | 16.1% | 12.8% | -31.1% | -36.4% | -27.8% | 1.27% | -0.52% |
| ROIC | — | 117.4% | 58.2% | -71.9% | -31.6% | -6.78% | 1.15% | 20% |
| Return on tangible assets | — | 16.2% | 12.9% | -32% | -37.8% | -29.1% | 1.32% | 16.3% |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Current ratio | — | 8.04 | 10.2 | 2.53 | 2.31 | 0.65 | 0.89 | 0.9 |
| Quick ratio | — | 8.04 | 10.2 | 2.53 | 2.31 | 0.65 | 0.89 | 0.9 |
| Debt / equity | — | -116.7 | 2.5 | -51.6 | -3.1 | -2.47 | -2.14 | -0.02 |
| Debt / assets | — | 0.79 | 0.61 | 0.82 | 0.86 | 1.24 | 0.76 | 0.75 |
| Net debt / EBITDA | — | 0.27 | 0.05 | 0.46 | 0.56 | 0.82 | 0.31 | 0.3 |
| Interest coverage | -1.19 | 2.69 | 2.32 | -1.1 | -1.05 | -0.37 | 1.08 | 2.01 |
| Effective tax rate | 0% | 2.12% | 2.48% | 0% | 0% | 0% | 18.9% | 1.57% |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Revenue per share | 23.7 | 63.8 | 110.6 | 53.3 | 54.2 | 56.9 | 61.4 | 61.4 |
| EPS (basic) | -4.85 | 5.82 | 7.75 | -9.75 | -8.97 | -5.96 | -0.12 | -0.12 |
| EPS (diluted) | -4.85 | 5.82 | 6.5 | -9.75 | -8.97 | -5.96 | -0.12 | 1.69 |
| Book value per share | — | -0.25 | 14.9 | -0.53 | -6.85 | -10.8 | -8.02 | -7.52 |
| FCF per share | -8.18 | -0.67 | 0.27 | -5.69 | -4.5 | -7.79 | -2.76 | -0.71 |
| Cash per share | — | 16.9 | 33.8 | 16.7 | 5.24 | 0.8 | 4.72 | 3.29 |
| Capex per share | 0.02 | 0.06 | 0.14 | 0.04 | 0 | 0.01 | 0.24 | 0.23 |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Capex / revenue | 0.09% | 0.09% | 0.13% | 0.08% | 0.01% | 0.02% | 0.39% | 0.41% |
| Capex / operating cash flow | -0.15% | -0.59% | 52.7% | -0.52% | -0.03% | -0.13% | -9.61% | -47.7% |
| Payout ratio | — | — | — | — | — | — | — | 0% |
| $7.75 |
| — |
| — |
| $303.1M |
| — |
| FY20 | — | $5.82 | — | — | $247.2M | — |
| FY19 | — | -$4.85 | — | — | $91.9M | — |
| Q1 24 |
|---|
| Q2 24 |
|---|
| Q3 24 |
|---|
| Q4 24 |
|---|
| Q1 25 |
|---|
| Q2 25 |
|---|
| Q3 25 |
|---|
| Q4 25 |
|---|
| Q1 26 |
|---|
| Q2 26 |
|---|
| Revenue | $54.8M | $56.1M | $65.1M | $58.9M | $60.3M | $63M | $71.9M | $71.9M | $74M | $73.9M | $79M | $74.8M |
| YoY change | +8.88% | +14.8% | +18.1% | +8.73% | +10% | +12.3% | +10.6% | +22.1% | +22.8% | +17.3% | +9.83% | +4% |
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 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|---|
| Cash & short-term investments | 65.6M | 92.5M | 65.4M | 21.4M | 3.5M | 22.4M |
| Receivables | 1.6M | 2M | 0 | — | — | — |
| Inventory | — | — | — | — | — | — |
| Total current assets | 139.2M | 164.4M | 126.8M | 97.6M | 90.4M | 105.2M |
| Property, plant & equipment | 330K | 576K | 1.3M | 1.2M | 636K | 502K |
| Goodwill & intangibles | 376K | 2.1M | 3.7M | 3.8M | 4.2M | 4.2M |
| Total assets | 139.8M | 166.2M | 130.1M | 100.9M | 93.2M | 107.9M |
| Accounts payable | 1.7M | 2M | 1.3M | 903K | 1.5M | 1.9M |
| Short-term debt | — | — | 25.4M | 297K | 115.3M | 81.2M |
| Total current liabilities | 17.3M | 16.1M | 50.1M | 42.3M | 138.7M | 117.6M |
| Long-term debt | 110.7M | 101.9M | 81.1M | 86.5M | 444K | 392K |
| Total liabilities | 140.8M | 125.4M | 132.1M | 128.9M | 140M | 145.9M |
| Shareholders' equity | -949K | 40.8M | -2.1M | -28M | -46.8M | -38.1M |
| Total debt | 110.7M | 101.9M | 106.5M | 86.8M | 115.7M | 81.6M |
| Net debt | 45.1M | 9.4M | 41.1M | 65.4M | 112.2M | 59.2M |
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 | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cash & short-term investments | 32.2M | 21.4M | 31.2M | 33.7M | 25.9M | 3.5M | 6M | 3.7M | 3.4M | 22.4M | 22.3M | 18M |
| Receivables | — | — | — | — | — | — | — | — | — | — | — | — |
| Inventory | — | — | — | — | — | — | — | — | — | — | — | — |
| Total current assets | 99.2M | 97.6M | 103.6M | 103.8M | 89.5M | 90.4M | 85.7M | 87.8M | 83.1M | 105.2M | 101.3M | 98.8M |
| Property, plant & equipment | 925K | 1.2M | 1.1M | 1M | 632K | 636K | 620K | 573K | 537K | 502K | 470K | 448K |
| Goodwill & intangibles | 4.1M | 3.8M | 3.6M | 1.8M | 1.7M | 4.2M | 2.2M | 2.1M | 2.2M | 4.2M | 2.2M | 2.8M |
| Total assets | 102.3M | 100.9M | 106.6M | 106.6M | 92M | 93.2M | 88.5M | 90.6M | 85.9M | 107.9M | 104M | 102M |
| Accounts payable | 735K | 903K | 1.7M | 1.5M | 912K | 1.5M | 3M | 2.5M | 3M | 1.9M | 4.3M | 4.5M |
| Short-term debt | 297K | 297K | 334K | 100.3M | 98.5M | 115.3M | 112.2M | 111.4M | 112.4M | 81.2M | 75.4M | 76.6M |
| Total current liabilities | 18.9M | 42.3M | 39.2M | 139M | 131M | 138.7M | 139.2M | 143.9M | 143.8M | 117.6M | 107.6M | 109.8M |
| Long-term debt | 85.2M | 86.5M | 94.7M | 431K | 416K | 444K | 431K | 418K | 405K | 392K | 377K | 362K |
| Total liabilities | 104.2M | 128.9M | 134.1M | 139.6M | 132.2M | 140M | 140.2M | 144.6M | 144.3M | 145.9M | 135.9M | 138M |
| Shareholders' equity | -1.9M | -28M | -27.5M | -32.9M | -40.3M | -46.8M | -51.7M | -54.1M | -58.4M | -38.1M | -31.9M | -36M |
| Total debt | 85.5M | 86.8M | 95M | 100.8M | 98.9M | 115.7M | 112.6M | 111.8M | 112.8M | 81.6M | 75.8M | 77M |
| Net debt | 53.3M | 65.4M | 63.8M | 67M | 73M | 112.2M | 106.7M | 108.2M | 109.4M | 59.2M | 53.4M | 58.9M |
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 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|---|---|
| Net income | -18.8M | 22.5M | 21.2M | -40.5M | -36.7M | -25.9M | 1.4M |
| Depreciation & amortization | 47.1M | 111.4M | 144M | 117.2M | 126.9M | 141M | 193.1M |
| Stock-based compensation | 315K | 351K | 13M | 6.4M | 7M | 5.8M | 3.7M |
| Change in working capital | -96.4M | -206.2M | -227.7M | -153M | -188.7M | -196M | -235.7M |
| Operating cash flow | -54.6M | -40M | 729K | -32.2M | -61M | -41.4M | -11.9M |
| Capital expenditure | -82K | -234K | -384K | -168K | -20K | -54K | -1.1M |
| Investing cash flow | 91K | -200K | -384K | -168K | -20K | -54K | -1.1M |
| Dividends paid | — | — | — | — | — | — | — |
| Share repurchases | — | — | 0 | -344K | -355K | -613K | -594K |
| Financing cash flow | 40.8M | 55M | 12M | -4.3M | -22.6M | 21.4M | 20M |
| Net change in cash | -13.8M | 14.8M | 12.3M | -36.7M | -83.7M | -20M | 7M |
| Free cash flow | -31.7M | -2.6M | 730K | -22.4M | -18.4M | -33.9M | -13.1M |
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 | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net income | -4.1M | -18.2M | -570K | -6.9M | -8.9M | -9.6M | -5.7M | -7.8M | -4.9M | 19.8M | 5.7M | -4.4M |
| Depreciation & amortization | 31.5M | 36.2M | 34.1M | 29.1M | 34.4M | 37.7M | 46.1M | 35.2M | 41.3M | 70.5M | 47.3M | 35.4M |
| Stock-based compensation | 1.4M | 1.4M | 1.4M | 1.6M | 1.5M | 1.3M | 1.1M | 864K | 801K | 962K | 546K | 312K |
| Change in working capital | -41.2M | -56.1M | -44.3M | -46.8M | -45M | -64.9M | -52.8M | -61.5M | -54.1M | -67.4M | -48.8M | -62.1M |
| Operating cash flow | -5.4M | -28.9M | -724K | -14.7M | -10.1M | -26.6M | -138K | -6.6M | 4M | -12.7M | 12.2M | -6.1M |
| Capital expenditure | -10K | -10K | 0 | -25K | -11K | -18K | -24K | -259K | -297K | -214K | -376K | -354K |
| Investing cash flow | -10K | -10K | 0 | -25K | -11K | -18K | -24K | -259K | -297K | -214K | -376K | -354K |
| Dividends paid | — | — | — | — | — | — | — | — | — | — | — | — |
| Share repurchases | -71K | -38K | -312K | -145K | -105K | -51K | -271K | -90K | -170K | -63K | -76K | -32K |
| Financing cash flow | -3.3M | -154K | 6.9M | 1.6M | -2.5M | 15.4M | -5.3M | 2.8M | -3.7M | -37.6M | -7.2M | 2.4M |
| Net change in cash | -8.7M | -29M | 6.2M | -13.1M | -12.6M | -11.2M | -5.4M | -4.1M | -38K | -50.5M | 4.6M | -4M |
| Free cash flow | 587K | -9.9M | 1.9M | -839K | -5.7M | -29.1M | 3M | -6.9M | 3.7M | -12.9M | 11.8M | -6.4M |