Changes
What the people and agents building Society have changed, newest first.
-
Ontario elections: 2026 by-election results and an estimated date for the next general election
The three by-elections of 2026-09-03 (Hamilton East—Stoney Creek, Scarborough Southwest, York—Simcoe) with official vote totals for all 20 candidates. Ontario repealed its fixed election dates on 2025-11-27, so the next general election is recorded as an estimate, 2030-03-28 (date_confirmed = false): the latest likely date under the five-year limit. Decision 19 asks how to show this.
-
Ontario's Premier, cabinet, Speaker and Lieutenant Governor are in, with provincial powers
Executive Council: Premier Doug Ford and 41 minister and associate-minister roles from the ONTERM ministers list (2026-09-10), with start dates cross-checked against OLA profiles. Speaker Donna Skelly; Lieutenant Governor Edith Dumont (since 2023-11-14, appointed by the Governor General). 26 powers under the Constitution Act, 1867, ss. 92, 92A, 93, 94A and 95 and the Executive Council Act, tagged with everyday topics.
-
Your MPP for every point in Ontario, with party, contact offices and photo
All 124 current MPPs from the Legislative Assembly of Ontario (79 PC, 27 NDP, 14 Liberal, 2 Green, 2 Independent, no vacancies on 2026-10-11), including the 3 by-election winners of 2026-09-03. Includes 44th-Parliament terms, Chris Scott's move from PC to Independent (2025-09-22), the 3 members who resigned in 2026, 244 constituency/legislative/ministry offices from the OLA contact CSV and 122 official portraits (2 new members have none yet). 20 registered parties from Elections Ontario.
-
Ontario's 124 provincial ridings now show up on the map, with their official boundaries
Elections Ontario 2022 electoral district shapefile (still current: same districts used in the 2025 general election and the 2026 by-elections), jurisdictions ca-on-ed-001..124 with official French names, plus one MPP seat per riding. Loaders in db/load/on-provincial/.
-
14 registered parties from Elections Canada (English and French names). Next general election: Monday 2029-10-15 under the Canada Elections Act fixed-date rule, marked unconfirmed because Parliament can be dissolved earlier; the 2025-04-28 election recorded as held. 42 powers of Parliament quoted from the Constitution Acts (all heads of s. 91, POGG, ss. 92(10), 92A(3), 93(4), 94, 94A, 95, 101, 132; Constitution Act 1871 ss. 3-4; Constitution Act 1982 s. 44; Charter s. 33) and the House's money-bill power (s. 53); the 5 sample powers now quote the text. Sample rows for Parliament, House of Commons and the MP office now have sources (part of #88).
Tickets: #88
-
New authorities Ministry of Canada (11 Secretary of State positions, not in Cabinet) and Cabinet of Canada (Prime Minister and 40 portfolios held by 28 people, incl. Attorney General, Leader of the Government in the House and "Minister responsible for" designations), each appointed by the Governor General; start dates from each member's House of Commons role list, cross-checked with pm.gc.ca. House of Commons: Speaker Francis Scarpaleggia and three deputy presiding officers.
-
An Act to change the names of certain electoral districts, 2026 (S.C. 2026, c. 20, s. 88, in force 2026-09-16), e.g. York Centre is now North York and Halifax West is Halifax West—Peggy’s Cove. Former names kept in name_translation.variants. French names from Elections Canada CF_CA_2023_FR.
Tickets: #118
-
343 House of Commons seats (one per 2023 Representation Order riding), 337 current MPs from ourcommons.ca (Liberal 173, Conservative 137, Bloc 21, NDP 5, Green 1) with start dates, caucus (5 members who changed caucus are noted), parliamentary email, Hill office and 407 constituency offices, and House of Commons official portraits (cached). 6 seats are vacant (Saint-Hyacinthe—Bagot—Acton, Scarborough North, Rosemont—La Petite-Patrie, Laurier—Sainte-Marie, Yorkton—Melville, Brantford—Brant South), recorded from Elections Canada vacancy notices; no by-election has been called yet. Loaders: db/load/federal-commons/load.sh.
-
Auditor General, Chief Electoral Officer, Commissioners of Official Languages, Privacy, Information, Lobbying, Public Sector Integrity, Conflict of Interest and Ethics, the Senate Ethics Officer and the Parliamentary Budget Officer, each with the appointment rule from its statute and the current holder and term dates from the Privy Council Office appointments list (Elections Canada for the CEO). Loader: fetch_gic_appointments.py + load_offices.py.
-
Four courts with their offices sized by statute (Supreme Court Act s. 4; Federal Courts Act ss. 5, 5.1, 12 and SOR/2023-83; Tax Court of Canada Act s. 4 and SOR/2023-84), how judges are appointed, and current judges from each court's website (9 SCC, 17 FCA, 53 FC, 27 TCC including chief justices, supernumerary and associate judges). One regular judgeship is vacant on each of the FCA, FC and TCC (recorded in app.research_done). Loader: judges.csv + load_offices.py.
Tickets: #167
-
The King and the new Governor General, Louise Arbour, now show as current
King Charles III (since 2022-09-08, Canadian Heritage) and Governor General Louise Arbour (sworn in 2026-06-08, gg.ca), with free-licence photos from Wikimedia Commons. Added the King's Privy Council for Canada as an authority (members not loaded, ticket 168). Sources added for the Crown and Senate rows from the original sample (ticket 88).
-
All 105 Senate seats and the 93 sitting senators, with photos and contact details
105 seats (Constitution Act, 1867, s. 22): Quebec's 24 named for the senatorial divisions, other provinces and territories as numbered slots linked to the province. 93 current senators from sencanada.ca (appointment date, parliamentary group, Quebec division, Ottawa phone and email, official portrait cached); 12 vacancies (BC 1, MB 1, NL 1, NS 1, ON 3, QC 4: De la Vallière, De Lanaudière, Saurel, Stadacona; SK 1) match the Senate standings. Also the Speaker of the Senate (Raymonde Gagné) and the Government Representative (Pierre Moreau). Loader: db/load/federal-senate-crown-courts/fetch_senators.py + load_senate.py.
Tickets: #88
-
9 powers on each of 328 Alberta councils from the Municipal Government Act (bylaws, business licensing, property tax, roads, public utilities incl. water/waste/transit, services, planning) and the Police Act (who must provide policing), tagged with everyday topics.
-
Alberta 2029 local election dates and upcoming by-elections
497 scheduled contests for the 2029 general election (Monday 15 October 2029 under the Local Authorities Election Act; summer villages and ID 4 Waterton estimated from their 2025 summer election day, marked unconfirmed). 8 by-elections from 19 Oct to 30 Nov 2026 with the official candidate lists where published (Claresholm, Breton, Brazeau County reeve), plus the Donalda acclamation.
-
56 ward/division jurisdictions with official boundaries and seats, so a lookup shows your own ward councillor there. Other Alberta councils elected by division list the division on each councillor (ticket 156).
Tickets: #156
-
Every Alberta municipality now has its council, current mayor or reeve and councillors
328 councils (18 cities - Lloydminster's council is recorded by research:sk-all, ticket 155 - 105 towns, 78 villages, 51 summer villages, 63 municipal districts, 6 specialized municipalities, 7 improvement districts) plus the Special Areas Board and Advisory Council. 1,975 current council terms for 1,773 people from the provincial Municipal Officials directory (table dated 2026-10-12), matched to the official 2025 election results for ward/division and start date; 13 council places vacant (by-elections pending). Census subdivisions corrected for dissolutions/amalgamations since 2021 (Hythe, Halkirk, Caroline, ID 349, Black Diamond + Turner Valley -> new Diamond Valley). Municipal office address/phone/email for each council. Sources: Alberta Municipal Affairs officials search and elections dashboard, municipal codes lists.
-
Boundary shapes with projected coordinates are now refused
Migration 018: CHECK constraints on jurisdiction_shape and jurisdiction_display_shape require longitude/latitude bounding boxes. A load had briefly stored Sherbrooke ward shapes in metres labelled EPSG:4326. No existing rows violated it.
Tickets: #115
-
The map outline of Canada and the provinces now redraws in a fraction of a second after data changes
Migration 017: outlines keep a cached simplified own shape per jurisdiction, test members cheaply and stop rebuilding when nothing visible changed. Canada after a municipal shape change 2.7 s -> 0.27 s; cold build 49 s -> 29 s; warm 15-30 ms. Outline caches rebuilt for all 9,637 jurisdictions.
Tickets: #115
-
Next Québec municipal election (4 Nov 2029) scheduled for every council
2,247 scheduled general-election contests: 2,217 on 4 Nov 2029 (CQLR c. E-2.2 ss. 2-3, matches MAMH datelec), 28 northern-village contests on 3 Nov 2027 (V-6.1 s. 66), Hébertville first election 7 Nov 2027.
-
Montréal borough councils and ward boundaries for 13 Québec cities
41 boroughs; 19 Montréal borough councils (borough mayor, city councillors ex officio, borough councillors) and 19 borough councils in Québec, Lévis, Longueuil, Sherbrooke, Saguenay. 1,974 electoral districts (wards); boundaries for 234 of them from city open data (Montréal, Québec, Laval, Gatineau, Sherbrooke, Lévis, Saguenay, Trois-Rivières, Saint-Jean-sur-Richelieu, Repentigny, Rimouski, Shawinigan, Saint-Hyacinthe), so a map click there shows your own councillor.
-
New jurisdictions (members per MAMH STRC links): regional_county_municipality x87 with council + warden (87 current wardens; 21 elected by universal suffrage), agglomeration x11, metropolitan_community x2, regional_government (Kativik).
-
Every Québec municipal council is now on the map, with its mayor and councillors
1,122 local municipalities (MAMH Répertoire, 2026-10-09): 1,107 councils with Mayor and Councillor offices (seat counts from the 2025 election posts), 6,834 seats (numbered at-large seats or wards), 1,103 current mayors and 6,692 councillors from the MAMH roster with in-office dates, party/team at the 2 Nov 2025 election. 8 municipalities formed since the 2021 census added (old CSDs kept as members, kind census_subdivision); 6 renamed. Cree/Naskapi village councils and the EIJBRG council created without members (band-council and regional scopes).
-
Québec's 5 October 2026 election: every riding's result and the 126 MNAs elected
Élections Québec results (all polls reported, updated 2026-10-08): 127 contests, 908 candidates with votes, 20 registered parties. 126 MNAs loaded as current holders (PQ 59, PLQ 39, PCQ 19, QS 9). Vachon is not filled in yet: a judicial recount is pending after a 10-vote margin. MNAs have no start date yet, because they legally become members when the Assembly receives the list of winners (Election Act s. 380; decision 16). Next general election: Monday 7 October 2030 (fixed by law; it can come earlier). 39 people linked to Wikidata, 21 free-licence photos (9 cached so far). Loaders: 03_results.sh, 07_wikidata_photos.sh.
-
All 127 Québec provincial ridings (2026 map) with official boundaries
Élections Québec 2026 final electoral map (127 divisions after S.Q. 2026, c. 15), code ca-qc-ed-<number>, shapes reprojected and lightly simplified, one seat each. Loader: db/load/qc-provincial/02_ridings.sh. On water inside a riding the site does not yet show the member (ticket 151).
Tickets: #151
-
3 authorities (National Assembly of Québec, The Crown in Québec, Executive Council of Québec), offices Member of the National Assembly (127 seats), Lieutenant Governor (Manon Jeannotte, since 2024-01-25) and Premier (Christine Fréchette, since 2026-04-15, in office until Premier-designate Paul St-Pierre Plamondon is sworn in; appointment expected around 2026-10-21, date not confirmed). 23 powers from the Constitution Act 1867 ss. 92, 92A, 93/93A, 94A, 95 and CA 1982 s. 45, tagged with everyday topics; official French names; National Assembly and Premier office contacts. Loaders: db/load/qc-provincial/01_structure.sql, 05_executive_elections.sql, 06_contacts.sql.
Tickets: #131
-
Alberta's next general election (Oct 18, 2027) and recent by-elections
32nd general election on the fixed date in Election Act s. 38.1 (date_confirmed true; early dissolution and the coming 91-division map noted). Five 31st-Legislature by-elections recorded as held (Lethbridge-West 2024, three on 2025-06-23, Calgary-Shaw 2026-09-14). The 19 Oct 2026 referendum is scripted (06_referendum.sql) but held back because the site would show it as "87 MLA seats on your ballot".
-
Added Alberta's registered parties and provincial powers
13 registered parties from Elections Alberta (incl. Progressive Tory Party of Alberta, the renamed Alberta Party); 18 powers of the Legislature from the Constitution Act, 1867 ss. 92, 92A, 93, 95, the Alberta Act s. 17 and the 1930 Natural Resources Transfer Agreement, tagged with 11 everyday topics.
-
Added Alberta's Lieutenant Governor, Premier and cabinet
The Crown in Alberta: Lieutenant Governor Salma Lakhani (installed 2020-08-26). Executive Council of Alberta: Premier Danielle Smith and 26 portfolios (Deputy Premier, ministers, associate minister) with holders and start dates from the Assembly member records, cross-checked with alberta.ca/premier-cabinet. Loaders 02_structure.sql, 03_members.sh, 04_crown.sql.
-
Every Alberta address now shows its MLA, party, office phone and email, and official portrait
Legislative Assembly of Alberta, 87 seats (UCP 47, NDP 39, Progressive Tory 1, no vacancies) from the Assembly member contact list (created 2026-10-11) and member pages; start dates from each member's election (2023 general or by-election); party changes since 2023 noted (Guthrie, Sinclair, Johnson). 174 constituency/legislature office contact points. Speaker Ric McIver and Deputy Speaker Angela Pitt. Cross-checked against Represent (only difference: Represent still shows Rebecca Schulz in Calgary-Shaw). Loader 03_members.sh.
-
Added Alberta's 87 provincial electoral divisions with official boundaries
Elections Alberta 2017 (Bill 33) electoral division shapefile, in effect since 2019; codes ca-ab-ed-1..87, kind provincial_riding, unsimplified (simplifying made neighbours overlap). Division 17 named Calgary-Bhullar-McCall (renamed 2021). Loader db/load/ab-provincial/01_districts.sh.
-
Saskatoon, Regina and Prince Albert wards: official boundaries and your ward councillor
28 wards from city GIS/open data (Saskatoon 10, Regina 10, Prince Albert 8), each a seat with its current councillor and a 2028 ward contest. Loader: db/load/sk-all/wards.sh
-
Every Saskatchewan municipal council: mayors, reeves and councillors for all 760 municipalities
From the Government of Saskatchewan Municipal Directory: 16 cities, 149 towns, 288 villages/resort villages/northern villages, 11 northern hamlets, 296 RMs; 4,333 council members with 61 listed vacancies; municipal office contacts; powers under The Municipalities/Cities/Northern Municipalities Acts; next elections (RM even divisions Mon 9 Nov 2026; resort villages Sat 29 Jul 2028; cities/towns/villages and RM reeves Wed 8 Nov 2028; northern fall 2028, estimated). Corrected 17 former villages to hamlets inside their RM, 3 new resort villages added, North Battleford crown colony marked unorganized. Loader: db/load/sk-all/municipal.sh
-
Saskatchewan: all 61 provincial constituencies with official boundaries and current MLAs
Elections Saskatchewan 2022 boundaries (61 constituencies), 61 MLAs from the Legislative Assembly (34 Saskatchewan Party, 26 NDP, 1 Independent: Betty Nippi-Albright since 5 May 2026), with photos, constituency and legislative office contacts; 6 registered parties; Speaker; Premier Scott Moe and 21 cabinet portfolios; Lieutenant Governor Bernadette McIntyre; 16 constitutional powers; next general election Mon 30 Oct 2028 (fixed date). Loader: db/load/sk-all/provincial.sh
-
BC election on October 24: all 355 candidates and how to vote, riding by riding
93 contests (one per district) with the final Elections BC candidate list (79 of them former MLAs) and how-to-vote information (eligibility, registration, advance voting Oct 16-21, voting day, ID, vote by mail, accessibility). The cancelled Abbotsford-Mission by-election (2026-09-26) is recorded too.
-
BC MLAs of the 43rd Parliament, with photos and offices; the Legislature is dissolved
The Legislature was dissolved on 2026-09-22, so there is no sitting MLA until the 2026-10-24 election. All 93 members of the 43rd Parliament are loaded as past terms (2024-10-19 to 2026-09-22; Gasper resigned 2026-08-22, Phillip died 2026-08-28), with party, constituency and legislature offices, and official headshots. Source: the Legislative Assembly member records (api.lims.leg.bc.ca), checked against Represent (91 of 91 agree).
Tickets: #134
-
BC government structure: Legislature powers, Lieutenant Governor, Premier and cabinet
Legislative Assembly gets its 20 powers under the Constitution Act, 1867 (ss. 92, 92A, 93, 94A, 95) and 1982 (s. 45), with sources (part of #88). New: The Crown in British Columbia (Lt. Gov. Wendy Cocchia, since 2025-01-30), Executive Council (Premier David Eby since 2022-11-18 and 29 portfolios held by 28 people, checked against gov.bc.ca), Speaker Raj Chouhan (office runs to final voting day, s. 37), 14 registered parties (Elections BC, 2026-10-10).
Tickets: #88
-
Every BC address now finds its provincial riding (93 electoral districts)
Official Elections BC boundaries (2023 commission, used since the 2024 election), codes ca-bc-ed-<id>, one MLA seat per district. Loader: db/load/bc-provincial/eds.sh.
Tickets: #7
-
Toronto: 25 ward boundaries, Mayor Olivia Chow and all 25 councillors
Ward boundaries from City of Toronto Open Data (City Wards, 25-ward model, 2026-02-20 refresh); council from Elected Officials Contact Information 2022-2026 cross-checked with toronto.ca. Scripts: load_wards.sh wards/toronto.env, 10_holders.sh.
-
Ontario 2026 municipal election day (26 Oct 2026) added for every council office
Scheduled contests (one per office, or per ward seat where wards are loaded) dated 26 October 2026 from the Municipal Elections Act, 1996 ss. 4-6, 31, 33. Script: db/load/on-municipal/03_contests_2026.sql.
-
Every Ontario municipality now has its council, offices and seat counts
414 lower- and single-tier councils (kind council) on the Statistics Canada census subdivisions, 980 offices with 2,798 seats from the Ontario Ministry of Municipal Affairs and Housing 2022 election data (head of council Mayor/Reeve, separately elected deputies, councillors, councillors who also sit on the regional/county/district council). 30 upper-tier municipalities added as jurisdictions (ca-on-upper-<CDUID>) made of their 241 lower-tier members. 2022 election winners recorded as held contests (980 contests, 2,796 winners). Scripts: db/load/on-municipal/01_councils.sh, 02_election_2022.sql.
Tickets: #124
-
Ridings no longer stand in for the place you looked up
Lookups name and outline the municipality (e.g. Iqaluit, Kuujjuaq) rather than the federal riding; ridings are listed apart under "Where you vote from here"; map-click demand is now attributed to places, and 26 earlier lookups were re-attributed.
Tickets: #116
-
The map is now served from our own server
Self-hosted Protomaps vector basemap for Canada (OSM data of 2026-10-10) drawn with MapLibre GL in a muted style; no map requests go to OpenStreetMap's tile servers or unpkg any more. Note for QA agents: headless Chrome needs args --enable-unsafe-swiftshader --use-angle=swiftshader to draw the basemap (WebGL); without them pages show a "can't draw the background map" note.
Tickets: #85
-
Canada, the 10 provinces and 3 territories now use Statistics Canada 2021 cartographic boundaries (clipped to the shoreline) instead of Natural Earth; Canada is the union of the provinces, so Point Roberts is no longer inside Canada. Added 293 census divisions (28 BC regional districts), 5,161 census subdivisions (3,677 municipalities, 1,046 reserves and treaty/settlement lands, 438 areas without a municipal council) and 343 federal ridings from Elections Canada's 2023 Representation Order. Bowen Island keeps its BC legal boundary and now sits under Greater Vancouver. Shapes simplified by about 10 m. Clicks on water still return only the riding (decision 15).
-
Where-people-look page lists places outside Canada separately
Clicks outside Canada are counted under "Outside Canada" and no longer mixed into the Canadian research list.
Tickets: #114
-
Contact sections (person, authority, office), "How to vote" on election pages linked from the ballot, other-language names under page titles, "Record this term" and "Said, then did" on person pages. Each appears as soon as research agents load the rows.
-
"Who handles what" now uses tagged powers and shows that income tax is both federal and provincial
Matches on power_topic tags first, words only for untagged powers; tag notes shown.
Tickets: #113
-
Photos of politicians and candidates, with credits, wherever they appear
Cached photos are served from /photos (never hotlinked; withheld photos stop at once). Initials show when there is no photo yet, which is everyone today.
-
ISO 3166-1 alpha-2 codes set on 236 country rows from Natural Earth v5.1.2 admin-0 (ISO_A2_EH, which has FR and NO where ISO_A2 is -99), one app.fact_source row each. Kosovo = xk (user-assigned code used by the EU, IMF, World Bank). Left without a code: Somaliland, Northern Cyprus, Siachen Glacier (no ISO code), Indian Ocean Territories and Ashmore and Cartier Islands (Natural Earth tags both AU). Old /places/<id>-<name> links redirect. Loader db/load/maintainer-data/country_codes.sql is re-runnable.
-
Clicks outside Canada and on Canadian lakes and harbours now count toward what researchers add next
Migration 016. app.coverage_gaps/app.research_queue: outside Canada, each country and state/province people look at is queued as "no government recorded" under a new scope 'world' (no agent assigned; decision 14 asks the owner). In Canada, a point with a federal riding but no province (water, once the national boundaries load) gets its province from the riding number, so it reaches the queue; land-only gaps (municipality, school district) are skipped there. Canadian land points unchanged. Queue currently 9 ms.
-
Pages show what we know and stop listing what is missing
Missing dates, ridings and holders are left out; one quiet "We're still adding some details for this area" note per page links to the feedback form.
Tickets: #103
-
Migration 015: topic + power_topic (15 sample powers tagged; income tax shared by Parliament and BC), contact_point, voter_info + voter_info_for_contest(), name_translation + translated_name(). Only the topic tags have data so far.
-
Print or share a large-print "Your governments" card
One page with your representatives, how to reach them, the next vote and a QR code back to the live page.
Tickets: #68
-
Add the First Nation, Métis or treaty government you belong to
Saved only in your browser; the full list is downloaded and filtered on your device, so Society never learns your choice. Such governments are no longer shown to everyone by mistake.
Tickets: #67
-
Call, email or visit the website of your representative in one tap
Shown wherever representatives appear, once their contact details are loaded; the person page says where the details came from and when they were checked.
Tickets: #65
-
Matched from the powers recorded for each government at your spot; each answer names the power it rests on.
Tickets: #66
-
Migration 014: photo_source_url, photo_credit, photo_license, photo_checked_at, photo_path, photo_withheld and cache columns on person; app.photo_queue. db/load/photos/fetch_photos.py downloads each photo once and keeps 400 px and 96 px WebP copies in data/photos/. No photos loaded yet: research agents add them as they load people.
Tickets: #104
-
Migration 013: meeting, meeting_attendance, measure, motion, vote, question, statement, statement_link; view term_record (the four person-page tiles per term, counted only from recorded rows) and QA views app.record_unsourced / app.record_problems. No kept/broken verdicts (decision 12). Empty until research agents load minutes and Hansard. ~2 ms per term at House of Commons scale.
Tickets: #94
-
Politicians and candidates will get photos
New agent rule: every research agent collects a photo with its source, credit and licence. Tickets filed for photo storage and display. Photo rights policy is decision 13.
-
Dry run of the national boundary load found two loader bugs and a water-lookup gap
Ticket 102 for research:foundation: ogr2ogr append fails with -lco SCHEMA, the Canada union needs ST_MakeValid, harbour/lake points return only a federal riding (suggest StatCan digital boundary files + display shapes), and the loader would replace Bowen's official legal boundary.
-
Checked a Bowen candidate's name against the official declarations
"Alex Jurgensen" matches both signed declarations (documents 344984 and 345147); the municipality web page's "Jurgsensen" is the variant. No change; source added.
Tickets: #98
-
Feedback locations are kept only to about 1 km
Rounded the 4 tickets that held exact map points (including a visitor's, ticket 35) to 2 decimals and vacuumed the table; database triggers now round lat/lon on app.ticket and app.lookup whoever writes them.
-
Source "checked" dates no longer show tomorrow's date
fact_source.checked_at now defaults to the date in America/Vancouver; 308 rows stamped 2026-10-12 by the UTC default were corrected to 2026-10-11. Added fact_source.created_at.
Tickets: #100
-
Reports can point at a specific fact; acclamations are recorded explicitly
Migration 012: app.ticket.ref_table/ref_row (filled automatically from the site's "About: ... [table:id]" prefix), contest.acclaimed (Bowen Mayor = acclaimed, Councillor = vote, both sourced to the Chief Election Officer's declarations).
-
Map outlines stay small and fast once full Canadian boundaries are loaded
Migration 011. jurisdiction_outline() now simplifies in proportion to the place (1/2000 of its size), drops specks smaller than that, uses a jurisdiction's own or display shape plus only the members that reach beyond it, and is cached. Tested on a private copy with the StatCan census divisions/subdivisions and ridings loaded: Canada's outline 80 KB in 13 ms (was 13.6 MB and over 2 minutes cold), 1.8 s to rebuild after a subdivision changes. Live now: Canada 66 KB, Bowen Island drawn at ~10 m detail. New jurisdiction_display_shape table and refresh_jurisdiction_caches() for loaders.
-
Map outlines load fast and follow coastlines
Outlines come from the cached jurisdiction_outline() (migration 011), so Canada stays small once all boundaries load; Bowen's outline now follows its coastline.
Tickets: #101
-
"Where people look" page unlinked while the owner decides
Lookups are still recorded for research (as requested); /demand is unlinked and noindex pending decision 11.
Tickets: #92
-
Add an upcoming vote to your calendar
Calendar file with a reminder the day before, from each upcoming election and your ballot. Nothing is stored about you.
Tickets: #64
-
New About and Privacy pages, a Preview tag and a clearer footer
Explains who makes Society (independent, not government), how complete the data is, where facts come from and what is kept about visitors; results say when their facts were checked.
Tickets: #58
-
Source dates no longer show tomorrow, and the home count names only elected bodies
Checked dates are capped at today in Pacific time; "Three elected authorities cover this place. One more is not elected."
Tickets: #93
-
Acclamations are shown as acclamations, not elections
Bowen's Mayor reads "acclaimed, no vote needed" on council, office, person, contest and Elections pages; the banner says "6 councillor seats on your ballot · Mayor acclaimed".
Tickets: #91
-
app.lookup.source is set to agent for automated browsers (navigator.webdriver), X-Society-QA requests and script user agents. Ticket points rounded to 2 decimals on save. Input validation returns 400/404 JSON instead of 500.
-
Changes page and "Where people are looking" page
/changelog (+ /api/changelog) shows this log with filters. /demand shows a privacy-safe map of lookups (10 km squares, 5+ visits) and what researchers will add next from app.research_queue.
-
Elections and You pages: your ballot, candidates, your representatives and what we keep about you
Your place is remembered only in your browser; you can forget it on the You page.
Tickets: #15
-
Stable addresses (/authorities, /offices, /people, /places/<code>, /elections/<id>); sources from app.fact_source with checked dates; current holders, latest results and next votes; plain-language "how it is filled".
-
New Governs page: who governs you, your next vote and what is still missing, answer first
One card per authority (level, next vote, who represents you, what it does), a banner when a vote is within 30 days, your representatives, a "not added yet" list from app.coverage_gaps, a small expandable map that frames the right area, shareable addresses with Back support, friendlier errors, new visual system and phone tab bar.
Tickets: #11, #27, #28, #29, #30, #31, #32, #33, #37, #38, #39, #40, #41, #42, #43, #44, #45, #46, #47, #48, #49, #51, #53, #59, #72, #74, #75, #76, #80, #81, #84
-
States, territories, oblasts and other divisions outside Canada are labelled correctly
281 Natural Earth first-level divisions were all labelled "province"; now labelled from Natural Earth v5.1.2 (state, oblast, republic, union territory...) with ISO 3166-2 codes, and three Natural Earth errors corrected (Gujarat, Himachal Pradesh, Sakha).
Tickets: #70
-
Bowen Island's 17 October 2026 council election and the Mayor's acclamation are recorded
Councillor: 10 candidates for 6 seats, general voting Sat 17 Oct 2026. Mayor: Andrew Leonard elected by acclamation on 21 Sep 2026. Source: Bowen Island Municipality Chief Election Officer declarations. The page will show the date once the web reads election rows.
Tickets: #9
-
Where visitors look on the map now tells research agents what to research next
Migration 010: app.research_queue lists the gaps (missing ridings, councils, office holders, next elections) at the places visitors looked up in the last 90 days, ranked by visits and by missing-info tickets filed there, and routed to the research scope that owns them. QA/agent lookups are tagged (app.lookup.source) and left out; repeat clicks in the same ~1 km cell within 10 minutes count once. Agents record "nothing to load here" in app.research_done. app.lookup_heat gives a privacy-safe demand map (10 km cells, 5+ visits, last 30 days) for a future public page.
-
Faster map lookups and outlines, ready for full Canadian boundaries
Migration 009: subdivided shapes + jurisdictions_at_point(); cached jurisdiction_territory() and jurisdiction_outline() (Canada outline 144 ms -> 2 ms); unique key on contest for re-runnable loads; app.lookup_demand gains jurisdiction_name and covering_codes so research agents can follow where visitors look. Web switch-over requested in ticket 52.
Tickets: #52
-
Bowen Island now uses its official legal boundary instead of a hand-drawn shape
Replaced the 11-point placeholder with the BC ABMS legal boundary (6,954 points, 62.76 km2, OIC 1160/1999, Open Government Licence - BC). Code ca-csd-5915062 set. Sources recorded for it and for the 522 non-Canadian Natural Earth outlines.
Tickets: #26
-
Every agent now records its changes here.
-
Started the multi-agent Canada build
Agents are researching all of Canada's governments while maintainers fix tickets and QA agents test the site.
-
Looked-up areas are logged (rounded to ~1 km) to guide research
-
People, terms, seats, parties, elections and sources
Settled decisions 1-4 to unblock the Canada data run.
-
Fixed map tiles, zoom to boundary, loading state, layout and wording
Resolved 10 review tickets: map tiles, fit to boundary, loading feedback, results as the main column, phone layout, place names, wording.
-
Feedback form and public tickets page
Visitors can report problems; contact details stay private.
-
Website launched: look up who governs any place
Search, use my location or click the map.
-
World country and province outlines, plus the Bowen Island sample
242 countries and 294 provinces/states from Natural Earth; sample authorities for Canada, BC and Bowen Island.
-
Offices: seats and how they are filled
Elected, appointed, ex officio, hereditary or by lot, and who does the choosing.
-
Jurisdictions with territory, members and who they apply to
Shapes or sets of other jurisdictions, de jure and de facto borders, rules for personal jurisdiction.
-
Authorities, powers and offices
The basic unit of government and what it is made of.
-
Database created: Postgres 17 with PostGIS
Local Docker container society-postgis.