Closing prices at the end of each trading day, from 25 Apr 2024. 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.
| FY2023 | FY2024 | FY2025 | |
|---|---|---|---|
| Revenue | 317.5 | 402.8 | 496.3 |
| Growth | +26.9% | +23.2% | |
| Operating income | 69.5 | 87.6 | 106.2 |
| Net income | −4.6 | 22.2 | 72.1 |
| Growth | +224.5% | ||
| EPS, diluted | −22,620.18 | 0.24 | 0.75 |
| FY2023 | FY2024 | FY2025 | |
|---|---|---|---|
| Gross margin | 48.6% | 49.4% | 52.7% |
| Operating margin | 21.9% | 21.8% | 21.4% |
| Net margin | −1.5% | 5.5% | 14.5% |
| FY2023 | FY2024 | FY2025 | |
|---|---|---|---|
| Operating cash flow | 12.8 | 55.0 | 112.3 |
| FY2023 | FY2024 | FY2025 | |
|---|---|---|---|
| Cash | 21.5 | 54.1 | 84.8 |
| Total debt | 535.5 | 277.3 | 715.7 |
| Net cash (debt) | −514.0 | −223.2 | −630.9 |
| Shareholders’ equity | 418.1 | 1,088.5 | 1,174.8 |
| Debt to equity | 1.28 | 0.25 | 0.61 |
In millions of USD, except per-share figures and ratios. Fiscal years, as last filed with the SEC.
| Fiscal year | FY2023 31 Dec 2023 | FY2024† 31 Dec 2024 | FY2025 31 Dec 2025 |
|---|---|---|---|
| Revenue and profit | |||
| 317.5 | 402.8 | 496.3 | |
| Growth | +26.9% | +23.2% | |
| 163.2 | 204.0 | 235.0 | |
| 154.3 | 198.8 | 261.3 | |
| Growth | +28.9% | +31.4% | |
| 6.3 | 8.8 | 13.1 | |
| 82.1 | 112.3 | 143.6 | |
| 69.5 | 87.6 | 106.2 | |
| Growth | +26.1% | +21.2% | |
| 2.4 | 29.1 | 80.6 | |
| 7.1 | 6.8 | 8.4 | |
| −4.6 | 22.2 | 72.1 | |
| Growth | +224.5% | ||
| Per share | |||
| −22,620.18 | 0.25 | 0.77 | |
| −22,620.18 | 0.24 | 0.75 | |
| Growth | +212.5% | ||
| 0.0 | 0.1 | 0.1 | |
| 0.0 | 0.1 | 0.1 | |
| Growth | +44,843.1% | +4.6% | |
† The diluted share count jumps at 2024, 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.