{
  "meta": {
    "title": "City of Calgary — budget vs actual, consolidated statement of operations (2020–2024) with one-time/structural variance classification",
    "unit": "thousands of CAD",
    "verification": "primary-verified",
    "sources": [
      {
        "id": "afr-2020",
        "publisher": "City of Calgary",
        "title": "City of Calgary 2020 Annual Financial Report",
        "url": "https://www.calgary.ca/content/dam/www/cfod/finance/documents/plans-budgets-and-financial-reports/annual-reports/annual-report-2020.pdf",
        "retrieved_at": "2026-05-15",
        "verified_at": "2026-05-15",
        "verified_by": "claude",
        "content_hash": "sha256:09fa133d35dffb705633ac89de3f43fb4aa5c979773d1549e31cd6ddaa890912",
        "verification_note": "Consolidated Statement of Operations and Accumulated Surplus read directly from PDF p.47 (report p.45). Revenue subtotal (4,165,574 budget / 4,180,830 actual) and expense subtotal (3,629,881 / 3,848,802) reconcile exactly to the sum of the per-line figures transcribed here."
      },
      {
        "id": "afr-2021",
        "publisher": "City of Calgary",
        "title": "City of Calgary 2021 Annual Financial Report",
        "url": "https://www.calgary.ca/content/dam/www/cfod/finance/documents/plans-budgets-and-financial-reports/annual-reports/annual-report-2021.pdf",
        "retrieved_at": "2026-05-15",
        "verified_at": "2026-05-15",
        "verified_by": "claude",
        "content_hash": "sha256:c4547ce17f25f1af4268f7874a128a64e4a39efa6249b2187711d0a865685400",
        "verification_note": "Consolidated Statement of Operations read directly from PDF p.45 (report p.43). Revenue subtotal (4,162,814 / 4,248,825) and expense subtotal (3,718,988 / 3,979,399) reconcile exactly to the sum of the per-line figures transcribed here."
      },
      {
        "id": "afr-2022",
        "publisher": "City of Calgary",
        "title": "City of Calgary 2022 Annual Financial Report",
        "url": "https://www.calgary.ca/content/dam/www/cfod/finance/documents/plans-budgets-and-financial-reports/annual-reports/annual-report-2022.pdf",
        "retrieved_at": "2026-05-15",
        "verified_at": "2026-05-15",
        "verified_by": "claude",
        "content_hash": "sha256:0e3b43443f9b0adc4bb5eefd51c51b8c455e86b106e1c413260affa7f1aaa341",
        "verification_note": "Consolidated Statement of Operations read directly from PDF p.41 (report p.39). Revenue subtotal (4,353,187 / 4,704,706) and expense subtotal (3,898,904 / 4,337,223) reconcile exactly to the sum of the per-line figures transcribed here. First year of the new five-segment expense taxonomy."
      },
      {
        "id": "afr-2023",
        "publisher": "City of Calgary",
        "title": "City of Calgary 2023 Annual Financial Report",
        "url": "https://www.calgary.ca/content/dam/www/cfod/finance/documents/Finance-2023-Annual-Report.pdf",
        "retrieved_at": "2026-05-15",
        "verified_at": "2026-05-15",
        "verified_by": "claude",
        "content_hash": "sha256:f56412891ab39def154b0b2fd8fb002b8cf182fe548bc04103ba03f02b07cd72",
        "verification_note": "Consolidated Statement of Operations read directly from PDF p.45 (report p.43). Revenue subtotal (4,523,553 / 4,606,195) and expense subtotal (4,124,309 / 4,657,747) reconcile exactly to the sum of the per-line figures transcribed here."
      },
      {
        "id": "afr-2024",
        "publisher": "City of Calgary",
        "title": "City of Calgary 2024 Annual Financial Report",
        "url": "https://www.calgary.ca/content/dam/www/cfod/finance/documents/Finance-2024-Annual-Report.pdf",
        "retrieved_at": "2026-05-15",
        "verified_at": "2026-05-15",
        "verified_by": "claude",
        "content_hash": "sha256:2eeaa9e7985eeefe5a1d4770f48a1400565f25a62b080728fd66844f8b735eaf",
        "verification_note": "Consolidated Statement of Operations read directly from PDF p.45 (report p.43). Revenue subtotal (4,792,186 / 4,915,027) and expense subtotal (4,483,745 / 4,985,207) reconcile exactly to the sum of the per-line figures transcribed here. Drives the single-year variance table (most recent year, FR-003)."
      }
    ],
    "derivation": "Every budget and actual figure was read directly from the cited PDF page of the relevant year's City of Calgary Annual Financial Report by the author (primary-verified). For reporting year Y, both the budget and the actual come from year Y's OWN AFR Consolidated Statement of Operations (the Note-referenced 'Budget Y' column and the audited 'Actual Y' column on the same page) — the AFR's budget comparison column, chosen as the denominator for audited internal consistency (spec FR-020 / US5). Each year's revenue and expense per-line figures were reconciled to that statement's own printed subtotals (see verification_cross_checks). Later AFRs sometimes RESTATE a prior year's actual; the canonical figure is the year's own AFR as originally reported — restatements are noted, never substituted (spec Edge Cases). The 2022 organizational re-alignment changed the expense taxonomy: 2020–2021 use the old function categories, 2022–2024 the new five segments; the two expense line sets are NOT stitched and the per-line view surfaces the break as a discontinuity (spec FR-012/FR-025). Variance = actual − budget; percentage variance is null where budget is not set (no false % against zero). Variance classification (one-time/structural/mixed/unclassified) is EDITORIAL, loaded from the checked-in web/public/data/finances/_classifications/budget-vs-actual.yaml (spec FR-006/FR-026) — never algorithmically derived. All derived figures are computed once here and baked into the `derived` block (spec FR-027 / feedback_math_in_code).",
    "generated_at": "2026-05-16T05:07:48.637952+00:00",
    "generator": "scripts/finances/budget_vs_actual/pipeline.py (sc-27247)"
  },
  "reporting_years": [
    2020,
    2021,
    2022,
    2023,
    2024
  ],
  "most_recent_year": 2024,
  "expense_taxonomy_eras": {
    "old": {
      "years": [
        2020,
        2021
      ],
      "label": "Pre-2022 function taxonomy",
      "reason": "The 2020 & 2021 AFRs report expenses by the old function taxonomy (Protection, Transportation, Utilities and environmental services, Community and cultural services, General government, Public works, Real estate services)."
    },
    "new": {
      "years": [
        2022,
        2023,
        2024
      ],
      "label": "Post-2022 five-segment taxonomy",
      "reason": "The 2022 organizational re-alignment introduced the five-segment taxonomy (Planning and development, Infrastructure, Community, Operational, General government). The City states 2020/2021 cannot be restated into it at the audited statement level; the expense series is presented per-era with the break shown, not stitched."
    }
  },
  "denominator": {
    "choice": "afr-budget-comparison-column",
    "rationale": "For reporting year Y, variance = Actual Y − Budget Y, both read from year Y's own AFR Consolidated Statement of Operations (the \"Budget Y\" column, a Note-referenced council-approved/amended budget, vs the \"Actual Y\" audited column). Chosen for audited internal consistency over the original Service Plans & Budgets council-approved figure, which the AFR's Budget column already reflects (amended for MCA). The council-approved-vs-amended reconciliation is out of MVP scope (spec Scope) and noted, not charted.",
    "council_approved_reference": {
      "note": "The AFR Budget column is Note-referenced (Note 16/17/18 depending on year) and reflects the budget as amended through mid-cycle adjustments, not the original 2023–2026 Service Plans & Budgets council-approved figure. MCA handling is documented in the methodology section (spec FR-020)."
    }
  },
  "statement_subtotals": {
    "revenue": {
      "2020": {
        "budget": 4165574,
        "actual": 4180830
      },
      "2021": {
        "budget": 4162814,
        "actual": 4248825
      },
      "2022": {
        "budget": 4353187,
        "actual": 4704706
      },
      "2023": {
        "budget": 4523553,
        "actual": 4606195
      },
      "2024": {
        "budget": 4792186,
        "actual": 4915027
      }
    },
    "expense": {
      "2020": {
        "budget": 3629881,
        "actual": 3848802
      },
      "2021": {
        "budget": 3718988,
        "actual": 3979399
      },
      "2022": {
        "budget": 3898904,
        "actual": 4337223
      },
      "2023": {
        "budget": 4124309,
        "actual": 4657747
      },
      "2024": {
        "budget": 4483745,
        "actual": 4985207
      }
    },
    "other_contributions": {
      "2020": {
        "budget": 988392,
        "actual": 617438
      },
      "2021": {
        "budget": 1267762,
        "actual": 781818
      },
      "2022": {
        "budget": 1208555,
        "actual": 843042
      },
      "2023": {
        "budget": 1153554,
        "actual": 939841
      },
      "2024": {
        "budget": 991921,
        "actual": 1175291
      }
    }
  },
  "verification_cross_checks": [
    "2020 revenue Σ(8 lines) = 4,165,574 budget / 4,180,830 actual = printed statement subtotal (PDF p.47). ✓",
    "2020 expense Σ(7 old-taxonomy categories) = 3,629,881 / 3,848,802 = printed subtotal. ✓",
    "2021 revenue Σ = 4,162,814 / 4,248,825 = printed subtotal (PDF p.45). ✓",
    "2021 expense Σ(7) = 3,718,988 / 3,979,399 = printed subtotal. ✓",
    "2022 revenue Σ = 4,353,187 / 4,704,706 = printed subtotal (PDF p.41). ✓",
    "2022 expense Σ(5 new-taxonomy) = 3,898,904 / 4,337,223 = printed subtotal. ✓",
    "2023 revenue Σ = 4,523,553 / 4,606,195 = printed subtotal (PDF p.45). ✓",
    "2023 expense Σ(5) = 4,124,309 / 4,657,747 = printed subtotal. ✓",
    "2024 revenue Σ = 4,792,186 / 4,915,027 = printed subtotal (PDF p.45). ✓",
    "2024 expense Σ(5) = 4,483,745 / 4,985,207 = printed subtotal. ✓",
    "Restatement noted, not substituted: 2023 AFR 'Actual 2022 (Restated Note 2)' (e.g. Operational 2,015,534) differs from the 2022 AFR's own Actual 2022 (2,010,020). Year 2022 uses the 2022 AFR's own figures (denominator rule)."
  ],
  "cross_links": {
    "net-municipal-taxes": "/finances/revenues#net-municipal-taxes",
    "sales-of-goods-and-services": "/finances/revenues",
    "government-transfers-operating": "/finances/revenues#government-transfers",
    "investment-income": "/finances/revenues#investment-income",
    "fines-and-penalties": "/finances/revenues",
    "licences-permits-fees": "/finances/revenues",
    "miscellaneous-revenue": "/finances/revenues",
    "enmax-equity-earnings": "/finances/revenues#enmax-dividends",
    "developer-contributions": "/finances/revenues",
    "government-transfers-capital": "/finances/capital-program#planned-vs-actual",
    "developer-contributions-in-kind-capital": "/finances/capital-program#planned-vs-actual",
    "expense-planning-development": "/finances/expenses#service-area-planning-and-development-services",
    "expense-infrastructure": "/finances/expenses#service-area-infrastructure-services",
    "expense-community": "/finances/expenses#service-area-community-services",
    "expense-operational": "/finances/expenses#service-area-operational-services",
    "expense-general-government-new": "/finances/expenses#service-area-general-government",
    "expense-protection": "/finances/expenses",
    "expense-transportation": "/finances/expenses",
    "expense-utilities-environmental": "/finances/expenses",
    "expense-community-cultural": "/finances/expenses",
    "expense-general-government-old": "/finances/expenses",
    "expense-public-works": "/finances/expenses",
    "expense-real-estate": "/finances/expenses"
  },
  "derived": {
    "variance_by_line_by_year": {
      "net-municipal-taxes": {
        "current_label": "Net taxes available for municipal purposes",
        "line_type": "revenue",
        "taxonomy_era": null,
        "classification": "unclassified",
        "classification_rationale": "Over budget in 4 of 5 years (2021–2024) but the variance exceeds the 5% materiality bar in only 2 (2022 +6.4%, 2023 +10.0%); 2020 −0.9%, 2021 +2.1%, 2024 +3.3%. A mild conservative-budgeting lean exists but is below the documented structural threshold (≥3 years ≥5% same direction). Honestly left unclassified at MVP rather than guessed.",
        "classification_citations": [
          "2020 AFR PDF p.47: budget 2,143,348 / actual 2,123,471",
          "2024 AFR PDF p.45: budget 2,544,594 / actual 2,627,877"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 2143348.0,
            "actual_thousands": 2123471.0,
            "variance_absolute_thousands": -19877.0,
            "variance_percent": -0.9274,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 2164177.0,
            "actual_thousands": 2209013.0,
            "variance_absolute_thousands": 44836.0,
            "variance_percent": 2.0717,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          },
          "2022": {
            "budget_thousands": 2261703.0,
            "actual_thousands": 2406356.0,
            "variance_absolute_thousands": 144653.0,
            "variance_percent": 6.3958,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 2370532.0,
            "actual_thousands": 2607604.0,
            "variance_absolute_thousands": 237072.0,
            "variance_percent": 10.0008,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 2544594.0,
            "actual_thousands": 2627877.0,
            "variance_absolute_thousands": 83283.0,
            "variance_percent": 3.2729,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Property and business taxes net of provincial requisitions; the City's largest own-source revenue.",
        "cross_link": "/finances/revenues#net-municipal-taxes"
      },
      "sales-of-goods-and-services": {
        "current_label": "Sales of goods and services",
        "line_type": "revenue",
        "taxonomy_era": null,
        "classification": "unclassified",
        "classification_rationale": "Under budget all 5 years, but materially (≥5%) only in 2020 (−18.7%) and 2021 (−11.0%); 2022–2024 within −2.5% to −2.8%. The large early shortfall coincides with the pandemic service-closure years but the AFR MD&A causal text was not verbatim-verified, so no one-time cause is asserted; the post-2021 series is immaterial. Unclassified is the honest call at MVP.",
        "classification_citations": [
          "2020 AFR PDF p.47: budget 1,391,516 / actual 1,131,088",
          "2024 AFR PDF p.45: budget 1,377,646 / actual 1,341,457"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 1391516.0,
            "actual_thousands": 1131088.0,
            "variance_absolute_thousands": -260428.0,
            "variance_percent": -18.7154,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 1387310.0,
            "actual_thousands": 1235238.0,
            "variance_absolute_thousands": -152072.0,
            "variance_percent": -10.9616,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          },
          "2022": {
            "budget_thousands": 1424028.0,
            "actual_thousands": 1384471.0,
            "variance_absolute_thousands": -39557.0,
            "variance_percent": -2.7778,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 1394150.0,
            "actual_thousands": 1359983.0,
            "variance_absolute_thousands": -34167.0,
            "variance_percent": -2.4507,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 1377646.0,
            "actual_thousands": 1341457.0,
            "variance_absolute_thousands": -36189.0,
            "variance_percent": -2.6269,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "User fees and charges — transit fares, recreation, utilities billing, permits-adjacent service sales.",
        "cross_link": "/finances/revenues"
      },
      "government-transfers-operating": {
        "current_label": "Government transfers related to operating",
        "line_type": "revenue",
        "taxonomy_era": null,
        "classification": "structural",
        "classification_rationale": "Over budget in 4 of 5 years by ≥5% (2020 +114.1%, 2022 +61.6%, 2023 +23.4%, 2024 +16.8%; 2021 −6.3% the only shortfall). Operating grants from other governments are consistently and materially received above the budgeted figure — a structural pattern of conservative budgeting for discretionary provincial/federal operating transfers. 2020 is an outlier-high year; the structural finding rests on the 2022–2024 sustained pattern, not 2020 alone.",
        "classification_citations": [
          "2022 AFR PDF p.41: budget 140,991 / actual 227,830 (+61.6%)",
          "2023 AFR PDF p.45: budget 145,324 / actual 179,306 (+23.4%)",
          "2024 AFR PDF p.45: budget 152,909 / actual 178,613 (+16.8%)"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 157057.0,
            "actual_thousands": 336250.0,
            "variance_absolute_thousands": 179193.0,
            "variance_percent": 114.0942,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 165137.0,
            "actual_thousands": 154780.0,
            "variance_absolute_thousands": -10357.0,
            "variance_percent": -6.2718,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          },
          "2022": {
            "budget_thousands": 140991.0,
            "actual_thousands": 227830.0,
            "variance_absolute_thousands": 86839.0,
            "variance_percent": 61.5919,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 145324.0,
            "actual_thousands": 179306.0,
            "variance_absolute_thousands": 33982.0,
            "variance_percent": 23.3836,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 152909.0,
            "actual_thousands": 178613.0,
            "variance_absolute_thousands": 25704.0,
            "variance_percent": 16.81,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Operating grants from the provincial and federal governments.",
        "cross_link": "/finances/revenues#government-transfers"
      },
      "investment-income": {
        "current_label": "Investment income",
        "line_type": "revenue",
        "taxonomy_era": null,
        "classification": "structural",
        "classification_rationale": "Over budget every one of the 5 years, by a widening margin: 2020 +23.9%, 2021 +51.8%, 2022 +51.0%, 2023 +99.1%, 2024 +183.4%. This is NOT a one-time 2024 windfall — it is a recurring, growing gap between a conservatively-set budget and realized income. Because the underlying income is market-volatile (bond yields, equity returns, portfolio rebalancing), the persistent upside must NOT be read as structural surplus health or treated as recurring spendable revenue (mirrors /finances/revenues' `volatile` stance, umbrella FR-016). Explicitly classified so the page cannot present it as a one-off.",
        "classification_citations": [
          "2024 AFR PDF p.45: budget 110,110 / actual 312,073 (+183.4%)",
          "2023 AFR PDF p.45: budget 110,437 / actual 219,934 (+99.1%)",
          "2020 AFR PDF p.47: budget 82,939 / actual 102,795 (+23.9%) — over budget from the start of the series, not a 2024 event"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 82939.0,
            "actual_thousands": 102795.0,
            "variance_absolute_thousands": 19856.0,
            "variance_percent": 23.9405,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 86546.0,
            "actual_thousands": 131393.0,
            "variance_absolute_thousands": 44847.0,
            "variance_percent": 51.8187,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          },
          "2022": {
            "budget_thousands": 93712.0,
            "actual_thousands": 141530.0,
            "variance_absolute_thousands": 47818.0,
            "variance_percent": 51.0265,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 110437.0,
            "actual_thousands": 219934.0,
            "variance_absolute_thousands": 109497.0,
            "variance_percent": 99.1488,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 110110.0,
            "actual_thousands": 312073.0,
            "variance_absolute_thousands": 201963.0,
            "variance_percent": 183.4193,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Returns on the City's investment portfolio; market-sensitive and volatile year to year.",
        "cross_link": "/finances/revenues#investment-income"
      },
      "fines-and-penalties": {
        "current_label": "Fines and penalties",
        "line_type": "revenue",
        "taxonomy_era": null,
        "classification": "structural",
        "classification_rationale": "Under budget all 5 years, materially (≥5%) in all 5: 2020 −18.1%, 2021 −22.0%, 2022 −13.6%, 2023 −6.5%, 2024 −8.8%. A structural pattern of budgeting fines/penalties revenue above what is realized.",
        "classification_citations": [
          "2021 AFR PDF p.45: budget 82,545 / actual 64,421 (−22.0%)",
          "2024 AFR PDF p.45: budget 83,047 / actual 75,731 (−8.8%)"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 84333.0,
            "actual_thousands": 69080.0,
            "variance_absolute_thousands": -15253.0,
            "variance_percent": -18.0866,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 82545.0,
            "actual_thousands": 64421.0,
            "variance_absolute_thousands": -18124.0,
            "variance_percent": -21.9565,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          },
          "2022": {
            "budget_thousands": 85749.0,
            "actual_thousands": 74089.0,
            "variance_absolute_thousands": -11660.0,
            "variance_percent": -13.5978,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 83009.0,
            "actual_thousands": 77650.0,
            "variance_absolute_thousands": -5359.0,
            "variance_percent": -6.4559,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 83047.0,
            "actual_thousands": 75731.0,
            "variance_absolute_thousands": -7316.0,
            "variance_percent": -8.8095,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Traffic and bylaw fines, late-payment penalties.",
        "cross_link": "/finances/revenues"
      },
      "licences-permits-fees": {
        "current_label": "Licences, permits and fees",
        "line_type": "revenue",
        "taxonomy_era": null,
        "classification": "structural",
        "classification_rationale": "Over budget in 4 of 5 years, materially (≥5%) in 3+ same-direction years: 2022 +8.6%, 2023 +16.4%, 2024 +11.2% (2021 +3.3% sub-bar, 2020 −14.5% the only shortfall). Sustained structural under-budgeting of licence/permit/fee revenue across 2022–2024.",
        "classification_citations": [
          "2023 AFR PDF p.45: budget 115,231 / actual 134,083 (+16.4%)",
          "2024 AFR PDF p.45: budget 138,514 / actual 153,977 (+11.2%)"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 112717.0,
            "actual_thousands": 96372.0,
            "variance_absolute_thousands": -16345.0,
            "variance_percent": -14.5009,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 102978.0,
            "actual_thousands": 106405.0,
            "variance_absolute_thousands": 3427.0,
            "variance_percent": 3.3279,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          },
          "2022": {
            "budget_thousands": 109167.0,
            "actual_thousands": 118511.0,
            "variance_absolute_thousands": 9344.0,
            "variance_percent": 8.5594,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 115231.0,
            "actual_thousands": 134083.0,
            "variance_absolute_thousands": 18852.0,
            "variance_percent": 16.3602,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 138514.0,
            "actual_thousands": 153977.0,
            "variance_absolute_thousands": 15463.0,
            "variance_percent": 11.1635,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Business licences, development and building permits, regulatory fees.",
        "cross_link": "/finances/revenues"
      },
      "miscellaneous-revenue": {
        "current_label": "Miscellaneous revenue",
        "line_type": "revenue",
        "taxonomy_era": null,
        "classification": "structural",
        "classification_rationale": "Over budget all 5 years by very large margins (2020 +36.5%, 2021 +84.2%, 2022 +61.6%, 2023 +44.8%, 2024 +36.1%). Residual revenue is structurally and substantially under-budgeted every year — a consistent same-direction ≥5% pattern.",
        "classification_citations": [
          "2021 AFR PDF p.45: budget 28,121 / actual 51,798 (+84.2%)",
          "2024 AFR PDF p.45: budget 32,366 / actual 44,051 (+36.1%)"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 24664.0,
            "actual_thousands": 33660.0,
            "variance_absolute_thousands": 8996.0,
            "variance_percent": 36.4742,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 28121.0,
            "actual_thousands": 51798.0,
            "variance_absolute_thousands": 23677.0,
            "variance_percent": 84.1969,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          },
          "2022": {
            "budget_thousands": 34837.0,
            "actual_thousands": 56291.0,
            "variance_absolute_thousands": 21454.0,
            "variance_percent": 61.5839,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 29870.0,
            "actual_thousands": 43243.0,
            "variance_absolute_thousands": 13373.0,
            "variance_percent": 44.7707,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 32366.0,
            "actual_thousands": 44051.0,
            "variance_absolute_thousands": 11685.0,
            "variance_percent": 36.1027,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Residual revenue not classified elsewhere in the statement.",
        "cross_link": "/finances/revenues"
      },
      "enmax-equity-earnings": {
        "current_label": "Equity in earnings (loss) of ENMAX Corporation",
        "line_type": "revenue",
        "taxonomy_era": null,
        "classification": "mixed",
        "classification_rationale": "Directionally over budget 2020–2022 (+70.5%, +102.6%, +45.6%) then a hard sign-flip to large shortfalls 2023 −105.7% (an actual loss of 15,608 vs a 275,000 budget) and 2024 −48.7%. The variance flips sign across the series, so it is NOT a structural pattern (spec Edge Cases); it is a volatile subsidiary-earnings line — optimistic in up years, sharply negative in down years. Classified mixed: a directional early lean plus a genuine volatility component.",
        "classification_citations": [
          "2021 AFR PDF p.45: budget 146,000 / actual 295,777 (+102.6%)",
          "2023 AFR PDF p.45: budget 275,000 / actual (15,608) — equity loss, −105.7%",
          "2024 AFR PDF p.45: budget 353,000 / actual 181,248 (−48.7%)"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 169000.0,
            "actual_thousands": 288114.0,
            "variance_absolute_thousands": 119114.0,
            "variance_percent": 70.4817,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 146000.0,
            "actual_thousands": 295777.0,
            "variance_absolute_thousands": 149777.0,
            "variance_percent": 102.587,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          },
          "2022": {
            "budget_thousands": 203000.0,
            "actual_thousands": 295628.0,
            "variance_absolute_thousands": 92628.0,
            "variance_percent": 45.6296,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 275000.0,
            "actual_thousands": -15608.0,
            "variance_absolute_thousands": -290608.0,
            "variance_percent": -105.6756,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 353000.0,
            "actual_thousands": 181248.0,
            "variance_absolute_thousands": -171752.0,
            "variance_percent": -48.655,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "The City's equity share of ENMAX Corporation earnings (or loss); a wholly-owned subsidiary, market-sensitive.",
        "cross_link": "/finances/revenues#enmax-dividends"
      },
      "developer-contributions": {
        "current_label": "Developer contributions",
        "line_type": "other_contribution",
        "taxonomy_era": null,
        "classification": "structural",
        "classification_rationale": "Under budget all 5 years by large margins (2020 −41.4%, 2021 −49.6%, 2022 −31.7%, 2023 −30.1%, 2024 −37.1%). Cash developer contributions are structurally budgeted well above what is realized — a consistent same-direction ≥5% pattern across the full series.",
        "classification_citations": [
          "2021 AFR PDF p.45: budget 314,927 / actual 158,763 (−49.6%)",
          "2024 AFR PDF p.45: budget 231,285 / actual 145,368 (−37.1%)"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 283482.0,
            "actual_thousands": 166008.0,
            "variance_absolute_thousands": -117474.0,
            "variance_percent": -41.4397,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 314927.0,
            "actual_thousands": 158763.0,
            "variance_absolute_thousands": -156164.0,
            "variance_percent": -49.5874,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          },
          "2022": {
            "budget_thousands": 355236.0,
            "actual_thousands": 242498.0,
            "variance_absolute_thousands": -112738.0,
            "variance_percent": -31.7361,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 270063.0,
            "actual_thousands": 188830.0,
            "variance_absolute_thousands": -81233.0,
            "variance_percent": -30.0793,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 231285.0,
            "actual_thousands": 145368.0,
            "variance_absolute_thousands": -85917.0,
            "variance_percent": -37.1477,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Cash contributions from land developers toward growth-related infrastructure.",
        "cross_link": "/finances/revenues"
      },
      "government-transfers-capital": {
        "current_label": "Government transfers related to capital",
        "line_type": "other_contribution",
        "taxonomy_era": null,
        "classification": "structural",
        "classification_rationale": "Under budget all 5 years (2020 −59.9%, 2021 −56.3%, 2022 −57.9%, 2023 −47.7%, 2024 −10.0%). Capital grant revenue is structurally budgeted far above single-year realization because capital grants track multi-year project milestones — a known, expected timing pattern, not a revenue failure. Read with the capital-program planned-vs-actual view (single-year capital variance is normal, spec FR-013).",
        "classification_citations": [
          "2022 AFR PDF p.41: budget 853,319 / actual 359,643 (−57.9%)",
          "2024 AFR PDF p.45: budget 760,636 / actual 684,848 (−10.0%)"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 704910.0,
            "actual_thousands": 282756.0,
            "variance_absolute_thousands": -422154.0,
            "variance_percent": -59.8876,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 952835.0,
            "actual_thousands": 416393.0,
            "variance_absolute_thousands": -536442.0,
            "variance_percent": -56.2996,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          },
          "2022": {
            "budget_thousands": 853319.0,
            "actual_thousands": 359643.0,
            "variance_absolute_thousands": -493676.0,
            "variance_percent": -57.8536,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 883491.0,
            "actual_thousands": 462316.0,
            "variance_absolute_thousands": -421175.0,
            "variance_percent": -47.6717,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 760636.0,
            "actual_thousands": 684848.0,
            "variance_absolute_thousands": -75788.0,
            "variance_percent": -9.9638,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Capital grants from other governments; multi-year, lumpy, tied to project milestones.",
        "cross_link": "/finances/capital-program#planned-vs-actual"
      },
      "developer-contributions-in-kind-capital": {
        "current_label": "Developer contributions-in-kind related to capital",
        "line_type": "other_contribution",
        "taxonomy_era": null,
        "classification": "unclassified",
        "classification_rationale": "Never budgeted (the AFR prints \"–\" for budget every year — in-kind, non-cash contributions recognized on receipt). With no budget there is no variance to classify; rendered as \"not budgeted\" rather than a false percentage against zero (spec Edge Cases).",
        "classification_citations": [
          "2024 AFR PDF p.45: budget – (not set) / actual 345,075"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": null,
            "actual_thousands": 168674.0,
            "variance_absolute_thousands": null,
            "variance_percent": null,
            "budget_not_set": true,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": null,
            "actual_thousands": 206662.0,
            "variance_absolute_thousands": null,
            "variance_percent": null,
            "budget_not_set": true,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          },
          "2022": {
            "budget_thousands": null,
            "actual_thousands": 240901.0,
            "variance_absolute_thousands": null,
            "variance_percent": null,
            "budget_not_set": true,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": null,
            "actual_thousands": 288695.0,
            "variance_absolute_thousands": null,
            "variance_percent": null,
            "budget_not_set": true,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": null,
            "actual_thousands": 345075.0,
            "variance_absolute_thousands": null,
            "variance_percent": null,
            "budget_not_set": true,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Non-cash developer contributions (land, constructed assets) — not budgeted, recognized on receipt.",
        "cross_link": "/finances/capital-program#planned-vs-actual"
      },
      "expense-planning-development": {
        "current_label": "Planning and development services",
        "line_type": "expense",
        "taxonomy_era": "new",
        "classification": "unclassified",
        "classification_rationale": "Under budget all 3 observed years (2022 −1.6%, 2023 −6.9%, 2024 −21.2%) but materially (≥5%) in only 2; the growing under-spend is suggestive but below the documented structural threshold. Honest unclassified at MVP; revisit as 2025+ accumulates.",
        "classification_citations": [
          "2024 AFR PDF p.45: budget 299,794 / actual 236,089 (−21.2%)"
        ],
        "by_year": {
          "2022": {
            "budget_thousands": 171889.0,
            "actual_thousands": 169090.0,
            "variance_absolute_thousands": -2799.0,
            "variance_percent": -1.6284,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 215769.0,
            "actual_thousands": 200982.0,
            "variance_absolute_thousands": -14787.0,
            "variance_percent": -6.8532,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 299794.0,
            "actual_thousands": 236089.0,
            "variance_absolute_thousands": -63705.0,
            "variance_percent": -21.2496,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Planning, development approvals, and growth-management services (post-2022 taxonomy).",
        "cross_link": "/finances/expenses#service-area-planning-and-development-services"
      },
      "expense-infrastructure": {
        "current_label": "Infrastructure services",
        "line_type": "expense",
        "taxonomy_era": "new",
        "classification": "unclassified",
        "classification_rationale": "Sign-flips across its 3 observed years (2022 +48.3%, 2023 +19.6%, 2024 −6.8%) — not a same-direction pattern, and only 3 years of post-re-alignment history. Unclassified honestly.",
        "classification_citations": [
          "2022 AFR PDF p.41: budget 265,698 / actual 394,116 (+48.3%)",
          "2024 AFR PDF p.45: budget 260,800 / actual 243,144 (−6.8%)"
        ],
        "by_year": {
          "2022": {
            "budget_thousands": 265698.0,
            "actual_thousands": 394116.0,
            "variance_absolute_thousands": 128418.0,
            "variance_percent": 48.3323,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 315861.0,
            "actual_thousands": 377687.0,
            "variance_absolute_thousands": 61826.0,
            "variance_percent": 19.5738,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 260800.0,
            "actual_thousands": 243144.0,
            "variance_absolute_thousands": -17656.0,
            "variance_percent": -6.7699,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Infrastructure delivery and asset management (post-2022 taxonomy).",
        "cross_link": "/finances/expenses#service-area-infrastructure-services"
      },
      "expense-community": {
        "current_label": "Community services",
        "line_type": "expense",
        "taxonomy_era": "new",
        "classification": "unclassified",
        "classification_rationale": "Over budget all 3 observed years but only marginally (2022 +2.1%, 2023 +5.8%, 2024 +1.5%) — material in only 1 year. Below the structural threshold; unclassified at MVP.",
        "classification_citations": [
          "2024 AFR PDF p.45: budget 1,603,190 / actual 1,626,943 (+1.5%)"
        ],
        "by_year": {
          "2022": {
            "budget_thousands": 1359752.0,
            "actual_thousands": 1388328.0,
            "variance_absolute_thousands": 28576.0,
            "variance_percent": 2.1016,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 1479237.0,
            "actual_thousands": 1565365.0,
            "variance_absolute_thousands": 86128.0,
            "variance_percent": 5.8225,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 1603190.0,
            "actual_thousands": 1626943.0,
            "variance_absolute_thousands": 23753.0,
            "variance_percent": 1.4816,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Community services — recreation, social, library, public safety adjacent (post-2022 taxonomy).",
        "cross_link": "/finances/expenses#service-area-community-services"
      },
      "expense-operational": {
        "current_label": "Operational services",
        "line_type": "expense",
        "taxonomy_era": "new",
        "classification": "structural",
        "classification_rationale": "Over budget all 3 observed years by very large margins (2022 +26.9%, 2023 +37.3%, 2024 +36.4%). Operational services (transit, roads, water, waste) consistently and materially exceed budget — a structural under-budgeting pattern (≥3 years same-direction ≥5%). The single largest 2024 absolute variance (+$627M).",
        "classification_citations": [
          "2023 AFR PDF p.45: budget 1,562,707 / actual 2,146,059 (+37.3%)",
          "2024 AFR PDF p.45: budget 1,725,475 / actual 2,352,755 (+36.4%)"
        ],
        "by_year": {
          "2022": {
            "budget_thousands": 1584322.0,
            "actual_thousands": 2010020.0,
            "variance_absolute_thousands": 425698.0,
            "variance_percent": 26.8694,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 1562707.0,
            "actual_thousands": 2146059.0,
            "variance_absolute_thousands": 583352.0,
            "variance_percent": 37.3296,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 1725475.0,
            "actual_thousands": 2352755.0,
            "variance_absolute_thousands": 627280.0,
            "variance_percent": 36.354,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Operational services — transit, roads, water, waste (post-2022 taxonomy).",
        "cross_link": "/finances/expenses#service-area-operational-services"
      },
      "expense-general-government-new": {
        "current_label": "General government",
        "line_type": "expense",
        "taxonomy_era": "new",
        "classification": "structural",
        "classification_rationale": "Under budget all 3 observed years materially (2022 −27.4%, 2023 −33.2%, 2024 −11.5%). Corporate/governance functions are consistently under-spent against budget — a structural pattern (≥3 years same-direction ≥5%); candidate for budget-realism review.",
        "classification_citations": [
          "2023 AFR PDF p.45: budget 550,735 / actual 367,654 (−33.2%)",
          "2024 AFR PDF p.45: budget 594,486 / actual 526,276 (−11.5%)"
        ],
        "by_year": {
          "2022": {
            "budget_thousands": 517243.0,
            "actual_thousands": 375669.0,
            "variance_absolute_thousands": -141574.0,
            "variance_percent": -27.3709,
            "budget_not_set": false,
            "budget_source_page": 41,
            "actual_source_page": 41,
            "source_id": "afr-2022"
          },
          "2023": {
            "budget_thousands": 550735.0,
            "actual_thousands": 367654.0,
            "variance_absolute_thousands": -183081.0,
            "variance_percent": -33.243,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2023"
          },
          "2024": {
            "budget_thousands": 594486.0,
            "actual_thousands": 526276.0,
            "variance_absolute_thousands": -68210.0,
            "variance_percent": -11.4738,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2024"
          }
        },
        "description": "Corporate and governance functions (post-2022 taxonomy).",
        "cross_link": "/finances/expenses#service-area-general-government"
      },
      "expense-protection": {
        "current_label": "Protection",
        "line_type": "expense",
        "taxonomy_era": "old",
        "classification": "unclassified",
        "classification_rationale": "Only 2 observed years (2020 +1.6%, 2021 +2.9%) — the 2022 organizational re-alignment retired this pre-2022 function taxonomy, so <3 years of history exist and the line cannot be carried forward. Unclassified per FR-009 (insufficient multi-year history).",
        "classification_citations": [
          "2020 AFR PDF p.47: budget 801,772 / actual 814,277",
          "2021 AFR PDF p.45: budget 796,162 / actual 819,110"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 801772.0,
            "actual_thousands": 814277.0,
            "variance_absolute_thousands": 12505.0,
            "variance_percent": 1.5597,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 796162.0,
            "actual_thousands": 819110.0,
            "variance_absolute_thousands": 22948.0,
            "variance_percent": 2.8823,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          }
        },
        "description": "Police and Fire (pre-2022 function taxonomy; retired by the 2022 re-alignment).",
        "cross_link": "/finances/expenses"
      },
      "expense-transportation": {
        "current_label": "Transportation",
        "line_type": "expense",
        "taxonomy_era": "old",
        "classification": "unclassified",
        "classification_rationale": "Only 2 observed years (2020 +28.3%, 2021 +28.2%); pre-2022 taxonomy retired by the re-alignment. <3 years of history — unclassified per FR-009 (the magnitude is large but the rule requires ≥3 years and the taxonomy break makes more impossible at this granularity).",
        "classification_citations": [
          "2020 AFR PDF p.47: budget 791,518 / actual 1,015,816",
          "2021 AFR PDF p.45: budget 794,443 / actual 1,018,085"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 791518.0,
            "actual_thousands": 1015816.0,
            "variance_absolute_thousands": 224298.0,
            "variance_percent": 28.3377,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 794443.0,
            "actual_thousands": 1018085.0,
            "variance_absolute_thousands": 223642.0,
            "variance_percent": 28.1508,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          }
        },
        "description": "Public transit and roads/traffic/parking (pre-2022 taxonomy).",
        "cross_link": "/finances/expenses"
      },
      "expense-utilities-environmental": {
        "current_label": "Utilities and environmental services",
        "line_type": "expense",
        "taxonomy_era": "old",
        "classification": "unclassified",
        "classification_rationale": "Only 2 observed years (2020 +5.4%, 2021 +4.5%); pre-2022 taxonomy retired. <3 years — unclassified per FR-009.",
        "classification_citations": [
          "2020 AFR PDF p.47: budget 668,679 / actual 704,607",
          "2021 AFR PDF p.45: budget 680,323 / actual 710,828"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 668679.0,
            "actual_thousands": 704607.0,
            "variance_absolute_thousands": 35928.0,
            "variance_percent": 5.373,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 680323.0,
            "actual_thousands": 710828.0,
            "variance_absolute_thousands": 30505.0,
            "variance_percent": 4.4839,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          }
        },
        "description": "Water services and waste/recycling/environmental (pre-2022 taxonomy).",
        "cross_link": "/finances/expenses"
      },
      "expense-community-cultural": {
        "current_label": "Community and cultural services",
        "line_type": "expense",
        "taxonomy_era": "old",
        "classification": "unclassified",
        "classification_rationale": "Only 2 observed years (2020 +7.5%, 2021 +4.9%); pre-2022 taxonomy retired. <3 years — unclassified per FR-009.",
        "classification_citations": [
          "2020 AFR PDF p.47: budget 560,516 / actual 602,674",
          "2021 AFR PDF p.45: budget 608,274 / actual 637,936"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 560516.0,
            "actual_thousands": 602674.0,
            "variance_absolute_thousands": 42158.0,
            "variance_percent": 7.5213,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 608274.0,
            "actual_thousands": 637936.0,
            "variance_absolute_thousands": 29662.0,
            "variance_percent": 4.8764,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          }
        },
        "description": "Community/social development, social housing, parks/recreation, societies, library (pre-2022 taxonomy).",
        "cross_link": "/finances/expenses"
      },
      "expense-general-government-old": {
        "current_label": "General government (pre-2022 taxonomy)",
        "line_type": "expense",
        "taxonomy_era": "old",
        "classification": "unclassified",
        "classification_rationale": "Only 2 observed years (2020 −22.9%, 2021 −18.1%); pre-2022 taxonomy retired and NOT the same scope as the post-2022 General government segment (kept distinct so no false continuity). <3 years — unclassified per FR-009.",
        "classification_citations": [
          "2020 AFR PDF p.47: budget 416,946 / actual 321,630",
          "2021 AFR PDF p.45: budget 432,285 / actual 354,054"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 416946.0,
            "actual_thousands": 321630.0,
            "variance_absolute_thousands": -95316.0,
            "variance_percent": -22.8605,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 432285.0,
            "actual_thousands": 354054.0,
            "variance_absolute_thousands": -78231.0,
            "variance_percent": -18.0971,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          }
        },
        "description": "Corporate functions under the pre-2022 taxonomy — not the same scope as the post-2022 segment.",
        "cross_link": "/finances/expenses"
      },
      "expense-public-works": {
        "current_label": "Public works",
        "line_type": "expense",
        "taxonomy_era": "old",
        "classification": "unclassified",
        "classification_rationale": "Only 2 observed years (2020 +3.0%, 2021 +15.9%); pre-2022 taxonomy retired. <3 years — unclassified per FR-009.",
        "classification_citations": [
          "2020 AFR PDF p.47: budget 279,233 / actual 287,582",
          "2021 AFR PDF p.45: budget 278,462 / actual 322,733"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 279233.0,
            "actual_thousands": 287582.0,
            "variance_absolute_thousands": 8349.0,
            "variance_percent": 2.99,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 278462.0,
            "actual_thousands": 322733.0,
            "variance_absolute_thousands": 44271.0,
            "variance_percent": 15.8984,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          }
        },
        "description": "Public works (pre-2022 taxonomy).",
        "cross_link": "/finances/expenses"
      },
      "expense-real-estate": {
        "current_label": "Real estate services",
        "line_type": "expense",
        "taxonomy_era": "old",
        "classification": "unclassified",
        "classification_rationale": "Only 2 observed years (2020 −8.1%, 2021 −9.6%); pre-2022 taxonomy retired. <3 years — unclassified per FR-009.",
        "classification_citations": [
          "2020 AFR PDF p.47: budget 111,217 / actual 102,216",
          "2021 AFR PDF p.45: budget 129,039 / actual 116,653"
        ],
        "by_year": {
          "2020": {
            "budget_thousands": 111217.0,
            "actual_thousands": 102216.0,
            "variance_absolute_thousands": -9001.0,
            "variance_percent": -8.0932,
            "budget_not_set": false,
            "budget_source_page": 47,
            "actual_source_page": 47,
            "source_id": "afr-2020"
          },
          "2021": {
            "budget_thousands": 129039.0,
            "actual_thousands": 116653.0,
            "variance_absolute_thousands": -12386.0,
            "variance_percent": -9.5986,
            "budget_not_set": false,
            "budget_source_page": 45,
            "actual_source_page": 45,
            "source_id": "afr-2021"
          }
        },
        "description": "Real estate services (pre-2022 taxonomy).",
        "cross_link": "/finances/expenses"
      }
    },
    "multi_year_variance_summary_by_line": {
      "net-municipal-taxes": {
        "observed_years": [
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "years_with_percent": 5,
        "mean_variance_percent": 4.1628,
        "years_over_budget": 4,
        "years_under_budget": 1,
        "max_abs_variance_percent": 10.0008
      },
      "sales-of-goods-and-services": {
        "observed_years": [
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "years_with_percent": 5,
        "mean_variance_percent": -7.5065,
        "years_over_budget": 0,
        "years_under_budget": 5,
        "max_abs_variance_percent": 18.7154
      },
      "government-transfers-operating": {
        "observed_years": [
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "years_with_percent": 5,
        "mean_variance_percent": 41.9216,
        "years_over_budget": 4,
        "years_under_budget": 1,
        "max_abs_variance_percent": 114.0942
      },
      "investment-income": {
        "observed_years": [
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "years_with_percent": 5,
        "mean_variance_percent": 81.8708,
        "years_over_budget": 5,
        "years_under_budget": 0,
        "max_abs_variance_percent": 183.4193
      },
      "fines-and-penalties": {
        "observed_years": [
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "years_with_percent": 5,
        "mean_variance_percent": -13.7813,
        "years_over_budget": 0,
        "years_under_budget": 5,
        "max_abs_variance_percent": 21.9565
      },
      "licences-permits-fees": {
        "observed_years": [
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "years_with_percent": 5,
        "mean_variance_percent": 4.982,
        "years_over_budget": 4,
        "years_under_budget": 1,
        "max_abs_variance_percent": 16.3602
      },
      "miscellaneous-revenue": {
        "observed_years": [
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "years_with_percent": 5,
        "mean_variance_percent": 52.6257,
        "years_over_budget": 5,
        "years_under_budget": 0,
        "max_abs_variance_percent": 84.1969
      },
      "enmax-equity-earnings": {
        "observed_years": [
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "years_with_percent": 5,
        "mean_variance_percent": 12.8735,
        "years_over_budget": 3,
        "years_under_budget": 2,
        "max_abs_variance_percent": 105.6756
      },
      "developer-contributions": {
        "observed_years": [
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "years_with_percent": 5,
        "mean_variance_percent": -37.998,
        "years_over_budget": 0,
        "years_under_budget": 5,
        "max_abs_variance_percent": 49.5874
      },
      "government-transfers-capital": {
        "observed_years": [
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "years_with_percent": 5,
        "mean_variance_percent": -46.3353,
        "years_over_budget": 0,
        "years_under_budget": 5,
        "max_abs_variance_percent": 59.8876
      },
      "developer-contributions-in-kind-capital": {
        "observed_years": [
          2020,
          2021,
          2022,
          2023,
          2024
        ],
        "years_with_percent": 0,
        "mean_variance_percent": null,
        "years_over_budget": 0,
        "years_under_budget": 0,
        "max_abs_variance_percent": null
      },
      "expense-planning-development": {
        "observed_years": [
          2022,
          2023,
          2024
        ],
        "years_with_percent": 3,
        "mean_variance_percent": -9.9104,
        "years_over_budget": 0,
        "years_under_budget": 3,
        "max_abs_variance_percent": 21.2496
      },
      "expense-infrastructure": {
        "observed_years": [
          2022,
          2023,
          2024
        ],
        "years_with_percent": 3,
        "mean_variance_percent": 20.3787,
        "years_over_budget": 2,
        "years_under_budget": 1,
        "max_abs_variance_percent": 48.3323
      },
      "expense-community": {
        "observed_years": [
          2022,
          2023,
          2024
        ],
        "years_with_percent": 3,
        "mean_variance_percent": 3.1352,
        "years_over_budget": 3,
        "years_under_budget": 0,
        "max_abs_variance_percent": 5.8225
      },
      "expense-operational": {
        "observed_years": [
          2022,
          2023,
          2024
        ],
        "years_with_percent": 3,
        "mean_variance_percent": 33.5177,
        "years_over_budget": 3,
        "years_under_budget": 0,
        "max_abs_variance_percent": 37.3296
      },
      "expense-general-government-new": {
        "observed_years": [
          2022,
          2023,
          2024
        ],
        "years_with_percent": 3,
        "mean_variance_percent": -24.0292,
        "years_over_budget": 0,
        "years_under_budget": 3,
        "max_abs_variance_percent": 33.243
      },
      "expense-protection": {
        "observed_years": [
          2020,
          2021
        ],
        "years_with_percent": 2,
        "mean_variance_percent": 2.221,
        "years_over_budget": 2,
        "years_under_budget": 0,
        "max_abs_variance_percent": 2.8823
      },
      "expense-transportation": {
        "observed_years": [
          2020,
          2021
        ],
        "years_with_percent": 2,
        "mean_variance_percent": 28.2442,
        "years_over_budget": 2,
        "years_under_budget": 0,
        "max_abs_variance_percent": 28.3377
      },
      "expense-utilities-environmental": {
        "observed_years": [
          2020,
          2021
        ],
        "years_with_percent": 2,
        "mean_variance_percent": 4.9284,
        "years_over_budget": 2,
        "years_under_budget": 0,
        "max_abs_variance_percent": 5.373
      },
      "expense-community-cultural": {
        "observed_years": [
          2020,
          2021
        ],
        "years_with_percent": 2,
        "mean_variance_percent": 6.1989,
        "years_over_budget": 2,
        "years_under_budget": 0,
        "max_abs_variance_percent": 7.5213
      },
      "expense-general-government-old": {
        "observed_years": [
          2020,
          2021
        ],
        "years_with_percent": 2,
        "mean_variance_percent": -20.4788,
        "years_over_budget": 0,
        "years_under_budget": 2,
        "max_abs_variance_percent": 22.8605
      },
      "expense-public-works": {
        "observed_years": [
          2020,
          2021
        ],
        "years_with_percent": 2,
        "mean_variance_percent": 9.4442,
        "years_over_budget": 2,
        "years_under_budget": 0,
        "max_abs_variance_percent": 15.8984
      },
      "expense-real-estate": {
        "observed_years": [
          2020,
          2021
        ],
        "years_with_percent": 2,
        "mean_variance_percent": -8.8459,
        "years_over_budget": 0,
        "years_under_budget": 2,
        "max_abs_variance_percent": 9.5986
      }
    },
    "classification_distribution": {
      "mixed": 1,
      "one-time": 0,
      "structural": 9,
      "unclassified": 13
    }
  }
}
