| Reported currency millions | FY2022 · GBP | FY2023 · GBX | FY2023 · GBP | FY2024 · GBX | FY2024 · GBP | FY2025 · GBP | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 20.2 | 20.2 | 20.3 | 20.3 | 20.4 | 19.6 | −3.7% | |
| Cost of revenue | 15.9 | — | 16.5 | — | 17.0 | 16.4 | −3.7% | |
| Gross profit | 4.3 | 4.2 | 3.8 | 3.6 | 3.4 | 3.2 | −3.9% | |
| Research & development | 0.0 | — | 0.0 | — | 0.0 | 0.0 | — | |
| Selling, general & administrative | 2.9 | — | 1.5 | — | 3.0 | 2.8 | −7.9% | |
| Selling & marketing | 1.2 | — | 0.0 | — | 0.0 | 1.5 | — | |
| Operating expenses | 3.1 | — | 3.3 | — | 3.0 | 3.0 | −1.6% | |
| Operating income | 1.1 | — | 0.4 | — | 0.3 | 0.3 | −23.6% | |
| Interest expense | 0.0 | — | 0.0 | — | 0.0 | 0.0 | −100.0% | |
| Interest income | 0.0 | — | 0.1 | — | 0.0 | 0.0 | −100.0% | |
| Other income / expense | (0.0) | — | (0.0) | — | 0.0 | (0.2) | −1018.7% | |
| Pre-tax income | 1.0 | — | 0.4 | — | 0.4 | 0.1 | −69.0% | |
| Income tax | 0.3 | — | 0.1 | — | 0.1 | 0.0 | −93.7% | |
| Net income | 0.8 | 0.8 | 0.3 | 0.3 | 0.2 | 0.1 | −49.0% | |
| Discontinued operations | 0.0 | — | 0.0 | — | 0.0 | 0.0 | — | |
| Other net income adjustments | 0.0 | — | 0.0 | — | 0.0 | 0.0 | — | |
| EPS, basic (per share) | 0.08 | 0.08 | 0.03 | 0.03 | 0.02 | 0.01 | −49.0% | |
| EPS, diluted (per share) | 0.07 | 0.07 | 0.03 | 0.03 | 0.02 | 0.01 | −43.6% | |
| EBITDA | 1.3 | 1.4 | 0.7 | 0.8 | 0.5 | 0.4 | −13.4% | |
| Depreciation & amortization | 0.2 | — | 0.3 | — | 0.1 | 0.1 | +3.6% | |
| Weighted average shares (shares) | 9,413,000 | — | 9,538,000 | — | 10,823,590 | 9,794,226 | −9.5% | |
| Weighted average diluted shares (shares) | 11,078,000 | — | 11,031,000 | — | 10,823,590 | 9,794,222 | −9.5% | |
| Gross margin | 21.4% | 20.6% | 18.6% | 17.8% | 16.5% | 16.5% | −0.0 pts | |
| Operating margin | 5.4% | — | 2.2% | — | 1.7% | 1.4% | −0.4 pts | |
| Net margin | 3.7% | 3.7% | 1.5% | 1.5% | 1.2% | 0.6% | −0.5 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.
Reporting currencies differ or are unavailable; each column identifies its currency.