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 22 | — | $0.32 | — | — | $5.5M | — |
| Q3 22 | — | $0.33 | — | — | $5.5M | — |
| Q2 22 | — | $0.27 | — | — | — | — |
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 | — | $1.45 | — | — | $25.1M | — |
| FY23 | — | — | — | — | $20.3M | — |
| FY22 | — | $1.2 | — | — | $21M | — |
| FY21 | — | $1.22 | — | — | $21.2M | — |
| FY20 | — | $1.17 | — | — | $20.3M | — |
| FY19 | — | $1.33 | — | — | $20.3M | — |
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 | FY25 |
|---|---|---|---|---|---|---|
| Revenue | $20.3M | $20.3M | $21.2M | $21M | $20.3M | $25.1M |
| YoY change | — | +0.21% | +4.45% | -1.34% | -3.22% | — |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | Q3 22 | Q4 22 | Q1 23 | Q2 23 | Q4 25 | Q1 26 |
|---|---|---|---|---|---|---|
| Revenue | $5.5M |
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 | FY25 |
|---|---|---|---|---|---|---|
| Revenue | 20.3M | 20.3M | 21.2M | 21M | 20.3M | 25.1M |
| Cost of revenue | — | — | — | — | — | — |
| Gross profit | — | — | — | — | — | — |
| Gross margin | — | — | — | — | — | — |
| Research & development | — | — | — | — | — | — |
| Selling, general & administrative | 7.3M | 7.7M | 8.1M | 8.2M | 8.8M | 9.7M |
| Operating expenses | 7.3M | 7.7M | 8.1M | 8.2M | 8.8M | 9.7M |
| Operating income | — | — | — | — | — | — |
| Operating margin | — | — | — | — | — | — |
| Non-operating income, net | — | — | — | — | — | — |
| Pretax income | 9.5M | 8.4M | 8.8M | 8.6M | 6.9M | 10.1M |
| Income tax | 2.2M | 2M | 2.1M | 2M | 1.4M | 2.2M |
| Net income | 7.3M | 6.5M | 6.7M | 6.7M | 5.5M | 7.9M |
| Net margin | 36.1% | 31.8% | 31.7% | 31.7% | 27.1% | 31.5% |
| EBITDA | — | — | — | — | — | — |
| EPS | 1.33 | 1.17 | 1.22 | 1.2 | — | 1.45 |
| Diluted EPS | 1.31 | 1.14 | 1.19 | 1.18 | — | 1.41 |
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | Q3 22 | Q4 22 | Q1 23 | Q2 23 | Q4 25 | Q1 26 |
|---|---|---|---|---|---|---|
| Revenue | 5.5M | 5.5M | 5.1M | 5M | 6.4M | 6.3M |
| Cost of revenue | — | — | — | — | — | — |
| Gross profit | — | — | — | — | — | — |
| Gross margin | — | — | — | — | — | — |
| Research & development | — | — | — | — | — | — |
| Selling, general & administrative | 1.9M | 2.6M | 2M | 2M | 3.1M | 2.2M |
| Operating expenses | 1.9M | 2.6M | 2M | 2M | 3.1M | 2.2M |
| Operating income | — | — | — | — | — | — |
| Operating margin | — | — | — | — | — | — |
| Non-operating income, net | — | — | — | — | — | — |
| Pretax income | 2.4M | 2.3M | 1.9M | 1.7M | 2.4M | 2.6M |
| Income tax | 545.6K | 527K | 265.8K | 380.4K | 401.9K | 586.7K |
| Net income | 1.8M | 1.8M | 1.6M | 1.3M | 2M | 2M |
| Net margin | 33.7% | 32.8% | 30.9% | 25.3% | 31.6% | 32% |
| EBITDA | — | — | — | — | — | — |
| EPS | 0.33 | — | 0.29 | 0.23 | — | 0.37 |
| Diluted EPS | 0.33 | — | 0.28 | 0.23 | — | 0.36 |
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 | — | — | — | — | — | — | 85.6M | 85.6M |
| Enterprise value | — | — | — | — | — | — | -57.8M | -57.8M |
| Shares outstanding | 5.5M | 5.5M | 5.5M | 5.6M | — | — | 5.4M | 5.4M |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| P/E | — | — | — | — | — | — | 10.8 | 10.8 |
| P/S | — | — | — | — | — | — | 3.41 | 3.41 |
| P/B | — | — | — | — | — | — | 1.42 | 1.42 |
| EV/Sales | — | — | — | — | — | — | -2.3 | -2.3 |
| Earnings yield | — | — | — | — | — | — | 9.24% | 9.24% |
| FCF yield | — | — | — | — | — | — | 18% | 18% |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Net margin | 36.1% | 31.8% | 31.7% | 31.7% | 27.1% | — | 31.5% | 31.5% |
| ROE | 14.3% | 11.8% | 12.5% | 17.1% | 11.7% | — | 13.1% | 13.1% |
| ROA | — | 1.21% | 0.99% | 1.02% | 0.87% | — | 1.37% | 1.37% |
| Return on tangible assets | — | 1.21% | 0.99% | 1.02% | 0.87% | — | 1.37% | 1.37% |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Debt / equity | 0.26 | 0.23 | 0.26 | 0.35 | 1.25 | — | 0.19 | 0.19 |
| Debt / assets | — | 0.02 | 0.02 | 0.02 | 0.09 | — | 0.02 | 0.02 |
| Effective tax rate | 22.9% | 23.3% | 23.5% | 22.9% | 20.5% | — | 21.6% | 21.6% |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Revenue per share | 3.68 | 3.68 | 3.84 | 3.78 | — | — | 4.62 | 4.62 |
| EPS (basic) | 1.33 | 1.17 | 1.22 | 1.2 | — | — | 1.45 | 1.45 |
| EPS (diluted) | 1.31 | 1.14 | 1.19 | 1.18 | — | — | 1.41 | 1.41 |
| Book value per share | 9.27 | 9.95 | 9.75 | 6.99 | — | — | 11.1 | 11.1 |
| FCF per share | — | 0.02 | 3.13 | 1.61 | — | — | 2.83 | 2.83 |
| Cash per share | 27.1 | 33.1 | 63.7 | 53.9 | — | — | 28.5 | 28.5 |
| Capex per share | — | 0.03 | 0.03 | 0.1 | — | — | 0.08 | 0.08 |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Capex / revenue | — | 0.91% | 0.67% | 2.7% | 2.31% | — | 1.67% | 1.67% |
| Capex / operating cash flow | — | -61.3% | 0.84% | 6.46% | 11.5% | — | 2.75% | 2.75% |
| Payout ratio | — | 55.6% | 63.9% | 56.7% | 68.5% | — | 56.3% | 56.3% |
| Dividend yield | — | — | — | — | — | — | 5.2% | 5.2% |
Split-adjusted payout per share by ex-dividend date.
| Ex-dividend | Amount |
|---|---|
| Apr 14, 2026 | $0.23 |
| Date | Ratio |
|---|---|
| Apr 27, 2018 | 11:10 |
| $5.5M |
| $5.1M |
| $5M |
| $6.4M |
| $6.3M |
| 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 | FY25 |
|---|---|---|---|---|---|---|
| Cash & short-term investments | 149.5M | 183.1M | 352.5M | 298.9M | 186.5M | 154.9M |
| Receivables | 1.3M | 1.6M | 1.4M | 2.1M | 2.4M | 2M |
| Inventory | — | — | — | — | — | — |
| Total current assets | — | — | — | — | — | — |
| Property, plant & equipment | 19.6M | 14.9M | 16M | 15.6M | 15M | 13.4M |
| Goodwill & intangibles | — | — | — | — | — | — |
| Total assets | — | 532.5M | 679.2M | 653.3M | 633.8M | 575.1M |
| Accounts payable | 1.4M | 2.6M | 2.1M | 2.4M | 2.2M | — |
| Short-term debt | — | — | — | 0 | 46M | — |
| Total current liabilities | — | — | — | — | — | — |
| Long-term debt | 13.2M | 12.7M | 14M | 13.4M | 12.8M | 11.5M |
| Total liabilities | — | 477.5M | 625.3M | 614.5M | 586.7M | 514.9M |
| Shareholders' equity | 51.2M | 55M | 53.9M | 38.8M | 47.1M | 60.1M |
| Total debt | 13.2M | 12.7M | 14M | 13.4M | 58.8M | 11.5M |
| Net debt | -35.9M | -35.6M | -126.1M | -14.3M | 36.9M | -39.9M |
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 22 | Q4 22 | Q1 23 | Q2 23 | Q4 25 | Q1 26 |
|---|---|---|---|---|---|---|
| Cash & short-term investments | 278.4M | 298.9M | 289.4M | 281.1M | 154.9M | 182.7M |
| Receivables | 1.8M | 2.1M | 1.8M | 1.9M | 2M | 1.8M |
| Inventory | — | — | — | — | — | — |
| Total current assets | — | — | — | — | — | — |
| Property, plant & equipment | 17.3M | 15.6M | 17.3M | 17.2M | 13.4M | 15.2M |
| Goodwill & intangibles | — | — | — | — | — | — |
| Total assets | — | — | — | — | 575.1M | 562.1M |
| Accounts payable | 2.4M | 2.4M | 3M | 3M | — | — |
| Short-term debt | — | 0 | — | 25M | — | — |
| Total current liabilities | — | — | — | — | — | — |
| Long-term debt | 13.6M | 13.4M | 13.3M | 13.1M | 11.5M | 11.3M |
| Total liabilities | — | — | — | — | 514.9M | 501.7M |
| Shareholders' equity | 36M | 38.8M | 43.5M | 42.6M | 60.1M | 60.4M |
| Total debt | 13.6M | 13.4M | 13.3M | 38.1M | 11.5M | 11.3M |
| Net debt | 4.5M | -14.3M | -8.7M | 12.7M | -39.9M | -60.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 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|---|
| Net income | 6.5M | 6.7M | 6.7M | 5.5M | — | 7.9M |
| Depreciation & amortization | 421K | 412.9K | 359.3K | 372.9K | 641.3K | 562.3K |
| Stock-based compensation | 93K | 103K | 121.7K | 68.9K | — | 85.8K |
| Change in working capital | 1.1M | -387.1K | -128.4K | -650.1K | — | 3.2M |
| Operating cash flow | -300.2K | 17M | 8.7M | 4.1M | 641.3K | 15.3M |
| Capital expenditure | -184.1K | -142.3K | -564.9K | -469K | — | -420.7K |
| Investing cash flow | -33.4M | -82.8M | -83.3M | 37M | 0 | 17.7M |
| Dividends paid | -3.6M | -4.3M | -3.8M | -3.8M | — | -4.4M |
| Share repurchases | -398.9K | 0 | 0 | -982.6K | — | -547.3K |
| Financing cash flow | -4M | -4.3M | -3.8M | 41.3M | -46M | -5M |
| Net change in cash | -37.7M | -70.1M | -78.4M | 82.3M | -45.4M | 28M |
| Free cash flow | 107.8K | 17.3M | 8.9M | 4.4M | — | 15.4M |
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 | Q1 22 | Q2 22 | Q3 22 | Q4 22 | Q1 23 | Q2 23 |
|---|---|---|---|---|---|---|
| Net income | 1.5M | 1.5M | 1.8M | 1.8M | 1.6M | 1.3M |
| Depreciation & amortization | 97.7K | 90.6K | 89K | 82K | 85.2K | 79K |
| Stock-based compensation | 28K | 31.3K | 31.3K | 31.2K | 30.1K | 27.8K |
| Change in working capital | 233.7K | -242.4K | 4.5K | -124.3K | 258.4K | 550.6K |
| Operating cash flow | 1.6M | -253.4K | 5.8M | 1.6M | 1.5M | 332.3K |
| Capital expenditure | -31.6K | -83.8K | -102.3K | -347.2K | -102.1K | -122.6K |
| Investing cash flow | -58M | -18.2M | -7.3M | 65.3K | 7.4M | 9.8M |
| Dividends paid | -942K | -943.6K | -943.9K | -943.9K | -943.9K | -943.9K |
| Share repurchases | — | — | — | — | — | — |
| Financing cash flow | -942K | -943.6K | -943.9K | -943.9K | -943.9K | -943.9K |
| Net change in cash | -57.3M | -19.4M | -2.4M | 684.9K | 7.9M | 9.2M |
| Free cash flow | 1.7M | -113.4K | 5.9M | 1.4M | 1.6M | 411.5K |