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 | 22.4 | 24.9 | 31.9 | 31.2 | 1.4 | 1.7 | 1.7 | 2.2 | 2.5 |
| Growth | +11.0% | +28.3% | −2.3% | −95.4% | +14.5% | +4.4% | +28.8% | +10.2% | ||
| Operating income | −0.2 | 0.3 | 1.4 | 3.4 | 1.4 | −3.5 | −2.0 | 0.6 | 0.7 | 0.2 |
| Net income | 0.1 | 0.1 | 1.4 | 7.0 | 1.0 | 14.6 | −3.0 | 0.3 | 0.4 | 0.7 |
| Growth | −20.9% | +1,100.9% | +399.4% | −86.2% | +1,412.2% | −120.4% | +60.6% | +59.3% | ||
| EPS, diluted | 0.06 | 0.04 | 0.29 | 1.41 | 0.19 | 2.74 | −0.56 | 0.05 | 0.08 | 0.11 |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Operating margin | n/a | 1.2% | 5.7% | 10.8% | 4.5% | −243.5% | −123.7% | 37.4% | 31.4% | 10.2% |
| Net margin | n/a | 0.5% | 5.6% | 22.0% | 3.1% | 1,012.3% | −180.8% | 15.6% | 19.4% | 28.0% |
| Free cash flow margin | n/a | 2.5% | 5.4% | 4.7% | 8.9% | 17.5% | −89.4% | 22.3% | n/a | n/a |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Operating cash flow | 0.3 | 0.7 | 1.7 | 2.7 | 3.2 | 1.4 | −0.8 | 0.4 | 0.9 | 0.1 |
| Capital expenditure | −0.2 | −0.1 | −0.3 | −1.2 | −0.4 | −1.1 | −0.7 | 0.0 | n/a | n/a |
| Free cash flow | 0.1 | 0.6 | 1.3 | 1.5 | 2.8 | 0.3 | −1.5 | 0.4 | n/a | n/a |
| Growth | +418.9% | +142.2% | +12.8% | +85.3% | −90.9% | −684.6% | ||||
| Buybacks | −0.0 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | 0.0 | −0.4 |
| Dividends paid | −0.1 | −0.0 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a |
| FY2016 | FY2017 | FY2018 | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Cash | 2.8 | 13.3 | 15.5 | 12.5 | 18.3 | 26.4 | 21.5 | 40.7 | 41.6 | 41.5 |
| Shareholders’ equity | 13.9 | 24.9 | 27.3 | 34.9 | 39.8 | 54.7 | 38.5 | 38.8 | 39.2 | 43.5 |
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 | 22.4 | 24.9 | 31.9 | 31.2 | 1.4 | 1.7 | 1.7 | 2.2 | 2.5 | |
| Growth | +11.0% | +28.3% | −2.3% | −95.4% | +14.5% | +4.4% | +28.8% | +10.2% | ||
| 1.9 | 1.8 | 1.9 | 2.0 | 2.1 | 2.2 | n/a | n/a | n/a | n/a | |
| −0.2 | 0.3 | 1.4 | 3.4 | 1.4 | −3.5 | −2.0 | 0.6 | 0.7 | 0.2 | |
| Growth | +418.1% | +140.5% | −58.9% | −348.8% | +8.2% | −64.4% | ||||
| −0.0 | 0.2 | 1.6 | 3.9 | 1.3 | 16.0 | −6.4 | 0.6 | 0.7 | 0.2 | |
| −0.2 | 0.1 | 0.2 | −3.1 | 0.3 | 3.5 | −1.5 | 0.3 | 0.2 | −0.5 | |
| 0.1 | 0.1 | 1.4 | 7.0 | 1.0 | 14.6 | −3.0 | 0.3 | 0.4 | 0.7 | |
| Growth | −20.9% | +1,100.9% | +399.4% | −86.2% | +1,412.2% | −120.4% | +60.6% | +59.3% | ||
| Per share | ||||||||||
| 0.06 | 0.04 | 0.30 | 1.44 | 0.19 | 2.77 | −0.56 | 0.05 | 0.08 | 0.13 | |
| 0.06 | 0.04 | 0.29 | 1.41 | 0.19 | 2.74 | −0.56 | 0.05 | 0.08 | 0.11 | |
| Growth | −33.3% | +625.0% | +386.2% | −86.5% | +1,342.1% | −120.4% | +60.0% | +37.5% | ||
| 2.7 | 2.9 | 4.7 | 4.9 | 5.2 | 5.3 | 5.3 | 5.4 | 5.4 | 5.4 | |
| 2.7 | 3.0 | 4.9 | 5.0 | 5.2 | 5.3 | 5.4 | 5.4 | 5.6 | 6.4 | |
| Growth | +13.9% | +60.6% | +2.1% | +4.8% | +2.2% | +0.9% | −0.6% | +3.8% | +15.3% | |
† 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.