11 days until Milton votes. Monday 26 October 2026. Everyone on the ballot, what each has filed, and what they say in their own words — see the ballot.
What's being proposed, what's being built, what it costs, and who decided it — assembled from the Town of Milton's own public records.
Operator: Mike Shoss
Corrections: themiltonrecord@gmail.com
Corrections are acted on within 48 hours. Every member of Council is welcome to have their page reviewed and errors fixed — the aim is an accurate record, not a scorecard.
RecordAI is the label on the small number of sentences on this site that a language model wrote. Wherever you see it, a model produced that text. Wherever you do not, it did not.
It is a name rather than a description because "summarised by a language model" tells you nothing you can act on. This says which model, on what, under what limits, and what checks it afterwards.
What RecordAI does. It reads a candidate’s own campaign website and writes one line describing what that site says on each theme. It writes the plain-English sentence describing what changed in a development application. That is the whole list.
What it never touches. No figure. No total. No count. No vote, motion, attendance record or budget line. Every number on this site is computed in Python from the Town’s own documents and no model is anywhere near it — that is why a figure can be traced to a document and a page. It does not read news articles. It does not decide who is right when a source and this site disagree.
What holds it in place. A quotation attributed to a page is checked against that page before it appears, and dropped if it is not there. A RecordAI line always sits above the person’s own words, verbatim, with a link to the page they came from, so you can read the source and ignore the summary. It runs locally on the operator’s own machine — currently qwen3.5, through Ollama — and falls back to a hosted model only if that is unavailable, in which case the result records which one produced it.
If you are a candidate or a member of Council and you would rather no RecordAI line appeared on your page, write to [email protected] and it will be removed. Your own words and the link to your site stay; only the summary goes. Nobody has to accept a machine’s description of what they think.
Post-meeting minutes published by the Town through eSCRIBE. A deterministic parser reads each set of minutes for resolutions, who moved and seconded them, the outcome, declared conflicts of interest, and who was recorded present. No language model reads or counts anything on these pages.
67 of the 68 council meetings held so far have been read (2022-12-12 to 2026-09-14). The Town has not yet published minutes for the meeting of 14 September 2026; nothing from it is on this site yet, and it is checked every night. Of those read, 4 have no minutes published by the Town, so they contribute nothing to the counts below. A further 13 have minutes carrying no numbered resolutions — Council Workshops, mostly — so they add nothing to the motion counts, though their attendance is recorded. Committee of Adjustment meetings are not included: that is a separate appointed body councillors do not sit on.
On a partial sample of 21 meetings, one councillor appeared to have moved zero motions. Across the full term he had moved 24. Publishing the first number would have been false, about a named person, during an election. That is why no page publishes without its coverage stated.
Every certified candidate gets the same page whether or not anything is known about them. Filing details come from the Clerk's certified list. Where a campaign website was filed, that site is read in full and quotations from it are checked against the page they are attributed to before they appear here — a quotation that cannot be found in the captured text is dropped rather than published.
Social accounts are listed only when the candidate links to them from their own website or filed them with the Clerk. Nothing is found by searching for a name, because an account that turns out to belong to someone else, published beside a real candidate's name, is a harm no amount of later correction undoes.
The side-by-side comparison sets three things next to each other on each theme: what the candidate answered, what their own website says, and — for sitting members — the motions they moved and the votes recorded in their name. Two limits are enforced in the code rather than promised in this paragraph:
Milton does not publish its ward boundaries as text. There is no metes-and-bounds ward by-law; the Town’s own by-laws page and its councillor pages both send residents to a map application rather than to a description, and the 2016 ward boundary review describes the wards by neighbourhood and then says the option “is illustrated in Figure 9” — a map. So the Town’s published boundary file is not a stand-in for the definition. It is the definition, and it is what this site reads.
The Town lists development applications on ward pages for wards 2, 3 and 4. It publishes no ward 1 page at all, so for most applications the Town states no ward anywhere. What it does publish is the mapped boundary of each application and each capital project. Testing that shape against the Town’s ward polygons is the same operation the Town’s own “which ward is this address in” tool performs, on the same two public layers.
Where the Town states a ward, that wins, and the page says so. Where it does not, the ward is worked out from the Town’s map and the page says that instead — they are different claims and are never shown as the same one. Every build re-tests the derived answer against every ward the Town has stated, and a single disagreement stops the build.
A site that crosses a ward boundary is given no ward. It is shown on both wards’ pages, marked as spanning them. Derry Road touches all four wards, and naming one of them would be exactly the kind of confident wrong answer this site exists not to produce.
Ward boundaries: Town of Milton open data -- ward boundaries, retrieved 2026-08-28. Contains information licensed under the Open Government Licence — Milton. Open Government Licence — Milton
Local coverage that names a member or a candidate is listed on their page: headline, outlet, date and a link. Articles are also added by hand when the operator finds one the feeds do not carry.
The sources are InsideHalton / Milton Champion (6 feeds, read with the publisher's permission, confirmed by the operator 24 August 2026) and Milton Today (2 feeds, read with the publisher's permission, confirmed by the operator 2 September 2026).
Sources are named because choosing them is an editorial act. Every fetch is checked against the site’s robots.txt first; where a publisher disallows automated reading and no permission exists, nothing is fetched and the piece can only be added by a person reading it and entering it, which is not crawling. Where permission does exist, it is recorded with the article rather than assumed.
A piece counts as naming someone only on their full name, or their title and surname together. A bare surname is never matched — Best, Ali, Gray, Marshall and Khan are ordinary words, and attributing a story to the wrong named person is the worst mistake this section could make.
News never becomes a position. A reporter writing that a councillor “backs expansion” has compressed what was said into their own words. Recording that as the member’s stance would mean this site telling you a named person holds a view they may never have stated — and the side-by-side comparison could then flag a contradiction against a position they never took. That comparison is only fair because both sides of it are things the person themselves wrote or submitted, so third-party reporting is kept out of it entirely. The database has nowhere to record it.
Where an article quotes someone directly, those are their own words and are shown as such: printed verbatim, checked against the article they are attributed to, and dropped if the quotation cannot be found there or does not end where a sentence ends. No language model reads any news article.
Who said it is decided by grammar, not by proximity. Only the standard attribution shapes count — “…,” said Councillor X; “…,” Councillor X said; “…,” he said, where the speaker is whoever was named last before the quotation; and Councillor X said, “…”. Where two people are named and neither shape settles it, the quotation is dropped. An earlier version scored by distance instead, and gave a councillor’s words to the mayor because his name sat nearer the quotation marks; putting one member’s words in another’s mouth is the worst thing this section could do, so it now declines far more often than it guesses.
/changes is one entry per week since the launch, built from the record every night: what reached this site that week, section by section, and what the record already dates ahead. Nothing on it is written by hand and nothing comes from a model. A thing is dated by when it reached this site, not by the date printed on it. The Monday email to subscribers is the previous week's entry from that page, as text.
The issues page carries comments from residents, the only words on this site written by members of the public. A comment is published only after the person who wrote it confirmed it from their own mailbox, or after the operator read it and approved it; a comment left without an address is always read by a person first, and so is any comment that names a candidate or a member of council, or contains a link. What is published is the ward, the date and the words as written; a first name only where the writer asked for it; never a full name or an address. The name and address are kept for the confirmation and, if the writer ticked the box, for updates. The operator can take a comment down, and the page says how many were.
Analytics. Visits and clicks are counted with Google Analytics so the operator can see which pages, candidates, meetings and members people come to read, and what they search for. Nothing you type is stored beyond a search term, no account is created, nothing is sold, and there is no advertising. It sets a cookie to tell repeat visits apart; a tracker blocker stops it and nothing else changes.
An independent project. Not affiliated with, endorsed by, or operated by the Town of Milton, and not a substitute for the official record. It does not rate, rank or recommend candidates, and it takes no position on any of them. For the official 2026 election information, including the certified candidate list, see the Town's election page.