| USD billions | FY2019 | FY2020 | FY2021 | FY2022 | FY2023 | FY2024 | Trend | YoY |
|---|---|---|---|---|---|---|---|---|
| Revenue | 5.6 | 5.5 | 5.9 | 6.5 | 6.5 | 6.6 | +1.5% | |
| Cost of revenue | 4.4 | 4.3 | 4.7 | 5.2 | 5.1 | 5.2 | +1.8% | |
| Gross profit | 1.2 | 1.2 | 1.2 | 1.3 | 1.4 | 1.4 | +0.5% | |
| Research & development | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | +28.5% | |
| Selling, general & administrative | 1.0 | 1.0 | 1.0 | 1.1 | 1.1 | 1.1 | +2.2% | |
| Selling & marketing | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Operating expenses | 1.1 | 1.1 | 1.0 | 1.1 | 1.1 | 1.1 | +2.8% | |
| Operating income | 0.1 | 0.1 | 0.2 | 0.2 | 0.3 | 0.3 | −8.4% | |
| Interest expense | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | +33.5% | |
| Interest income | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | — | |
| Other income / expense | (0.0) | (0.0) | (0.0) | 0.1 | (0.0) | (0.0) | −69.9% | |
| Pre-tax income | 0.1 | (0.6) | 0.2 | 0.3 | 0.3 | 0.2 | −10.0% | |
| Income tax | 0.0 | (0.0) | 0.0 | 0.1 | 0.1 | 0.1 | −9.5% | |
| Net income | 0.1 | (0.6) | 0.2 | 0.2 | 0.2 | 0.2 | −10.4% | |
| 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.90 | (6.26) | 1.63 | 2.09 | 2.14 | 2.00 | −6.5% | |
| EPS, diluted (per share) | 0.89 | (6.26) | 1.61 | 2.06 | 2.12 | 1.98 | −6.6% | |
| EBITDA | 0.2 | (0.5) | 0.3 | 0.4 | 0.4 | 0.4 | −2.9% | |
| Depreciation & amortization | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | +5.3% | |
| Weighted average shares (shares) | 92,755,000 | 94,154,000 | 95,599,000 | 97,277,000 | 97,027,000 | 92,969,000 | −4.2% | |
| Weighted average diluted shares (shares) | 93,484,000 | 94,154,000 | 96,664,000 | 98,514,000 | 97,815,000 | 93,679,000 | −4.2% | |
| Gross margin | 21.4% | 21.8% | 20.4% | 19.8% | 21.2% | 21.0% | −0.2 pts | |
| Operating margin | 2.5% | 2.3% | 3.6% | 2.4% | 4.3% | 3.9% | −0.4 pts | |
| Net margin | 1.5% | −10.7% | 2.6% | 3.1% | 3.2% | 2.8% | −0.4 pts |
Amounts are shown in the stated units; per-share amounts and shares are unscaled. Negative amounts are in brackets.