Sources

Every number on this site comes from something the City of Calgary publishes. This page lists each source, what we take from it, and where our copy lives so you can check it yourself.

How the data is collected

A scheduled job on GitHub runs every morning at 7:00 Calgary time (6:00 in winter). It downloads each source below, saves the result as plain CSV or JSON files in the project's GitHub repository, and rebuilds the site. Every change is a commit, so the repository's history shows what each source said on each day. The code for each step is linked in the tables.

City jobs

SourceWhat we take from itHow oftenOur copy
City of Calgary careers page
calgary.ca, web page
Every open posting: title, job category, closing date and link Daily data/jobs/postings.csv, daily copies in data/jobs/snapshots/
Code: collectors/jobs.py
City job posting pages
recruiting.calgary.ca, one page per posting
Department, union, pay range, weekly hours, and how many permanent and temporary positions, from each posting's "Position and Pay Information" section Daily, while a posting is open Same file as above
Code: collectors/jobs.py
Internet Archive copies of the careers page
web.archive.org (Wayback Machine)
Postings from January 2024 until daily collection started, dated by the first archived copy that lists them; pay and positions where the posting's own page was also archived Once, as a backfill Rows marked source=archive in data/jobs/postings.csv
Code: scripts/backfill_jobs_from_archive.py
Compensation Disclosure List
Open Calgary, dataset 9bze-mzx6
The salary range for every City position title, 2014 onwards, used to estimate pay when a posting doesn't show it Daily (the City updates it yearly) data/jobs/compensation.csv
Code: collectors/compensation.py

City staff and payroll

SourceWhat we take from itHow oftenOur copy
Annual Financial Reports
calgary.ca, one PDF per year, 2010 onwards (each covers five years, so figures go back to 2006)
Salaries, wages and benefits from "Expenses by object", and full-time equivalents (City and related authorities) and full-time equivalents per 1,000 people from "Demographic and other information" Checked daily; a new report comes out each spring data/workforce/annual_reports.csv, data/workforce/budget_fte.csv, list of documents read in data/workforce/documents.csv
Code: collectors/workforce.py
2026 Budget as approved, December 3, 2025
calgary.ca, PDF
Budgeted full-time equivalents for 2023 to 2026 by department and business unit, and management exempt and union positions by department Checked daily for new budget documents, such as the 2027–2030 budget

Budget

SourceWhat we take from itHow oftenOur copy
Calgary Open Budget
Open Calgary, dataset fqax-i3nz
Operating and capital budget by department, business unit and year from the 2023–2026 Service Plans and Budgets, with actual capital spending for 2023 and 2024 Daily (the City updates it yearly) data/budget/open_budget.csv
Code: collectors/budget.py

Grants

SourceWhat we take from itHow oftenOur copy
Civic Partners funding
calgary.ca, web page
Operating, capital, community safety and innovation grants to each Civic Partner, by year Daily (the City updates it yearly) data/grants/grants.csv
Code: collectors/grants.py
FCSS funding allocations
calgary.ca, web page
Family & Community Support Services funding to each agency and program, 2021 onwards Daily (the City updates it each funding cycle)

Wards

SourceWhat we take from itHow oftenOur copy
Ward budget and expenditure disclosures
calgary.ca, one PDF per ward per year, e.g. Ward 1, 2026
Each ward office's budget, total spending (salaries included) and every itemized expense with vendor and reason, 2024 onwards Daily (the City updates them through the year) data/wards/ward_budgets.csv, data/wards/ward_expenses.csv
Code: collectors/ward_expenses.py
Ward Boundaries
Open Calgary, dataset tz8z-hyaz
The shape of each of the 14 wards, for the map, and its councillor Daily data/wards/ward_boundaries.geojson
Code: collectors/ward_boundaries.py

Council votes

SourceWhat we take from itHow oftenOur copy
Council and Committee Votes
Open Calgary, dataset ruq3-99hx
Every recorded vote at council and committee meetings since October 7, 2020: meeting, date, motion text, result, and each member's vote Daily (the City adds new votes about monthly) data/votes/motions.csv, data/votes/ballots.csv
Code: collectors/votes.py
Council and committee minutes
City of Calgary meetings portal (eScribe)
Recorded votes from meetings the dataset above doesn't have yet: motion text, result, and who voted for and against. Only the meeting types the dataset covers are read, and each is dropped once the City adds that meeting. Minutes don't list absences. Daily data/votes/minutes_motions.csv, data/votes/minutes_ballots.csv
Code: collectors/votes_minutes.py