| GBP millions | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 131.2 | 144.1 | 185.7 | 191.3 | 219.7 | 68.9 | −68.7% | |
| Cost of revenue | 92.2 | 101.4 | 139.5 | 113.4 | 128.1 | 37.0 | −71.1% | |
| Gross profit | 39.0 | 42.7 | 46.2 | 77.9 | 91.6 | 31.9 | −65.2% | |
| Research & development | 4.2 | 4.5 | 3.8 | 0.0 | 0.0 | 2.8 | — | |
| Selling, general & administrative | 22.7 | 24.4 | 25.9 | 51.0 | 54.5 | — | — | |
| Selling & marketing | 3.0 | 3.7 | 3.7 | 9.6 | 10.9 | — | — | |
| Operating expenses | 21.9 | 24.4 | 25.9 | 51.0 | 54.5 | 23.0 | −57.7% | |
| Operating income | 17.1 | 18.3 | 20.3 | 26.9 | 37.1 | 8.8 | −76.2% | |
| Interest expense | 0.8 | 1.3 | 2.0 | 4.3 | 3.0 | 0.6 | −78.5% | |
| Interest income | 0.1 | 0.2 | 0.1 | 0.1 | 0.1 | 1.0 | +921.1% | |
| Other income / expense | (0.6) | 1.6 | 1.8 | (2.7) | (2.9) | — | — | |
| Pre-tax income | 16.5 | 19.9 | 22.1 | 24.2 | 34.3 | 10.9 | −68.3% | |
| Income tax | 3.5 | 6.3 | 5.6 | 6.5 | 8.1 | 2.9 | −63.5% | |
| Net income | 12.5 | 13.0 | 15.9 | 16.9 | 24.6 | 55.5 | +125.7% | |
| Discontinued operations | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | — | |
| Other net income adjustments | 0.1 | 0.1 | 0.1 | 0.0 | 0.0 | — | — | |
| EPS, basic (per share) | 1.68 | 1.69 | 2.07 | 2.25 | 3.27 | 7.38 | +125.8% | |
| EPS, diluted (per share) | 1.64 | 1.69 | 2.07 | 2.25 | 3.27 | 7.38 | +125.8% | |
| EBITDA | 25.4 | 30.2 | 29.0 | 37.9 | 46.8 | 18.6 | −60.2% | |
| Depreciation & amortization | 8.2 | 9.0 | 8.7 | 9.4 | 9.6 | 9.8 | +2.1% | |
| Weighted average shares (shares) | 7,445,024 | 7,673,951 | 7,689,600 | 7,527,798 | 7,509,600 | 7,509,600 | +0.0% | |
| Weighted average diluted shares (shares) | 7,607,675 | 7,673,951 | 7,689,600 | 7,527,797 | 7,509,600 | 7,509,600 | +0.0% | |
| Gross margin | 29.7% | 29.6% | 24.9% | 40.7% | 41.7% | 46.3% | +4.6 pts | |
| Operating margin | 13.0% | 12.7% | 10.9% | 14.1% | 16.9% | 12.8% | −4.1 pts | |
| Net margin | 9.5% | 9.0% | 8.6% | 8.8% | 11.2% | 80.5% | +69.3 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.