{
  "schema_version": "1.0",
  "scope": "Richmond, British Columbia and the electoral districts that contain Richmond",
  "last_verified": "2026-09-06",
  "method_note": "Only official or election-authority results are imported. A blank value means the source has not yet been ingested; it is never treated as zero.",
  "sources": [
    {"title":"City of Richmond Past Results","url":"https://www.richmond.ca/city-hall/elections/results.htm","accessed":"2026-09-06"},
    {"title":"2022 Declaration of Official Results","url":"https://citycouncil.richmond.ca/__shared/assets/2022_General_Local_and_School_Election_Results65824.pdf","accessed":"2026-09-06"},
    {"title":"2018 Declaration of Official Results","url":"https://www.richmond.ca/__shared/assets/2018RichmondElection-DeclarationofOfficialElectionResults51849.pdf","accessed":"2026-09-06"},
    {"title":"Elections BC 2024 Statement of Votes","url":"https://elections.bc.ca/docs/rpt/statement-of-votes-2024-provincial-election.pdf","accessed":"2026-09-06"},
    {"title":"Elections BC 2020 Statement of Votes","url":"https://www3.elections.bc.ca/docs/rpt/statement-of-votes-2020-provincial-general-election.pdf","accessed":"2026-09-06"},
    {"title":"Elections Canada 2025 official results","url":"https://www.elections.ca/res/rep/off/ovrGE45/home.html","accessed":"2026-09-06"},
    {"title":"Elections Canada 2021 official results","url":"https://www.elections.ca/content.aspx?dir=pas%2F44ge&document=index&lang=e&section=ele","accessed":"2026-09-06"},
    {"title":"2022 Chief Election Officer report to Council (turnout comparison 2011-2022)","url":"https://citycouncil.richmond.ca/__shared/assets/2022_General_Local_and_School_Election_Results65824.pdf","accessed":"2026-09-06"},
    {"title":"CBC News: Richmond Mayor Malcolm Brodie won't seek re-election after 25 years","url":"https://www.cbc.ca/news/canada/british-columbia/mayor-malcolm-brodie-won-t-seek-re-election-1.7635389","accessed":"2026-09-06"}
  ],
  "richmond_municipal_turnout_series":{
    "note":"Turnout percentages for 2011-2022 are the City's own comparison figures from the Chief Election Officer's report to Council on the 2022 election. estimated_eligible_electors for 2018 and 2022 is back-calculated (ballots_cast / turnout_percent) from that same official percentage and the official ballots-cast count; it is not a separately published registered-voters list, since BC local elections allow same-day registration.",
    "points":[
      {"year":2011,"turnout_percent":23.74},
      {"year":2014,"turnout_percent":32.4},
      {"year":2018,"turnout_percent":36.86,"ballots_cast":48412,"estimated_eligible_electors":131367},
      {"year":2022,"turnout_percent":24.4,"ballots_cast":35093,"estimated_eligible_electors":143824}
    ]
  },
  "context_2026":{
    "open_mayor_seat":true,
    "note":"Mayor Malcolm Brodie (in office since 2001, re-elected 2002/2005/2008/2014/2018/2022) announced in 2025 he will not seek re-election in 2026. None of the five 2026 mayoral candidates has previously run for Richmond mayor. This is the first open, non-incumbent mayoral race since at least 2001.",
    "source":"CBC News: Richmond Mayor Malcolm Brodie won't seek re-election after 25 years"
  },
  "elections": [
    {"id":"richmond-municipal-2022","level":"municipal","date":"2022-10-15","jurisdiction":"City of Richmond","district":"Richmond (city-wide)","ballots_cast":35093,"turnout_percent":24.4,"offices":[
      {"office":"Mayor","seats":1,"candidates":[["Malcolm Brodie",23239,true],["John Roston",9304,false],["Wei Ping Chen",1859,false]]},
      {"office":"Councillor","seats":8,"candidates":[["Chak Au",16515,true],["Carol Day",15737,true],["Bill McNulty",15133,true],["Alexa Loo",13485,true],["Michael Wolfe",12953,true],["Andy Hobbs",12760,true],["Laura Gillanders",10817,true],["Kash Heed",10563,true],["Derek Dang",10306,false],["Evan Dunfee",10117,false],["Jerome Dickey",8797,false],["Jack Trovato",7831,false],["Eric Yung",7016,false],["Elsa Wong",6789,false],["Mark Lee",6025,false],["Keefer Pelech",5993,false],["Melissa Zhang",5936,false],["Sheldon Starrett",5573,false],["Rahim Othman",4936,false],["Sunny Ho",4654,false],["Fipe Wong",4617,false],["Jasmine Piao",4500,false],["Adil Awan",4197,false],["Bill Han",3292,false],["Chai Chung",3125,false],["Dennis Page",3005,false],["Mohamud Ali Farah",1526,false]]},
      {"office":"School Trustee","seats":7,"candidates":[["Ken Hamaguchi",15909,true],["Donna Sargent",13855,true],["Alice Wong",13769,true],["Heather Larson",13475,true],["Debbie Tablotney",13361,true],["David Yang",12099,true],["Rod Belleza",11304,true],["Linda Li",10540,false],["Chris Dinnell",10529,false],["Andrew Scallion",10039,false],["Richard Lee",9833,false],["Rachel Ling",9509,false],["Kay Hale",8032,false],["Dean Billings",7331,false],["Rajan Paul",6269,false]]}
    ],"status":"complete_official_rows"},
    {"id":"richmond-municipal-2018","level":"municipal","date":"2018-10-20","jurisdiction":"City of Richmond","district":"Richmond (city-wide)","ballots_cast":48412,"turnout_percent":36.86,"offices":[
      {"office":"Mayor","seats":1,"candidates":[["Malcolm Brodie",30452,true],["Roy Sakata",7942,false],["Donald Flintoff",4204,false],["Hong Guo",2940,false],["Lawrence Chen",1260,false],["Cliff Wei",594,false]]},
      {"office":"Councillor","seats":8,"candidates":[["Carol Day",20871,true],["Harold Steves",19136,true],["Chak Au",18026,true],["Bill McNulty",17242,true],["Kelly Greene",16464,true],["Linda McPhail",15521,true],["Michael Wolfe",13627,true],["Alexa Loo",13212,true],["Derek Dang",13115,false],["Andy Hobbs",12336,false],["Judie Schneider",11672,false],["Ken Johnston",11161,false],["Jonathan Ho",11140,false],["Jack Trovato",10915,false],["Sunny Ho",8933,false],["Niti Sharma",8917,false],["Henry Yao",8467,false],["Peter Liu",8357,false],["Parm Bains",7973,false],["John Roston",7961,false],["Melissa Zhang",7078,false],["Kerry Starchuk",6959,false],["Jason Tarnow",5720,false],["Adil Awan",4278,false],["Manjit Singh",4134,false],["Dennis Page",3478,false],["Andy Chiang",3337,false],["Theresa Head",3251,false],["Patrick S. Saunders",2241,false],["Zhe Zhang",2241,false]]},
      {"office":"School Trustee","seats":7,"candidates":[["Ken Hamaguchi",17196,true],["Sandra Nixon",16567,true],["Donna Sargent",15947,true],["Heather Larson",13258,true],["Debbie Tablotney",13243,true],["Richard Lee",12266,true],["Norm Goldstein",11234,true],["Karina Reid",11064,false],["Alice S. Wong",10958,false],["Eric Yung",9559,false],["Andrew Scallion",9148,false],["James Li",9000,false],["Grace Tsang",8978,false],["Jeff Danis",8960,false],["Rod Belleza",8686,false],["Ivan Pak",8244,false],["Charvine Adl",7834,false],["Elsa Wong",7711,false],["Jeffrey Smith",7517,false],["Keith Liedtke",6555,false],["Andrea Gong-Quinn",6550,false],["Rahim Othman",5632,false],["Harv Puni",5272,false],["Jason Zhen Ning Li",5139,false],["Sharon Wang",4361,false],["Sergio Arrambide",2458,false]]}
    ],"status":"complete_official_rows"},
    {"id":"bc-provincial-2024","level":"provincial","date":"2024-10-19","jurisdiction":"British Columbia","districts":[
      {"name":"Richmond Centre","candidates":[["Hon Chan","Conservative Party",8426],["Dickens Cheung","Independent",556],["Sunny Ho","Independent",237],["Henry Yao","BC NDP",5961],["Wendy Yuan","Unaffiliated",1028]],"valid_votes":16208,"rejected_ballots":61,"registered_voters_who_voted":16269},
      {"name":"Richmond-Queensborough","candidates":[["Steve Kooner","Conservative Party",10052],["Errol E. Povah","Independent",258],["Aman Singh","BC NDP",8713],["Cindy Wu","Independent",721]],"valid_votes":19744,"rejected_ballots":63,"registered_voters_who_voted":19807},
      {"name":"Richmond-Steveston","candidates":[["Kelly Greene","BC NDP",10332],["Jackie Lee","Unaffiliated",2354],["Michelle Mollineaux","Conservative Party",9848],["Elodie Vaudandaine","BC Green Party",803]],"valid_votes":23337,"rejected_ballots":52,"registered_voters_who_voted":23389},
      {"name":"Richmond-Bridgeport","candidates":[["Glynnis Hoi Sum Chan","Independent",519],["Linda Li","BC NDP",5921],["Tamás Revóczi","BC Green Party",547],["Charlie Smith","Independent",132],["Teresa Wat","Conservative Party",9908]],"valid_votes":17027,"rejected_ballots":54,"registered_voters_who_voted":17081}
    ],"source_detail":"Elections BC Statement of Votes, 2024 Provincial General Election","status":"complete_official_rows"},
    {"id":"bc-provincial-2020","level":"provincial","date":"2020-10-24","jurisdiction":"British Columbia","districts":[
      {"name":"Richmond North Centre","candidates":[["Jaeden Dela Torre","NDP",5964],["Vernon Wang","Green Party",1333],["Teresa Wat","Liberal",7675]],"valid_votes":14972,"rejected_ballots":146,"registered_voters_who_voted":15118},
      {"name":"Richmond-Queensborough","candidates":[["Earl Einarson","Green Party",1496],["Kay Hale","Conservative Party",1108],["Jas Johal","Liberal",7728],["Aman Singh","NDP",9406]],"valid_votes":19738,"rejected_ballots":154,"registered_voters_who_voted":19892},
      {"name":"Richmond South Centre","candidates":[["Alexa Loo","Liberal",6564],["Henry Yao","NDP",6743]],"valid_votes":13307,"rejected_ballots":207,"registered_voters_who_voted":13514},
      {"name":"Richmond-Steveston","candidates":[["Kelly Greene","NDP",10733],["Vince Li","Independent",483],["Matt Pitcairn","Liberal",9398]],"valid_votes":20614,"rejected_ballots":192,"registered_voters_who_voted":20806}
    ],"source_detail":"Elections BC Statement of Votes, 2020 Provincial General Election","status":"complete_official_rows"},
    {"id":"canada-federal-2025","level":"federal","date":"2025-04-28","jurisdiction":"Canada","districts":[
      {"name":"Richmond Centre—Marpole","candidates":[["Chak Au","Conservative Party of Canada",23532],["Martin Li","New Democratic Party",2109],["Wilson Miao","Liberal Party of Canada",21232],["Michael Sisler","Green Party of Canada",420],["David Wang","People's Party of Canada",193]],"valid_votes":47486,"rejected_ballots":332,"total_ballots_cast":47818},
      {"name":"Richmond East—Steveston","candidates":[["Parm Bains","Liberal Party of Canada",25705],["Steven Ji","Green Party of Canada",494],["Keefer Pelech","New Democratic Party",2251],["Zach Segal","Conservative Party of Canada",24605]],"valid_votes":53055,"rejected_ballots":361,"total_ballots_cast":53416}
    ],"source_detail":"Elections Canada official voting results, 45th General Election","status":"complete_official_rows"},
    {"id":"canada-federal-2021","level":"federal","date":"2021-09-20","jurisdiction":"Canada","districts":[
      {"name":"Richmond Centre","candidates":[["Laura Gillanders","Green Party",1109],["James Hinton","People's Party - PPC",748],["Wilson Miao","Liberal",13440],["Sandra Nixon","NDP-New Democratic Party",6196],["Alice Wong","Conservative",12668]],"valid_votes":34161,"rejected_ballots":340,"total_ballots_cast":34501},
      {"name":"Steveston—Richmond East","candidates":[["Parm Bains","Liberal",16543],["Kenny Chiu","Conservative",13066],["Françoise Raunet","Green Party",860],["Jennifer Singh","People's Party - PPC",955],["Jack Trovato","NDP-New Democratic Party",7525]],"valid_votes":38949,"rejected_ballots":363,"total_ballots_cast":39312}
    ],"source_detail":"Elections Canada official poll-by-poll results, 44th General Election","status":"complete_official_rows"}
  ]
}
