How lobbyTO works
Methods
lobbyTO reports dated public records and measured patterns. It does not make claims about intent. This page explains how records are linked, how confident each link is, and what the comparisons can and cannot show.
Sources
- Lobbyist Registry: registrations (subject matter, particulars, client, lobbyists) and dated communications (office holder, office, method), refreshed daily.
- Members of Council voting record: recorded votes by member, motion and result.
- Council and committee meeting schedule, the registry of declared interest, and wards and elected councillors (open.toronto.ca).
- Agenda item pages from the City's meeting system (TMMIS), fetched at a low rate and cached.
- Development applications, Committee of Adjustment applications (active and closed since 2017) and address points.
All inputs are City of Toronto open data used under the Open Government Licence – Toronto. Contains information licensed under the Open Government Licence – Toronto. lobbyTO's derived data is published under the same terms; please attribute "lobbyTO, using City of Toronto open data".
How links are made
The registry records what a lobbyist communicated about in free text. It does not say which agenda item, if any, a registration concerns. lobbyTO infers these links in stages:
- Candidate generationAgenda items with a meeting date between the registration's start date and 90 days after its end date, in the same ward when the registration names an address, on a committee that handles its subject, and with similar text.
- DecisionA decision model reads the registration and up to 15 candidate items and gives a probability for each, including "none of these".
- Re-scoringCandidates the fast model scores in the uncertain range are scored again with the full model.
- PublishingLinks scoring 0.7 or higher out of 1 are published with their score; lower-scoring links are kept for audit but never shown. Links are not checked by a person.
Organisations are resolved across spellings (task L3) and office holder names are resolved to people (task L4) with the same approach.
Addresses and applications
- Addresses named in registrations, agenda item titles and development and Committee of Adjustment applications are standardised and matched to the City's address points: exactly first, then to the nearest civic number on the same street (within 20 numbers). Each address page says which method was used. A registration or agenda item gets a ward when all of its matched addresses are in one ward.
- Registrations are linked to applications (task L2) when the registration names the application's file number, names the same address, or names an address within 50 metres, and the application was submitted within three years of the registration's dates. A decision model then judges whether the registration concerns the property and the specific application. File-number matches are published as high confidence.
- Lobbied applications are compared only with unlobbied applications of the same type, ward, submission year and size band, and comparisons with fewer than 20 applications in either group are hidden.
Confidence labels
Every inferred link is published on its model score alone; no person reviews links before they appear. Each link shows its score out of 1 and one of two labels:
- High confidence: A model scored this link 0.9 or higher out of 1. Links are not checked by a person; links scored this high are usually right but can be wrong.
- Moderate confidence: A model scored this link between 0.7 and 0.9 out of 1. Links are not checked by a person, and links in this range are wrong more often: check the evidence before relying on it.
Links that name individuals need a higher score: former officials matched to lobbyists (L5), campaign contributors matched to lobbyists (L7) and organisation positions on motions are published only at 0.95 or higher. Organisation spelling variants are merged only at 0.9 or higher. Links below the cutoff are never shown. Scores are the model's own estimates and have not been checked against labelled data. Every link shows an evidence panel with the source records and the matched text; to report a wrong link, use the "Report an error" link on the page.
Measures and minimum counts
- Pre-vote window: the 90 days before the first recorded vote on an item, also shown at 30 and 180 days.
- Items adopted without a recorded vote have no per-member votes; they are shown as "adopted without recorded vote" and excluded from vote comparisons.
- Bloc: councillors grouped by how often they vote together within a term. Members whose bloc changes in more than 30% of bootstrap runs are marked "no stable bloc" and excluded.
- Member-level rates of voting differently from the bloc are hidden below 10 lobbied items. Meeting rates are hidden below 20 contacts. Firm and office pairs need at least 10 contacts.
- Matched comparisons of development applications are hidden when the lobbied or the matched unlobbied group has fewer than 20 applications.
- Campaign contributions: a contributor is linked to an organisation only when the decision model scores the match 0.95 or higher (tier 1, registered lobbyist; tier 2, senior officer). Member-level rates of voting in line with funding organisations are hidden below 10 votes. See campaign contributions.
- Every comparison shows its sample size.
Limitations
Lobbyists choose whom to contact (persuadable members, ward councillors, committee members), so a difference does not show a change of mind.
- Links between registrations and agenda items or applications are inferred. Precision on held-out labelled data is measured per task and published above.
- The development applications dataset publishes no decision date; time to decision is measured from status changes seen in daily loads since launch.
- The voting record holds recorded votes only.
- Office holder names in the registry are free text and are resolved to people by lobbyTO.
- The registry export is refreshed daily; the disclosure site refreshes more often.
Privacy
The site shows names, firms and business city only. Phone numbers and street addresses of individuals are dropped when data is loaded. Campaign contributors are shown by name and city, with the candidates they funded, and only when their contribution is linked to a lobbying organisation through a confirmed match; their home addresses are kept in a restricted table used only for matching and are never published.
Email addresses given for alerts are stored encrypted, with a keyed hash used only to find a subscriber's saved searches; they are deleted on unsubscribe, and unconfirmed sign-ups are deleted after 7 days. Reply addresses on correction reports are also stored encrypted.
Topics and early warning
Each registration's main topic comes from lobbyTO's topic list, chosen by a decision model from the registration text; until the model has run, the topic is taken from the registry's subject category. The upcoming feed estimates when an open registration may reach an agenda item from how long past registrations on the same topic took, and reports how often that window held in a backtest on 2018–2022.
Writing standards
Pages state facts with dates and sources and use neutral verbs: contacted, met, emailed, registered, voted. Automated summaries of registrations are generated from the registration text only and are labelled as summaries.
Data access
A read-only JSON API is available at /api/v1, with a nightly bulk export (CSV and JSON Lines) and a data dictionary at /api/v1/bulk.