| USD millions | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 37.9 | 54.5 | 71.3 | 76.0 | 83.3 | 92.3 | +10.8% | |
| Cost of revenue | 8.8 | 9.0 | 9.7 | 10.4 | 9.8 | 10.6 | +7.8% | |
| Gross profit | 29.1 | 45.6 | 61.7 | 65.6 | 73.5 | 81.8 | +11.3% | |
| Research & development | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Selling, general & administrative | 24.1 | 38.6 | 54.0 | 57.6 | 65.9 | 72.7 | +10.3% | |
| Selling & marketing | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Operating expenses | 24.5 | 39.0 | 54.8 | 58.4 | 65.8 | 72.7 | +10.4% | |
| Operating income | 4.6 | 6.6 | 6.8 | 7.2 | 7.7 | 9.1 | +18.5% | |
| Interest expense | 0.4 | 1.0 | 1.6 | 1.6 | 1.7 | 2.5 | +46.2% | |
| Interest income | 0.1 | 0.1 | 0.2 | 0.7 | 0.4 | 0.3 | −12.5% | |
| Other income / expense | (0.4) | 1.0 | (1.3) | (0.9) | (1.3) | (2.1) | −65.0% | |
| Pre-tax income | 4.2 | 7.6 | 5.5 | 6.2 | 6.4 | 6.9 | +9.0% | |
| Income tax | 1.3 | 1.6 | 1.8 | 1.6 | 1.6 | 1.7 | +6.9% | |
| Net income | 2.9 | 5.8 | 3.6 | 4.4 | 4.7 | 5.0 | +7.8% | |
| Discontinued operations | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Other net income adjustments | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| EPS, basic (per share) | 0.20 | 0.36 | 0.21 | 0.25 | 0.26 | 0.30 | +15.4% | |
| EPS, diluted (per share) | 0.19 | 0.33 | 0.19 | 0.25 | 0.26 | 0.28 | +7.7% | |
| EBITDA | 5.8 | 8.3 | 9.4 | 10.0 | 13.5 | 15.4 | +14.3% | |
| Depreciation & amortization | 1.3 | 1.7 | 2.6 | 2.9 | 5.4 | 6.3 | +16.7% | |
| Weighted average shares (shares) | 14,832,294 | 17,286,616 | 18,554,459 | 17,808,497 | 17,843,155 | 17,217,593 | −3.5% | |
| Weighted average diluted shares (shares) | 15,427,122 | 17,286,616 | 18,554,459 | 17,833,235 | 17,823,584 | 17,617,356 | −1.2% | |
| Gross margin | 76.7% | 83.6% | 86.5% | 86.4% | 88.2% | 88.6% | +0.3 pts | |
| Operating margin | 12.0% | 12.1% | 9.6% | 9.5% | 9.2% | 9.8% | +0.6 pts | |
| Net margin | 7.6% | 10.6% | 5.0% | 5.8% | 5.6% | 5.5% | −0.2 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.
Statements are reported in USD; the shares trade in GBP.