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 % |
|---|---|---|---|---|---|---|
| Q3 25 | -$0.36 | $0.1 | +127.8% | — | $4.7M | — |
| Q3 22 | — | $0.02 | — | — | $4.6M | — |
| Q2 22 | — | -$0.04 | — | — | $3.4M | — |
| Q1 22 | — | -$0.01 | — | — | $3.9M | — |
| Q4 21 | — | -$0.08 | — | — | $4.3M | — |
| Q3 21 | — | -$0.02 | — | — | $3.7M | — |
| Q2 21 | — | -$0.01 | — | — | $4.3M | — |
| Q1 21 | — | $0.11 | — | — | $4.8M | — |
| Q4 20 | — | $0.08 | — | — | $5.3M | — |
| Q3 20 | — | $0.09 | — | — | $6M | — |
| Q2 20 | — | $0.04 | — | — | $4.4M | — |
| Q1 20 | — | $0.06 | — | — | $3.5M | — |
| Q4 19 | — | $0.09 | — | — | $3.8M | — |
| Q3 19 | — | $0.09 | — | — | $4.1M | — |
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.28 | — | — | $18M | — |
| FY23 | — | -$1.23 | — | — | $10.3M | — |
| FY22 | — | -$0.03 | — | — | $16.9M | — |
| FY21 | — | $0.01 | — | — | $17M | — |
| FY20 | — |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | FY16 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY25 |
|---|---|---|---|---|---|---|---|---|---|
| Revenue | $15.3M | $14.8M | $15.5M | $15.4M | $19.2M | $17M | $16.9M | $10.3M | $18M |
| YoY change | — | -3.14% | +4.54% | -0.08% | +24.5% | -11.8% | -0.44% | -39.2% | — |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | FY16 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY25 |
|---|---|---|---|---|---|---|---|---|---|
| Revenue | 15.3M | 14.8M | 15.5M | 15.4M | 19.2M | 17M | 16.9M | 10.3M | 18M |
| Cost of revenue | — | — | — | — | — | — | — | — | — |
| Gross profit | — | — | — | — | — | — | — | — | — |
| Gross margin | — | — | — | — | — | — | — | — | — |
| Research & development | — | — | — | — | — | — | — | — | — |
| Selling, general & administrative | 8.4M | 9.1M | 10M | 9.9M | 9.9M | 10.7M | 10.8M | 10.6M | 10.1M |
| Operating expenses | 8.4M | 9.1M | 10M | 9.9M | 9.9M | 10.7M | 10.8M | 10.6M | 10.1M |
| Operating income | — | — | — | — | — | — | — | — | — |
| Operating margin | — | — | — | — | — | — | — | — | — |
| Non-operating income, net | — | — | — | — | — | — | — | — | — |
| Pretax income | 1.3M | -1.8M | -196K | 440K | 3.1M | 21K | -319K | -6.4M | 1.6M |
| Income tax | 0 | -3.5M | -177K | -9K | 1.7M | -64K | -171K | 388K | 205K |
| Net income | 1.3M | 1.7M | -19K | 449K | 1.3M | 85K | -148K | -6.8M | 1.4M |
| Net margin | 8.21% | 11.2% | -0.12% | 2.91% | 6.85% | 0.5% | -0.88% | -66.1% | 7.91% |
| EBITDA | — | — | — | — | — | — | — | — | — |
| EPS | 0.39 | 0.52 | -0.01 | 0.1 | 0.28 | 0.01 | -0.03 | -1.23 | 0.28 |
| Diluted EPS | 0.39 | 0.52 | -0.01 | 0.1 | 0.28 | 0.01 | -0.03 | -1.23 | 0.27 |
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | Q2 23 | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | 3.8M | 1.7M | 1M | 3.6M | 3.8M | 3.7M | 4.1M | 4.5M | 4.7M | 4.6M | 4.5M | 4.6M |
| Cost of revenue | — | — | — | — | — | — | — | — | — | — | — | — |
| Gross profit | — | — | — | — | — | — | — | — | — | — | — | — |
| Gross margin | — | — | — | — | — | — | — | — | — | — | — | — |
| Research & development | — | — | — | — | — | — | — | — | — | — | — | — |
| Selling, general & administrative | 2.9M | 2.4M | 2.5M | 2.5M | 2.6M | 2.6M | 2.5M | 2.5M | 2.5M | 2.5M | 2.5M | 2.9M |
| Operating expenses | 2.9M | 2.4M | 2.5M | 2.5M | 2.6M | 2.6M | 2.5M | 2.5M | 2.5M | 2.5M | 2.5M | 2.9M |
| Operating income | — | — | — | — | — | — | — | — | — | — | — | — |
| Operating margin | — | — | — | — | — | — | — | — | — | — | — | — |
| Non-operating income, net | — | — | — | — | — | — | — | — | — | — | — | — |
| Pretax income | -781K | -2.2M | -2.9M | -406K | -675K | -457K | -210K | 501K | 577K | 757K | 443K | -347K |
| Income tax | -273K | 1.4M | -613K | -100K | -159K | -298K | -66K | 78K | 101K | 91K | 73K | 37K |
| Net income | -508K | -3.6M | -2.3M | -306K | -516K | -159K | -144K | 423K | 476K | 666K | 370K | -384K |
| Net margin | -13.5% | -210.8% | -227.1% | -8.43% | -13.5% | -4.35% | -3.49% | 9.35% | 10.2% | 14.4% | 8.31% | -8.36% |
| EBITDA | — | — | — | — | — | — | — | — | — | — | — | — |
| EPS | -0.09 | -0.66 | — | -0.06 | -0.09 | -0.03 | -0.03 | 0.08 | 0.09 | — | 0.07 | -0.08 |
| Diluted EPS | -0.09 | -0.66 | — | -0.06 | -0.09 | -0.03 | -0.03 | 0.08 | 0.09 | — | 0.07 | -0.08 |
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 | FY16 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|---|---|
| Market cap | — | — | — | — | 35.1M | — | 57.8M | 38.7M | 57.4M | 57.4M |
| Enterprise value | — | — | — | — | -43.1M | — | -11.3M | -11.1M | 56.7M | 56.7M |
| Shares outstanding | 3.2M | 3.2M | 3.2M | 4.7M | 4.6M | 6.4M | 5.8M | 5.5M | 5.1M | 5.1M |
| Metric | FY16 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|---|---|
| P/E | — | — | — | — | 26.7 | — | — | — | 40.4 | 40.4 |
| P/S | — | — | — | — | 1.83 | — | 3.42 | 3.76 | 3.2 | 3.2 |
| P/B | — | — | — | — | 0.59 | — | 0.77 | 0.53 | 0.8 | 0.8 |
| EV/Sales | — | — | — | — | -2.24 | — | -0.67 | -1.08 | 3.16 | 3.16 |
| Earnings yield | — | — | — | — | 3.75% | — | — | — | 2.47% | 2.47% |
| FCF yield | — | — | — | — | 2.78% | — | 4.15% | -3.93% | 6.54% | 6.54% |
| Metric | FY16 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|---|---|
| Net margin | 8.21% | 11.2% | -0.12% | 2.91% | 6.85% | 0.5% | -0.88% | -66.1% | 7.91% | 7.91% |
| ROE | 3.36% | 4.25% | -0.05% | 0.77% | 2.19% | 0.09% | -0.2% | -9.33% | 1.97% | 1.97% |
| ROA | — | — | — | — | — | — | — | -1.22% | 0.24% | 0.24% |
| Return on tangible assets | — | — | — | — | — | — | — | -1.23% | 0.24% | 0.24% |
| Metric | FY16 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|---|---|
| Debt / equity | 1.29 | 0.89 | 0.79 | 0.3 | 1.14 | 0.61 | 0.95 | 0.98 | 1.56 | 1.56 |
| Debt / assets | — | — | — | — | — | — | — | 0.13 | 0.19 | 0.19 |
| Effective tax rate | 0% | 0% | 0% | 0% | 56.9% | 0% | 0% | 0% | 12.6% | 12.6% |
| Metric | FY16 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|---|---|
| Revenue per share | 4.77 | 4.62 | 4.83 | 3.28 | 4.14 | 2.66 | 2.93 | 1.86 | 3.5 | 3.5 |
| EPS (basic) | 0.39 | 0.52 | -0.01 | 0.1 | 0.28 | 0.01 | -0.03 | -1.23 | 0.28 | 0.28 |
| EPS (diluted) | 0.39 | 0.52 | -0.01 | 0.1 | 0.28 | 0.01 | -0.03 | -1.23 | 0.27 | 0.27 |
| Book value per share | 11.7 | 12.2 | 11.9 | 12.5 | 12.9 | 14.3 | 13 | 13.1 | 14 | 14 |
| FCF per share | 0.38 | -0.06 | -0.58 | 0.06 | 0.21 | 0.4 | 0.42 | -0.27 | 0.73 | 0.73 |
| Cash per share | 32.5 | 31.7 | 23 | 17.6 | 31.6 | 27.9 | 24.3 | 21.8 | 22 | 22 |
| Capex per share | — | — | 0 | 0.17 | 0 | — | — | — | 0.05 | 0.05 |
| Metric | FY16 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|---|---|
| Capex / revenue | — | — | 0% | 5.19% | 0% | — | — | — | 1.5% | 1.5% |
| Capex / operating cash flow | — | — | 0% | 31.3% | 0% | — | — | — | 6.71% | 6.71% |
| $0.28 |
| — |
| — |
| $19.2M |
| — |
| FY19 | — | $0.1 | — | — | $15.4M | — |
| FY18 | — | -$0.01 | — | — | $15.5M | — |
| FY17 | — | $0.52 | — | — | $14.8M | — |
| FY16 | — | $0.39 | — | — | $15.3M | — |
| Period | Q2 23 | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | $3.8M | $1.7M | $1M | $3.6M | $3.8M | $3.7M | $4.1M | $4.5M | $4.7M | $4.6M | $4.5M | $4.6M |
| YoY change | +10.1% | -62.1% | -77.4% | -4.1% | +1.94% | +111.8% | +13.6% | +18% | +27.8% | — | +8% | +1.44% |
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 | FY16 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY25 |
|---|---|---|---|---|---|---|---|---|---|
| Cash & short-term investments | 103.9M | 101.5M | 73.5M | 82.9M | 146.7M | 177.7M | 140.5M | 120.8M | 113M |
| Receivables | 1.2M | 1.2M | 1.1M | 963K | 912K | 948K | 1.3M | 1.6M | 1.7M |
| Inventory | — | — | — | — | — | — | — | — | — |
| Total current assets | — | — | — | — | — | — | — | — | — |
| Property, plant & equipment | -1.3M | -1.7M | -1.9M | -1.1M | -1.6M | -2.2M | -2.6M | -2.9M | -3.4M |
| Goodwill & intangibles | 4.8M | 4.5M | 4.2M | 4.3M | 3.6M | 4.1M | 3.7M | 3.4M | 3M |
| Total assets | — | — | — | — | — | — | — | 557.6M | 600M |
| Accounts payable | 276K | 340K | 372K | 385K | 183K | 109K | 291K | 1.1M | 1.4M |
| Short-term debt | — | — | — | — | — | — | — | — | — |
| Total current liabilities | — | — | — | — | — | — | — | — | — |
| Long-term debt | 48.2M | 34.7M | 30M | 17.6M | 68.4M | 55.4M | 71.5M | 71M | 112.3M |
| Total liabilities | — | — | — | — | — | — | — | 484.8M | 528.1M |
| Shareholders' equity | 37.3M | 39M | 38.2M | 58.7M | 60M | 90.9M | 75.4M | 72.8M | 71.9M |
| Total debt | 48.2M | 34.7M | 30M | 17.6M | 68.4M | 55.4M | 71.5M | 71M | 112.3M |
| Net debt | 40.8M | 22.2M | 22.2M | 6.1M | -19.6M | -9.9M | 45.4M | 59.8M | 95.4M |
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 | Q2 23 | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cash & short-term investments | 126.4M | 127.9M | 120.8M | 120.4M | 107.6M | 110.5M | 115.7M | 118.9M | 124.2M | 113M | 120.5M | 131.2M |
| Receivables | 1.3M | 1.3M | 1.6M | 1.5M | 1.6M | 1.4M | 1.6M | 1.7M | 1.7M | 1.7M | 1.6M | 1.7M |
| Inventory | — | — | — | — | — | — | — | — | — | — | — | — |
| Total current assets | — | — | — | — | — | — | — | — | — | — | — | — |
| Property, plant & equipment | — | — | -2.9M | — | — | — | — | — | — | -3.4M | — | — |
| Goodwill & intangibles | 3.6M | 3.5M | 3.4M | 3.4M | 3.3M | 3.3M | 3.2M | 3.1M | 3.1M | 3M | 2.9M | 2.8M |
| Total assets | — | — | 557.6M | 564.2M | 561.5M | 564.5M | 588.4M | 611.7M | 617.4M | 600M | 597.7M | 591.2M |
| Accounts payable | 698K | 1.1M | 1.1M | 1.2M | 1.4M | 1.2M | 1.3M | 1.4M | 1.5M | 1.4M | 1.5M | 1.2M |
| Short-term debt | — | — | — | — | — | — | — | — | — | — | — | — |
| Total current liabilities | — | — | — | — | — | — | — | — | — | — | — | — |
| Long-term debt | 91.5M | 78.5M | 71M | 80M | 74.5M | 75.8M | 113.3M | 113.3M | 112.8M | 112.3M | 111.8M | 101.3M |
| Total liabilities | — | — | 484.8M | 492.7M | 490.4M | 491.4M | 519.6M | 542.1M | 546.4M | 528.1M | 525.6M | 519.5M |
| Shareholders' equity | 74.1M | 70.2M | 72.8M | 71.5M | 71.1M | 73.2M | 68.8M | 69.6M | 71M | 71.9M | 72.1M | 71.6M |
| Total debt | 91.5M | 78.5M | 71M | 80M | 74.5M | 75.8M | 113.3M | 113.3M | 112.8M | 112.3M | 111.8M | 101.3M |
| Net debt | 72.7M | 54.3M | 59.8M | 66M | 59.3M | 52.7M | 102.4M | 94.8M | 90.9M | 95.4M | 81.1M | 58.2M |
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 | FY16 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY25 |
|---|---|---|---|---|---|---|---|---|---|
| Net income | 1.3M | 1.7M | -19K | 449K | 1.3M | 85K | -148K | -6.8M | 1.4M |
| Depreciation & amortization | 671K | 691K | 663K | 695K | 661K | 654K | 600K | 492K | 437K |
| Stock-based compensation | — | — | 0 | 71K | 223K | 487K | 563K | 807K | 765K |
| Change in working capital | 4K | -16K | -755K | 1.2M | 71K | 1.1M | -299K | 1.3M | 1.7M |
| Operating cash flow | 3.1M | -594K | -262K | 2.6M | 5.2M | 4.6M | 1.8M | -4.8M | 4M |
| Capital expenditure | — | — | 0 | 801K | 0 | — | — | — | -270K |
| Investing cash flow | -25.6M | 7.6M | 22.9M | -1.6M | 12.7M | -55.5M | -18.6M | 7.2M | 14M |
| Dividends paid | — | — | — | — | — | — | — | — | — |
| Share repurchases | — | — | — | 0 | -1.1M | -220K | -3.3M | -793K | -4.3M |
| Financing cash flow | 17.5M | -14.4M | -3.8M | 8.1M | 50.8M | 19.4M | 11.9M | -1M | 17.1M |
| Net change in cash | -5M | -7.4M | 18.8M | 9.1M | 68.7M | -31.5M | -4.9M | 1.4M | 35.1M |
| Free cash flow | 1.2M | -195K | -1.9M | 278K | 978K | 2.5M | 2.4M | -1.5M | 3.8M |
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 21 | Q1 22 | Q2 22 | Q3 22 | Q4 22 | Q1 23 | Q2 23 | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net income | -269K | -55K | -241K | 124K | 24K | -361K | -508K | -3.6M | -2.3M | -306K | -516K | -159K |
| Depreciation & amortization | 157K | 154K | 156K | 154K | 136K | 128K | 124K | 121K | 119K | 118K | 118K | 111K |
| Stock-based compensation | 240K | 110K | 110K | 131K | 212K | 235K | 179K | 210K | 183K | 203K | 204K | 213K |
| Change in working capital | 650K | -1.1M | -116K | 409K | 468K | -831K | 971K | 850K | 280K | 148K | 481K | 866K |
| Operating cash flow | 1.5M | -698K | 460K | 1M | 1M | -924K | 413K | -1.6M | -2.7M | -103K | -631K | 1.8M |
| Capital expenditure | — | — | — | — | — | — | — | 12K | — | — | — | — |
| Investing cash flow | -26.7M | -27.5M | 1.2M | 3.7M | 4.2M | 1.9M | 4.6M | 1.4M | -589K | 2M | 3.2M | 6M |
| Dividends paid | — | — | — | — | — | — | — | — | — | — | — | — |
| Share repurchases | 0 | -15K | -63K | -1.9M | -1.3M | -142K | -146K | -239K | -266K | -556K | -324K | -157K |
| Financing cash flow | -10.7M | 5.9M | 1.9M | 86K | 4.1M | 23.3M | 3.5M | -11.1M | -16.8M | 11.1M | -2.6M | 3.8M |
| Net change in cash | -36M | -22.3M | 3.6M | 4.8M | 9.3M | 24.3M | 8.5M | -11.3M | -20M | 13M | -45K | 11.6M |
| Free cash flow | 1.2M | -517K | 997K | 1.1M | 806K | -1.2M | 223K | -131K | -446K | -420K | -905K | 1.5M |