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 | 6.3 | 5.8 | 5.9 | n/a | n/a | n/a | 134.4 | 158.3 | 196.0 | 255.6 |
| Growth | −7.2% | +1.5% | +17.8% | +23.8% | +30.4% | |||||
| Net income | 14.4 | 13.2 | 20.0 | 20.7 | 32.9 | 37.5 | 30.7 | 25.4 | 37.0 | 64.6 |
| Growth | −8.7% | +52.1% | +3.4% | +58.9% | +14.1% | −18.1% | −17.4% | +45.6% | +74.8% | |
| EPS, diluted | 2.06 | 1.88 | 2.86 | 3.04 | 5.11 | 6.00 | 5.27 | 1.12 | 1.66 | 2.87 |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Gross margin | n/a | n/a | n/a | n/a | n/a | n/a | 94.7% | 79.4% | 77.5% | 81.7% |
| Net margin | 229.5% | 225.7% | 338.4% | n/a | n/a | n/a | 22.9% | 16.0% | 18.9% | 25.3% |
| Free cash flow margin | 268.0% | 304.3% | 366.1% | n/a | n/a | n/a | 55.3% | 20.6% | −4.8% | 52.4% |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Operating cash flow | 20.1 | 19.3 | 25.2 | −0.8 | −36.5 | 112.0 | 78.1 | 38.8 | −8.7 | 139.3 |
| Capital expenditure | −3.3 | −1.6 | −3.5 | −2.3 | −2.8 | −2.3 | −3.8 | −6.2 | −0.6 | −5.5 |
| Free cash flow | 16.8 | 17.7 | 21.6 | −3.1 | −39.3 | 109.7 | 74.3 | 32.6 | −9.3 | 133.9 |
| Growth | +5.3% | +22.1% | −114.5% | −32.3% | −56.1% | −128.7% | ||||
| Buybacks | 0.0 | −1.6 | −0.5 | −12.6 | −10.0 | −11.5 | −14.2 | −9.0 | −0.8 | 0.0 |
| Dividends paid | −5.4 | −6.0 | −7.1 | −8.5 | −8.8 | −9.4 | −10.6 | −13.6 | −13.8 | −14.5 |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Cash | 50.6 | 77.8 | 77.5 | 95.4 | 116.0 | 645.8 | 259.4 | 118.5 | 62.7 | 145.9 |
| Total debt | 31.9 | 35.1 | 41.5 | 8.9 | 14.8 | 14.5 | 14.1 | 13.7 | 23.0 | 12.8 |
| Net cash (debt) | 18.6 | 42.7 | 36.0 | 86.5 | 101.1 | 631.3 | 245.3 | 104.9 | 39.7 | 133.1 |
| Shareholders’ equity | 186.6 | 192.8 | 205.9 | 207.1 | 221.6 | 237.8 | 218.6 | 234.7 | 267.1 | 326.5 |
| Debt to equity | 0.17 | 0.18 | 0.20 | 0.04 | 0.07 | 0.06 | 0.06 | 0.06 | 0.09 | 0.04 |
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 | ||||||||||
| 6.3 | 5.8 | 5.9 | n/a | n/a | n/a | 134.4 | 158.3 | 196.0 | 255.6 | |
| Growth | −7.2% | +1.5% | +17.8% | +23.8% | +30.4% | |||||
| n/a | n/a | n/a | n/a | n/a | n/a | 127.3 | 125.8 | 151.9 | 208.9 | |
| Growth | −1.2% | +20.8% | +37.5% | |||||||
| 21.0 | 23.8 | 24.1 | 26.1 | 42.4 | 48.0 | 38.5 | 31.6 | 47.0 | 84.5 | |
| 6.1 | 10.3 | 4.1 | 5.4 | 9.6 | 10.5 | 7.8 | 6.2 | 10.0 | 19.9 | |
| 14.4 | 13.2 | 20.0 | 20.7 | 32.9 | 37.5 | 30.7 | 25.4 | 37.0 | 64.6 | |
| Growth | −8.7% | +52.1% | +3.4% | +58.9% | +14.1% | −18.1% | −17.4% | +45.6% | +74.8% | |
| Per share | ||||||||||
| 2.09 | 1.91 | 2.91 | 3.08 | 5.18 | 6.07 | 5.33 | 1.13 | 1.68 | 2.92 | |
| 2.06 | 1.88 | 2.86 | 3.04 | 5.11 | 6.00 | 5.27 | 1.12 | 1.66 | 2.87 | |
| Growth | −8.7% | +52.1% | +6.3% | +68.1% | +17.4% | −12.2% | −78.7% | +48.2% | +72.9% | |
| 6.9 | 6.9 | 6.9 | 6.7 | 6.4 | 6.2 | 5.8 | 22.4 | 22.0 | 22.1 | |
| 7.0 | 7.0 | 7.0 | 6.8 | 6.4 | 6.2 | 5.8 | 22.6 | 22.3 | 22.5 | |
| Growth | +0.0% | +0.1% | −2.5% | −5.5% | −2.8% | −6.7% | +288.5% | −1.4% | +0.7% | |
† The diluted share count jumps at 2023, 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.