| GBP millions | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 56.4 | 55.6 | 56.2 | 57.6 | 58.0 | 64.4 | +11.1% | |
| Cost of revenue | 25.6 | 25.6 | 43.9 | 44.6 | 25.9 | 27.9 | +7.9% | |
| Gross profit | 30.9 | 30.0 | 12.3 | 13.0 | 32.1 | 36.5 | +13.7% | |
| Research & development | 0.3 | 0.3 | 0.4 | 0.4 | 0.4 | 0.5 | +28.3% | |
| Selling, general & administrative | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | +1.1% | |
| Selling & marketing | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Operating expenses | 51.1 | 48.7 | 21.5 | 23.6 | 24.3 | 28.3 | +16.6% | |
| Operating income | 5.4 | 7.0 | 9.9 | 7.3 | 7.8 | 8.1 | +4.8% | |
| Interest expense | 0.2 | 0.3 | 0.3 | 0.2 | 0.2 | 1.9 | +1127.6% | |
| Interest income | 0.0 | 0.1 | 0.0 | 0.1 | 0.5 | 2.4 | +394.5% | |
| Other income / expense | (0.2) | (0.2) | (0.3) | (0.1) | 0.3 | 0.5 | +56.2% | |
| Pre-tax income | 5.2 | 6.7 | 9.6 | 7.2 | 8.1 | 8.6 | +6.9% | |
| Income tax | 2.1 | 2.1 | 2.1 | 2.1 | 3.0 | 3.2 | +7.5% | |
| Net income | 3.1 | 4.3 | 7.0 | 4.8 | 5.0 | 5.2 | +3.8% | |
| Discontinued operations | 7.1 | 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.37 | 0.52 | 0.87 | 0.60 | 0.62 | 0.67 | +8.1% | |
| EPS, diluted (per share) | 0.37 | 0.52 | 0.87 | 0.60 | 0.62 | 0.67 | +8.1% | |
| EBITDA | 8.0 | 9.9 | 12.3 | 8.8 | 9.9 | 13.2 | +33.2% | |
| Depreciation & amortization | 2.8 | 3.0 | 2.6 | 1.6 | 1.7 | 2.6 | +53.6% | |
| Weighted average shares (shares) | 8,413,983 | 8,328,365 | 8,081,398 | 8,081,398 | 8,065,949 | 7,850,393 | −2.7% | |
| Weighted average diluted shares (shares) | 8,413,983 | 8,328,365 | 8,081,398 | 8,081,398 | 8,065,944 | 7,850,393 | −2.7% | |
| Gross margin | 54.7% | 54.0% | 21.9% | 22.6% | 55.3% | 56.6% | +1.3 pts | |
| Operating margin | 9.6% | 12.5% | 17.5% | 12.7% | 13.4% | 12.6% | −0.8 pts | |
| Net margin | 5.5% | 7.8% | 12.5% | 8.4% | 8.7% | 8.1% | −0.6 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.