| GBP millions | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2026 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 117.9 | 143.7 | 176.7 | 175.8 | 175.2 | 172.9 | −1.3% | |
| Cost of revenue | 64.8 | 83.7 | 103.3 | 90.4 | 95.5 | 92.1 | −3.5% | |
| Gross profit | 53.1 | 60.1 | 73.4 | 85.4 | 79.8 | 80.9 | +1.4% | |
| Research & development | 1.9 | 2.1 | 2.3 | 0.0 | 2.2 | — | — | |
| Selling, general & administrative | 36.5 | 39.0 | 50.5 | 55.4 | 52.6 | — | — | |
| Selling & marketing | 13.6 | 15.5 | 19.2 | 22.4 | 22.4 | — | — | |
| Operating expenses | 34.6 | 38.6 | 50.0 | 54.8 | 52.1 | 49.5 | −4.9% | |
| Operating income | 20.8 | 24.7 | 27.8 | 30.6 | 31.6 | 31.3 | −0.8% | |
| Interest expense | 0.0 | 0.2 | 0.3 | 0.3 | 0.2 | 0.3 | +6.2% | |
| Interest income | 0.1 | 0.2 | 0.4 | 0.7 | 1.3 | 1.5 | +15.4% | |
| Other income / expense | (0.7) | (0.6) | (0.9) | (0.8) | 0.0 | — | — | |
| Pre-tax income | 20.1 | 24.1 | 26.9 | 29.9 | 31.6 | 33.0 | +4.5% | |
| Income tax | 4.3 | 4.0 | 5.0 | 5.6 | 6.2 | 5.4 | −13.8% | |
| Net income | 15.8 | 20.1 | 21.9 | 24.3 | 25.4 | 27.1 | +6.5% | |
| Discontinued operations | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | — | |
| Other net income adjustments | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | — | |
| EPS, basic (per share) | 0.14 | 0.17 | 0.19 | 0.21 | 0.22 | 0.24 | +7.8% | |
| EPS, diluted (per share) | 0.14 | 0.17 | 0.19 | 0.21 | 0.22 | 0.24 | +7.8% | |
| EBITDA | 25.8 | 31.1 | 36.5 | 37.9 | 42.7 | 41.2 | −3.5% | |
| Depreciation & amortization | 5.6 | 7.0 | 8.7 | 7.2 | 9.5 | 9.9 | +4.3% | |
| Weighted average shares (shares) | 116,511,580 | 116,953,866 | 117,199,805 | 117,256,012 | 117,159,981 | 114,109,264 | −2.6% | |
| Weighted average diluted shares (shares) | 116,938,189 | 117,209,308 | 117,294,937 | 117,294,290 | 117,142,318 | 114,109,264 | −2.6% | |
| Gross margin | 45.0% | 41.8% | 41.5% | 48.6% | 45.5% | 46.7% | +1.2 pts | |
| Operating margin | 17.6% | 17.2% | 15.7% | 17.4% | 18.0% | 18.1% | +0.1 pts | |
| Net margin | 13.4% | 14.0% | 12.4% | 13.8% | 14.5% | 15.7% | +1.1 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.