| GBP millions | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 61.0 | 63.9 | 66.5 | 64.9 | 78.3 | 85.9 | +9.7% | |
| Cost of revenue | 48.2 | 50.6 | 52.3 | 49.5 | 62.8 | 67.3 | +7.2% | |
| Gross profit | 12.8 | 14.8 | 16.3 | 16.9 | 18.7 | 18.6 | −0.5% | |
| Research & development | 0.7 | 0.5 | 0.6 | 2.0 | 0.6 | 0.7 | +16.7% | |
| Selling, general & administrative | 0.0 | 0.0 | 0.0 | (6.1) | 0.0 | 0.0 | — | |
| Selling & marketing | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Operating expenses | 2.8 | (5.8) | 3.4 | 6.8 | 9.0 | 0.7 | −92.2% | |
| Operating income | 11.4 | 20.6 | 12.9 | 10.1 | 9.7 | 17.9 | +84.5% | |
| Interest expense | 1.3 | 0.7 | 0.4 | 0.8 | 2.4 | 3.0 | +25.0% | |
| Interest income | 0.1 | 0.0 | 0.4 | 0.3 | 0.4 | 0.5 | +25.0% | |
| Other income / expense | (1.2) | (0.7) | (0.5) | (0.5) | (2.0) | (8.1) | −305.0% | |
| Pre-tax income | 10.2 | 19.9 | 12.4 | 9.6 | 7.7 | 9.8 | +27.3% | |
| Income tax | 2.0 | 4.3 | 2.3 | 2.2 | 1.4 | 3.2 | +128.6% | |
| Net income | 8.1 | 15.4 | 9.8 | 7.1 | 5.9 | 6.3 | +6.8% | |
| Discontinued operations | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Other net income adjustments | 0.0 | 0.0 | (0.6) | 0.0 | 0.0 | 0.0 | — | |
| EPS, basic (per share) | 0.08 | 0.16 | 0.10 | 0.07 | 0.06 | 0.06 | +6.7% | |
| EPS, diluted (per share) | 0.08 | 0.16 | 0.09 | 0.07 | 0.06 | 0.06 | +6.9% | |
| EBITDA | 15.7 | 17.2 | 16.6 | 14.7 | 15.7 | 25.1 | +59.9% | |
| Depreciation & amortization | 4.3 | 4.4 | 3.8 | 4.3 | 5.6 | 7.2 | +28.6% | |
| Weighted average shares (shares) | 96,792,089 | 97,728,610 | 103,184,717 | 104,413,300 | 104,017,114 | 104,193,285 | +0.2% | |
| Weighted average diluted shares (shares) | 97,604,691 | 98,679,380 | 103,975,584 | 104,308,463 | 104,185,432 | 104,207,462 | +0.0% | |
| Gross margin | 21.1% | 23.2% | 24.5% | 26.0% | 23.9% | 21.7% | −2.2 pts | |
| Operating margin | 18.7% | 32.2% | 19.4% | 15.6% | 12.4% | 20.8% | +8.4 pts | |
| Net margin | 13.3% | 24.1% | 14.7% | 10.9% | 7.5% | 7.3% | −0.2 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.