Methodology & Data Transparency
This page explains exactly how WaterScore calculates water quality ratings, where our data comes from, and how we ensure accuracy. We believe full transparency is essential for trust.
1. Scoring Formula
Every suburb receives a score from 0 to 10. The score is computed by comparing each measured water quality parameter against its Australian Drinking Water Guidelines (ADWG) limit or recommended range. Each parameter receives an individual score out of 10, and the final suburb score is the unweighted average of all parameter scores.
How each parameter is scored
There are three scoring modes depending on the parameter type:
A. Limit-based parameters
Used for most parameters (turbidity, hardness, fluoride, chlorine, metals, etc.)
ratio = measured_value / ADWG_guideline_limit
If ratio ≤ 1.0: score = 10 × (1 − ratio × 0.3)
If ratio > 1.0: score = 10 × max(0, 1 − (ratio − 1))
Within the guideline limit, scoring starts at 10 and decreases gradually (up to a 30% penalty at the limit). Above the limit, the score drops linearly and reaches 0 when the measured value is double the limit.
B. Range-based parameters
Used for pH (acceptable range: 6.5 – 8.5)
midpoint = (min + max) / 2 ⇒ 7.5 for pH
half_range = (max − min) / 2 ⇒ 1.0 for pH
deviation = |measured_value − midpoint| / half_range
If deviation ≤ 1.0: score = 10 × (1 − deviation × 0.3)
If deviation > 1.0: score = 10 × max(0, 1 − deviation)
Optimal score when the value is at the midpoint of the range. Scores decrease as the value approaches either edge.
C. Binary compliance parameters
Used for E. coli and Total Coliforms (guideline limit = 0)
If measured_value = 0: score = 10 (compliant)
If measured_value > 0: score = 0 (non-compliant)
Any detection of E. coli or Total Coliforms results in a zero score for that parameter, reflecting the serious health risk.
Final score calculation
final_score = sum(all_parameter_scores) / number_of_scored_parameters
Rounded to 1 decimal place.
All scored parameters carry equal weight. The score uses the latest available reading for each parameter (deduplicated by sample date). Parameters without an ADWG guideline value (e.g. temperature, conductivity) are measured and displayed but do not affect the score.
2. Parameter Reference Table
WaterScore tracks 29 water quality parameters. Of these, 23 have ADWG guideline values and contribute to the score. The remaining 6 are measured for informational purposes only.
Scored parameters (23)
| Parameter | Unit | ADWG Guideline | Scoring Mode |
|---|---|---|---|
| pH | pH units | 6.5 – 8.5 | Range |
| Turbidity | NTU | ≤ 5 | Limit |
| Total Dissolved Solids | mg/L | ≤ 600 | Limit |
| Hardness | mg/L CaCO3 | ≤ 200 | Limit |
| Fluoride | mg/L | ≤ 1.5 | Limit |
| Total Chlorine | mg/L | ≤ 5 | Limit |
| Free Chlorine | mg/L | ≤ 5 | Limit |
| Iron | mg/L | ≤ 0.3 | Limit |
| Manganese | mg/L | ≤ 0.1 | Limit |
| Aluminium | mg/L | ≤ 0.2 | Limit |
| Copper | mg/L | ≤ 2 | Limit |
| Lead | mg/L | ≤ 0.01 | Limit |
| E. coli | MPN/100mL | Not detected | Binary |
| Total Coliforms | MPN/100mL | Not detected | Binary |
| Nitrate | mg/L | ≤ 50 | Limit |
| Sulfate | mg/L | ≤ 500 | Limit |
| Sodium | mg/L | ≤ 180 | Limit |
| Chloride | mg/L | ≤ 250 | Limit |
| Colour | HU | ≤ 15 | Limit |
| PFOS | µg/L | ≤ 0.07 | Limit |
| PFOA | µg/L | ≤ 0.56 | Limit |
| Trihalomethanes | mg/L | ≤ 0.25 | Limit |
| Monochloramine | mg/L | ≤ 3 | Limit |
Measured-only parameters (6)
These parameters are recorded and displayed on suburb pages but do not affect the score.
| Parameter | Unit |
|---|---|
| Temperature | °C |
| Dissolved Oxygen | mg/L |
| Conductivity | µS/cm |
| Alkalinity | mg/L CaCO3 |
| Calcium | mg/L |
| Magnesium | mg/L |
3. Worked Examples
Two examples showing how the scoring formula works in practice.
Example A: Typical high-quality suburb
A suburb with readings well within ADWG guidelines.
| Parameter | Value | Guideline | Ratio | Score |
|---|---|---|---|---|
| Turbidity | 0.5 NTU | ≤ 5.0 | 0.1 | 9.7 |
| pH | 7.4 | 6.5 – 8.5 | dev: 0.1 | 9.7 |
| Fluoride | 0.9 mg/L | ≤ 1.5 | 0.6 | 8.2 |
| E. coli | 0 MPN | 0 (binary) | — | 10.0 |
| Hardness | 60 mg/L | ≤ 200 | 0.3 | 9.1 |
Example B: Suburb with some exceedances
A suburb with high hardness and elevated manganese.
| Parameter | Value | Guideline | Ratio | Score |
|---|---|---|---|---|
| Turbidity | 2.0 NTU | ≤ 5.0 | 0.4 | 8.8 |
| Hardness | 280 mg/L | ≤ 200 | 1.4 | 6.0 |
| Manganese | 0.15 mg/L | ≤ 0.1 | 1.5 | 5.0 |
| pH | 8.2 | 6.5 – 8.5 | dev: 0.7 | 7.9 |
| E. coli | 0 MPN | 0 (binary) | — | 10.0 |
4. Data Collection
Sources
All water quality data comes directly from official reports published by Australian water utilities. We currently source data from 182 utilities across all states and territories, covering the vast majority of Australia's urban population.
Data sources include annual drinking water quality reports, open data portals (e.g. data.nsw.gov.au, data.sa.gov.au), and utility websites. We do not use any third-party or aggregated data sources.
Collection frequency
Our data pipeline runs when utilities publish new reports, typically on an annual basis. Some utilities (such as Sydney Water) publish more frequently. Values shown on WaterScore reflect the most recently published data and may not represent real-time water conditions.
Processing pipeline
The data flows through several stages from source to WaterScore:
- Download — Fetch latest reports from utility websites and open data portals (XLSX, CSV, PDF)
- Parse — Extract parameter values, measurement dates, and units from source files
- Normalise — Map utility-specific parameter names to standard ADWG parameter names (e.g. "Chlorine (free residual)" → "chlorine_free")
- Validate — Check for null values, perform unit conversions, and flag anomalies
- Load — Upsert into our database with deduplication by suburb, parameter, and report year
- Link — Map suburbs to supply zones so that zone-level data is correctly inherited by all suburbs in that zone
Parameters tracked
We track 29 parameters covering health-related contaminants (E. coli, lead, PFOS/PFOA, nitrate), disinfection by-products (trihalomethanes, monochloramine), treatment indicators (turbidity, chlorine), and aesthetic measures (hardness, colour, TDS). Not all utilities report every parameter; see the utility coverage table for details.
5. Data Quality & Validation
Reading validation
- Null filtering — Readings with no measured value are excluded from scoring. Only parameters with valid numeric values contribute to the score.
- Deduplication — When multiple readings exist for the same parameter, only the most recent reading (by sample date) is used for scoring.
- Unit normalisation — All values are converted to standard units (mg/L, NTU, pH units, etc.) during the pipeline's normalisation step.
- Unique constraints — The database enforces uniqueness on (suburb, supply zone, parameter, report year) to prevent duplicate entries.
Missing data handling
- Missing parameters — If a utility does not report a particular parameter, it is simply excluded from the suburb's score calculation. The score is the average of whichever parameters are available. This means suburbs with fewer reported parameters may have scores based on a narrower set of data.
- Supply zone inheritance — Many utilities report data at the supply zone level (e.g. "Eastern Zone") rather than per-suburb. In these cases, all suburbs within a zone inherit the zone's readings. This is the standard approach since water treatment and distribution are zone-based.
- No imputation — We never estimate or impute missing values. If a reading is not available, it simply does not contribute to the score.
Confidence indicators
Data from the current or previous reporting year. High confidence.
Data is 3 years old. May not reflect current conditions. Use with caution.
Data is 4+ years old or unavailable. Low confidence; treat as indicative only.
Freshness badges appear on suburb pages to indicate data age. The freshness level is based on the gap between the current year and the most recent report year in our database.
6. Utility Coverage
The table below shows each utility we cover, the number of suburbs in our database, parameters tracked, data completeness (percentage of the 23 scorable ADWG parameters that the utility reports), and a link to the official data source.
7. Known Limitations
- Not real-time — WaterScore reflects published report data, not real-time measurements. Water quality can vary day-to-day due to weather events, infrastructure issues, or treatment changes.
- Zone-level granularity — Most utilities report data at the supply zone level. All suburbs in a zone share the same readings, even though localised variation can occur (e.g. due to pipe age or distance from the treatment plant).
- Parameter coverage varies — Different utilities report different subsets of parameters. A suburb served by a utility that reports 8 parameters will have its score computed from fewer data points than one with 20 parameters reported. We display parameter counts on suburb pages to flag this.
- Equal weighting — All scored parameters are weighted equally. This means an aesthetic parameter like colour carries the same weight as a health-critical parameter like E. coli. We chose equal weighting for simplicity and transparency, but acknowledge that health-based weighting could be more informative.
- Annual averages — Some utilities report annual average values rather than individual sample results. This can mask short-term spikes or seasonal variation.
- Rural and regional gaps — We currently cover 13 major urban utilities. Many smaller regional and remote water suppliers are not yet included.
Disclaimer: WaterScore ratings are provided as a general guide only and are not a substitute for professional water testing or medical advice. If you have specific health concerns about your water quality, contact your water utility directly or consult a health professional.