How Galena works
Galena answers one question about a home: what is the water service pipe made of, and how sure is that? This page shows the public data behind every answer, the machine learning tools Galena uses and the check they must pass, and the tools you can use yourself.
Every number on this page was read from Galena's published files on 2026-11-10 at 13:15 Toronto time (18:15 UTC). The files are listed at the bottom, with their checksums.
- 4,861,605
- records from public utility inventories, plus City records for 157,921 addresses in Kitchener and Waterloo
- 74
- area maps, each counting the records in cells of about 0.7 km²
- 4
- cities where a model was checked: 2 failed (Calgary and Norfolk); 2 had too few known lead lines (Kitchener and Waterloo)
- 0
- model answers about single homes, on the address check or anywhere else Galena publishes. A model's answer could appear only where its check passed.
1 The data behind each answer
A service line is the pipe that brings water from the main under the street into a building. If any part of it is lead, lead can get into the water. Often the utility owns one part of the pipe and the property owner owns the other.
When you type an address, Galena looks for it in the water utility's own public records. If the record names the material, the answer says so. If it does not, the answer rests on the year the building or the service went in, and it says that too. Galena does not dig up, test or inspect any pipe.
US records use one more class: Galvanized Requiring Replacement. It means a galvanized steel line that is, or ever was, downstream of a lead line, or is now downstream of a line of unknown material. Downstream means further along in the direction the water flows. If the utility cannot show the line was never downstream of lead, it counts as needing replacement (40 CFR 141.2).
Table 1. The records behind the address check
- Kitchener, OntarioCity of Kitchener water service pipes, address points and building years, for 128,113 addresses.Records 128,113 addressesRead 2026-10-24Open Government Licence - City of Kitchener
- Waterloo, OntarioCity of Waterloo water service leads, for 29,808 addresses.Records 29,808 addressesRead 2026-10-24Open Government Licence - City of Waterloo
- Barrie, OntarioCity of Barrie water services, the City's part, 44,962 services, read 2026-11-03. None is recorded as lead.Records 44,962 servicesRead 2026-11-03Contains information licensed under the Open Government Licence – Barrie (licence). The City of Barrie does not endorse Galena.
- Calgary, AlbertaCity of Calgary public water service lines, the City's part, 384,450 lines.Records 384,450 linesRead 2026-10-24Open Government Licence - City of Calgary
- Regina, SaskatchewanCity of Regina list of known City-owned lead connections to July 2021, 3,235 addresses. An address missing from the list is not shown to be free of lead.Records 3,235 addressesRead 2026-10-25Open Government Licence - City of Regina
- Montréal, QuebecVille de Montréal lead screening results for 157,783 service entries, each with its latest conclusive test, read 2026-11-02. The City's own map of the results: services.montreal.ca/presence-plomb.Records 157,783 service entriesRead 2026-11-02CC BY 4.0 (licence), Ville de Montréal. Modified: one result per entry, codes in plain words.
- Norfolk, VirginiaCity of Norfolk service line inventory, 71,154 lines.Records 71,154 linesRead 2026-10-24Public domain, City of Norfolk Open Data Policy
- Aurora, IllinoisCity of Aurora water service material inventory, 49,994 lines, read 2026-11-03. The City updates it daily. An address needs IL, Illinois or an Aurora ZIP code, because other states have an Aurora too.Records 49,994 linesRead 2026-11-03Public domain, City of Aurora Data Analytics. The City says its data is for general reference and should be checked before it is relied on.
- New York CityNYC Department of Environmental Protection service line records, 834,669 lines.Records 834,669 linesRead 2026-10-24NYC Open Data Terms of Use
- Upstate New YorkBuffalo, Rochester, Syracuse, Albany, Schenectady, Niagara Falls, Troy and Utica, from the New York State Department of Health's New York State Lead Service Line Inventory, 341,352 lines. Published 2025-09-19, last updated 2026-10-06, accessed 2026-10-24.Records 341,352 linesRead 2026-10-24OPEN-NY Terms of Use and the Department's Data Use Policy. The New York State Department of Health makes no representation, warranty or guarantee relating to the data or analyses derived from these data.
- Other New York State townsAbout 3,100 towns, villages and hamlets outside New York City and the eight cities above, from the same New York State Lead Service Line Inventory, 2,974,006 lines. Published 2025-09-19, last updated 2026-10-06, accessed 2026-11-03. An address needs NY, New York or its ZIP code, because many of these town names exist in other states too.Records 2,974,006 linesRead 2026-11-03OPEN-NY Terms of Use and the Department's Data Use Policy. The New York State Department of Health makes no representation, warranty or guarantee relating to the data or analyses derived from these data.
- Toronto, OntarioCity of Toronto tap water tests, counted by postal area.Records 14,559 tap samples, 2014 to 2026Read 2026-10-24Open Government Licence - Toronto
- Anywhere elseOpenStreetMap places the address on the map, and the answer says how to check.Answers from a live map search, not a recordData (c) OpenStreetMap contributors, ODbL 1.0
Counts are the address lookup's own, from its health check: 4,861,605 records in 9 inventory files, plus 157,921 addresses in Kitchener and Waterloo. Each description and licence is the address check's own text. A read date is the one the address check gives, or else the one in the area files.
2 The machine learning tools, and the check they must pass
Many records do not say what the pipe is made of. A machine learning model can help sort those lines. It learns from the lines whose material is on record, and estimates the chance that each unknown line is lead. Galena would use a model only in a city where it has passed its check on that city's own records.
Galena does not give a model's answer about any single home yet, on the address check or anywhere else it publishes. No city's check has passed.
What the model is
- What it learns from. The city's own records. A line whose record names a material is an example: lead, galvanized needing replacement, or not lead. A line with no material on record is not used for learning. Neither is a line whose class the utility made with its own predictive model: Galena treats that as unknown.
- What it looks at. Two things about each line: its year, which is the year the building went up or, where that is all there is, the year the service went in; and where the line is. From the place, it counts the share of known lines nearby that are recorded as lead: among the 8 nearest, within 150 m, and in the same east to west strip about 90 m wide. Those shares use only known lines outside the line's own small area, an H3 cell of about 0.1 km², and at least 200 m from that area.
- What it never looks at. The record's own class or material, because that would copy the answer. Addresses and line numbers. Race and ethnicity shares are never model inputs. Where a dataset has them, they are used only to audit the results.
- The algorithms. Three gradient-boosted tree models, LightGBM 4.6.0, XGBoost 2.0.3 and CatBoost 1.2.10, compared with two simple baselines: the city's records taken at face value, and a year-built rule that gives each line the mix of materials of the lines built in the same period, up to 1988 or after. The model with the lowest log loss that passes its own check is kept. A baseline is never kept.
- Calibration. A chance of 7 in 10 should come true about 7 times in 10. Galena tries six standard ways to correct the raw scores (none, temperature scaling, vector scaling, Platt scaling, isotonic regression and beta calibration) and keeps the one with the lowest log loss on lines held back for this.
- Prediction sets. For each line the model gives a set of possible answers, not one guess. The sets come from conformal prediction: if the lines being scored are like the lines that were checked, at least 95 in 100 sets hold the true material. Each decade of construction gets its own cut-off, so the promise holds within each decade, not only on average.
- When it says "not lead". Only when the set holds "not lead" alone and the chance of not lead is above a threshold. The threshold is set on lines held back from training, by a rule that aims to keep the share of these calls that the records call lead at 1 in 100 or less, judged with 90% confidence on those lines. It takes at least 163 such calls on held-back lines before any threshold can be set. If none meets the rule, the model calls no line "not lead". Every other line keeps two or three possible answers: lead is not ruled out.
This description was checked against the code commits the city reports name, 0b808dd5 and 311ccef9, and the library versions are the ones their lock files pin. Galena's code is private for now.
The check every model must pass
Galena tests each model on lines it did not see. It splits a city's known lines into 5 groups by area, using whole H3 cells of about 0.1 km² with a 200 m gap between the lines it learns from and the lines it is tested on. It repeats the test 10 times, with 10 different random seeds. The check gives one of three results.
- InsufficientNot enough to check. Fewer than 100 known lead lines, or known lead lines in fewer than 5 areas of about 5 km². Or too few lines to test the model's "not lead" calls: no decade with 203 such calls on judged lines in every run, or lines checked in the field too unlike the rest to stand in for them. No model result is given. A known lead line is one the city's file marks as verified, where the file has that mark, and otherwise one its record calls lead.
- FailThe model missed at least one limit:
- Misses on the lines judged. Of the test lines the model called "not lead", the share that turned out to be lead or galvanized pipe needing replacement must be at most 1%, and the most it could be, with 98.33% confidence, at most 2%. This must hold over all the decades judged and in each decade on its own. A decade with fewer than 203 such calls in any run is not judged, and the model makes no call there. Where a city marks the lines it checked in the field, only those lines are judged, and the share weighted so they stand for the lines nobody checked must pass too. Otherwise the records are judged, and a pass on records alone never allows answers about single homes. The most it could be is taken from the worst of the 10 runs: an exact binomial limit, widened where misses cluster on the map. The confidence is 95%, shared among the three models compared.
- False non-lead rate against the records. Of the test lines it called "not lead", the share the records say are lead must be at most 1% on average over the 10 runs, and the average of the runs' upper 95% confidence limits at most 2%. It counts lead lines only, and most records were never checked in the field.
- Equity. No group, such as the lines built in one decade, may be more than 1 percentage point above the overall rate. A group fails when its whole 95% interval is above that limit. A group is judged when it has at least 25 known lead lines and 50 "not lead" calls.
- Usefulness. The model must clear a larger share of lines as "not lead" than the year-built rule does under the same rule for calls, and beat that rule on log loss with a 95% interval above zero.
- Also: a calibration error (ECE) of at most 0.03, plus an allowance for sample size; prediction sets that hold the true material within 2 points of 95% overall, and at least 90% of the time in each decade with 100 or more lines; a planted copy of the answer that the check must catch; and a test with shuffled answers that must score no better than chance.
- PassEvery limit met.
These are the stricter rules approved on November 3, 2026 (ADR 0019), and every city result below was republished under them. They judge the lines a city checked in the field, count galvanized pipe needing replacement as a miss, and judge each decade on its own. A pass on records alone, with no lines checked in the field, never allows answers about single homes. A pass is not proof that any one pipe is or is not lead.
The city results
Galena ran this check on 4 cities that publish their service line records under an open licence. Each result has a report anyone can download, with its data source, checksums, the code commit and the steps to repeat the run. These are the published reports; the latest is of 2026-11-03.
Table 2. City results, as published
- Fail
Calgary, Alberta
Canada · report of 2026-11-03Check failed. The city's records show 0.03% of the model's not-lead calls as lead or galvanized pipe needing replacement, at most 0.05% with 98.33% confidence. Lines built in the 1920s and the 1940s fail on their own. The limits are 1% for that share and 2% for the "at most" figure. A simple rule by year built clears 100.0% of the test lines and the model clears 94.7%, so the model adds nothing over the rule. For lines built in the 1940s, the lines the model called not lead were lead 2.0% of the time, against 0.03% overall. No group may be more than 1 percentage point above the overall rate.
- Lines
- 384,888 in the City's file
- The check's measure
- Against the City's records, 0.03% of the model's "not lead" calls on test lines were lead or galvanized pipe needing replacement, at most 0.05% with 98.33% confidence, over the 10 runs. Fail on their own: lines built in the 1920s and the 1940s. No call for lines built in the 1910s: too few labelled lines there. Records only: a pass on records alone never allows answers about single homes.
- Known lead lines
- 171 in 15 areas, recorded as lead; the City's file has no verified mark. Enough: a check needs 100 in at least 5 areas.
- Model
- LightGBM, the model the check judged
- Called not lead, lead by the records
- 0.03% of the "not lead" calls on test lines, the average of 10 runs (from 0.02% to 0.04%). Lead lines only: a galvanized line is not counted.
- Field-checked lines
- The City's file has no field-check mark, so there is no field-checked figure.
- Cleared as not lead
- 94.7% of 375,752 test lines in the first run. The year-built rule, on the same lines: 100.0%.
- Against the year-built rule
- Log loss better by 0.0023 (95% interval 0.0018 to 0.0028)
- Calibration error
- 0.0001 for lead (ECE)
- Equity
- Judged: lines built in the 1940s. Largest gap: 1.97 percentage points, over the 1 point limit for lines built in the 1940s.
- Data
- City of Calgary, read 2026-10-24. Open Government Licence - City of Calgary, version 2.1
Files: report.json · hexes.geojson · SHA256SUMS
For regulators: more of the report, and how to repeat it
- Equity rates
- built in the 1940s: 2.0% against 0.03% overall (both by the records)
- Runs
- The rate by the records was from 0.02% to 0.04% across 10 runs; 0 failed the 1% limit. The gate also checks the average of the runs' upper 95% confidence limits, 0.03%, against a 2% limit. That average is not a limit on the true rate.
- Calibration slope
- 1.082, intercept 0.139
- Code
- commit 0b808dd530ab; script deploy/cities/run_city.py at 3d0700ae61b9
- Input
- ca-ab-calgary-public-water-service-lines_harmonised.csv.gz (harmonised copy the run read), sha256 1fe4d64518776be4f2ab7eb5d563ebb608c5c663340906b946e1ba07c5ad9fdf
- Input
- public_water_service_lines.csv (publisher's file as downloaded), sha256 05257d8a8a81027416054a83e463e73cb70da5437e8b6e062e2c1075042eb4f9
How to repeat the run, from the report:
- Get the publisher's file from data_card.source_url. Our copy of 2026-10-24 has the sha256 in data_card.inputs. A newer download may differ.
- Galena's code is not public yet. You can check each city result against its published files and checksums.
- Fail
Norfolk, Virginia
United States · report of 2026-11-03Check failed. Of the model's not-lead calls on lines the city checked in the field, 10.4% turned out to be lead or galvanized pipe needing replacement, at most 12.7% with 98.33% confidence. Lines built in the 1950s, the 1960s, the 1980s, the 1990s and the 2010s fail on their own. The limits are 1% for that share and 2% for the "at most" figure.
- Lines
- 71,275 in the City's file
- The check's measure
- 10.4% of the model's "not lead" calls on lines the City checked in the field turned out to be lead or galvanized pipe needing replacement, at most 12.7% with 98.33% confidence, over the 10 runs. Fail on their own: lines built in the 1950s, the 1960s, the 1980s, the 1990s and the 2010s. No call for lines built in the 1870s, the 1890s, the 1900s, the 1910s, the 1920s, the 1930s, the 1940s, the 1970s, the 2000s and the 2020s: too few checked lines there.
- Known lead lines
- 160 in 14 areas, marked as verified in the City's file. Enough: a check needs 100 in at least 5 areas.
- Model
- LightGBM, the model the check judged
- Called not lead, lead by the records
- 0.16% of the "not lead" calls on test lines, the average of 10 runs (from 0.12% to 0.22%). Lead lines only: a galvanized line is not counted.
- Called not lead, lead on field-checked lines
- 0.60%: 32 of 5,294 "not lead" calls on lines the City had checked in the field were lead (first run; exact 95% interval 0.41% to 0.85%).
- Lines built in the 1990s
- On field-checked lines, all 16 lead lines were called not lead: 16 of 1,357 "not lead" calls, 1.2%. The equity check did not judge this group: it had fewer than 25 known lead lines.
- Cleared as not lead
- 81.9% of 24,620 test lines in the first run. The year-built rule, on the same lines: 78.4%.
- Against the year-built rule
- Log loss better by 0.0128 (95% interval 0.0090 to 0.0163)
- Calibration error
- 0.0017 for lead (ECE)
- Equity
- Judged: lines built in the 1940s and the 1980s. Largest gap: 0.28 percentage points, within the 1 point limit.
- Data
- City of Norfolk Department of Utilities, read 2026-10-24. City of Norfolk Open Data Policy: portal data is dedicated to the public domain, with no use restrictions.
Files: report.json · hexes.geojson · SHA256SUMS
For regulators: more of the report, and how to repeat it
- Equity rates
- built in the 1940s: 0.00% against 0.60% overall (both on field-checked lines); built in the 1980s: 0.89% against 0.60% overall (both on field-checked lines)
- Runs
- The rate by the records was from 0.12% to 0.22% across 10 runs; 0 failed the 1% limit. The gate also checks the average of the runs' upper 95% confidence limits, 0.21%, against a 2% limit. That average is not a limit on the true rate.
- Calibration slope
- 1.121, intercept 0.427
- Code
- commit 0b808dd530ab; script deploy/cities/run_city.py at 3d0700ae61b9
- Input
- norfolk-va-lcri-inventory_harmonised.csv (harmonised copy the run read), sha256 7583520adec1671f48b96e770d1c4d089d956ffef28fd4cce4e332a21c1302f5
- Input
- norfolk_lcri_service_line_inventory.csv (publisher's file as downloaded), sha256 52aa785bc52ea47e1ec4fa795c6258ceddca9ca6e961e4e0bda9766942da9991
How to repeat the run, from the report:
- Get the publisher's file from data_card.source_url. Our copy of 2026-10-24 has the sha256 in data_card.inputs. A newer download may differ.
- Galena's code is not public yet. You can check each city result against its published files and checksums.
- Insufficient
Kitchener, Ontario
Canada · report of 2026-11-03Not enough data to judge the model. The city has 4 lead lines in its records, too few: a check needs at least 100. Those lead lines lie in 4 areas of the map (hexagons with an edge of about 1.4 km), too few: a check needs lead lines in at least 5 areas.
- Lines
- 66,701 in the City's file
- Known lead lines
- 4 in 4 areas, recorded as lead; the City's file has no verified mark.
- Model
- Not run: too few known lead lines
- Why
- The City records most old services as unknown material rather than lead, so only 4 lines are recorded as lead.
- Data
- City of Kitchener (Kitchener Utilities), read 2026-10-24. Open Government Licence - The Corporation of the City of Kitchener, version 1.0
Files: report.json · hexes.geojson · SHA256SUMS
For regulators: more of the report, and how to repeat it
- Code
- commit 311ccef93841; script deploy/cities/run_city.py at 3d0700ae61b9
- Input
- ca-on-kitchener-water-service-pipes_harmonised.csv (harmonised copy the run read), sha256 267169087251dd40c8ba87a1cada16682c1e73a573e8a14947d5140f021b5171
- Input
- water-service-pipes.geojson (publisher's file as downloaded), sha256 2c748c4be65b7fc4523a6221907f1031d7da0f2ec809fd26053eabcec5deb19b
How to repeat the run, from the report:
- Get the publisher's file from data_card.source_url. Our copy of 2026-10-24 has the sha256 in data_card.inputs. A newer download may differ.
- Galena's code is not public yet. You can check each city result against its published files and checksums.
- Insufficient
Waterloo, Ontario
Canada · report of 2026-11-03Not enough data to judge the model. The city has 12 lead lines in its records, too few: a check needs at least 100. Those lead lines lie in 3 areas of the map (hexagons with an edge of about 1.4 km), too few: a check needs lead lines in at least 5 areas.
- Lines
- 30,972 in the City's file
- Known lead lines
- 12 in 3 areas, recorded as lead; the City's file has no verified mark.
- Model
- Not run: too few known lead lines
- Why
- The City's 'High Probability Lead' class is the City's own estimate, so it is read as unknown, never as a lead label.
- Data
- City of Waterloo, read 2026-10-24. Open Government Licence - City of Waterloo, as the City's open data portal states it. The layer's own licence field is blank.
Files: report.json · hexes.geojson · SHA256SUMS
For regulators: more of the report, and how to repeat it
- Code
- commit 311ccef93841; script deploy/cities/run_city.py at 3d0700ae61b9
- Input
- ca-on-waterloo-water-service-leads_harmonised.csv (harmonised copy the run read), sha256 b61064dbe6e0607040db46e35d26cc70a0a6df395b444a991b06c3774bcedc89
- Input
- waterloo_water_service_leads.geojson (publisher's file as downloaded), sha256 b9162a4c0bf5b8df069c94f18b0695849be38896ff68c229624a60aaec1e76ed
How to repeat the run, from the report:
- Get the publisher's file from data_card.source_url. Our copy of 2026-10-24 has the sha256 in data_card.inputs. A newer download may differ.
- Galena's code is not public yet. You can check each city result against its published files and checksums.
In Norfolk, 35,494 lines whose class the City made with its own predictive model were treated as unknown, never as answers.
The reports' caveats, in their own words
- The check follows the rules approved on November 3, 2026 (ADR 0019): it judges the lines a city checked in the field, where the city marks them; a call of not lead must also rule out galvanized pipe needing replacement; each decade must pass on its own, or the model makes no call there; and each "at most" figure is the worst of the 10 test runs: an exact binomial bound, widened where misses cluster on the map.
- This city marks no lines as checked in the field, so its check is on records only: agreement with the city's records, not what was found in the ground. A pass on records alone never unlocks answers about single homes.
- The other false non-lead figures in this report count lead only and are kept for comparison, not as the check's bound. The one against the records is the mean of the 10 test runs.
- Galena gives no model answer about a single home anywhere yet. It will only after its fixed check passes on a city it was never tuned on, and none of today's cities can be that city.
- This city marks the lines it checked in the field, and the check judges the model on those lines.
3 How sure an answer is
Each answer on the address check shows "How sure: low", "medium" or "high", with one, two or three boxes filled. It describes the evidence behind the answer. It is not a test of your pipe. These are the rules the address lookup applies.
Table 3. How sure, and when
- HighThe utility's own record says the line is lead, or, in the US, galvanized needing replacement. In the US inventories the record must also give its basis, and that basis cannot be "Not Verified", "Other", "Unknown" or the utility's own statistical or predictive model. Aurora's records need a side of the line recorded as lead, not from a homeowner's reply, and an IsLead field that does not say no.
- MediumA record names a material that is not lead, or classes the line as not lead. A record is not always a field check, and it may cover only the utility's part of the pipe. Also medium: a US lead record that fails the basis test above; Montréal's screening, which measures lead in tap water with a portable kit; Regina's 2021 list of known City-owned lead connections; and Waterloo's class "High Probability Lead", which is the City's own estimate.
- LowNo record names the material, so the answer rests on the year the building or the service went in. Also low: a "not lead" record that the utility made with a statistical or predictive model, a record that does not describe a service line, a screening that was not conclusive, and any address with no record at all.
When only the year is known
- Canada: before 1955, "Likely enough to check"; 1955 to 1980, "Possible"; after 1980, "Unlikely". Toronto Water reports lead in the service pipes of homes built before the mid-1950s. Health Canada reports that the National Plumbing Code allowed lead for service lines until 1975, and that some provinces and territories kept installing them until 1980.
- United States: up to 1986, "Possible"; after 1986, "Unlikely". Since June 1986, federal law has banned pipe that is not lead free in new public water system and drinking water plumbing work.
Even "high" means the utility's record, not a check of your pipe for this answer. A licensed plumber can identify the pipe material where the water service enters your home. Only a test of your own water can tell how much lead is in it. The address check explains each answer in its own words: check an address.
4 Tools anyone can use
All of these are free and need no account.
Check an address
For anyone in Canada or the US. Type an address to see what the records say about the pipe, how sure that is, a map of the area around it, what homes like it measured where that is published, and how to test and fix it.
Check an addressThe Galena app
For utilities, consultants and anyone with a file of service lines. Start a free private workspace. Upload a CSV file of service lines, match the columns, train and check a model, see the lines on a map, plan inspections, and export the results as a spreadsheet, a map file or a PDF snapshot. No file of your own? Load the synthetic preview, a made-up town.
- A workspace lasts 7 days. Then it is deleted, with its files.
- Each workspace is a separate tenant with its own encryption key. No other workspace can read its data. The data is deleted when the workspace expires.
- CSV files only, up to 64 MB each, and up to 3 datasets.
- Up to 5 trainings a day, and 2 jobs at a time.
City results
Each city's check, with its map of areas, its numbers, its sources and the steps to repeat it.
See city results5 What is public
Everything below can be downloaded. Check each file against its checksum, and compare it with what the pages show.
- Area maps74 files: one for each of 17 cities and one for each of 57 New York counties. Each counts the utility's records by H3 cell at resolution 8, about 0.7 km², in four classes: lead, galvanized needing replacement, not lead, and unknown. A cell with fewer than 10 records is left out.index.jsonSHA256SUMS
- City resultsOne report for each city checked, with its result, its numbers, its data card, the code commit and the steps to repeat the run, and a map file of its areas.The results pageindex.jsonSHA256SUMS
- Water figuresThe files behind the answers' water figures, each with its sha256 from SHA256SUMS. water-city-bounds.json (sha256 c259223007ba111f…) holds the City boundaries of Albany and Utica from the US Census Bureau's TIGER/Line Shapefiles 2024, used to tell whether a record lies inside the City. water-montreal-qc.json (sha256 cbff6076a77a8975…) holds the Ville de Montréal's screening readings at the tap, by result code and sample type. water-new-york-city-ny.json (sha256 957525cb90c8e71a…) holds the NYC Department of Environmental Protection's compliance tap samples by year, and free residential tap samples by borough. water-ontario.json (sha256 683a00dbf5ca8275…) holds the plumbing samples Barrie, Kitchener and Waterloo reported to the Ontario Ministry of the Environment, Conservation and Parks, by sampling period. water-toronto-on.json (sha256 64ee6f78269235c6…) holds tap samples residents took for the City of Toronto, by postal area. water-us-systems.json (sha256 22d348887faa4f51…) holds the latest lead figure of each US water system that may serve a record, as its own report gives it, with the words it rests on. Of the 18 systems it names, 11 have one. The US EPA's federal record (Safe Drinking Water Information System, via ECHO) is used only to check a utility's own figure, never as the only source of one.water-city-bounds.jsonwater-montreal-qc.jsonwater-new-york-city-ny.jsonwater-ontario.jsonwater-toronto-on.jsonwater-us-systems.json
- Fix and testing factsEach city's replacement programme, testing options and filter advice, from official pages only, with the date each page was read and the exact words each fact rests on. sha256 54684f0601dde872…, the same file the address lookup loaded.fix-facts.json
- The lookup's own countsThe address lookup's health check: how many records it holds from each inventory, and which area and water files it loaded.health
- Street mapsProtomaps basemap 4.15.2, daily build 20261102, from OpenStreetMap data as of 2026-11-02. Map data © OpenStreetMap contributors, under the Open Database License 1.0. Protomaps distributes the basemap as an Open Database License Produced Work.Map styleaddress-check.SHA256SUMScities.SHA256SUMSOpenStreetMap copyright
- Each record's licenceIn Table 1, beside each source, in the words the address check uses.Table 1
- The codeGalena's code is private for now. Each city report names the exact code commit it ran.
6 What Galena never does
- It does not keep the address you type. The address lookup writes no log of searches and saves nothing to disk. While it runs, it holds recent searches in memory to answer faster, and a restart clears them. An address that is not in a utility's records is sent to OpenStreetMap's search service to place it on the map.Checked in the lookup's code: the server runs with its access log off, and the web front keeps no access log.
- Its area maps never show single homes. They count lines by area, in cells of about 0.7 km², and leave out any cell with fewer than 10 lines. City results publish no line, address or line-level prediction.The rule is in the published files: min_cell is 10 in the area files' index.
- It shows a model's answer only where that city's check passed. Today Galena gives no model answer about a single home, anywhere it publishes.Checked in the code: the address lookup makes no model predictions, and the app puts a model's chances in an export only when its check passed and it was approved.
- A model's guess never replaces a city's record. Where a record names the material, the answer follows the record. In the app's exports, a model's chances sit in their own columns next to the city's own class. In the city results, the expected number of lead lines adds the model's chances for unknown lines to the lines recorded as lead.Checked in the app's export code and in each city report's method.
- It never gives a number for the lead in one home's water. Water figures describe other homes, with how many samples they rest on. Only a test of your own water can tell.Checked in the lookup's code for the water figures.
7 Where Galena answers
The address check answers from utility records in 9 cities, 8 upstate New York cities and the rest of New York State, and from tap water tests in Toronto. Everywhere else in Canada and the US it places the address on the map and says how to check.
- A place with its own records and area map
- A New York county with an area map
- Toronto: tap water tests only
Canada
- Barrie, OntarioCity of Barrie: Water Service layer (the City's part of each water service). Area map of 118 cells. No model check yet. Tap water figures in the answer, for the address's own water system.
- Calgary, AlbertaCity of Calgary: public water service lines. Area map of 887 cells. Model check: failed.
- Kitchener, OntarioCity of Kitchener (Kitchener Utilities): water service pipes. Area map of 168 cells. Model check: not enough data to judge a model. Tap water figures in the answer, for the addresses with a City water service pipe on record.
- Montréal, QuebecVille de Montréal, Service de l'eau: results of the screening of lead service entries done with a Palintest kit. Area map of 346 cells. No model check yet. Tap water figures in the answer, for the address's own water system.
- Regina, SaskatchewanCity of Regina: known City-owned lead service connection addresses (FOI 2021-068). Area map of 159 cells. No model check yet. Tap water figures in the answer, for the address's own water system.
- Toronto, OntarioCity of Toronto, Toronto Water: Non Regulated Lead Samples. Tap water tests by postal area: 14,559 samples since 2014. Galena holds no records of service lines there, and no area map.
- Waterloo, OntarioCity of Waterloo: water distribution service leads. Area map of 87 cells. Model check: not enough data to judge a model. Tap water figures in the answer, for the address's own water system.
United States
- Aurora, IllinoisCity of Aurora, IL: Water Service Material Inventory. Area map of 182 cells. No model check yet. Tap water figures in the answer, for the address's own water system.
- New York CityNYC Department of Environmental Protection: Lead Service Line Location Coordinates. Area map of 1,041 cells. No model check yet. Tap water figures in the answer, for the address's own water system.
- Norfolk, VirginiaCity of Norfolk Department of Utilities: LCRI Water Service Line Inventory. Area map of 203 cells. Model check: failed. Tap water figures in the answer, for the address's own water system.
- 8 upstate New York citiesAlbany, Buffalo, Niagara Falls, Rochester, Schenectady, Syracuse, Troy and Utica. New York State Department of Health: New York State Lead Service Line Inventory (8-city subset). An area map for each city. No model check yet. Tap water figures in the answer for records inside the City in Albany and Utica. Elsewhere the answer names each water system that may serve the address.
- Other New York State townsAbout 3,100 towns, villages and hamlets, from the same state inventory. Area maps by county, for 57 counties. No model check yet.
Anywhere else in Canada and the US
- Any other addressOpenStreetMap's search places the address on the map, and the answer says how to check the pipe.
8 What Galena cannot answer yet
- Model answers about single homes are not offered anywhere yet. Answers come from the records and the year alone.
- The check has followed stricter rules since November 3, 2026, when they were approved, and every city result was republished under them. Before any model answer, a model must also pass the check on a city it was never tuned on.
- Too few known lead lines to check a model in Kitchener and Waterloo: Kitchener has 4 in 4 areas and Waterloo has 12 in 3 areas. A check needs 100 in at least 5 areas. Kitchener: The City records most old services as unknown material rather than lead, so only 4 lines are recorded as lead. Waterloo: The City's 'High Probability Lead' class is the City's own estimate, so it is read as unknown, never as a lead label.
- A model that failed its check is not used. In Calgary and Norfolk, answers come from the City's records alone.
- No model check has run yet for New York City, Montréal, Regina, Aurora, Barrie, the 8 upstate New York cities and the rest of New York State.
- Measured lead in tap water is given for the address's own water system only when Galena knows for certain which system serves it. It knows from the utility's own record in New York City (834,669 lines), Norfolk (71,154 lines), Aurora (49,994 lines), Barrie (44,962 services), Waterloo (29,808 addresses), Montréal (157,783 service entries) and Regina (3,235 addresses). It also knows in Kitchener for the addresses with a City water service pipe on record, in Albany and Utica for records inside the City, and in Toronto from the postal code.
- Where Galena does not know the system for certain, the answer gives a line for each water system that may serve the address, starting "If your water bill names". Each line gives that system's latest figure, or says that Galena has no confirmed figure for it. This is the case in Buffalo, Rochester, Syracuse, Schenectady, Niagara Falls and Troy, outside the City in Albany and Utica, and for the other Kitchener addresses. Together the 8 upstate New York cities hold 341,352 lines.
- No measured tap water figure is given for the rest of New York State (2,974,006 lines), where Galena has not matched the records to water systems, or for Calgary (384,450 lines), where the published figures are for lead in treated water entering the distribution system, not for tap water.
- The part of the pipe on private property. In Kitchener, Waterloo, Barrie, Calgary and Regina, the City's records cover only the City's part of the pipe. Galena cannot say what the part on the property is made of.
- No field checks. Galena has not dug up or tested any pipe. The city results compare a model with the city's own records, and the records are not all field checks.
- More places. Many utilities publish their records without a licence that allows reuse. Galena does not use those.