| GBP millions | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2026 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 47.7 | 53.6 | 64.9 | 76.1 | 72.8 | 83.3 | +14.5% | |
| Cost of revenue | 36.3 | 40.4 | 49.8 | 59.0 | 55.2 | 63.6 | +15.2% | |
| Gross profit | 11.3 | 13.2 | 15.1 | 17.1 | 17.6 | 19.8 | +12.3% | |
| Research & development | 0.3 | 0.3 | 0.2 | 0.3 | 0.0 | — | — | |
| Selling, general & administrative | 2.4 | 2.9 | 3.4 | 4.3 | 4.2 | — | — | |
| Selling & marketing | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | — | |
| Operating expenses | 4.0 | 3.7 | 4.6 | 4.3 | 4.2 | 4.8 | +15.4% | |
| Operating income | 8.2 | 9.6 | 10.5 | 12.8 | 13.5 | 15.0 | +11.3% | |
| Interest expense | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | −52.4% | |
| Interest income | 0.0 | 0.0 | 0.3 | 1.1 | 0.8 | 0.6 | −22.9% | |
| Other income / expense | (0.8) | (0.0) | 0.3 | 1.1 | 0.8 | — | — | |
| Pre-tax income | 7.4 | 9.6 | 10.9 | 13.9 | 14.3 | 15.6 | +9.4% | |
| Income tax | 1.3 | 1.5 | 2.1 | 3.3 | 3.1 | 3.7 | +19.2% | |
| Net income | 6.1 | 8.0 | 8.8 | 10.6 | 11.1 | 11.9 | +6.7% | |
| 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.06 | 0.08 | 0.09 | 0.11 | 0.11 | 0.12 | +9.3% | |
| EPS, diluted (per share) | 0.06 | 0.08 | 0.09 | 0.11 | 0.11 | 0.12 | +8.7% | |
| EBITDA | 7.9 | 10.2 | 11.8 | 14.7 | 15.3 | 16.2 | +6.1% | |
| Depreciation & amortization | 0.5 | 0.6 | 0.9 | 0.8 | 1.0 | 1.3 | +23.6% | |
| Weighted average shares (shares) | 100,000,000 | 100,000,000 | 99,970,504 | 99,651,884 | 99,036,308 | 98,898,757 | −0.1% | |
| Weighted average diluted shares (shares) | 100,465,475 | 100,510,056 | 100,731,303 | 100,454,963 | 99,732,071 | 99,375,454 | −0.4% | |
| Gross margin | 23.8% | 24.7% | 23.2% | 22.4% | 24.2% | 23.7% | −0.5 pts | |
| Operating margin | 17.1% | 17.8% | 16.2% | 16.9% | 18.5% | 18.0% | −0.5 pts | |
| Net margin | 12.7% | 15.0% | 13.6% | 14.0% | 15.3% | 14.3% | −1.0 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.