Status: OK; Currency: PHP; 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: Link
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 | 161 022.94 | — |
| Operating profit | 38 497.6 | — |
| D&A | 6 608.95 | Row: derived: same-row components · dashboard=6,608.946 mln — derived: same-row components |
| EBITDA | 45 106.55 | — |
| Net profit | 29 004.81 | Row: derived from official cumulative series (9M-H1); stored standalone 20687.7 was on a different basis (quarters did not sum to FY) · dashboard=29,004.809 mln — derived from official cumulative series (9M-H1); stored standalone 20687.7 was on a different basis (quarters did not sum to FY) |
| Cash | 103 675.24 | — |
| Debt short | 115 000 | Row: same-date sibling row (instant BS value; cross-period fill) · dashboard=115,000.000 mln — same-date sibling row (instant BS value; cross-period fill) |
| Debt long | 387 000 | Row: same-date sibling row (instant BS value; cross-period fill) · dashboard=387,000.000 mln — same-date sibling row (instant BS value; cross-period fill) |
| Net debt | 398 324.76 | Components: short debt 115 000 + long debt 387 000 + other financial liab. 0 + NCI 0 − cash 103 675.24 = net debt 398 324.76.Row: debt_short + debt_long + other_financial_liabilities + non_controlling_interest − cash (from row components) · dashboard=398,324.763 mln — debt_short + debt_long + other_financial_liabilities + non_controlling_interest − cash (from row components) |
| Operating CF | 24 737.02 | — |
| Investing CF | -15 198.15 | — |
| Assets | 1 652 074.45 | — |
| Equity | 842 671.22 | — |
| Short-term debt (incl. ST leases) | 115 000 |
| Long-term debt (incl. LT leases) | 387 000 |
| − Cash & equivalents | 103 675 |
| Net debt | 398 325 |
|---|
Net debt / LTM EBITDA: 2.1x
| EBITDA | 45 107 | 28.0% of revenue |
| − D&A | 6 609 | |
| = Operating profit (EBIT) | 38 498 | ✓ 23.9% of revenue |
| + Finance income | 1 | |
| − Finance costs | 6 | |
| − Other (FX and misc.) — derived | 9 483 | |
| = Pre-tax profit | 29 009 | 18.0% of revenue |
| − Income tax | 4 | |
| = Net profit | 29 005 | 18.0% of revenue |
|---|
Finance income/costs and tax come from the primary source (IFRS/XBRL); the other line balances the walk to pre-tax profit.
| ✓ | Balance sheet identity (A = L + E) | TA (1,652,074) ≈ TL (809,403) + TE (842,671); residual -0 within 1%. |
| ✓ | Net debt formula | net_debt 398,325 matches |debt_short|+|debt_long|+|other|+|NCI|−|cash| = 398,325. |
| ✓ | EBITDA = OP + D&A | EBITDA (45,107) ≈ OP (38,498) + D&A (6,609) = 45,107. |
| ✓ | Net profit vs operating profit | Net profit (29,005) sits within a plausible band vs operating profit (38,498). |
| ✓ | Cash ≤ total assets | Cash (103,675) ≤ total assets (1,652,074). |
| Form | Pages |
|---|---|
| P&L | 15, 16, 17 |
| BS | 45, 46, 47 |
| CF | 48, 49, 50 |
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).