live record51.0447°N · 114.0719°Walt 1045 m

/finances · expenses

Not all expense growth is more spending — inflation and population grow too

Two framings drive most confusion about City expenses: “spending grew X%” — said without naming inflation and a fast-growing population as the denominators — and capital additions counted as operating spending. This page leads with where the money goes by service area, then the 5-year trend you can read in nominal, inflation-adjusted, and per-capita terms. Every figure links to the page of the City’s Annual Financial Report it was read from; the investor-relations summary is never a source.

Expenses by service area · 2024

Where the $4,985M the City spent in 2024 actually went. These 5audited service areas are the whole of consolidated expenses — Operational services (roads, water, waste, transit operations) is the largest. Each figure links to the page of the City’s Annual Financial Report it was read from.

Service area2024 ($M)Share
Operational servicesRoads, water and wastewater, waste and recycling, parks, and fleet — the day-to-day operating backbone. The single largest service area and the main driver of total expense growth. source: 2024 AFR, Expenses by Function, p.1182,35347.2%
Community servicesCalgary Transit, recreation, social services, the Calgary Public Library, fire and emergency response, and community partners. One of the two largest service areas. source: 2024 AFR, Expenses by Function, p.1181,62732.6%
General governmentCorporate administration, finance, legal, council and city-wide costs not attributable to a single operating service area. source: 2024 AFR, Expenses by Function, p.11852610.6%
Infrastructure servicesCapital project delivery and major infrastructure programs. Year-to-year swings track the cash-flow timing of large projects (e.g. Green Line, flood resilience), not a permanent change in the operating base. source: 2024 AFR, Expenses by Function, p.1182434.9%
Planning and development servicesLand-use planning, development approvals, building safety, and economic development. The smallest of the five service areas; rises with development-cycle activity. source: 2024 AFR, Expenses by Function, p.1182364.7%
Total consolidated expensessource: 2024 AFR, Expenses by Object total, p.1184,985100.0%
verification
primary-verified
derivation
Single source: the City of Calgary 2024 Annual Financial Report. Every figure was read directly from the cited PDF page by the author (primary-verified). Service-area expenses (Planning & development, Infrastructure, Community, Operational, General government) for 2021–2024 are taken from the City's own restated Five-Year "Expenses by Function Unaudited" review (report p.116). The City re-aligned its service-area taxonomy in 2022; using the City's internally consistent restated series is the defensible primary for a multi-year view across the re-alignment — stitching the pre-restatement 2020/2021 AFRs (old taxonomy: Protection, Transportation, Utilities, …) would silently mix bases. 2024 & 2023 service-area and salaries/wages/benefits figures were cross-validated against the audited Consolidated Statement of Operations (report p.43) and Note 23, Expenses by Object — they match exactly. 2020 has NO service-area split: the City states 2020 cannot be restated into the current taxonomy (2024 AFR p.116, Expenses by Function footnote 1). 2020 carries total / employee-compensation / amortization only; the trend surfaces the 2022 restructure as a visible structural-break event (FR-007) rather than re-mapping. The structural-diff guard (verify_structure.py) fails the build closed if a future AFR's service-area set diverges from the checked-in snapshots (SC-006). Derived figures (FR-018): service-area shares, year-over-year deltas, the three trend views, employee-compensation share, and amortization are computed once here and baked into `derived`. The inflation-adjusted view deflates the nominal total by the shared Calgary CPI artefact (base year 2024, so 2024 is identical in the nominal and inflation-adjusted views); the per-capita view uses the shared Calgary population artefact with math byte-identical to /finances/revenues (FR-019 / SC-007). Calgary CPI — not Alberta or Canada — per spec FR-005. Employee compensation is the AFR's combined salaries/wages/benefits object line; the AFR does not decompose a separate pension-accrual adjustment in this table (FR-010), and long-term pension liability detail is out of scope (it lives on /finances/reserves). Amortization is shown for the operating-vs-amortization explainer (a non-cash accounting expense distinct from cash capital spending, which is /finances/capital-program — FR-011).
source

Total consolidated expenses · 2020–2024

“City spending grew” is true in nominal dollars and far less dramatic once you account for inflation and a fast-growing population. Switch views — the gap between them is the point.

2020 is shown as a total only. 2022 organizational re-alignment. The City states 2020 expenses cannot be restated into the current five-service-area taxonomy; only the 2020 total is comparable. The service-area trend begins 2021; the 2020 point is total-only and the chart marks the restructure as a visible event. Service-area detail begins 2021; the 2020→2021 gap is a real taxonomy change, not missing data — it is surfaced here rather than papered over.

$0M$1,250M$2,500M$3,750M$5,000M2020: $3,849M · City of Calgary 2024 AFR · p.1182020$3,849M2021: $3,980M · City of Calgary 2024 AFR · p.1182021$3,980M2022: $4,344M · City of Calgary 2024 AFR · p.1182022$4,344M2023: $4,658M · City of Calgary 2024 AFR · p.1182023$4,658M2024: $4,985M · City of Calgary 2024 AFR · p.1182024$4,985M
$ millions (as reported)source: City of Calgary 2024 Annual Financial Report — Five-Year Statistical Review, Expenses by Object total row (the only table carrying the 2020 comparative), p.118Total consolidated expenses as reported — not adjusted for inflation or population. Useful for the raw dollar figure, misleading for “spending grew X%” claims.
verification
primary-verified
derivation
Single source: the City of Calgary 2024 Annual Financial Report. Every figure was read directly from the cited PDF page by the author (primary-verified). Service-area expenses (Planning & development, Infrastructure, Community, Operational, General government) for 2021–2024 are taken from the City's own restated Five-Year "Expenses by Function Unaudited" review (report p.116). The City re-aligned its service-area taxonomy in 2022; using the City's internally consistent restated series is the defensible primary for a multi-year view across the re-alignment — stitching the pre-restatement 2020/2021 AFRs (old taxonomy: Protection, Transportation, Utilities, …) would silently mix bases. 2024 & 2023 service-area and salaries/wages/benefits figures were cross-validated against the audited Consolidated Statement of Operations (report p.43) and Note 23, Expenses by Object — they match exactly. 2020 has NO service-area split: the City states 2020 cannot be restated into the current taxonomy (2024 AFR p.116, Expenses by Function footnote 1). 2020 carries total / employee-compensation / amortization only; the trend surfaces the 2022 restructure as a visible structural-break event (FR-007) rather than re-mapping. The structural-diff guard (verify_structure.py) fails the build closed if a future AFR's service-area set diverges from the checked-in snapshots (SC-006). Derived figures (FR-018): service-area shares, year-over-year deltas, the three trend views, employee-compensation share, and amortization are computed once here and baked into `derived`. The inflation-adjusted view deflates the nominal total by the shared Calgary CPI artefact (base year 2024, so 2024 is identical in the nominal and inflation-adjusted views); the per-capita view uses the shared Calgary population artefact with math byte-identical to /finances/revenues (FR-019 / SC-007). Calgary CPI — not Alberta or Canada — per spec FR-005. Employee compensation is the AFR's combined salaries/wages/benefits object line; the AFR does not decompose a separate pension-accrual adjustment in this table (FR-010), and long-term pension liability detail is out of scope (it lives on /finances/reserves). Amortization is shown for the operating-vs-amortization explainer (a non-cash accounting expense distinct from cash capital spending, which is /finances/capital-program — FR-011). The three-view trend combines this artefact (nominal total expenses) with the shared Calgary all-items CPI artefact (inflation-adjusted view, base year 2024) and the shared Calgary population artefact (per-capita view). Per-view and per-point source citations are rendered inline; this footer carries the full concatenated provenance.
sources

Employee compensation

Salaries, wages and benefits — the largest single expense

In 2024, employee compensation — salaries, wages and benefits across the whole organization — was $2,523M, or 50.6%of total consolidated expenses. It is the City’s largest single cost and the most-asked-about, which is why it gets its own section rather than being buried inside service-area totals.

The Annual Financial Report reports this as one combined “salaries, wages and benefits” object line. It does not break out a separate in-year pension-accrual adjustment in that table, so this page does not invent one. Long-term pension liabilities are a different question (a balance-sheet obligation, not an in-year expense) and are covered under reserves and long-term liabilities, not here.

YearSalaries, wages & benefits ($M)Share of total expenses
2020source: 2024 AFR, Expenses by Object, p.1181,97251.2%
2021source: 2024 AFR, Expenses by Object, p.1181,97349.6%
2022source: 2024 AFR, Expenses by Object, p.1182,05647.3%
2023source: 2024 AFR, Expenses by Object, p.1182,23848.0%
2024source: 2024 AFR, Expenses by Object, p.1182,52350.6%
verification
primary-verified
derivation
Single source: the City of Calgary 2024 Annual Financial Report. Every figure was read directly from the cited PDF page by the author (primary-verified). Service-area expenses (Planning & development, Infrastructure, Community, Operational, General government) for 2021–2024 are taken from the City's own restated Five-Year "Expenses by Function Unaudited" review (report p.116). The City re-aligned its service-area taxonomy in 2022; using the City's internally consistent restated series is the defensible primary for a multi-year view across the re-alignment — stitching the pre-restatement 2020/2021 AFRs (old taxonomy: Protection, Transportation, Utilities, …) would silently mix bases. 2024 & 2023 service-area and salaries/wages/benefits figures were cross-validated against the audited Consolidated Statement of Operations (report p.43) and Note 23, Expenses by Object — they match exactly. 2020 has NO service-area split: the City states 2020 cannot be restated into the current taxonomy (2024 AFR p.116, Expenses by Function footnote 1). 2020 carries total / employee-compensation / amortization only; the trend surfaces the 2022 restructure as a visible structural-break event (FR-007) rather than re-mapping. The structural-diff guard (verify_structure.py) fails the build closed if a future AFR's service-area set diverges from the checked-in snapshots (SC-006). Derived figures (FR-018): service-area shares, year-over-year deltas, the three trend views, employee-compensation share, and amortization are computed once here and baked into `derived`. The inflation-adjusted view deflates the nominal total by the shared Calgary CPI artefact (base year 2024, so 2024 is identical in the nominal and inflation-adjusted views); the per-capita view uses the shared Calgary population artefact with math byte-identical to /finances/revenues (FR-019 / SC-007). Calgary CPI — not Alberta or Canada — per spec FR-005. Employee compensation is the AFR's combined salaries/wages/benefits object line; the AFR does not decompose a separate pension-accrual adjustment in this table (FR-010), and long-term pension liability detail is out of scope (it lives on /finances/reserves). Amortization is shown for the operating-vs-amortization explainer (a non-cash accounting expense distinct from cash capital spending, which is /finances/capital-program — FR-011).
source

Operating vs amortization

Amortization is not money the City spent this year

A recurring misread of the financial statements: “the City spent $731M on amortization in 2024.” It did not. Amortization is a non-cash accounting expense — it spreads the cost of capital assets (roads, pipes, buildings, vehicles) across the years those assets are used. The cash to build or buy them was spent in earlier years and is reported as capital, not operating, spending.

In 2024 the consolidated statements recognised $731M in amortization and write-downs. Treating that as in-year cash spending double-counts assets the City already paid for. For where capital money actually comes from and goes — see alsothe capital program.

source: 2024 Annual Financial Report, Expenses by Object — Amortization and write-downs, p.118

verification
primary-verified
derivation
Single source: the City of Calgary 2024 Annual Financial Report. Every figure was read directly from the cited PDF page by the author (primary-verified). Service-area expenses (Planning & development, Infrastructure, Community, Operational, General government) for 2021–2024 are taken from the City's own restated Five-Year "Expenses by Function Unaudited" review (report p.116). The City re-aligned its service-area taxonomy in 2022; using the City's internally consistent restated series is the defensible primary for a multi-year view across the re-alignment — stitching the pre-restatement 2020/2021 AFRs (old taxonomy: Protection, Transportation, Utilities, …) would silently mix bases. 2024 & 2023 service-area and salaries/wages/benefits figures were cross-validated against the audited Consolidated Statement of Operations (report p.43) and Note 23, Expenses by Object — they match exactly. 2020 has NO service-area split: the City states 2020 cannot be restated into the current taxonomy (2024 AFR p.116, Expenses by Function footnote 1). 2020 carries total / employee-compensation / amortization only; the trend surfaces the 2022 restructure as a visible structural-break event (FR-007) rather than re-mapping. The structural-diff guard (verify_structure.py) fails the build closed if a future AFR's service-area set diverges from the checked-in snapshots (SC-006). Derived figures (FR-018): service-area shares, year-over-year deltas, the three trend views, employee-compensation share, and amortization are computed once here and baked into `derived`. The inflation-adjusted view deflates the nominal total by the shared Calgary CPI artefact (base year 2024, so 2024 is identical in the nominal and inflation-adjusted views); the per-capita view uses the shared Calgary population artefact with math byte-identical to /finances/revenues (FR-019 / SC-007). Calgary CPI — not Alberta or Canada — per spec FR-005. Employee compensation is the AFR's combined salaries/wages/benefits object line; the AFR does not decompose a separate pension-accrual adjustment in this table (FR-010), and long-term pension liability detail is out of scope (it lives on /finances/reserves). Amortization is shown for the operating-vs-amortization explainer (a non-cash accounting expense distinct from cash capital spending, which is /finances/capital-program — FR-011).
source

Methodology

Every figure on this page was read directly from the City of Calgary 2024 Annual Financial Report by the author and confirmed verbatim against the audited Consolidated Statement of Operations and Note 23 — verification tier primary-verified, the project’s strongest. Each figure links to the specific page of that report, never to a hub page or the investor-relations summary.

Categorization choice (FR-004). The City re-aligned its service-area taxonomy in 2022. The service-area series for 2021–2024 is taken from the City’s own restatedFive-Year Statistical Review so the multi-year view is internally consistent across the re-alignment; stitching the pre-restatement 2020/2021 reports (old taxonomy) would silently mix bases. 2020 cannot be restated into the current five segments (the City says so in the same review), so 2020 is shown as a total only and the trend marks the restructure as a visible event rather than re-mapping it. A fail-closed structural-diff guard rejects the build if a future report’s service-area set diverges from the checked-in snapshots.

Inflation & population denominators. The inflation-adjusted view deflates by Statistics Canada Table 18-10-0005-01, Calgary all-items annual-average CPI (vector v41695222, base year 2024), read from a shared CPI artefact and cross-checked between the StatCan data API and the full-table CSV. The per-capita view uses the shared City of Calgary population artefact — the same denominator as /finances/revenues, so the two pages’ per-capita math is byte-identical and cannot silently diverge. Provincial / Statistics Canada Calgary CMA estimates are explicitly excluded.

All sources cited:

Download the data. The page reads from this same JSON artefact — no editorial-only data layer.

/data/finances/expenses.json ↗
verification
primary-verified
derivation
Single source: the City of Calgary 2024 Annual Financial Report. Every figure was read directly from the cited PDF page by the author (primary-verified). Service-area expenses (Planning & development, Infrastructure, Community, Operational, General government) for 2021–2024 are taken from the City's own restated Five-Year "Expenses by Function Unaudited" review (report p.116). The City re-aligned its service-area taxonomy in 2022; using the City's internally consistent restated series is the defensible primary for a multi-year view across the re-alignment — stitching the pre-restatement 2020/2021 AFRs (old taxonomy: Protection, Transportation, Utilities, …) would silently mix bases. 2024 & 2023 service-area and salaries/wages/benefits figures were cross-validated against the audited Consolidated Statement of Operations (report p.43) and Note 23, Expenses by Object — they match exactly. 2020 has NO service-area split: the City states 2020 cannot be restated into the current taxonomy (2024 AFR p.116, Expenses by Function footnote 1). 2020 carries total / employee-compensation / amortization only; the trend surfaces the 2022 restructure as a visible structural-break event (FR-007) rather than re-mapping. The structural-diff guard (verify_structure.py) fails the build closed if a future AFR's service-area set diverges from the checked-in snapshots (SC-006). Derived figures (FR-018): service-area shares, year-over-year deltas, the three trend views, employee-compensation share, and amortization are computed once here and baked into `derived`. The inflation-adjusted view deflates the nominal total by the shared Calgary CPI artefact (base year 2024, so 2024 is identical in the nominal and inflation-adjusted views); the per-capita view uses the shared Calgary population artefact with math byte-identical to /finances/revenues (FR-019 / SC-007). Calgary CPI — not Alberta or Canada — per spec FR-005. Employee compensation is the AFR's combined salaries/wages/benefits object line; the AFR does not decompose a separate pension-accrual adjustment in this table (FR-010), and long-term pension liability detail is out of scope (it lives on /finances/reserves). Amortization is shown for the operating-vs-amortization explainer (a non-cash accounting expense distinct from cash capital spending, which is /finances/capital-program — FR-011). The three-view trend combines this artefact (nominal total expenses) with the shared Calgary all-items CPI artefact (inflation-adjusted view, base year 2024) and the shared Calgary population artefact (per-capita view). Per-view and per-point source citations are rendered inline; this footer carries the full concatenated provenance.
sources