| GBP millions | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 148.3 | 189.0 | 230.9 | 239.5 | 266.5 | 317.6 | +19.2% | |
| Cost of revenue | 109.8 | 139.0 | 171.9 | 169.4 | 184.6 | 237.5 | +28.6% | |
| Gross profit | 38.5 | 50.0 | 59.0 | 70.2 | 81.9 | 80.1 | −2.2% | |
| Research & development | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Selling, general & administrative | 22.7 | 27.8 | 36.4 | 46.7 | 18.5 | 0.0 | −100.0% | |
| Selling & marketing | 0.0 | 0.0 | 0.4 | 0.0 | 0.0 | 0.0 | — | |
| Operating expenses | 23.1 | 27.3 | 36.6 | 56.2 | 57.2 | 56.4 | −1.3% | |
| Operating income | 15.0 | 23.3 | 18.5 | 14.0 | 24.7 | 23.7 | −4.3% | |
| Interest expense | 0.2 | 0.2 | 1.2 | 2.6 | 1.9 | 1.1 | −39.6% | |
| Interest income | 0.1 | 0.0 | 0.1 | 0.3 | 0.6 | 0.5 | −9.4% | |
| Other income / expense | (0.1) | (0.1) | (1.1) | 2.2 | (1.9) | (1.6) | +15.0% | |
| Pre-tax income | 14.8 | 23.2 | 17.4 | 16.2 | 22.9 | 22.1 | −3.4% | |
| Income tax | 2.1 | 3.9 | 4.6 | 3.7 | 6.8 | 6.7 | −0.9% | |
| Net income | 12.4 | 18.7 | 12.2 | 13.5 | 15.9 | 15.1 | −5.2% | |
| 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.24 | 0.35 | 0.22 | 0.24 | 0.28 | 0.26 | −7.1% | |
| EPS, diluted (per share) | 0.24 | 0.35 | 0.22 | 0.23 | 0.27 | 0.26 | −3.7% | |
| EBITDA | 16.4 | 23.7 | 21.3 | 24.3 | 32.3 | 34.4 | +6.2% | |
| Depreciation & amortization | 1.4 | 1.3 | 4.0 | 7.6 | 7.6 | 10.7 | +41.2% | |
| Weighted average shares (shares) | 52,134,684 | 53,184,872 | 56,081,853 | 57,090,793 | 57,608,464 | 57,958,387 | +0.6% | |
| Weighted average diluted shares (shares) | 52,478,416 | 53,552,928 | 56,528,515 | 57,434,053 | 57,994,127 | 58,531,806 | +0.9% | |
| Gross margin | 25.9% | 26.4% | 25.5% | 29.3% | 30.7% | 25.2% | −5.5 pts | |
| Operating margin | 10.1% | 12.3% | 8.0% | 5.8% | 9.3% | 7.5% | −1.8 pts | |
| Net margin | 8.3% | 9.9% | 5.3% | 5.6% | 6.0% | 4.7% | −1.2 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.