| GBP millions | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2026 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 77.8 | 89.4 | 89.1 | 100.7 | 113.4 | 107.1 | −5.6% | |
| Cost of revenue | 48.4 | 56.1 | 56.5 | 62.4 | 70.4 | 68.5 | −2.6% | |
| Gross profit | 29.4 | 33.3 | 32.7 | 38.3 | 43.0 | 38.6 | −10.4% | |
| Research & development | 0.1 | 0.2 | 0.3 | 0.4 | 0.0 | 0.5 | — | |
| Selling, general & administrative | 18.7 | 19.8 | 20.4 | 24.2 | 27.4 | — | — | |
| Selling & marketing | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | — | |
| Operating expenses | 18.8 | 20.1 | 20.6 | 25.1 | 29.4 | 27.9 | −5.1% | |
| Operating income | 10.2 | 12.7 | 11.5 | 13.2 | 13.6 | 10.6 | −21.8% | |
| Interest expense | 0.5 | 0.6 | 0.9 | 1.3 | 1.4 | 1.3 | −10.1% | |
| Interest income | 0.5 | 0.6 | 0.9 | 0.0 | 0.0 | 0.0 | — | |
| Other income / expense | (0.8) | (0.7) | (1.0) | (1.5) | (1.3) | — | — | |
| Pre-tax income | 9.5 | 12.0 | 10.5 | 11.7 | 12.3 | 9.6 | −22.0% | |
| Income tax | 2.1 | 2.4 | 2.2 | 3.0 | 2.9 | 2.3 | −23.2% | |
| Net income | 7.6 | (7.0) | 6.6 | 8.7 | 9.3 | 7.3 | −21.7% | |
| Discontinued operations | 0.2 | (16.7) | (1.8) | 0.0 | 0.0 | — | — | |
| Other net income adjustments | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | — | |
| EPS, basic (per share) | 0.21 | 0.27 | 0.23 | 0.24 | 0.26 | 0.20 | −21.9% | |
| EPS, diluted (per share) | 0.21 | 0.27 | 0.23 | 0.24 | 0.25 | 0.20 | −19.8% | |
| EBITDA | 12.3 | 15.4 | 14.4 | 16.1 | 19.6 | 15.6 | −20.7% | |
| Depreciation & amortization | 2.3 | 2.8 | 2.9 | 3.1 | 4.4 | 4.9 | +12.0% | |
| Weighted average shares (shares) | 35,766,000 | 35,825,000 | 35,806,000 | 35,964,000 | 36,913,043 | 36,022,000 | −2.4% | |
| Weighted average diluted shares (shares) | 36,403,000 | 35,825,000 | 36,192,000 | 36,260,000 | 36,848,000 | 36,478,000 | −1.0% | |
| Gross margin | 37.7% | 37.3% | 36.6% | 38.0% | 37.9% | 36.0% | −1.9 pts | |
| Operating margin | 13.1% | 14.2% | 12.9% | 13.1% | 12.0% | 9.9% | −2.1 pts | |
| Net margin | 9.8% | −7.9% | 7.4% | 8.7% | 8.2% | 6.8% | −1.4 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.