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 23 | — | -$0.04 | — | — | — | — |
| Q1 23 | — | -$0.02 | — | — | — | — |
| Q4 22 | — | $0.01 | — | — | — | — |
| Q3 22 | $0.02 | -$0.01 | -150.0% | — | — | — |
| Q2 22 | $0.02 | -$0.04 | -300.0% | — | — | — |
| Q1 22 | $0.03 | $0.07 | +133.3% | — | $12.4M | — |
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.05 | — | — | $142.4M | — |
| FY24 | — | $0.02 | — | — | $138.3M | — |
| FY23 | — | -$0.07 | — | — | $132.1M | — |
| FY22 | — | -$0.04 | — | — | $95.9M | — |
| FY21 | — | $0.14 | — | — |
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 | $26.6M | $38.7M | $62.8M | $95.9M | $132.1M | $138.3M | $142.4M |
| YoY change | — | +45.5% | +62.4% | +52.8% | +37.7% | +4.64% | +3.03% |
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 | 26.6M | 38.7M | 62.8M | 95.9M | 132.1M | 138.3M | 142.4M |
| Cost of revenue | 14.1M | 16.5M | 28M | 46.9M | 65.6M | 66.2M | 67.8M |
| Gross profit | 12.4M | 22.2M | 34.8M | 49M | 66.5M | 72M | 74.6M |
| Gross margin | 46.8% | 57.4% | 55.4% | 51.1% | 50.3% | 52.1% | 52.4% |
| Research & development | — | — | — | — | — | — | — |
| Selling, general & administrative | 12.6M | 18.2M | 29.2M | 50.9M | 69.5M | 71.3M | 72.2M |
| Operating expenses | 12.6M | 18.2M | 29.2M | 50.9M | 69.5M | 71.3M | 72.2M |
| Operating income | -391.7K | 3.8M | 5.5M | -1.9M | -3M | 730.9K | 2.5M |
| Operating margin | -1.47% | 9.94% | 8.72% | -2% | -2.27% | 0.53% | 1.73% |
| Non-operating income, net | 19K | 28.1K | 75.3K | 120.5K | 91.7K | 478.2K | 120.9K |
| Pretax income | -424.6K | 3.8M | 5.5M | -1.9M | -3.2M | 959.6K | 2.4M |
| Income tax | 0 | 0 | 709.2K | -462.2K | -730.8K | 302.1K | 692.7K |
| Net income | -424.6K | 3.8M | 4.8M | -1.5M | -2.4M | 657.4K | 1.7M |
| Net margin | -1.6% | 9.9% | 7.62% | -1.54% | -1.84% | 0.48% | 1.2% |
| EBITDA | -372.8K | 3.9M | 5.5M | -1.7M | -2.8M | 1.3M | 2.6M |
| EPS | -0.01 | 0.11 | 0.14 | -0.04 | -0.07 | 0.02 | 0.05 |
| Diluted EPS | -0.01 | 0.11 | 0.14 | -0.04 | -0.07 | 0.02 | 0.05 |
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 | — | — | — | — | — | — | — | — | 33.4M | 56.1M | 29.9M | 33.9M |
| Cost of revenue | — | — | — | — | — | — | — | — | 16.2M | 28.3M | 13.9M | 16M |
| Gross profit | — | — | — | — | — | — | — | — | 17.2M | 27.8M | 16M | 18M |
| Gross margin | — | — | — | — | — | — | — | — | 51.4% | 49.6% | 53.5% | 52.9% |
| Research & development | — | — | — | — | — | — | — | — | — | — | — | — |
| Selling, general & administrative | — | — | — | — | — | — | — | — | 16.4M | 28.6M | 14.9M | 16.7M |
| Operating expenses | — | — | — | — | — | — | — | — | 16.4M | 28.6M | 14.9M | 16.7M |
| Operating income | — | — | — | — | — | — | — | — | 742K | -822.8K | 1.1M | 1.3M |
| Operating margin | — | — | — | — | — | — | — | — | 2.22% | -1.47% | 3.82% | 3.78% |
| Non-operating income, net | — | — | — | — | — | — | — | — | 14.4K | 38.8K | 24.9K | 19.6K |
| Pretax income | — | — | — | — | — | — | — | — | 713.9K | -835K | 1.1M | 1.3M |
| Income tax | — | — | — | — | — | — | — | — | 183.3K | -177.7K | 309.7K | 206K |
| Net income | — | — | — | — | — | — | — | — | 530.6K | -657.3K | 823.5K | 1.1M |
| Net margin | — | — | — | — | — | — | — | — | 1.59% | -1.17% | 2.75% | 3.1% |
| EBITDA | — | — | — | — | — | — | — | — | 783.3K | -784K | 1.2M | 1.3M |
| EPS | -0 | — | 0.03 | 0.02 | 0.01 | — | 0.02 | 0.04 | 0.01 | — | 0.02 | 0.03 |
| Diluted EPS | -0 | — | 0.03 | 0.02 | 0.01 | — | 0.02 | 0.04 | 0.01 | — | 0.02 | 0.03 |
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 | — | — | — | 91.3M | 48.5M | 79M | 63.3M | 67.4M |
| Enterprise value | — | — | — | 92M | 51M | 77.6M | 60.3M | 70.6M |
| Shares outstanding | 34.8M | 34.8M | 34.8M | 35M | 35.1M | 35.1M | 35.2M | 35.2M |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| P/E | — | — | — | — | — | 120.2 | 37.1 | 47.9 |
| P/S | — | — | — | 0.95 | 0.37 | 0.57 | 0.44 | 0.44 |
| P/B | — | — | — | 13.4 | 10.9 | 15.3 | 9.05 | 7.6 |
| EV/EBITDA | — | — | — | -53.6 | -18.4 | 58.4 | 23 | 29.6 |
| EV/Sales | — | — | — | 0.96 | 0.39 | 0.56 | 0.42 | 0.46 |
| Earnings yield | — | — | — | — | — | 0.83% | 2.69% | 2.09% |
| FCF yield | — | — | — | -13.1% | -4.28% | 0.35% | 3.95% | -0.71% |
| PEG | — | — | — | — | — | — | — | -1.92 |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Gross margin | 46.8% | 57.4% | 55.4% | 51.1% | 50.3% | 52.1% | 52.4% | 52.9% |
| Operating margin | -1.47% | 9.94% | 8.72% | -2% | -2.27% | 0.53% | 1.73% | 3.78% |
| Net margin | -1.6% | 9.9% | 7.62% | -1.54% | -1.84% | 0.48% | 1.2% | 1.14% |
| ROE | -119.5% | 91.6% | 180.2% | -21.6% | -54.6% | 12.7% | 24.4% | 21.8% |
| ROA | -8.99% | 38.8% | 25.4% | -5.74% | -12.4% | 3.29% | 7.16% | 5.97% |
| ROIC | -131% | -542% | -60.1% | -25.4% | -43.7% | 13.3% | 43.6% | 20.9% |
| Return on tangible assets | -8.99% | 38.8% | 25.4% | -5.74% | -12.4% | 3.29% | 7.16% | 6.68% |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Current ratio | 1.22 | 1.72 | 1.16 | 1.67 | 1.65 | 1.27 | 1.37 | 1.49 |
| Quick ratio | 0.26 | 0.95 | 0.72 | 0.39 | 0.34 | 0.28 | 0.28 | 0.28 |
| Debt / equity | 2.2 | 0.02 | 0 | 0.77 | 1.1 | 0.14 | 0.12 | 0.47 |
| Debt / assets | 0.17 | 0.01 | 0 | 0.2 | 0.25 | 0.04 | 0.03 | 0.03 |
| Net debt / EBITDA | 0.15 | -1.26 | -1.91 | -0.41 | -0.87 | -1.05 | -1.14 | -0.09 |
| Interest coverage | -7.2 | 89.4 | 98.2 | -12.4 | -11.7 | 4.84 | 14 | 14.1 |
| Effective tax rate | 0% | 0% | 12.9% | 0% | 0% | 31.5% | 28.9% | 23% |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Revenue per share | 0.76 | 1.11 | 1.8 | 2.74 | 3.77 | 3.94 | 4.05 | 4.36 |
| EPS (basic) | -0.01 | 0.11 | 0.14 | -0.04 | -0.07 | 0.02 | 0.05 | 0.05 |
| EPS (diluted) | -0.01 | 0.11 | 0.14 | -0.04 | -0.07 | 0.02 | 0.05 | 0.04 |
| Book value per share | 0.01 | 0.12 | 0.08 | 0.2 | 0.13 | 0.15 | 0.2 | 0.25 |
| FCF per share | -0.01 | 0.11 | 0.22 | -0.34 | -0.06 | 0.01 | 0.07 | -0 |
| Cash per share | 0.02 | 0.14 | 0.3 | 0.13 | 0.07 | 0.06 | 0.11 | 0.03 |
| Capex per share | — | 0 | 0 | 0.01 | 0 | 0 | — | — |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Capex / revenue | — | 0% | 0.03% | 0.35% | 0.01% | 0.03% | — | — |
| Capex / operating cash flow | — | 0% | 0.18% | -2.52% | -0.62% | -9.84% | — | — |
| Payout ratio | 0% | 0.02% | 44.6% | 0% | — | — | — | 0% |
| Dividend yield | — | — | — | 0% | — | — | — | — |
| $62.8M |
| — |
| FY20 | — | $0.11 | — | — | $38.7M | — |
| FY19 | — | -$0.01 | — | — | $26.6M | — |
| Q1 24 |
|---|
| Q2 24 |
|---|
| Q3 24 |
|---|
| Q4 24 |
|---|
| Q1 25 |
|---|
| Q2 25 |
|---|
| Q3 25 |
|---|
| Q4 25 |
|---|
| Q1 26 |
|---|
| Q2 26 |
|---|
| Revenue | — | — | — | — | — | — | — | — | $33.4M | $56.1M | $29.9M | $33.9M |
| YoY change | — | — | — | — | — | — | — | — | — | — | — | — |
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 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|---|---|
| Cash & short-term investments | 839K | 5M | 10.6M | 4.6M | 2.5M | 2.1M | 3.8M |
| Receivables | 127.2K | 216.7K | 126K | 352.4K | 747.6K | 1.7M | 236K |
| Inventory | 3.6M | 4.4M | 7M | 18.8M | 14.3M | 14.6M | 18.3M |
| Total current assets | 4.6M | 9.7M | 18.7M | 24.5M | 18M | 18.7M | 22.9M |
| Property, plant & equipment | 109.7K | 99.5K | 45.8K | 627.8K | 148.8K | 168.2K | 265.3K |
| Goodwill & intangibles | — | — | — | — | — | — | — |
| Total assets | 4.7M | 9.8M | 18.8M | 25.7M | 19.6M | 20M | 23.8M |
| Accounts payable | 2.8M | 3.2M | 9.5M | 6.7M | 3.8M | 4.2M | 6.2M |
| Short-term debt | 202.7K | 78.5K | — | 1M | 734.7K | 725.5K | 729.7K |
| Total current liabilities | 3.8M | 5.7M | 16.2M | 14.7M | 10.9M | 14.8M | 16.7M |
| Long-term debt | 580K | 6.1K | 0 | 4.2M | 4.2M | 0 | 83.3K |
| Total liabilities | 4.4M | 5.7M | 16.2M | 18.9M | 15.1M | 14.8M | 16.8M |
| Shareholders' equity | 355.2K | 4.2M | 2.7M | 6.8M | 4.5M | 5.2M | 7M |
| Total debt | 782.7K | 84.5K | 0 | 5.3M | 4.9M | 725.5K | 813K |
| Net debt | -56.2K | -4.9M | -10.6M | 710.3K | 2.4M | -1.4M | -3M |
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 | 562.6K | 2.5M | 2.9M | 3.3M | 1.2M | 2.1M | 1.3M | 325.4K | 796.3K | 3.8M | 992.9K | 985.4K |
| Receivables | 737.2K | 747.6K | 537.5K | 753.2K | 548.2K | 1.7M | 394.2K | 478K | 546.5K | 236K | 865.1K | 2.7M |
| Inventory | 23.7M | 14.3M | 11.6M | 14.7M | 29.1M | 14.6M | 15.9M | 20.9M | 28.9M | 18.3M | 21.1M | 20.9M |
| Total current assets | 26.2M | 18M | 15.5M | 19.2M | 31.6M | 18.7M | 18.2M | 22.3M | 31M | 22.9M | 23.8M | 25.7M |
| Property, plant & equipment | 370.2K | 148.8K | 285.4K | 257.9K | 253.9K | 168.2K | 97.7K | 178K | 192.1K | 265.3K | 233.1K | 200.7K |
| Goodwill & intangibles | — | — | — | — | — | — | — | — | — | — | — | — |
| Total assets | 27.6M | 19.6M | 16.7M | 20.2M | 32.4M | 20M | 19.1M | 23M | 31.6M | 23.8M | 24.4M | 26.2M |
| Accounts payable | 16.9M | 3.8M | 3.4M | 5.7M | 15.5M | 4.2M | 6.9M | 8.6M | 15.4M | 6.2M | 9.8M | 8.5M |
| Short-term debt | 792.4K | 734.7K | 770.3K | 777.2K | 811.7K | 725.5K | 3.3M | 759.7K | 724.5K | 729.7K | 716.8K | 720.1K |
| Total current liabilities | 18.6M | 10.9M | 7M | 9.9M | 21.5M | 14.8M | 13.3M | 15.7M | 23.9M | 16.7M | 16.5M | 17.3M |
| Long-term debt | 4.2M | 4.2M | 4.2M | 4.2M | 4.2M | 0 | — | 61.3K | 48.4K | 83.3K | 60.1K | 38.4K |
| Total liabilities | 22.8M | 15.1M | 11.2M | 14M | 25.7M | 14.8M | 13.3M | 15.8M | 24M | 16.8M | 16.6M | 17.3M |
| Shareholders' equity | 4.8M | 4.5M | 5.5M | 6.2M | 6.7M | 5.2M | 5.8M | 7.2M | 7.7M | 7M | 7.8M | 8.9M |
| Total debt | 5M | 4.9M | 5M | 4.9M | 5M | 725.5K | 3.3M | 821K | 772.9K | 813K | 776.9K | 758.4K |
| Net debt | 4.4M | 2.4M | 2M | 1.6M | 3.8M | -1.4M | 2.1M | 495.6K | -23.4K | -3M | -216K | -227K |
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 | -424.6K | 3.8M | 4.8M | -1.5M | -2.4M | 657.4K | 1.7M |
| Depreciation & amortization | — | 0 | 448 | 79.1K | 138K | 119.1K | 41.4K |
| Stock-based compensation | — | — | 0 | 91K | 52.3K | 75K | 60K |
| Change in working capital | -630.4K | -473.7K | 3.9M | -12M | 228.8K | -1.7M | -818.3K |
| Operating cash flow | -963.3K | 3.4M | 8.7M | -13.5M | -2.4M | -365.7K | 2.6M |
| Capital expenditure | — | 0 | -16.1K | -339.5K | -14.8K | -36K | — |
| Investing cash flow | — | 0 | -16.1K | -339.5K | -14.8K | -36K | — |
| Dividends paid | 0 | -898 | -2.1M | 0 | — | — | — |
| Share repurchases | — | — | — | — | — | — | — |
| Financing cash flow | 509K | -419.1K | -2.1M | 5.9M | 0 | -671K | -839K |
| Net change in cash | -454.3K | 3M | 6.6M | -7.9M | -2.4M | -1.1M | 1.7M |
| Free cash flow | -517.9K | 3.8M | 7.7M | -11.9M | -2.1M | 277.1K | 2.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 | 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 | -15.1K | -410K | 1.1M | 649.1K | 469.6K | -1.5M | 654.5K | 1.2M | 530.6K | -657.3K | 823.5K | 1.1M |
| Depreciation & amortization | 114.9K | -225.4K | 78.2K | 91.5K | 86.5K | -137.1K | 69.5K | 76K | 26.9K | -131K | 33.3K | 34K |
| Stock-based compensation | 0 | 18K | 36K | 0 | 24K | 15K | 15K | 15K | 15K | 15K | 15K | 15K |
| Change in working capital | -2.7M | 921.4K | 1.8M | -1.1M | -4.4M | 2M | 2.1M | -3.4M | -1.3M | 1.7M | -265.8K | -2.9M |
| Operating cash flow | -2.6M | 57.5K | 3.3M | -92.4K | -3.7M | -117.9K | 3.1M | -901.5K | 500.4K | 3M | -2.2M | -1.4M |
| Capital expenditure | -8.1K | -799 | -17.8K | -16.8K | -438 | -965 | -720 | — | — | — | — | — |
| Investing cash flow | -8.1K | -799 | -17.8K | -16.8K | -438 | -965 | -720 | — | — | — | — | — |
| Dividends paid | — | — | — | — | — | — | — | — | — | — | — | — |
| Share repurchases | — | — | — | — | — | — | — | — | — | — | — | — |
| Financing cash flow | 0 | 0 | — | — | — | — | -839K | 0 | 0 | 0 | -600K | 1.4M |
| Net change in cash | -2.6M | 56.7K | 3.3M | -109.2K | -3.7M | -118.9K | 2.3M | -901.5K | 500.4K | 3M | -2.8M | -5.2K |
| Free cash flow | -531K | 1.7M | 475.1K | 439.4K | -2.2M | 1.5M | -24.6K | -901.6K | 449.3K | 3M | -2.2M | -1.4M |