| GBP millions | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 30.3 | 50.6 | 71.7 | 85.9 | 111.3 | 149.6 | +34.4% | |
| Cost of revenue | 19.1 | 32.9 | 47.5 | 56.6 | 75.5 | 104.8 | +38.7% | |
| Gross profit | 11.2 | 17.7 | 23.2 | 29.3 | 35.8 | 44.8 | +25.1% | |
| Research & development | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Selling, general & administrative | 4.0 | 5.2 | 6.9 | 8.6 | 11.2 | 17.7 | +57.3% | |
| Selling & marketing | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Operating expenses | 4.7 | 5.3 | 6.3 | 6.6 | 12.1 | 12.4 | +2.6% | |
| Operating income | 6.5 | 12.4 | 16.9 | 22.6 | 24.6 | 32.4 | +31.7% | |
| Interest expense | 0.3 | 0.2 | 1.2 | 0.9 | 1.2 | 2.3 | +92.4% | |
| Interest income | 0.0 | 0.0 | 0.1 | 0.4 | 0.4 | 0.2 | −58.9% | |
| Other income / expense | (0.7) | (0.2) | (1.2) | (0.5) | (1.7) | (4.8) | −183.7% | |
| Pre-tax income | 5.8 | 12.2 | 15.7 | 22.1 | 22.9 | 27.6 | +20.5% | |
| Income tax | 1.0 | 2.0 | 2.9 | 4.9 | 6.5 | 7.9 | +21.3% | |
| Net income | 4.8 | 10.1 | 12.9 | 17.2 | 16.4 | 19.7 | +20.3% | |
| 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.12 | 0.22 | 0.28 | 0.38 | 0.35 | 0.41 | +17.1% | |
| EPS, diluted (per share) | 0.11 | 0.20 | 0.25 | 0.34 | 0.32 | 0.37 | +15.6% | |
| EBITDA | 9.0 | 14.5 | 20.0 | 25.8 | 28.0 | 39.6 | +41.5% | |
| Depreciation & amortization | 2.5 | 2.0 | 3.1 | 2.8 | 3.9 | 7.2 | +85.4% | |
| Weighted average shares (shares) | 40,871,621 | 46,031,070 | 46,186,481 | 45,933,062 | 47,070,665 | 47,653,623 | +1.2% | |
| Weighted average diluted shares (shares) | 44,617,908 | 50,686,515 | 51,927,068 | 50,464,437 | 51,762,127 | 52,978,116 | +2.3% | |
| Gross margin | 36.9% | 35.0% | 32.3% | 34.1% | 32.2% | 29.9% | −2.2 pts | |
| Operating margin | 21.4% | 24.5% | 23.6% | 26.3% | 22.1% | 21.6% | −0.4 pts | |
| Net margin | 15.8% | 20.0% | 17.9% | 20.1% | 14.7% | 13.2% | −1.5 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.