Skip to content
AtheronLABS

You're visiting from the United States. Prices are shown in US dollars. Not right?

labs@atheron:~/industries/water-utilities$ read --meters --samples --scada --read-only

Water utility software

From the meter to the bill, and the notice in between.

Your customers notice you twice: when the bill arrives and when the water stops. Your operators notice every sample, every pump and every main break. We build the systems around them: billing that reads the meters, a portal that sends the notice, and dashboards that read SCADA without ever writing to it.

// what you are up against

The problems we hear most.

01

Billing on a system nobody can change

Meter reads are keyed into a billing system written years ago, rate changes need the one person who knows it, and every bill run is a held breath.

02

Lab results in spreadsheets

Sample results arrive from the lab as emails and PDFs, are copied into a spreadsheet, and the monthly report the operator signs is rebuilt from it by hand.

03

Pipes and pumps in three places

The GIS shows where a main is, the work order system shows what was done to it, and the paper file shows what it is made of. Nobody sees all three at once.

04

Notices sent by phone tree

A boil-water notice or a planned shutoff goes out by phone calls, a website post and a social media update, and some customers still hear about it last.

// example projects

Systems we could build for you.

Each one is hypothetical, labelled as such, and priced live from our rate card. Open any of them in the estimator and make it yours.

Example projectWeb app

Customer portal with notices

Hypothetical. Not a client, not a result.

// The problem

A water and wastewater utility posts bills by mail, takes payments by cheque and at the counter, and announces boil-water notices and shutoffs by phone and social media, so customers call to ask what is happening.

// What we would build

A customer portal on the utility's own brand where customers see their usage and bills, pay online and sign up for notices by email or text, with an outage and notice map from the utility's GIS. Bills and accounts are read from the billing system through its API; we check yours before we quote. Notice wording is set by the people responsible for it at your utility.

// What is in it

  • Usage, bills and payments for each account, with a hosted checkout
  • Boil-water notices, planned shutoffs and main breaks by email and text, by street or zone
  • A notice map from your GIS, showing the affected area and the latest update
  • Moving in, moving out and paperless billing requests online
  • A design system on your brand, in English and French, built for older eyes and small phones

// Stack

  • Next.js
  • PostgreSQL
  • Billing system API
  • ArcGIS REST API
  • Payment processor's hosted checkout
  • AWS Canada

// estimate

Build
≈ US$102,000 to US$156,000, delivered within 23 weeksCAD 144,900 to 221,700
Hosting
≈ US$492 a monthCAD 700 a month
Support
≈ US$2,500 a monthCAD 3,565 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Design approved
3.9 to 6.4 weeks
Notice templates approved by the people responsible at your utility
3.4 to 5.9 weeks
Core features
2.9 to 4.4 weeks
Full build
1.9 to 2.9 weeks
Testing and fixes
0.9 to 1.4 weeks
Launch
0.9 to 1.4 weeks

Outside our hands, and added to the calendar

Billing system API access from your vendor
1 to 4 weeks

How it is paid

Deposit 20%
CAD 28,980 to 44,340
Discovery 6.8%
CAD 9,853.20 to 15,075.60
Design approved 6.8%
CAD 9,853.20 to 15,075.60
Notice templates approved by the people responsible at your utility 8.7%
CAD 12,606.30 to 19,287.90
Core features 20.4%
CAD 29,559.60 to 45,226.80
Full build 13.6%
CAD 19,706.40 to 30,151.20
Testing and fixes 6.8%
CAD 9,853.20 to 15,075.60
Launch 6.9%
CAD 9,998.10 to 15,297.30
Holdback, 30 days after launch (10%)
CAD 14,490 to 22,170
Example projectWeb appMobile app

Billing system rescue

Hypothetical. Not a client, not a result.

// The problem

A regional water board bills from an Access database with macros written by a former employee, meter readers key reads from paper, and a change to the rate table means a week of testing on a copy of the file.

// What we would build

An architecture review of the old system first, with a written plan, then a new billing system that keeps every account, rate and history, an Android app meter readers use offline on their route, and bill runs checked against the old system before the switch. Ledger postings go to QuickBooks Online, built on its API.

// What is in it

  • An architecture review and a written plan before any code changes
  • Accounts, meters, rates and years of history moved and reconciled
  • Rate tables your staff change themselves, with an effective date
  • Meter reads on an Android app, offline on the route, with photos for odd reads
  • Parallel bill runs against the old system until the totals match
  • Daily postings to QuickBooks Online

// Stack

  • Next.js
  • Kotlin for Android
  • PostgreSQL
  • QuickBooks Online API
  • AWS Canada

// estimate

Build
≈ US$139,000 to US$213,000, delivered within 32 weeksCAD 198,200 to 303,100
Hosting
≈ US$492 a monthCAD 700 a month
Support
≈ US$5,010 a monthCAD 7,135 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Data mapping and sandbox connection
0.4 weeks
Design approved
5.4 to 9.4 weeks
Core features
1.9 to 3.4 weeks
Full build
1.4 to 2.4 weeks
First build on devices
2.9 to 5.4 weeks
Sync built and reconciled in sandbox
1.4 to 2.4 weeks
Testing and fixes
0.4 to 0.9 weeks
Store submission
0.9 weeks
Parallel bill run matched against the old system
0.9 to 1.4 weeks
Launch
0.9 to 1.4 weeks
Live cutover
0.9 to 1.4 weeks
Hypercare
0.9 to 1.4 weeks

Outside our hands, and added to the calendar

App store review
1 week

How it is paid

Deposit 20%
CAD 39,640 to 60,620
Discovery 6.6%
CAD 13,081.20 to 20,004.60
Data mapping and sandbox connection 1.7%
CAD 3,369.40 to 5,152.70
Design approved 6.6%
CAD 13,081.20 to 20,004.60
Core features 6.7%
CAD 13,279.40 to 20,307.70
Full build 4.5%
CAD 8,919.00 to 13,639.50
First build on devices 13.1%
CAD 25,964.20 to 39,706.10
Sync built and reconciled in sandbox 5.1%
CAD 10,108.20 to 15,458.10
Testing and fixes 2.2%
CAD 4,360.40 to 6,668.20
Store submission 4.3%
CAD 8,522.60 to 13,033.30
Parallel bill run matched against the old system 8.7%
CAD 17,243.40 to 26,369.70
Launch 6.6%
CAD 13,081.20 to 20,004.60
Live cutover 1.7%
CAD 3,369.40 to 5,152.70
Hypercare 2.2%
CAD 4,360.40 to 6,668.20
Holdback, 30 days after launch (10%)
CAD 19,820 to 30,310
Example projectWeb app

Operations data warehouse

Hypothetical. Not a client, not a result.

// The problem

A utility's operators see SCADA only in the control room, lab results live in spreadsheets, and the monthly report data and the council's dashboard are assembled by hand from both.

// What we would build

A data warehouse that reads SCADA historian data through a read-only connection, takes in lab results and billing consumption, and shows dashboards for operators, managers and council. It prepares report data for your responsible operator to review and submit. Nothing is ever written back to SCADA or any control system.

// What is in it

  • Historian data read through a one-way, read-only connection your control systems team approves
  • Lab results imported from your lab's files, with the sample, method and chain of custody kept
  • Consumption by zone from billing, set against production, to see water loss
  • Dashboards for operators, managers and council, each with what they need
  • Report data prepared from the records for your responsible operator to review and submit
  • Hosting, backups and monitoring run for you in a Canadian region

// Stack

  • PostgreSQL
  • dbt
  • Historian API (read-only)
  • Next.js
  • Apache Superset
  • AWS Canada

// estimate

Build
≈ US$89,700 to US$137,000, delivered within 19 weeksCAD 127,800 to 195,500
Hosting
≈ US$492 a monthCAD 700 a month
Support
≈ US$5,010 a monthCAD 7,135 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Design approved
2.9 to 4.9 weeks
Core features
2.9 to 4.4 weeks
Full build
1.9 to 2.9 weeks
Testing and fixes
0.9 weeks
Report data reconciled against a past period
0.9 to 1.4 weeks
Launch
0.9 to 1.4 weeks

Outside our hands, and added to the calendar

Billing system API access from your vendor
1 to 4 weeks
Your control systems team's review of the read-only connection
4 to 8 weeks

How it is paid

Deposit 20%
CAD 25,560 to 39,100
Discovery 6.8%
CAD 8,690.40 to 13,294.00
Design approved 6.8%
CAD 8,690.40 to 13,294.00
Core features 20.4%
CAD 26,071.20 to 39,882.00
Full build 13.6%
CAD 17,380.80 to 26,588.00
Testing and fixes 6.8%
CAD 8,690.40 to 13,294.00
Report data reconciled against a past period 8.7%
CAD 11,118.60 to 17,008.50
Launch 6.9%
CAD 8,818.20 to 13,489.50
Holdback, 30 days after launch (10%)
CAD 12,780 to 19,550
Example projectWeb appMobile app

Pipes, pumps and lead lines

Hypothetical. Not a client, not a result.

// The problem

Crews take work orders on paper, pump station checks live in a binder, and the lead service line inventory the utility must keep is a spreadsheet with gaps for half the addresses.

// What we would build

A web workspace and an iOS and Android app crews use offline, on the utility's GIS and asset register: work orders for mains, valves, hydrants and pumps, station rounds, and a service line inventory with the material recorded at each address, how it was found, and photos. A public lookup shows a resident what is known about their line.

// What is in it

  • Work orders for mains, valves, hydrants and pump stations, with photos and time
  • Station rounds and readings, offline, synced when the truck has coverage
  • Service line material by address, how it was verified, and when
  • A public lookup and map of what is known about each service line
  • Assets and locations from your GIS, kept in step both ways

// Stack

  • Next.js
  • React Native
  • PostgreSQL with PostGIS
  • ArcGIS REST API
  • AWS Canada

// estimate

Build
≈ US$119,000 to US$181,000, delivered within 27 weeksCAD 168,900 to 258,300
Hosting
≈ US$492 a monthCAD 700 a month
Support
≈ US$2,500 a monthCAD 3,565 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

Timeline by milestone

Discovery
3.5 to 4 weeks
Design approved
5.5 to 10 weeks
Core features
2.5 to 3.5 weeks
Full build
1.5 to 2.5 weeks
First build on devices
4 to 6.5 weeks
Testing and fixes
0.5 to 1 weeks
Store submission
1 to 2 weeks
Launch
1 to 2 weeks

Outside our hands, and added to the calendar

App store review
1 week
GIS and asset register access
1 to 4 weeks

How it is paid

Deposit 20%
CAD 33,780 to 51,660
Discovery 9.2%
CAD 15,538.80 to 23,763.60
Design approved 9.2%
CAD 15,538.80 to 23,763.60
Core features 7.6%
CAD 12,836.40 to 19,630.80
Full build 5%
CAD 8,445 to 12,915
First build on devices 20.1%
CAD 33,948.90 to 51,918.30
Testing and fixes 2.5%
CAD 4,222.50 to 6,457.50
Store submission 6.7%
CAD 11,316.30 to 17,306.10
Launch 9.7%
CAD 16,383.30 to 25,055.10
Holdback, 30 days after launch (10%)
CAD 16,890 to 25,830
Example projectAPI

Utility integration hub

Hypothetical. Not a client, not a result.

// The problem

A multi-utility billing water, sewer and district energy runs a billing system, a meter data head-end, GIS, a work order system and finance software that do not talk, so staff export and import files every night.

// What we would build

An internal integration hub that joins the five systems through one API: meter reads flow to billing, new accounts reach the work order system, and service addresses stay in step with GIS. Each connector is built on the system's published API or export; we check yours before we quote. We run it for you, with monitoring and alerts.

// What is in it

  • One internal API in front of billing, meter data, GIS, work orders and finance
  • Meter reads checked and passed to billing, with exceptions held for review
  • New and closed accounts passed to the work order system the same day
  • Webhooks so a system hears about a change instead of waiting for a file
  • Monitoring, alerts and a log of every message, run on a support plan

// Stack

  • Node.js
  • PostgreSQL
  • OpenAPI
  • Billing and meter data APIs
  • ArcGIS REST API
  • AWS Canada

// estimate

Build
≈ US$60,200 to US$92,000, delivered within 15 weeksCAD 85,700 to 131,000
Hosting
≈ US$176 a monthCAD 250 a month
Support
≈ US$5,010 a monthCAD 7,135 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

Timeline by milestone

API contract agreed
2.9 to 3.9 weeks
Core resources built
2.9 to 4.9 weeks
Security, gateway and connections
1.9 to 2.9 weeks
Docs, SDKs and load tests
1.4 to 1.9 weeks
Launch and first callers
0.9 to 1.4 weeks

Outside our hands, and added to the calendar

Billing system API access from your vendor
1 to 4 weeks

How it is paid

Deposit 20%
CAD 17,140 to 26,200
API contract agreed 8.7%
CAD 7,455.90 to 11,397.00
Core resources built 26.2%
CAD 22,453.40 to 34,322.00
Security, gateway and connections 17.5%
CAD 14,997.50 to 22,925.00
Docs, SDKs and load tests 8.7%
CAD 7,455.90 to 11,397.00
Launch and first callers 8.9%
CAD 7,627.30 to 11,659.00
Holdback, 30 days after launch (10%)
CAD 8,570 to 13,100
Example projectWeb appAIFrontier model

Help centre in your languages

Hypothetical. Not a client, not a result.

// The problem

A city utility serves customers who speak many languages, its help pages exist only in English, and the call centre fills up with the same questions about bills, moving and water quality notices.

// What we would build

A help centre in English, French and the languages your customers speak, with an assistant that answers from the approved articles, cites them and hands over to a person. Active notices are shown first. The assistant answers general questions; it does not see accounts, and it never gives health or safety advice beyond the notice itself.

// What is in it

  • Help articles on bills, moving, meters and notices, translated and reviewed
  • An assistant that answers only from approved articles, and cites them
  • Active boil-water notices and shutoffs shown before anything else
  • A handover to a person by phone, email or chat
  • An evaluation set of real customer questions, run before every change

// Stack

  • Next.js
  • Claude API
  • PostgreSQL with pgvector
  • Translation management platform
  • AWS Canada

// estimate

Build
≈ US$94,800 to US$145,000, delivered within 23 weeksCAD 135,000 to 206,400
Hosting
≈ US$218 a monthCAD 310 a month
Support
≈ US$2,500 a monthCAD 3,565 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

AI route
Frontier model
Model running cost
≈ US$42 a monthCAD 60 a month

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Specification and evaluation plan
0.4 weeks
Design approved
2.4 to 3.4 weeks
Notice templates approved by the people responsible at your utility
1.4 to 1.9 weeks
Core features
1.4 to 1.9 weeks
Full build
0.9 to 1.4 weeks
Working pilot
3.9 to 6.4 weeks
Testing and fixes
0.9 to 1.9 weeks
Launch
0.9 to 1.4 weeks
Production
0.9 to 1.4 weeks

How it is paid

Deposit 20%
CAD 27,000 to 41,280
Discovery 1.8%
CAD 2,430.00 to 3,715.20
Specification and evaluation plan 8.9%
CAD 12,015.00 to 18,369.60
Design approved 1.8%
CAD 2,430.00 to 3,715.20
Notice templates approved by the people responsible at your utility 8.7%
CAD 11,745.00 to 17,956.80
Core features 5.4%
CAD 7,290.00 to 11,145.60
Full build 3.6%
CAD 4,860.00 to 7,430.40
Working pilot 26.9%
CAD 36,315.00 to 55,521.60
Testing and fixes 1.8%
CAD 2,430.00 to 3,715.20
Launch 1.8%
CAD 2,430.00 to 3,715.20
Production 9.3%
CAD 12,555.00 to 19,195.20
Holdback, 30 days after launch (10%)
CAD 13,500 to 20,640
Example projectWeb appBlockchain

Regional water supply ledger

Hypothetical. Not a client, not a result.

// The problem

Several towns buy treated water from one regional plant, the bulk meter readings and cost shares are worked out in a spreadsheet the plant keeps, and each town checks it its own way.

// What we would build

A shared record where bulk meter readings, capital and operating costs and each member's share are entered and agreed each month, on a private permissioned ledger each member runs a node of. Signed monthly statements often do this job; the ledger helps when several members need the same record and none wants another to hold it.

// What is in it

  • Bulk meter readings entered and confirmed by the plant and each member
  • Cost shares worked out by the formula in your agreement, shown line by line
  • Each month's statement fingerprinted on a private chain, with a node for each member
  • Disputes raised against a line, with comments and a resolution
  • Exports for each member's own finance system

// Stack

  • Next.js
  • Hyperledger Besu (private, permissioned)
  • PostgreSQL
  • AWS Canada

// estimate

Build
≈ US$94,300 to US$144,000, delivered within 22 weeksCAD 134,300 to 205,300
Hosting
≈ US$176 a monthCAD 250 a month
Support
≈ US$2,500 a monthCAD 3,565 a month

Prices in your currency are estimates from today's Bank of Canada rate. All invoicing is in CAD or USD.

Timeline by milestone

Discovery
2.9 to 3.4 weeks
Architecture
0.4 weeks
Design approved
2.4 to 4.4 weeks
Core features
1.4 to 2.4 weeks
Full build
0.9 to 1.4 weeks
Devnet
2.4 to 3.9 weeks
Testing and fixes
0.4 weeks
Testnet
2.9 to 3.4 weeks
Launch
0.9 to 1.4 weeks
Mainnet
0.9 to 1.4 weeks

How it is paid

Deposit 20%
CAD 26,860 to 41,060
Discovery 2.5%
CAD 3,357.50 to 5,132.50
Architecture 6.7%
CAD 8,998.10 to 13,755.10
Design approved 2.5%
CAD 3,357.50 to 5,132.50
Core features 7.5%
CAD 10,072.50 to 15,397.50
Full build 5%
CAD 6,715 to 10,265
Devnet 20.2%
CAD 27,128.60 to 41,470.60
Testing and fixes 2.5%
CAD 3,357.50 to 5,132.50
Testnet 13.4%
CAD 17,996.20 to 27,510.20
Launch 2.5%
CAD 3,357.50 to 5,132.50
Mainnet 7.2%
CAD 9,669.60 to 14,781.60
Holdback, 30 days after launch (10%)
CAD 13,430 to 20,530

// questions

What buyers in this industry ask us.

Do you work with utilities across Canada?

Yes. We are in British Columbia and work with water, wastewater and district energy utilities anywhere; we set our working hours around yours. Prices are in Canadian dollars.

Do you give engineering, safety or regulatory advice?

No. We scope and build to the requirements your responsible operators, engineers and advisers set, and nothing we build writes to a control system.

How do payments work?

A deposit to start, then payments at agreed milestones, with 10% held until 30 days after launch. The deposit is a smaller share on larger projects.

Who owns the software?

You do, once the work is paid for, including the integrations and the data.

// where we work

Find your market.

We work from Kelowna with clients across Canada, the United States and further afield. Each market page covers working hours, hosting, the privacy law that applies, and prices in your currency.

// next

Not quite your project?

Tell us what you have in mind. We will come back to you with a range and the questions that would narrow it. Or book a call and talk it through.

Software for water, wastewater and district energy utilities | Atheron Network Labs