| GBP millions | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 25.2 | 27.3 | 26.6 | 28.0 | 32.4 | 38.8 | +19.8% | |
| Cost of revenue | 4.2 | 4.5 | 4.7 | 2.9 | 3.5 | 7.3 | +108.4% | |
| Gross profit | 21.0 | 22.9 | 21.9 | 25.2 | 28.9 | 31.6 | +9.2% | |
| Research & development | 1.6 | 1.7 | 1.5 | 1.3 | 2.5 | 2.3 | −8.5% | |
| Selling, general & administrative | 16.6 | 18.1 | 17.6 | 19.1 | 21.2 | 24.6 | +15.9% | |
| Selling & marketing | 0.0 | 0.1 | (1.1) | 0.0 | 0.0 | 0.0 | — | |
| Operating expenses | 18.6 | 20.5 | 19.1 | 21.9 | 24.9 | 26.1 | +4.9% | |
| Operating income | 4.0 | 5.0 | 2.8 | 3.2 | 4.1 | 5.5 | +35.2% | |
| Interest expense | 0.3 | 0.2 | 0.1 | 0.1 | 0.1 | 0.2 | +230.6% | |
| Interest income | 0.0 | 0.0 | 0.0 | 0.1 | 0.3 | 0.2 | −20.0% | |
| Other income / expense | (0.1) | (1.1) | 0.2 | 0.2 | 0.2 | (2.6) | −1207.1% | |
| Pre-tax income | 3.9 | 3.9 | 2.9 | 3.4 | 4.3 | 2.8 | −33.7% | |
| Income tax | 0.7 | 1.2 | 0.5 | 0.8 | 1.0 | 1.5 | +59.5% | |
| Net income | 3.2 | 2.7 | 2.4 | 2.7 | 3.3 | 1.3 | −60.5% | |
| Discontinued operations | 0.0 | 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.04 | 0.03 | 0.03 | 0.03 | 0.04 | 0.02 | −60.7% | |
| EPS, diluted (per share) | 0.04 | 0.03 | 0.03 | 0.03 | 0.04 | 0.02 | −60.5% | |
| EBITDA | 6.7 | 6.5 | 5.2 | 5.9 | 7.5 | 7.1 | −5.9% | |
| Depreciation & amortization | 2.5 | 2.4 | 2.2 | 2.4 | 3.2 | 4.0 | +26.3% | |
| Weighted average shares (shares) | 81,400,000 | 82,000,000 | 82,200,000 | 82,200,000 | 82,300,000 | 82,600,000 | +0.4% | |
| Weighted average diluted shares (shares) | 82,000,000 | 82,900,000 | 83,000,000 | 83,700,000 | 83,200,000 | 83,500,000 | +0.4% | |
| Gross margin | 83.4% | 83.6% | 82.4% | 89.8% | 89.3% | 81.3% | −7.9 pts | |
| Operating margin | 15.7% | 18.2% | 10.4% | 11.4% | 12.5% | 14.1% | +1.6 pts | |
| Net margin | 12.5% | 10.0% | 9.0% | 9.5% | 10.3% | 3.4% | −6.9 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.