Status: OK; Currency: KZT; 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 (local): /root/projects/frontier/data/raw_pdfs/KMG/2023-12-31_FY_23ye-fs-kmg-conso-eng.pdf
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 | 8 319 543 | Row: revenue (mln KZT, batch apply) · dashboard=8,319,543.000 mln — [DeepSeek] revenue (mln KZT, batch apply) |
| Operating profit | 835 460 | Row: operating_profit (mln KZT, batch apply) · dashboard=835,460.000 mln — [DeepSeek] operating_profit (mln KZT, batch apply) |
| D&A | 601 204 | Row: da (mln KZT, batch apply) · dashboard=601,204.000 mln — [DeepSeek] da (mln KZT, batch apply) |
| EBITDA | 1 436 664 | Row: computed as operating_profit + da · dashboard=1,436,664.000 mln — computed as operating_profit + da |
| Net profit | 924 461 | Row: net_profit (mln KZT, batch apply) · dashboard=924,461.000 mln — [DeepSeek] net_profit (mln KZT, batch apply) |
| Cash | 1 050 873 | Row: cash (mln KZT, batch apply) · dashboard=1,050,873.000 mln — [DeepSeek] cash (mln KZT, batch apply) |
| Debt short | 408 758 | Row: debt_short (mln KZT, batch apply) · dashboard=408,758.000 mln — [DeepSeek] debt_short (mln KZT, batch apply) |
| Debt long | 3 453 616 | Row: debt_long (mln KZT, batch apply) · dashboard=3,453,616.000 mln — [DeepSeek] debt_long (mln KZT, batch apply) |
| Net debt | 2 910 905 | Components: short debt 408 758 + long debt 3 453 616 + other financial liab. 0 + NCI 99 404 − cash 1 050 873 = net debt 2 910 905.Row: net_debt (mln KZT, batch apply) · dashboard=2,910,905.000 mln — [DeepSeek] net_debt (mln KZT, batch apply) |
| Operating CF | 1 667 614 | Row: operating_cash_flow (mln KZT, batch apply) · dashboard=1,667,614.000 mln — [DeepSeek] operating_cash_flow (mln KZT, batch apply) |
| Investing CF | -759 636 | Row: investing_cash_flow (mln KZT, batch apply) · dashboard=-759,636.000 mln — [DeepSeek] investing_cash_flow (mln KZT, batch apply) |
| Assets | 16 942 712 | Row: Total assets · dashboard=16,942,712.000 mln · pages 10 — [DeepSeek] p.10 | Total assets | units: millions of tenge |
| Equity | 10 394 397 | Row: Total equity · dashboard=10,394,397.000 mln · pages 10 — [DeepSeek] p.10 | Total equity | units: millions of tenge |
| ✓ | Balance sheet identity (A = L + E) | TA (16,942,712) ≈ TL (6,548,315) + TE (10,394,397); residual +0 within 1%. |
| ✓ | Net debt formula | net_debt 2,910,905 matches |debt_short|+|debt_long|+|other|+|NCI|−|cash| = 2,910,905. |
| ✓ | EBITDA = OP + D&A | EBITDA (1,436,664) ≈ OP (835,460) + D&A (601,204) = 1,436,664. |
| ✓ | Net profit vs operating profit | Net profit (924,461) sits within a plausible band vs operating profit (835,460). |
| ✓ | Cash ≤ total assets | Cash (1,050,873) ≤ total assets (16,942,712). |
| Form | Pages |
|---|---|
| P&L | 8, 9 |
| BS | 10, 11 |
| CF | 12, 13 |
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).