Council’s decisions, as a dataset
Every item Vancouver city council voted on, 2016–2026: the outcome and tally, what the agenda text is about, and the parcels it names. The map's decision layer is drawn from these tables; here they are as files anyone can download.
Items by year
Items council voted on each year, split by whether the agenda text names an address that could be placed. Below: how they were decided.
How items are placed
3,929 item × parcel rows, by the rule that placed each one.
Only addresses the agenda text names are placed. An item about a policy, a program or the whole city has no address and stays unplaced; so does an address whose street cannot be matched word for word.
What the items are about
Keyword subjects over the City's agenda text. How to count them:
One row of the decisions table is one item council voted on (the voting record's item key). Councillors' individual votes are not in these files: tallies only.Subjects are keyword rules over the City's own agenda text. An item can match several subjects or none, so subject counts do not add up to the rows.An item is placed when its agenda text names an address found in the City's property-address register — the exact number, a range, or the same street's hundred block. Nothing fuzzy: an item that cannot be placed stays unplaced.The places table has one row per item and parcel: an item naming a range of addresses has several rows.
The columns
vancouver_council_decisions.csv.gz
| item_key | stable key of the item in the City's voting record |
| vote_date | date council voted |
| vote_year | year council voted |
| meeting_type | the meeting, as the City names it (Regular Council, Public Hearing, …) |
| meeting_id | the City's meeting identifier |
| title | the agenda text with its agenda numbering removed |
| text | the agenda text as the City published it (UTF-8 misreadings repaired) |
| decision | the decision as the City recorded it |
| outcome_line | the decision with its tally: "Carried unanimously", "Carried 6–5", "Lost 3–8" |
| n_in_favour | councillors recorded in favour |
| n_opposition | councillors recorded in opposition |
| n_conflicts | councillors who declared a conflict |
| n_absent | councillors recorded absent |
| is_contested | true when at least one councillor voted each way |
| s_rezoning | subject keyword rule: agenda text matches rezon|cd-1|text amendment|official development plan|odp|zoning |
| s_housing | subject keyword rule: agenda text matches housing|rental|tenant|renovict|affordab|shelter|modular|homeless |
| s_heritage | subject keyword rule: agenda text matches heritage |
| s_licences | subject keyword rule: agenda text matches liquor|licence|license|patio|cannabis|brewery|lounge |
| s_land | subject keyword rule: agenda text matches closure and sale|lane|road closure|sale of|lease|acquisition|easement|encroachment |
| n_places | parcels the agenda text names that were found in the property-address register |
vancouver_council_decision_places.csv.gz
| item_key | the item (joins the decisions table) |
| civic_number | the register's civic number the item was placed on |
| std_street | the register's street name |
| rule | how it was placed: exact (the number exists), range (inside a range the text names), hundred_block (same street, same hundred block) |
| lon | parcel centroid longitude (WGS84) |
| lat | parcel centroid latitude (WGS84) |
| block_idx | the city block containing the parcel (row of the block outlines, stable within a build) |