GREMBLE.
Workshop · Vancouver B.C.
Case study · GRM-05 · BCPoliTracker

A snap election, tracked live.

BC's 2026 election was called early, on September 22, for October 24. BCPoliTracker went public that morning and followed it to the count.

93
Ridings, a page each
16k+
News items from 260 sources
~10k
Visits in five weeks
1 in 6
Visits referred by AI agents
BCPoliTracker results view: all 93 ridings reporting, seats by party and the closest races
Fig. 1 · The results view after the count: Elections BC's initial count, labelled preliminary

1 The problem

Who sits where in the BC legislature today? No single place answered that correctly.

The Assembly's public standings page lagged its own member register, and the register keeps no dates. Floor crossings and new parties since the 2024 election had made the count a weekly question for anyone working in BC politics. Then the Premier called an election two years ahead of the fixed date.

2 What Gremble built

  • A record of every seat change since the 2024 election, each one dated and sourced. A correction is a new row; nothing is overwritten.
  • A page for each of the 93 ridings, with candidates from Elections BC's own list.
  • Every public poll since 2024, listed as each pollster published it.
  • A news wire drawing on 260 sources, scanned every half hour.
  • Election-night results from Elections BC's initial count. Open pages check for a new count every minute and reload when it changes.
  • A daily or weekly email digest, and Election 101: how a BC election works, checked against the statutes.

3 The rules

  • Two tiers on every row. Confirmed means it is in the official record: the Assembly's register or Elections BC. Reported means credible media or the party itself, ahead of the record.
  • Detection proposes, a person decides. Scans file proposals, and a person checks them before the record, leaders or candidates change. Only official sources, like the Assembly's register and Elections BC's candidate list, flow straight through.
  • The record has to add up. Each build walks every member from the 2024 result through every recorded change and checks the result against the live register. If one member disagrees, nothing is written.
  • It calls nothing. Results say who leads, by how many votes, with how many ballot boxes in, and stay labelled preliminary until the final count. A media projection is shown apart, with its source.
  • No AI-written text goes out. A small language model classifier sorts the news. Headlines are the outlets' own words, and every digest has a report-a-mistake link.
  • Tested before every deploy. Every deploy runs the full test suite against the real code, then checks the scripts the browser actually receives.

4 A call it reversed

Two days into the campaign, the tracker took down its own seat projection.

A review found one poll made up two-thirds of the polling average, and one province-wide swing is not a seat model. The average and the projection came out. The tracker now lists every poll as published and points to 338Canada for seat projections.

5 What broke

  1. Sep 24
    The clocks stopped. A deploy left the scheduled jobs switched off for about seven and a half hours overnight. Every alarm ran on the same stopped clocks, so the only sign was a morning digest that never arrived. The fix added a second watchdog on its own clock, one deploy script that runs every test and waits for the clock to beat, and a public notice when updates run late.
  2. Sep 26
    One candidate, counted twice. Elections BC's list printed a name surname-first for a single read, and the next read added the candidate again. Names now match in any word order within the same party and riding, with a test to hold it.
  3. Oct 19
    Yesterday's official data. Elections BC serves its turnout file with a year-long cache lifetime, so the edge kept handing back the previous day's file. Every Elections BC read, the results-night reader included, now skips the cache, and a test fails any read that doesn't. That was five days before the count.

6 Voting day

October 24 brought about 1,800 visits, five times the busiest day before it.

  • An AI agent read the tracker's pages more than 400 times that day to answer people's questions, about four times its busiest day in the fortnight before.
  • Over the five weeks, AI agents referred more than twice as many visits as Google.

Counted with cookieless analytics and Cloudflare's request logs, September 21 to October 27, 2026. Pageviews are left out: open result pages reloaded themselves as the count changed.

7 Since the count

The front page has switched to results, labelled preliminary until Elections BC's final count, November 6 to 10. A new Platform page lists every commitment in the incoming government's platform, by sector, in the party's own words. The news wire keeps running.

Work with Gremble

Bring Gremble a problem. Every tool is built around how a team already works.

C Related parts

What's Gremble

A Vancouver workshop that builds tools for public affairs and knowledge work, plus apps, open source, hardware and games.

Who's Jason

Jason Craik founded Gremble. He works in public affairs and political risk in Vancouver, advising on government relations, corporate affairs, M&A, market entry, issues and strategy. About Jason → · LinkedIn ↗