Closing prices at the end of each trading day, from 12 Oct 2016. Not a live quote. Adjusted for share splits, so the line has no step at a split; dividends are not added back. P/E and P/FCF are the market value over the last full fiscal year's net income or free cash flow, as public on each day, so they step once a year when the annual report comes out. A hatched band marks a stretch with none: a year of net loss, or of cash burnt.
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | 11.6 | 15.4 | 17.8 | 20.8 | 20.1 | 21.9 | 24.8 | 25.1 | 25.7 | 24.9 |
| Growth | +33.0% | +15.2% | +16.7% | −3.4% | +9.2% | +13.3% | +1.2% | +2.4% | −3.3% | |
| Operating income | 0.6 | 0.1 | 0.9 | 1.6 | 1.7 | 2.3 | 2.7 | 2.7 | 2.2 | 1.2 |
| Net income | 0.4 | 0.1 | 0.8 | 1.3 | 1.4 | 3.0 | 2.0 | 2.2 | 2.1 | 1.5 |
| Growth | −67.1% | +462.7% | +68.0% | +3.0% | +113.8% | −32.7% | +7.9% | −1.5% | −27.5% | |
| EPS, diluted | 0.02 | 0.01 | 0.03 | 0.22 | 0.22 | 0.48 | 0.33 | 0.39 | 0.40 | 0.30 |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Gross margin | 46.6% | 44.2% | 43.5% | 43.7% | 44.5% | 44.4% | 42.1% | 41.9% | 41.0% | 38.2% |
| Operating margin | 5.5% | 0.5% | 4.9% | 7.5% | 8.4% | 10.5% | 10.7% | 10.7% | 8.6% | 4.8% |
| Net margin | 3.7% | 0.9% | 4.5% | 6.5% | 6.9% | 13.5% | 8.0% | 8.6% | 8.2% | 6.2% |
| Free cash flow margin | 4.7% | 3.7% | 4.4% | 12.1% | 9.9% | 12.8% | 10.3% | 10.6% | 10.0% | 5.8% |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Operating cash flow | 1.0 | 0.7 | 1.2 | 2.9 | 2.5 | 3.0 | 2.7 | 2.8 | 2.7 | 1.6 |
| Capital expenditure | −0.4 | −0.1 | −0.4 | −0.4 | −0.5 | −0.2 | −0.1 | −0.1 | −0.2 | −0.2 |
| Free cash flow | 0.5 | 0.6 | 0.8 | 2.5 | 2.0 | 2.8 | 2.6 | 2.7 | 2.6 | 1.5 |
| Growth | +6.2% | +37.3% | +218.2% | −20.7% | +41.2% | −8.6% | +4.2% | −3.9% | −43.5% | |
| Buybacks | −0.3 | −0.2 | −0.4 | −0.6 | −1.0 | −1.1 | −3.5 | −4.0 | −2.2 | −2.2 |
| Dividends paid | n/a | n/a | n/a | n/a | n/a | −0.9 | n/a | n/a | n/a | n/a |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Cash | 2.5 | 2.7 | 1.5 | 2.6 | 4.4 | 5.4 | 4.4 | 2.6 | 2.0 | 3.2 |
| Total debt | n/a | n/a | n/a | n/a | 1.0 | n/a | n/a | n/a | n/a | n/a |
| Net cash (debt) | n/a | n/a | n/a | n/a | 3.3 | n/a | n/a | n/a | n/a | n/a |
| Shareholders’ equity | 9.4 | 9.7 | 10.8 | 11.9 | 12.5 | 13.7 | 12.5 | 10.8 | 9.9 | 9.3 |
| Debt to equity | n/a | n/a | n/a | n/a | 0.08 | n/a | n/a | n/a | n/a | n/a |
In millions of USD, except per-share figures and ratios. Fiscal years, as last filed with the SEC.
| Fiscal year | FY2016 31 Dec 2016 | FY2017 31 Dec 2017 | FY2018 31 Dec 2018 | FY2019† 31 Dec 2019 | FY2020 31 Dec 2020 | FY2021 31 Dec 2021 | FY2022 31 Dec 2022 | FY2023 31 Dec 2023 | FY2024 31 Dec 2024 | FY2025 31 Dec 2025 |
|---|---|---|---|---|---|---|---|---|---|---|
| Revenue and profit | ||||||||||
| 11.6 | 15.4 | 17.8 | 20.8 | 20.1 | 21.9 | 24.8 | 25.1 | 25.7 | 24.9 | |
| Growth | +33.0% | +15.2% | +16.7% | −3.4% | +9.2% | +13.3% | +1.2% | +2.4% | −3.3% | |
| 6.2 | 8.6 | 10.1 | 11.7 | 11.1 | 12.2 | 14.4 | 14.6 | 15.2 | 15.4 | |
| 5.4 | 6.8 | 7.7 | 9.1 | 8.9 | 9.7 | 10.5 | 10.5 | 10.6 | 9.5 | |
| Growth | +26.0% | +13.5% | +17.2% | −1.7% | +9.1% | +7.5% | +0.5% | +0.4% | −10.0% | |
| 4.8 | 6.7 | 6.9 | 7.5 | 7.2 | 7.4 | 7.8 | 7.8 | 8.4 | 8.3 | |
| 0.6 | 0.1 | 0.9 | 1.6 | 1.7 | 2.3 | 2.7 | 2.7 | 2.2 | 1.2 | |
| Growth | −87.0% | +964.2% | +77.5% | +8.7% | +36.5% | +15.2% | +1.7% | −18.2% | −45.4% | |
| 0.6 | 0.1 | 1.0 | 1.5 | 1.8 | 3.6 | 2.8 | 3.1 | 3.0 | 2.2 | |
| 0.2 | 0.3 | 0.3 | 0.5 | 0.5 | 0.7 | 0.8 | 0.9 | 0.9 | 0.7 | |
| 0.4 | 0.1 | 0.8 | 1.3 | 1.4 | 3.0 | 2.0 | 2.2 | 2.1 | 1.5 | |
| Growth | −67.1% | +462.7% | +68.0% | +3.0% | +113.8% | −32.7% | +7.9% | −1.5% | −27.5% | |
| Per share | ||||||||||
| 0.02 | 0.01 | 0.03 | 0.22 | 0.23 | 0.49 | 0.34 | 0.39 | 0.40 | 0.30 | |
| 0.02 | 0.01 | 0.03 | 0.22 | 0.22 | 0.48 | 0.33 | 0.39 | 0.40 | 0.30 | |
| Growth | −50.0% | +200.0% | +633.3% | +0.0% | +118.2% | −31.2% | +18.2% | +2.6% | −25.0% | |
| 23.8 | 24.7 | 24.8 | 6.2 | 6.2 | 6.1 | 6.0 | 5.5 | 5.3 | 5.2 | |
| 24.0 | 24.8 | 25.0 | 6.3 | 6.2 | 6.2 | 6.0 | 5.5 | 5.3 | 5.2 | |
| Growth | +3.7% | +0.6% | −75.0% | −0.6% | −0.6% | −2.4% | −8.1% | −3.9% | −3.2% | |
† The diluted share count jumps at 2019, so per-share figures either side of that column are not comparable. Usually a split, but the break lands on the restatement boundary rather than on the split date, because every column is that period’s latest filing.