+
+ {municipality.name}
+
+
+ Reviewed financial statement data for {municipality.name} in{" "}
+ {municipality.province_name}, for the fiscal year ending{" "}
+ {fiscalYearEnd}.
+
+
+ {context.population && censusYear && (
+
+
+ The municipality serves a {censusYear} Census population of{" "}
+ {formatNumber(context.population, lang, 0)} across{" "}
+ {formatNumber(context.area_sq_km || 0, lang)} square kilometres.
+
+
+ )}
+
+
+ {statement.sankey && (
+ <>
+
+
+
+ Where the money came from and where it went
+ setShowSource(!showSource)}
+ />
+
+
+
+
+ Revenue sources flow in from the left and spending by service
+ or function flows out on the right. Revenue offsets and losses
+ are shown as outflows, while expense recoveries are shown as
+ inflows. Values come from detailed schedules in the audited
+ financial statements.
+
+
+
+
+
+
+
+ >
+ )}
+
+ {statement.line_items.length > 0 && (
+
+
+ Reported revenue and expense details
+
+
+
+ These are the detailed rows extracted from the audited
+ statement. This table preserves every signed amount, including
+ negative and consolidation entries that the Sankey repositions
+ as offsets or recoveries.
+
+
+
+ {(["revenue", "expense"] as const).map((flow) => {
+ const items = statement.line_items.filter(
+ (item) => item.flow === flow,
+ );
+ if (items.length === 0) return null;
+ return (
+
+
+ {flow === "revenue" ? (
+ Revenue
+ ) : (
+ Expenses
+ )}
+
+
+
+
+ {items.map((item, index) => (
+
+ |
+
+ {item.label}
+
+ {sourceUrl && (
+
+ page {item.source_page}
+
+ )}
+ |
+
+ {formatCurrencyExact(item.value, lang)}
+ |
+
+ ))}
+
+
+
+
+ );
+ })}
+
+
+ )}
+
+ {operations.length > 0 && (
+
+
+ Financial summary for {statement.fiscal_year}
+
+
+
+ How much the municipality reported earning and spending during
+ the fiscal year.
+
+
+
+ {surplus && (
+ Annual surplus (deficit)}
+ value={formatCurrency(surplus.value, lang)}
+ description={Revenue remaining after expenses}
+ help={
+
+ The reported difference between annual revenue and
+ expenses, including any separately presented adjustments.
+
+ }
+ />
+ )}
+ {revenue && (
+ Total revenue}
+ value={formatCurrency(revenue.value, lang)}
+ description={
+ statement.per_capita?.total_revenue ? (
+
+ {formatCurrency(
+ statement.per_capita.total_revenue,
+ lang,
+ )}{" "}
+ per resident
+
+ ) : (
+ All reported municipal revenue
+ )
+ }
+ help={
+
+ Taxes, transfers, fees, services, and other reported
+ income.
+
+ }
+ />
+ )}
+ {expenses && (
+ Total expenses}
+ value={formatCurrency(expenses.value, lang)}
+ description={
+ statement.per_capita?.total_expenses ? (
+
+ {formatCurrency(
+ statement.per_capita.total_expenses,
+ lang,
+ )}{" "}
+ per resident
+
+ ) : (
+ All reported municipal expenses
+ )
+ }
+ help={
+
+ Program, service, administration, financing, and
+ amortization expenses.
+
+ }
+ />
+ )}
+
+
+
+ )}
+
+ {context.population && censusYear && (
+
+
+ Community context
+
+
+
+ Census context makes municipal totals easier to compare, while
+ recognizing that municipal boundaries and service
+ responsibilities differ.
+
+
+
+ Population}
+ value={formatNumber(context.population, lang, 0)}
+ note={{censusYear} Census}
+ />
+ {context.area_sq_km && (
+ Land area}
+ value={`${formatNumber(context.area_sq_km, lang)} km²`}
+ note={Municipal census subdivision}
+ />
+ )}
+ {context.population_density_per_sq_km && (
+ Population density}
+ value={formatNumber(
+ context.population_density_per_sq_km,
+ lang,
+ )}
+ note={Residents per km²}
+ />
+ )}
+ {statement.per_capita?.total_expenses && (
+ Expenses per resident}
+ value={formatCurrency(
+ statement.per_capita.total_expenses,
+ lang,
+ )}
+ note={Financial year {statement.fiscal_year}}
+ />
+ )}
+
+
+ )}
+
+ {position.length > 0 && (
+
+
+ Financial position
+
+
+
+ Assets, liabilities, and accumulated surplus at the end of the
+ fiscal year.
+
+
+
+ {position.map((fact) => (
+
+ ))}
+
+
+ )}
+
+
+ {
+ const period = municipality.available_periods.find(
+ (candidate) => String(candidate.year) === year,
+ );
+ return formatFiscalYearLabel(period?.fiscal_year_end ?? year);
+ }}
+ />
+
+
+
+
+ Source and methodology
+
+
+
+ Values are extracted from the municipality’s published financial
+ statements and independently reviewed before publication. Page
+ links point to the reported figure in the source document.
+
+
+
+ {sourceUrl && (
+
+ View source financial statements
+
+ )}
+
+
+