| GBP millions | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 216.7 | 257.1 | 332.1 | 266.5 | 280.6 | 243.7 | −13.1% | |
| Cost of revenue | 177.9 | 214.0 | 284.2 | 223.2 | 228.4 | 203.7 | −10.8% | |
| Gross profit | 38.8 | 43.1 | 48.0 | 43.4 | 52.1 | 40.0 | −23.2% | |
| Research & development | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | — | |
| Selling, general & administrative | 19.4 | 21.0 | 28.0 | 26.5 | 27.6 | — | — | |
| Selling & marketing | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | — | |
| Operating expenses | 19.4 | 21.0 | 28.0 | 26.4 | 27.6 | 25.4 | −8.0% | |
| Operating income | 19.4 | 22.2 | 20.0 | 17.0 | 24.5 | 14.7 | −40.2% | |
| Interest expense | 1.6 | 1.9 | 4.8 | 7.5 | 5.5 | 3.6 | −34.2% | |
| Interest income | 0.4 | 0.1 | 0.1 | 0.2 | 0.4 | 0.7 | +102.8% | |
| Other income / expense | (1.5) | (2.5) | (4.7) | (7.3) | (5.5) | — | — | |
| Pre-tax income | 17.9 | 19.7 | 15.3 | 9.7 | 19.0 | 11.9 | −37.3% | |
| Income tax | 4.2 | 3.7 | 3.2 | 2.1 | 4.9 | 2.5 | −49.0% | |
| Net income | 13.7 | 16.1 | 12.1 | 7.5 | 14.1 | 9.4 | −33.2% | |
| Discontinued operations | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | — | |
| Other net income adjustments | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | — | |
| EPS, basic (per share) | 0.14 | 0.15 | 0.10 | 0.06 | 0.12 | 0.08 | −34.1% | |
| EPS, diluted (per share) | 0.14 | 0.14 | 0.10 | 0.06 | 0.11 | 0.07 | −32.2% | |
| EBITDA | 21.7 | 23.5 | 22.6 | 19.8 | 27.0 | 16.8 | −37.5% | |
| Depreciation & amortization | 2.2 | 1.9 | 2.5 | 2.6 | 2.4 | 2.2 | −8.6% | |
| Weighted average shares (shares) | 99,436,929 | 109,022,146 | 118,478,254 | 118,572,439 | 118,839,353 | 119,092,512 | +0.2% | |
| Weighted average diluted shares (shares) | 101,204,538 | 111,819,469 | 121,985,511 | 123,402,865 | 124,921,875 | 126,283,188 | +1.1% | |
| Gross margin | 17.9% | 16.8% | 14.4% | 16.3% | 18.6% | 16.4% | −2.1 pts | |
| Operating margin | 8.9% | 8.6% | 6.0% | 6.4% | 8.7% | 6.0% | −2.7 pts | |
| Net margin | 6.3% | 6.3% | 3.6% | 2.8% | 5.0% | 3.9% | −1.2 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.