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 | n/a | 3.5 | 1.7 | 2.9 | 2.7 | 3.0 | 3.2 | 4.6 | n/a | n/a |
| Growth | −50.8% | +66.9% | −8.5% | +12.9% | +5.8% | +44.8% | ||||
| Net income | 10.5 | 14.1 | 24.3 | 22.7 | 39.3 | 37.4 | 29.6 | 36.1 | 35.0 | 33.3 |
| Growth | +34.2% | +72.9% | −6.7% | +72.8% | −4.7% | −20.8% | +21.6% | −2.9% | −4.8% | |
| EPS, diluted | 3.51 | 4.28 | 6.29 | 5.01 | 4.49 | 4.37 | 3.70 | 4.56 | 4.36 | 4.29 |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Net margin | n/a | 397.0% | 1,395.2% | 779.8% | 1,473.3% | 1,243.3% | 930.9% | 781.7% | n/a | n/a |
| Free cash flow margin | n/a | 396.5% | 1,010.9% | 230.5% | −1,264.4% | 3,556.8% | 5,756.6% | 1,647.8% | n/a | n/a |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Operating cash flow | 3.6 | 15.1 | 21.4 | 9.2 | −32.3 | 109.0 | 184.9 | 77.7 | 50.8 | 72.3 |
| Capital expenditure | −3.6 | −1.0 | −3.8 | −2.5 | −1.4 | −2.0 | −1.6 | −1.7 | −1.6 | −20.4 |
| Free cash flow | −0.0 | 14.1 | 17.6 | 6.7 | −33.7 | 107.0 | 183.3 | 76.0 | 49.2 | 51.9 |
| Growth | +25.4% | −61.9% | −601.9% | +71.3% | −58.5% | −35.3% | +5.6% | |||
| Buybacks | −4.9 | −0.3 | −0.3 | −4.8 | −9.8 | −14.0 | −15.6 | −0.2 | −2.5 | −15.4 |
| Dividends paid | −1.1 | −1.3 | −1.9 | −2.9 | −3.6 | −4.6 | −7.1 | −7.8 | −8.3 | −10.3 |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Cash | 36.5 | 18.9 | 32.8 | 45.8 | 91.6 | 26.5 | 41.4 | 65.7 | 31.6 | 28.2 |
| Total debt | n/a | n/a | n/a | 84.9 | 165.8 | 42.5 | 186.5 | n/a | n/a | n/a |
| Net cash (debt) | n/a | n/a | n/a | −39.1 | −74.2 | −16.0 | −145.1 | n/a | n/a | n/a |
| Shareholders’ equity | 81.0 | 122.0 | 180.0 | 200.2 | 230.0 | 247.5 | 231.7 | 264.5 | 295.8 | 307.7 |
| Debt to equity | n/a | n/a | n/a | 0.42 | 0.72 | 0.17 | 0.81 | 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 | ||||||||||
| n/a | 3.5 | 1.7 | 2.9 | 2.7 | 3.0 | 3.2 | 4.6 | n/a | n/a | |
| Growth | −50.8% | +66.9% | −8.5% | +12.9% | +5.8% | +44.8% | ||||
| 6.0 | 6.2 | 6.7 | 9.7 | 10.5 | 10.8 | 10.7 | 13.1 | 13.5 | 14.9 | |
| 16.1 | 20.6 | 28.6 | 28.1 | 49.9 | 47.4 | 37.0 | 45.3 | 41.6 | 41.1 | |
| 5.6 | 6.5 | 4.2 | 5.4 | 10.6 | 10.0 | 7.3 | 9.2 | 6.6 | 7.8 | |
| 10.5 | 14.1 | 24.3 | 22.7 | 39.3 | 37.4 | 29.6 | 36.1 | 35.0 | 33.3 | |
| Growth | +34.2% | +72.9% | −6.7% | +72.8% | −4.7% | −20.8% | +21.6% | −2.9% | −4.8% | |
| Per share | ||||||||||
| 3.63 | 4.55 | 6.58 | 5.13 | 4.58 | 4.48 | 3.75 | 4.63 | 4.48 | 4.35 | |
| 3.51 | 4.28 | 6.29 | 5.01 | 4.49 | 4.37 | 3.70 | 4.56 | 4.36 | 4.29 | |
| Growth | +21.9% | +47.0% | −20.3% | −10.4% | −2.7% | −15.3% | +23.2% | −4.4% | −1.6% | |
| 2.9 | 3.1 | 3.7 | 4.4 | 8.5 | 8.2 | 7.8 | 7.7 | 7.7 | 7.5 | |
| 3.0 | 3.3 | 3.9 | 4.5 | 8.6 | 8.4 | 7.9 | 7.8 | 7.9 | 7.6 | |
| Growth | +10.1% | +17.6% | +16.9% | +90.7% | −2.4% | −6.5% | −1.2% | +1.5% | −3.2% | |
† The diluted share count jumps at 2020, 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.