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 | 671.1 | 698.1 | 787.6 | 843.3 | 874.4 | 973.6 | 1,263.9 | 1,131.5 | 963.7 | 883.7 |
| Growth | +4.0% | +12.8% | +7.1% | +3.7% | +11.4% | +29.8% | −10.5% | −14.8% | −8.3% | |
| Operating income | 58.3 | 56.9 | 70.3 | 76.5 | 93.2 | 111.7 | 143.3 | 90.1 | 33.2 | 22.9 |
| Net income | 33.5 | 90.3 | 55.0 | 61.1 | 69.5 | 85.4 | 110.4 | 70.4 | 26.9 | 17.4 |
| Growth | +169.8% | −39.1% | +11.0% | +13.8% | +22.9% | +29.2% | −36.2% | −61.7% | −35.2% | |
| EPS, diluted | 0.61 | 1.65 | 0.67 | 0.74 | 0.84 | 1.02 | 1.35 | 0.86 | 0.33 | 0.21 |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Operating margin | 8.7% | 8.1% | 8.9% | 9.1% | 10.7% | 11.5% | 11.3% | 8.0% | 3.4% | 2.6% |
| Net margin | 5.0% | 12.9% | 7.0% | 7.2% | 7.9% | 8.8% | 8.7% | 6.2% | 2.8% | 2.0% |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Operating cash flow | 133.8 | 121.9 | 154.2 | 156.5 | 189.6 | 171.2 | 219.5 | 164.4 | 134.8 | 93.5 |
| Buybacks | −7.5 | 0.0 | −3.8 | 0.0 | −0.6 | 0.0 | −41.8 | 0.0 | 0.0 | n/a |
| Dividends paid | −3.3 | −4.4 | −5.5 | −42.1 | −52.4 | −54.7 | −19.6 | −19.5 | −19.5 | −19.6 |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Cash | 0.5 | 15.8 | 56.8 | 31.5 | 66.1 | 57.0 | 80.6 | 53.2 | 17.3 | 43.3 |
| Total debt | 7.9 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a |
| Net cash (debt) | −7.4 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a |
| Shareholders’ equity | 437.3 | 525.5 | 576.0 | 597.6 | 620.3 | 651.7 | 703.9 | 757.4 | 767.9 | 767.6 |
| Debt to equity | 0.02 | n/a | n/a | n/a | n/a | 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 | ||||||||||
| 671.1 | 698.1 | 787.6 | 843.3 | 874.4 | 973.6 | 1,263.9 | 1,131.5 | 963.7 | 883.7 | |
| Growth | +4.0% | +12.8% | +7.1% | +3.7% | +11.4% | +29.8% | −10.5% | −14.8% | −8.3% | |
| 58.3 | 56.9 | 70.3 | 76.5 | 93.2 | 111.7 | 143.3 | 90.1 | 33.2 | 22.9 | |
| Growth | −2.5% | +23.7% | +8.7% | +21.9% | +19.8% | +28.3% | −37.1% | −63.1% | −31.0% | |
| 57.1 | 56.5 | 71.0 | 77.7 | 93.4 | 111.7 | 144.2 | 93.9 | 36.3 | 24.4 | |
| 23.6 | −33.8 | 16.0 | 16.6 | 23.9 | 26.3 | 33.8 | 23.5 | 9.4 | 6.9 | |
| 33.5 | 90.3 | 55.0 | 61.1 | 69.5 | 85.4 | 110.4 | 70.4 | 26.9 | 17.4 | |
| Growth | +169.8% | −39.1% | +11.0% | +13.8% | +22.9% | +29.2% | −36.2% | −61.7% | −35.2% | |
| Per share | ||||||||||
| 0.62 | 1.66 | 0.67 | 0.75 | 0.84 | 1.03 | 1.35 | 0.87 | 0.33 | 0.21 | |
| 0.61 | 1.65 | 0.67 | 0.74 | 0.84 | 1.02 | 1.35 | 0.86 | 0.33 | 0.21 | |
| Growth | +170.5% | −59.4% | +10.4% | +13.5% | +21.4% | +32.4% | −36.3% | −61.6% | −36.4% | |
| 54.2 | 54.5 | 81.9 | 81.9 | 82.5 | 82.9 | 81.7 | 81.3 | 81.4 | 81.5 | |
| 54.5 | 54.9 | 82.7 | 82.7 | 83.2 | 83.4 | 82.0 | 81.4 | 81.5 | 81.5 | |
| Growth | +0.7% | +50.8% | −0.1% | +0.6% | +0.3% | −1.7% | −0.7% | +0.1% | +0.1% | |
† The diluted share count jumps at 2018, 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.