Status: OK — incomplete — unset metrics listed below; Currency: ZAR; Amounts unit: millions; Forms: ✓ ✓ ✓
Report published: Not stored for this period — set financial_report_date on the row (EDGAR filingDate, KASE change_date, or manual_catalog).
Full financial report: Report (PDF)
PDF: Open the filing PDF (primary document)
To recalculate statement detection and previews from the PDF, use this link The default link runs in the background: a status panel shows phase, elapsed time, rough ETA, CUDA vs CPU, and OOM hints, then loads the finished report. Heavy mode with refresh does this automatically so reverse proxies do not return 502. Add &sync=1 only for one long blocking request (not recommended). You can use ?refresh=1, ?recalc=1, ?nocache=1, or ?recompute=1 on the URL. (block in the browser until done: synchronous refresh)
Default view is fast (metric table + statement page numbers only) so reverse proxies do not time out. Use ?heavy=1 when you need embedded page images and Camelot tables.
Metric values use dashboard units where applicable; evidence is the stored snippet from the PDF text layer or OCR used during extraction.
| Metric | Value | Evidence / page extract |
|---|---|---|
| Revenue | 132 822 | Row: was 58432000.0 where the FY of the years either side run near 126981.0; at x1/1000 it is 58432.0 · dashboard=132,822.000 mln — was 58432000.0 where the FY of the years either side run near 126981.0; at x1/1000 it is 58432.0 |
| Operating profit | 57 877 | Row: Profit before income tax; 57 877; 53 021 · dashboard=57,877.000 mln · pages 36 — [PL page 36] Profit before income tax | | 57 877 | 53 021 |
| D&A | 4 756 | Row: Insurance acquisition cash flows amortisation; (66) · dashboard=4,756.000 mln · pages 124 — [DA recon page 124] Insurance acquisition cash flows amortisation | – | – | – | – | – | – | (66) | – | – | – | – |
| EBITDA | 62 633 | Row: computed as operating_profit + da · dashboard=62,633.000 mln — computed as operating_profit + da |
| Net profit | 41 876 | Row: Profit for the year; 45 131; 41 180 · dashboard=41,876.000 mln · pages 36 — [PL page 36] Profit for the year | | 45 131 | 41 180 |
| Cash | 168 379 | — |
| Debt short | — | Row: Could not select balance sheet table — [BS] Could not select balance sheet table |
| Debt long | — | Row: Could not select balance sheet table — [BS] Could not select balance sheet table |
| Net debt | — | Row: debt_short + debt_long + other_financial_liabilities + non_controlling_interest − cash (from row components) — debt_short + debt_long + other_financial_liabilities + non_controlling_interest − cash (from row components) |
| Operating CF | 6 358 | Row: Net cash generated from operating activities; 6 358; 18 687 · dashboard=6,358.000 mln · pages 40 — [CF page 40] Net cash generated from operating activities | | 6 358 | 18 687 |
| Investing CF | -5 307 | Row: Net cash outflow from investing activities; (5 307); (5 991) · dashboard=-5,307.000 mln · pages 40 — [CF page 40] Net cash outflow from investing activities | | (5 307) | (5 991) |
| Assets | 2 588 770 | — |
| Equity | 216 370 | — |
| EBITDA | 62 633 | 47.2% of revenue |
| − D&A | 4 756 | |
| = Operating profit (EBIT) | 57 877 | ✓ 43.6% of revenue |
| − Net finance costs, tax and other — derived | 16 001 | |
| = Net profit | 41 876 | 31.5% of revenue |
|---|
The finance-costs/tax line is derived as EBIT minus net profit; see the filing PDF above for the detailed split.
| ✓ | Balance sheet identity (A = L + E) | TA (2,588,770) ≈ TL (2,350,987) + TE (216,370); residual +21,413 within 1%. |
| ✓ | EBITDA = OP + D&A | EBITDA (62,633) ≈ OP (57,877) + D&A (4,756) = 62,633. |
| ✓ | Net profit vs operating profit | Net profit (41,876) sits within a plausible band vs operating profit (57,877). |
| ✓ | Cash ≤ total assets | Cash (168,379) ≤ total assets (2,588,770). |
| Form | Pages |
|---|---|
| P&L | 35, 36, 37 |
| BS | 8, 9 |
| CF | 39, 40, 41 |
Embedded PDF thumbnails and Camelot reconstruction are omitted in the default view to avoid gateway timeouts and huge HTML. Open full previews & tables (?heavy=1).