Financial-statement analysis — a credit assessment of CIMIC, benchmarked against ASX construction peers
In one line: A lender-style credit assessment of CIMIC Group (ASX construction & engineering) on real annual-report financials — spreading seven years of audited statements into leverage, coverage, working-capital and cash-quality analysis, testing for the classic construction red flag, and benchmarking it against Downer EDI, NRW Holdings and Monadelphous to reach a written credit verdict.
One borrower assessed in depth, read against its sector — the way real credit assessment works. Full written report: reports/CIMIC_credit_assessment.md (one-page version: reports/executive_summary.md).
Before a bank lends to a company, it spreads the borrower's financial statements: it copies the income statement, balance sheet and cash-flow statement into a standard template and computes a handful of ratios that reveal whether the business can service and repay debt. Can profits cover the interest? How much debt sits against earnings? Is the company actually collecting cash, or just booking profits on paper? This repo does exactly that for CIMIC — a large Australian builder — using its real published annual reports from FY2019 to FY2025, and lines it up against three competitors so the numbers have context. The headline question for any contractor is simple: do reported profits turn into cash? For CIMIC the answer over this period is "not reliably" — which is the single most important thing a lender would want to know.
CIMIC Group, latest year (FY2025) with the seven-year trend direction:
| Metric | FY2025 | Trend since FY2019 | What it means in plain English |
|---|---|---|---|
| Net debt / EBITDA | 1.6× | ▲ deteriorating | Debt vs earnings — jumped to 2.1× in FY2024 to buy back Thiess, now easing |
| Gearing (debt / equity) | 4.2× | ▲ deteriorating | The balance sheet carries a lot of debt for the equity behind it |
| Interest cover (EBIT / net interest) | 2.7× | ▼ thinning | Earnings cover interest only ~2.7×, and the cushion is shrinking as debt grows |
| Current ratio | 1.0× | ▲ improving | Current assets barely cover current liabilities — tight liquidity |
| EBITDA margin | 12.0% | ▲ improving | Profitability has recovered from the FY2019–20 losses |
| Net margin | 3.1% | ▲ improving | Still thin — normal for construction, leaves little room for error |
| Operating cash flow / net profit | 1.9× | mixed | Strong in FY2025, but negative in FY2020 and FY2021 — the red flag |
Indicative credit verdict — Cautious / watch. Earnings have recovered, but CIMIC has a multi-year record of profits not converting into cash, is part-funded by supplier finance, and took on materially more debt in FY2024. On a spread basis it is the weakest credit of the four companies — it ranks 3rd or 4th of 4 on almost every metric.
All charts are regenerated from the committed input CSVs by python -m src.run_pipeline (module src/figures.py) — aggregated results only, never raw
statement dumps.
What this shows: each year's reported net profit (navy) next to the cash operating activities actually generated (teal). Why it matters: in FY2020 and FY2021 CIMIC reported profits while operating activities consumed cash, and FY2023 cash was only ~28% of profit. For a contractor, profit that doesn't become cash is the classic warning sign — this is the centre of the credit case.
What this shows: debt net of cash relative to earnings (FY2019–20 omitted — EBITDA was negative, so the ratio is not meaningful). Why it matters: leverage roughly doubled to 2.1× in FY2024 on the debt-funded re-consolidation of Thiess, then eased to 1.6× — the direction and the step-change matter more than the absolute level.
What this shows: EBITDA, EBIT and net margins over the seven years. Why it matters: margins recovered from the FY2019–20 impairment losses to a ~12% EBITDA / ~3% net margin — profitable again, but on construction-thin net margins that leave little buffer.
What this shows: trade & contract receivables vs payables (bars) and net working capital as a share of revenue (line). Why it matters: CIMIC's payables dwarf its receivables — the business is part-funded by its supply chain (supplier / reverse factoring). That flatters net debt but concentrates liquidity risk in payables.
What this shows: each headline credit metric averaged over the full common window — benchmarked over FY2019–FY2025, the years all four companies report; green = stronger credit, red = weaker. Why it matters: CIMIC is mostly amber/red — it sits at the weaker end on leverage, coverage, liquidity and cash conversion. Monadelphous (near net-cash) is the conservative benchmark at the other end. CIMIC is delisted but still files with ASIC, so it is current with the listed peers — no shortened window.
CIMIC's seven years read as three chapters. FY2019–FY2020 were a wrenching restructuring: a A$2.7bn Middle East exit provision pushed FY2019 to a A$1.0bn loss, and the group sold down Thiess and other businesses — so revenue steps from A$14.7bn (statutory) to A$7.8bn (continuing) and EBITDA turns negative. FY2021–FY2023 are the rebuild: profitable again, leverage under ~1×, but operating cash flow turned negative in FY2020 and FY2021 and was weak in FY2023 — profits were not converting into cash. FY2024–FY2025 bring the re-acquisition of Thiess, which roughly doubled net debt (to ~A$4.2bn), lifted finance costs, and pushed gearing to ~4×; cash conversion improved, but interest cover thinned to ~2.7×. Underneath all three chapters, CIMIC's trade & contract payables far exceed its receivables — the supply chain finances a large slice of the business.
Indicative bias: Cautious / watch. The full walkthrough, the spread, every ratio, the peer benchmark and the credit conclusion are in reports/CIMIC_credit_assessment.md.
These numbers are hand-spread from the audited statements, so the repo treats
data quality as a first-class deliverable — the same model-risk discipline a credit
function expects. python -m src.validate checks every company-year and writes
only the flagged items to
outputs/tables/validation_report.csv, so
the whole set is QA'd by verifying a handful of rows rather than re-reading every
number. The latest run: 0 hard errors, 41 review items, all explained.
- Automated exception reporting — balance-sheet ties, subtotal-vs-total checks,
P&L-chain checks, implied tax rates, plausibility/units checks; hard
errorflags must be zero, advisoryreviewflags are surfaced with explanations. - Two-layer comparative cross-check — each fiscal year is compared against the next report's prior-year column: the 9 headline items for all four companies, and CIMIC's deeper working-capital / cash-flow lines (contract assets & liabilities, receivables, inventory, payables, D&A). Result: 0 unexplained mismatches — every mismatch falls on a documented restatement (held in an allowlist), and where no restatement exists the figures tie exactly.
- Cash-flow footing — CIMIC's operating cash-flow section foots to the reported net operating cash flow to the cent in all seven years.
- Cross-statement working-capital ties — balance-sheet movements vs the cash-flow "changes in working capital" line; the only material breaks are FY2020 (Thiess disposal) and FY2024 (Thiess acquisition), allowlisted as legitimate M&A, with FY2021/FY2022 payables divergences flagged for review (FX / contract-balance reclassification, not keying errors).
These checks are wired into the test suite (pytest), so a new, unexplained
mismatch fails the build. Method and full results:
docs/validation_framework.md; per-year audit:
outputs/tables/cimic_wc_cashflow_audit.csv;
source-page citations for spot-checking:
docs/extraction_check.md.
Construction & engineering is a high-credit-risk sector: margins are thin, contracts are often fixed-price, and there is a structural timing gap between work performed and cash collected — which is why the industry carries one of the highest business-insolvency rates. The classic warning sign is reported profit sitting alongside weak or negative operating cash flow, and this assessment tests for exactly that. Because contract assets/liabilities, advances, retentions and any receivables factoring distort ordinary working capital, they are treated explicitly here rather than as plain receivables and payables.
Figures are sourced from each company's published annual reports and
hand-transcribed from the audited consolidated statements; see the source_report
/ source_page columns in the input CSVs and
docs/extraction_check.md. Financial figures are facts
and are not copyrightable, so the structured input CSVs and all derived outputs are
committed. The annual-report PDFs themselves are copyrighted and are gitignored
under data/raw_pdfs/ — not redistributed.
- Built on real published financials of four ASX construction & engineering companies, FY2019–FY2025.
- CIMIC was delisted from the ASX in December 2022 (acquired by HOCHTIEF / ACS) but still lodges audited financial statements with ASIC, so its data is current through FY2025 and aligns with the listed peers over the full benchmark window — it is not treated as ending earlier. Figures are on an as-first-reported basis and are not restated for later discontinued-operations or acquisition changes (FY2019 is pre-divestment; FY2024–25 re-consolidate Thiess).
- Year-ends differ — CIMIC reports to December, the peers to June, so periods are labelled by reporting year and are not perfectly contemporaneous; a comparability caveat across the whole window.
- Contract balances are disclosed by CIMIC only as single totals (no current/non-current split), so the working-capital ratios use the reported current trade receivables/payables rather than an apportioned split.
- These are listed companies, not the private SME borrowers a commercial credit team usually assesses — but the spreading and ratio workflow is the same.
- A methodology demonstration, not a production spreading platform: figures are hand-spread and should be re-checked against source for any real use (the extraction check is built for exactly that); the credit verdict is an indicative analyst view, not a credit-committee decision.
pip install -r requirements.txt
python -m src.run_pipeline # full build: every table + chart + validation, from the input CSVs
python -m src.validate # QA only: data-quality validator -> outputs/tables/validation_report.csv
pytest -q # balance-sheet, ratio and validation tests
python -m src.make_extraction_check # regenerate the source-verification docsrc/— all logic: spreading, ratios, trends, working capital, risk flags, benchmark, credit view, figures, validation andrun_pipeline, plus thelocate_statements/make_extraction_checkutilities.data/raw_pdfs/— source annual-report PDFs (gitignored, not redistributed).data/input/— committed input CSVs (financials_cimic.csv,financials_peers.csv,financials_comparatives.csv,cimic_cashflow_recon.csv), hand-spread from the reports withsource_report/source_pageaudit columns.outputs/— everything generated, in one place:outputs/tables/— machine-readable CSV results and the generated credit view.outputs/figures/— the charts embedded above.outputs/reports/— the written, human-readable analysis (CIMIC_credit_assessment.md, executive_summary.md).
notebooks/— a thin walkthrough.docs/— methodology, assumptions, data dictionary, validation framework, and the extraction check.tests/— balance-sheet, ratio and validation checks.




