Methodology and sources
This page exists so that every number on this site can be traced to a document or to an arithmetic rule, and so that the handful of editorial choices we made are visible rather than implied.
1. What counts as a source
A utility appears on this site only when a hardness value was read on that utility's own published report or official water-quality page. Nothing is modelled from geology, interpolated between cities, estimated from a neighbouring system, or taken from a third-party aggregator. Where a figure is republished by another municipality — Manchester Water Works reports are read from the Town of Salem, New Hampshire document centre, which hosts them as a Manchester customer community — the page says so and names both.
All records were retrieved on 2026-10-16. The machine-readable file with full provenance is published at /data/utilities.json.
2. The sources, one per system
3. The classification
The soft, moderately hard, hard and very hard bands come from the USGS Water Science School, retrieved 2026-10-16, in mg/L as calcium carbonate, quoted verbatim:
| Class | USGS wording |
|---|---|
| Soft | Soft: 0-60 milligrams per liter (mg/L) as calcium carbonate |
| Moderately hard | Moderately hard: 61-120 mg/L as calcium carbonate |
| Hard | Hard: 121-180 mg/L as calcium carbonate |
| Very hard | Very hard: more than 180 mg/L as calcium carbonate |
Other bodies publish different edges. New York City's own 2025 report footnotes hardness up to 3 grains per gallon as soft and 3 to 9 as moderately hard, which does not align with the USGS mg/L bands. This site uses the USGS bands everywhere, and where a utility's own wording differs, the utility page records the difference instead of hiding it.
4. Unit conversions
These are definitional relationships between units, not measurements, so applying them introduces no new uncertainty beyond rounding.
| Relationship | Factor used | Basis |
|---|---|---|
| mg/L (ppm) to grains per gallon | ÷ 17.1 | One grain of CaCO₃ per US gallon. 1 grain per US gallon (gpg) of hardness as calcium carbonate = 17.1 mg/L (ppm). Austin Water's own 2025 report states the same factor ('about 17.1 ppm per gpg'), which is why this site uses 17.1 rather than the 17.118 some references carry. Where a utility published its own gpg figure, that published figure is shown as published and our converted figure is shown separately so the two can be compared. |
| mg/L to German degrees (°dH) | ÷ 17.848 | 1 °dH = 17.848 mg/L as CaCO₃ |
| mg/L to French degrees (°f) | ÷ 10 | 1 °f = 10 mg/L as CaCO₃ |
| ppb (µg/L) to mg/L | ÷ 1000 | Metric prefix. Applied to Denver Water, which publishes hardness in ppb |
| ppm to mg/L | 1 : 1 | Identical in dilute aqueous solution; reports use both labels |
Where a utility published its own grains-per-gallon figure, that figure is shown as published and our conversion is shown separately, so the two can be compared. Las Vegas Valley Water District publishes 280 ppm and 16 gpg; 280 ÷ 17.1 is 16.4, so the district's figure appears rounded to whole grains. Both numbers appear on its page.
5. Editorial assumptions — the ones that are ours
- The plotted point. A utility is positioned on the scale using its published average where one exists, and the midpoint of its published range where no average is published. Every figure labels which it is. A midpoint is a drawing decision, not a statistic the utility published, and no page states it as an average.
- The non-linear axis. On the hardness scale each of the four USGS classes is drawn the same width, so the classification is legible at a glance. The axis is therefore not linear in mg/L: the 0–60 soft band occupies the same space as the 180–500 very hard band. Ticks at 0, 60, 120, 180 and 500 are printed on every figure along with a note saying this. The alternative, a linear axis, crowded six of the ten systems into the leftmost eighth of the chart.
- The scale ceiling. The scale tops out at 500 mg/L, above the highest published value on the site (460 mg/L, the top of the Indianapolis system-wide range). Any value above 500 would be clamped to the end of the axis; none currently is.
- Where a range is converted. San Antonio publishes only grains per gallon, so the mg/L figures on its page are our conversion, and are labelled as such in the "whose number" column.
- Rounding. Values are displayed to one decimal place in mg/L and one or two in gpg. Denver Water's published average of 105,009 ppb is shown as 105.009 mg/L on its own page because dropping digits there would silently change a published figure, and as 105.0 in tables.
- Calculator defaults. In the grain capacity calculator, the defaults for gallons per person per day (75), days between regenerations (7), reserve allowance (20%) and usable share of nominal rating (100%) are our placeholders. They are not published figures, no source is claimed for them, every one is editable, and each field says so on screen. No per-capita water-use statistic was fetched for this build, which is precisely why that field is presented as a placeholder to replace with your own water bill.
6. What we could not get, and did not invent
Two of the large utilities checked publish no usable hardness figure. They have no page here rather than an estimated one.
| Utility | Pages checked | Outcome |
|---|---|---|
| Seattle Public Utilities | https://www.seattle.gov/documents/departments/spu/aboutus/reports/water%20quality/spu-drinking-water-quality-report_2025.pdf https://www.seattle.gov/utilities/your-services/water/water-quality/analyses | No hardness line in the 2025 Drinking Water Quality Report, and the Water Quality Analyses index page did not render its quarterly-analysis links to us. SPU's quarterly surface water analyses are the likely home of the figure; this is a page to add once one of those documents can be read directly. |
| City of Chicago Department of Water Management | https://www.chicago.gov/content/dam/city/depts/water/ConsumerConfidenceReports/2021_WaterQualityReport.pdf https://www.chicago.gov/city/en/depts/water/supp_info/Consumer_ConfidenceReports.html https://www.chicago.gov/city/en/depts/water/supp_info/water_quality_resultsandreports/comprehensive_chemicalanalysis.html https://311.chicago.gov/s/article/What-is-hardness-and-how-many-grains-per-gallon-GPG-are-in-the-city-s-water | The 2021 Water Quality Report carries no hardness line. The Comprehensive Chemical Analysis index and the CHI311 hardness article are rendered by scripts and returned no values or document links to us. Chicago's figure is most likely in a Comprehensive Chemical Analysis PDF; no page here until one is read. |
Two documents could not be fetched at all and were worked around rather than quoted:
https://www.manchesternh.gov/Portals/2/Departments/water_works/2023%20WQReport.pdf— robots.txt disallows fetching; Manchester Water Works reports were read instead from the Town of Salem NH document centre, which republishes them as a Manchester Water Works customer community.https://www.usgs.gov/special-topics/water-science-school/science/hardness-water— fetch not permitted in this session; the USGS hardness classification was taken from the USGS FAQ page instead.
Also deliberately absent: any ZIP-code lookup, any hardness value for a private well, any estimate for a system whose report is silent, and any claim that the author has tested a softener, a test strip or a filter. A paid water-quality API would widen coverage, and the pSEO research for this site put that cost at a $1,000 per month minimum with a one-year contract, which is why the pilot is ten verified systems and two tools instead of a national directory.
7. Corrections
If a value here does not match its cited source, that is a bug and not a rounding preference. Every page carries the source URL, the report year and the retrieval date so the discrepancy can be traced in one click, and the raw records are at /data/utilities.json with data version 2026-10-16. Utilities revise reports; a figure correct on 2026-10-16 may be superseded.