Skip to main content
Vancouver · Council decisions

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.

7,383 items council voted on1,716 placed on a parcel (23%)2,086 decided on a split vote

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.

Carried unanimously71%5,271
Carried on a split vote21%1,569
Lost7%516
Carried0%27
Source: Council voting records·Data ↗

How items are placed

3,929 item × parcel rows, by the rule that placed each one.

Address rangea registered address inside the range the text names ("607-621 West 28th Avenue")2,513
Exact addressthe civic number the text names exists in the City's address register769
Same hundred blockthe nearest registered number on the same street and hundred block, when the lots named were consolidated647

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:

Rezoning & development23%1,706
Housing9%681
Heritage2%151
Liquor & business licences4%300
Land, lanes & leases4%268

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_keystable key of the item in the City's voting record
vote_datedate council voted
vote_yearyear council voted
meeting_typethe meeting, as the City names it (Regular Council, Public Hearing, …)
meeting_idthe City's meeting identifier
titlethe agenda text with its agenda numbering removed
textthe agenda text as the City published it (UTF-8 misreadings repaired)
decisionthe decision as the City recorded it
outcome_linethe decision with its tally: "Carried unanimously", "Carried 6–5", "Lost 3–8"
n_in_favourcouncillors recorded in favour
n_oppositioncouncillors recorded in opposition
n_conflictscouncillors who declared a conflict
n_absentcouncillors recorded absent
is_contestedtrue when at least one councillor voted each way
s_rezoningsubject keyword rule: agenda text matches rezon|cd-1|text amendment|official development plan|odp|zoning
s_housingsubject keyword rule: agenda text matches housing|rental|tenant|renovict|affordab|shelter|modular|homeless
s_heritagesubject keyword rule: agenda text matches heritage
s_licencessubject keyword rule: agenda text matches liquor|licence|license|patio|cannabis|brewery|lounge
s_landsubject keyword rule: agenda text matches closure and sale|lane|road closure|sale of|lease|acquisition|easement|encroachment
n_placesparcels the agenda text names that were found in the property-address register

vancouver_council_decision_places.csv.gz

item_keythe item (joins the decisions table)
civic_numberthe register's civic number the item was placed on
std_streetthe register's street name
rulehow it was placed: exact (the number exists), range (inside a range the text names), hundred_block (same street, same hundred block)
lonparcel centroid longitude (WGS84)
latparcel centroid latitude (WGS84)
block_idxthe city block containing the parcel (row of the block outlines, stable within a build)