Closing prices at the end of each trading day, from 11 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 | 84.5 | 109.3 | 143.8 | 189.5 | 187.1 | 208.1 | 246.8 | 274.4 | 293.0 | 329.5 |
| Growth | +29.3% | +31.5% | +31.8% | −1.2% | +11.2% | +18.6% | +11.2% | +6.8% | +12.5% | |
| Operating income | 4.3 | 3.9 | 3.0 | 10.5 | −3.6 | −1.8 | −12.8 | 18.0 | 22.2 | 29.3 |
| Net income | 2.9 | 5.9 | 6.6 | 11.0 | −0.6 | −11.8 | −17.9 | 28.5 | 17.0 | 19.1 |
| Growth | +103.4% | +13.1% | +65.7% | −105.7% | −40.5% | +12.5% | ||||
| EPS, diluted | 0.15 | 0.31 | 0.34 | 0.56 | −0.03 | −0.60 | −0.89 | 1.23 | 0.70 | 0.82 |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Gross margin | 72.9% | 73.4% | 71.1% | 70.8% | 71.0% | 71.2% | 71.3% | 71.1% | 74.0% | 75.9% |
| Operating margin | 5.1% | 3.6% | 2.1% | 5.5% | −1.9% | −0.8% | −5.2% | 6.6% | 7.6% | 8.9% |
| Net margin | 3.4% | 5.4% | 4.6% | 5.8% | −0.3% | −5.7% | −7.2% | 10.4% | 5.8% | 5.8% |
| Free cash flow margin | 7.4% | 0.4% | 3.3% | −1.5% | 0.4% | 0.3% | 1.4% | 12.2% | 13.1% | 12.3% |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Operating cash flow | 7.0 | 4.2 | 9.0 | 2.5 | 2.8 | 2.6 | 5.2 | 35.9 | 40.7 | 42.8 |
| Capital expenditure | −0.8 | −3.7 | −4.2 | −5.4 | −2.1 | −2.1 | −1.8 | −2.3 | −2.4 | −2.4 |
| Free cash flow | 6.3 | 0.4 | 4.8 | −2.9 | 0.7 | 0.5 | 3.4 | 33.5 | 38.3 | 40.4 |
| Growth | −92.9% | +978.7% | −161.0% | −28.2% | +549.4% | +877.9% | +14.1% | +5.7% | ||
| Buybacks | n/a | −0.5 | n/a | n/a | n/a | n/a | n/a | n/a | −3.5 | −26.6 |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Cash | 30.7 | 24.0 | 20.1 | 22.8 | 47.9 | 28.2 | 21.9 | 61.0 | 94.4 | 83.4 |
| Total debt | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | 0.0 |
| Net cash (debt) | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | 83.4 |
| Shareholders’ equity | 59.6 | 72.8 | 89.3 | 112.6 | 124.8 | 128.2 | 121.4 | 193.6 | 216.6 | 218.9 |
| Debt to equity | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | 0.00 |
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 | ||||||||||
| 84.5 | 109.3 | 143.8 | 189.5 | 187.1 | 208.1 | 246.8 | 274.4 | 293.0 | 329.5 | |
| Growth | +29.3% | +31.5% | +31.8% | −1.2% | +11.2% | +18.6% | +11.2% | +6.8% | +12.5% | |
| 22.9 | 29.0 | 41.5 | 55.3 | 54.3 | 59.8 | 70.8 | 79.3 | 76.3 | 79.4 | |
| 61.6 | 80.3 | 102.3 | 134.2 | 132.8 | 148.2 | 176.0 | 195.1 | 216.7 | 250.1 | |
| Growth | +30.3% | +27.4% | +31.3% | −1.1% | +11.6% | +18.7% | +10.9% | +11.0% | +15.4% | |
| 4.5 | 5.1 | 5.3 | 5.2 | 5.3 | 5.7 | 7.1 | 7.8 | 8.8 | 8.5 | |
| 19.1 | 26.9 | 33.6 | 39.5 | 51.3 | 56.8 | 60.8 | 62.1 | 71.1 | 88.7 | |
| 4.3 | 3.9 | 3.0 | 10.5 | −3.6 | −1.8 | −12.8 | 18.0 | 22.2 | 29.3 | |
| Growth | −8.8% | −23.3% | +251.1% | −134.6% | +22.9% | +32.0% | ||||
| 4.3 | 4.2 | 3.5 | 11.1 | −2.3 | −2.3 | −15.5 | 15.8 | 23.5 | 31.3 | |
| 1.4 | −1.7 | −3.1 | 0.2 | −1.6 | 9.5 | 2.4 | −12.7 | 6.5 | 12.3 | |
| 2.9 | 5.9 | 6.6 | 11.0 | −0.6 | −11.8 | −17.9 | 28.5 | 17.0 | 19.1 | |
| Growth | +103.4% | +13.1% | +65.7% | −105.7% | −40.5% | +12.5% | ||||
| Per share | ||||||||||
| 0.18 | 0.34 | 0.36 | 0.58 | −0.03 | −0.60 | −0.89 | 1.24 | 0.71 | 0.83 | |
| 0.15 | 0.31 | 0.34 | 0.56 | −0.03 | −0.60 | −0.89 | 1.23 | 0.70 | 0.82 | |
| Growth | +106.7% | +9.7% | +64.7% | −105.4% | −43.1% | +17.1% | ||||
| 8.9 | 17.4 | 18.3 | 18.9 | 19.3 | 19.7 | 20.1 | 22.9 | 23.9 | 22.9 | |
| 10.8 | 18.9 | 19.3 | 19.6 | 19.3 | 19.7 | 20.1 | 23.2 | 24.1 | 23.3 | |
| Growth | +75.5% | +2.5% | +1.5% | −1.5% | +1.9% | +1.8% | +15.5% | +4.2% | −3.5% | |
† The diluted share count jumps at 2017, 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.