| GBP millions | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 69.5 | 82.7 | 86.6 | 132.5 | 113.1 | 95.7 | −15.4% | |
| Cost of revenue | 65.9 | 78.6 | 77.7 | 78.2 | 60.5 | 88.2 | +45.8% | |
| Gross profit | 3.6 | 4.2 | 8.9 | 54.3 | 14.7 | 7.5 | −49.0% | |
| Research & development | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Selling, general & administrative | 1.7 | 2.7 | 3.4 | 31.6 | 5.0 | 5.1 | +1.8% | |
| Selling & marketing | (2.3) | (1.8) | (1.4) | 0.0 | 0.0 | 0.0 | — | |
| Operating expenses | 1.7 | 26.7 | 29.4 | 41.1 | 42.6 | 5.1 | −87.9% | |
| Operating income | 1.9 | 0.2 | 5.9 | 13.2 | 9.8 | 2.4 | −75.7% | |
| Interest expense | 0.0 | 0.0 | 0.1 | 0.1 | 0.1 | 0.1 | +52.0% | |
| Interest income | 0.0 | 0.0 | 0.0 | 0.2 | 0.9 | 0.7 | −13.4% | |
| Other income / expense | 0.0 | (0.0) | (0.1) | 0.1 | 0.8 | (1.0) | −231.3% | |
| Pre-tax income | 1.7 | 0.2 | 5.8 | 13.4 | 10.8 | 1.3 | −87.6% | |
| Income tax | 0.3 | 0.1 | 1.1 | 3.1 | 2.5 | 0.0 | −99.6% | |
| Net income | 1.4 | 0.1 | 4.7 | 10.3 | 8.3 | 1.3 | −84.0% | |
| 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.11 | 0.01 | 0.39 | 0.84 | 0.66 | 0.10 | −84.8% | |
| EPS, diluted (per share) | 0.11 | 0.01 | 0.38 | 0.79 | 0.62 | 0.10 | −83.9% | |
| EBITDA | 3.6 | 2.2 | 8.0 | 15.7 | 13.2 | 5.1 | −61.8% | |
| Depreciation & amortization | 1.9 | 2.0 | 2.0 | 2.2 | 2.3 | 2.7 | +14.5% | |
| Weighted average shares (shares) | 12,082,548 | 12,106,797 | 12,117,190 | 12,232,690 | 12,498,567 | 12,753,439 | +2.0% | |
| Weighted average diluted shares (shares) | 12,082,548 | 12,106,797 | 12,507,863 | 13,014,903 | 13,353,120 | 13,313,801 | −0.3% | |
| Gross margin | 5.2% | 5.0% | 10.3% | 41.0% | 13.0% | 7.8% | −5.2 pts | |
| Operating margin | 2.8% | 0.3% | 6.8% | 10.0% | 8.6% | 2.5% | −6.2 pts | |
| Net margin | 2.0% | 0.1% | 5.5% | 7.8% | 7.3% | 1.4% | −5.9 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.