| GBP millions | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | FY2026 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 31.0 | 31.1 | 36.0 | 41.9 | 46.5 | 51.1 | +10.0% | |
| Cost of revenue | 6.3 | 6.5 | 6.8 | 8.4 | 8.5 | 11.8 | +38.7% | |
| Gross profit | 24.7 | 24.7 | 29.2 | 33.6 | 37.9 | 39.3 | +3.6% | |
| Research & development | 0.7 | 0.6 | 0.7 | 0.0 | 0.0 | — | — | |
| Selling, general & administrative | 16.4 | 17.5 | 20.2 | 23.1 | 25.3 | — | — | |
| Selling & marketing | 0.0 | 0.3 | 0.3 | 0.3 | 0.3 | — | — | |
| Operating expenses | 20.0 | 20.5 | 23.9 | 26.6 | 29.5 | 28.3 | −4.3% | |
| Operating income | 4.8 | 4.2 | 5.3 | 7.0 | 8.4 | 11.0 | +31.1% | |
| Interest expense | 0.2 | 0.2 | 0.2 | 0.2 | 0.3 | 0.2 | −7.3% | |
| Interest income | 0.0 | 0.0 | 0.0 | 0.3 | 0.3 | 0.4 | +34.2% | |
| Other income / expense | (1.0) | (2.6) | (0.2) | 0.1 | 0.0 | — | — | |
| Pre-tax income | 3.8 | 1.5 | 5.1 | 7.1 | 8.4 | 11.0 | +30.4% | |
| Income tax | 0.8 | 0.6 | 0.7 | 0.6 | 1.8 | 3.0 | +68.5% | |
| Net income | 3.7 | 1.0 | 4.5 | 6.5 | 6.6 | 8.0 | +20.2% | |
| 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.08 | 0.02 | 0.09 | 0.14 | 0.14 | 0.17 | +19.1% | |
| EPS, diluted (per share) | 0.08 | 0.02 | 0.09 | 0.14 | 0.14 | 0.17 | +18.4% | |
| EBITDA | 6.7 | 4.5 | 7.9 | 10.0 | 11.5 | 14.3 | +24.2% | |
| Depreciation & amortization | 2.7 | 2.7 | 2.6 | 2.7 | 2.8 | 3.2 | +15.7% | |
| Weighted average shares (shares) | 46,539,000 | 47,187,000 | 47,247,000 | 47,421,000 | 47,687,000 | 47,853,000 | +0.3% | |
| Weighted average diluted shares (shares) | 47,033,000 | 47,769,000 | 47,358,000 | 47,844,000 | 48,018,000 | 48,177,000 | +0.3% | |
| Gross margin | 79.8% | 79.2% | 81.0% | 80.1% | 81.7% | 76.9% | −4.8 pts | |
| Operating margin | 15.4% | 13.5% | 14.7% | 16.7% | 18.1% | 21.5% | +3.5 pts | |
| Net margin | 11.8% | 3.2% | 12.4% | 15.5% | 14.3% | 15.6% | +1.3 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.