The whole ledger

Every claim, with its source

The front page says every claim on it is one you can check. This is where you check them. One row per assertion, so each stands or falls on its own.

How to read this

EC means the EngCalcs repository, which holds the software this site points to. A row citing a file in it is citing the code itself. Where a claim rests on an outside source, the source is linked and you can go and disagree with us.

This page is generated from the site's own working ledger, so it cannot drift from the document the people maintaining the site actually use. Sections 6, 7 and 8 are the uncomfortable ones: what we could not verify, what we gave up, and what we refuse to claim.

One row per assertion, so each can be checked on its own. EC means the EngCalcs repository at ~/webdev/hawsedc.subset/engcalcs. Anything we could not verify is in the last section, and is either absent from the site or flagged on the site itself.

Checked 2026-09-06.

1. The disclaimer (index.html, epanet.html)

#ClaimSource
1.1EPANET is a program of the US Environmental Protection Agencyepa.gov/water-research/epanet; Wikipedia: EPANET
1.2This site is not EPA's, and the software is not EPANET, not a version of it, and not an official successorTrue by construction. Nothing here is EPA's, and the software is a separate GPL v3 program that embeds EPANET's engine
1.3EPA has not reviewed, endorsed, approved, sponsored, or been askedEC/dev/positioning.md §6 records a courtesy note to Open Water Analytics as not yet sent; no EPA contact is recorded anywhere in the repository. Confirmed by Tom Haws on 2026-09-06, the day the site went live.
1.4EPANET is obtained from EPA at epa.gov/water-research/epanetThe agency's own page

2. Honesty item 1, the dependency claims (index.html)

#ClaimSource
2.1A 679 KB browser build of OWA-EPANET 2.3.5 is vendored and loaded on demandEC/js/vendor/epanet-js.js is 678,695 bytes on disk. EC/js/vendor/README.md: the engine inside the wrapper is OWA-EPANET 2.3.5. EC/CLAUDE.md records the engine as lazily imported
2.2OWA-EPANET 2.3.5 was released 2025-02-20OpenWaterAnalytics/EPANET releases, v2.3.5 dated February 20, 2025. Agrees with EC/js/vendor/README.md
2.3Extended period simulation, water age, source trace, chemical decay, pump energy, rule-based controls, and PRV/PSV/FCV all run through the EPANET engine onlyEC/CLAUDE.md lpn_ section: EPS shipped "through the EPANET engine only"; "the built-in solver has no time dimension and is not getting one"; "PRV/PSV/FCV switch their own state inside the iteration and solve through EPANET only". Water quality and pump energy are run-based, so they inherit the same constraint (EC/dev/roadmap-closed-ids.md, tasks 566 and 566.01). Rules: task 248.03, EC/js/lpn-rules.js
2.4Our own solver does one instant, pressures and flows onlyEC/CLAUDE.md: "with EPANET unreachable the page solves one instant and says so"
2.5We read and write EPANET's own .inp, [TITLE] to [END]EC/js/lpn-inp.js names 26 section headings including [TITLE] and [END]. Export shipped 2026-08-18 (EC/CLAUDE.md)
2.5aWe also have a native JSON format, holding things an .inp cannot: scenarios, saved profile paths, a background image, map tiles and the stored view, a Text label anchored to a link or carrying more than one line, and longitude/latitude for a geographic projectEC/js/looped-network.js serializeProject() writes scenarios, profiles, backdrop, view, labelSettings, project.basemap, origin; a shipped example lists exactly those keys. Corrected 2026-09-06 after Tom pointed out that "we never invented one" was false.
2.5bFive .inp round trips are genuinely impossible and are reported rather than fakedEC/dev/roadmap-closed-ids.md Task 281: a pump with no curve, a multi-line Text label, curve-point text, an emitter coefficient, a backdrop image's file name
2.62,425 head comparisons across 25 reporting steps, agreeing to 0.005 ft, against EPA's own Net3 reportEC/CLAUDE.md: "checked against all 25 steps of EPA's own Net3.rpt to 0.005 ft over 2,425 head comparisons (EC/dev/lpn-spike/eps-net3-harness.js)"
2.7Water quality anchored on the same report, worst 0.105%EC/dev/roadmap-closed-ids.md, task 566: "anchored on EPA's own Net3.rpt, 2,425 comparisons, worst 0.105%"
2.8Pump energy anchored on that report's own energy tableEC/dev/roadmap-closed-ids.md, task 566.01
2.9Our Hazen-Williams pair is derived from EPANET's 4.727 form, and differs from the common metric restatement by up to 0.12% from 50 mm to 2 mEC/js/PipeHydraulics.lib.js header comment, verbatim
2.10Element vocabulary, curve types, rule grammar, and unit-switch behaviour follow EPANETEC/CLAUDE.md: element types list; "EPANET HAS EXACTLY FOUR KINDS"; EC/js/lpn-rules.js is "EPANET's own grammar"; "EPANET behaves the same way we do" on unit switching
2.11Curve editor modelled on EPANET's; table of assets is the view EPANET has had since 2.0; EPANET 2.2's five map colours are in the palette unsoftenedEC commit 7b146c1d "Curve editor reads like EPANET's"; EC/js/looped-network.js comment on the tables pane, "EPANET has had it since 2.0"; EC/js/lpn-ramps.js: "The five map colours of EPANET 2.2 ... Kept unsoftened"
2.11aThey are NOT the default. The shipped default is Viridis, for both nodes and linksEC/js/looped-network.js defaultSettings(): colorRampNode: 'viridis', colorRampLink: 'viridis'. Corrected 2026-09-06 after Tom challenged the original claim; the earlier wording was false, and a comment in EC/js/looped-network.js had said the same false thing, which is where it came from. epanet is only the fallback for an unknown ramp key.
2.11bViridis is perceptually uniform and readable to colour-blind viewers; the rest of the palette is Brewer'sEC/js/lpn-ramps.js: 41 Brewer ramps plus viridis/magma/inferno/plasma (CC0, BIDS) plus EPANET's rainbow plus Gray
2.11cThe features named as not simply downstream: scenarios, a world map, find and replace, flexible multi-labels, and a menu system we HOPE is easierEC/CLAUDE.md: scenarios are guarded by scenario_seam_check.php and setProp(); the world map is project.basemap with OSM and Mapbox raster tiles (task 497, EC/js/lpn-terrain.js); Find and replace is named in the lpn_ section (task 542); multi-line and link-anchored Text labels are claim 2.5b's own impossible round trip. Corrected 2026-09-06: the earlier wording named a profile tool and a search as places we are not downstream. Tom struck it, saying "EPANET has not only a profile tool, but graphs of time series, contours, frequency, and system flow", and he supplied this list himself. The menu-system claim is deliberately written as a hope, not a fact, because nobody has measured it.

3. Honesty items 2 to 5 (index.html)

#ClaimSource
3.1The licence paragraph, quotedTom Haws, verbatim, 2026-09-06, supplied in the brief for this site
3.2The software is GNU GPL v3 or laterEC/CLAUDE.md licence line; EC/dev/positioning.md §2
3.3EPANET carries no licence because a US government work has no copyright to license17 U.S.C. § 105; see 4.2
3.4"We are what we are ... we have no idea what we are not and what we don't know"Tom Haws, 2026-08-22, quoted in EC/dev/positioning.md §2, which records it as written for the LibreWaterNet splash page and therefore sanctioned for public use
3.5We do not publish a completeness claim against EPANETEC/dev/positioning.md §2: "never write a completeness claim against EPANET"; ~/webdev/librewaternet.org/CLAUDE.md restates it
3.6The AI paragraph, quotedTom Haws, verbatim, 2026-09-06, supplied in the brief for this site
3.7No foundation, no governance document, no fundingEC/dev/positioning.md §1 and §8. "No board" was removed 2026-09-06: Tom names a board member, Mary Cabais, P.E., in the Philippines.
3.827 languagesEC/lib/lang.ec.*.php is 27 files. Stated as 27 on librewaternet.org

4. Gratitude (index.html)

#ClaimSource
4.1EPANET was paid for by American taxpayers and given awayFollows from 4.2 and from EPANET being EPA work. Stated as a characterisation, not a budget figure
4.217 U.S.C. § 105: copyright is not available for any work of the United States government; a "work of the United States Government" is one prepared by an officer or employee as part of official duties (§ 101)uscode.house.gov, title 17 § 105; Copyright status of works by the federal government
4.3EPANET was created by Lewis A. Rossman for EPA and first appeared in 1993Wikipedia: EPANET; EPA Science Matters, EPANET 2.2.0
4.4A formal report on the EPANET water quality model was published in 1993OSTI record, EPANET water quality model; EPA Science Inventory
4.52.2 was the last release made by EPA itselfUSEPA/EPANET2.2 on GitHub; EC/js/vendor/README.md: "EPANET development moved to Open Water Analytics ... after EPA's 2.2.0". No date for 2.2 is stated on the site, see section 6
4.6EPANET is used by utilities, consultants, regulators, and academics worldwide, and its engine is embedded in many other packagesWikipedia: EPANET; EPA Science Matters
4.7Open Water Analytics is a community effort in collaboration with EPA; 2.3 released 2024-07-17, 2.3.5 on 2025-02-20OpenWaterAnalytics/EPANET releases; EC/js/vendor/README.md
4.8The browser build of the engine is MIT, © Luke Butler, wrapping MIT OWA-EPANET, compiled to WebAssemblyEC/js/vendor/README.md; EC/js/vendor/epanet-js.LICENSE. The package's own name is deliberately not printed on the site, see section 7
4.9Bootstrap 5.3.2, MIT, © 2011-2023 The Bootstrap AuthorsEC/js/vendor/README.md; the licence header inside the vendored files
4.10Colour schemes, Apache-2.0, © 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State UniversityEC/js/lpn-ramps.js licence block; colorbrewer2.org/export/LICENSE.txt
4.11viridis, magma, inferno, plasma released CC0 by Nathaniel J. Smith, Stefan van der Walt, and (viridis) Eric FiringEC/js/lpn-ramps.js; github.com/BIDS/colormap
4.12OpenStreetMap supplies the street basemap and Nominatim answers place-name search; Mapbox supplies satellite imagery and terrain elevationEC/CLAUDE.md: the four third-party requests, each opt-in
4.13The third-party code is vendored; a copy travels with the software rather than being fetched while you work. The two services in 4.12 are not code and are fetched over the network, each behind its own consent gateEC/js/vendor/README.md: "Everything this site loads comes from this site. There is no CDN, no hosted font, and no third-party code of any kind." Map tiles are the stated data exception, and the site says the tiles come from those services Corrected 2026-09-06: the page previously said \"all of them are vendored\" over a list that included OpenStreetMap, Nominatim, and Mapbox, which was false. The list is now split, and the services carry their own paragraph saying they are off until turned on.
4.14ColorBrewer published 2002 by Brewer, Harrower, and Penn State, funded by the NSF Digital Government program through the GeoVISTA CenterWikipedia: ColorBrewer; ColorBrewer: Learn More, Penn State
4.15The schemes are designed per class count and tested for photocopying, projection, and colour-blind readersEC/js/lpn-ramps.js: "Brewer PUBLISHES a separate, individually designed set for each class count"; ColorBrewer: Learn More on display environments and colourblind-safe options
4.16Cynthia Brewer received the ICA Carl Mannerfelt Gold Medal in 2023Wikipedia: Cynthia Brewer; Penn State Geography directory
4.17The acknowledgement sentence is fixed by Apache-2.0 clause 2, and clauses 4 and 5 forbid using the name to endorse or promoteEC/js/lpn-ramps.js licence block, which quotes clause 2 verbatim; the licence text
4.18The FSF released GPL version 3 on 2007-06-29fsf.org/news/gplv3_launched; the licence's own header, "Version 3, 29 June 2007"
4.19Net1, Net2, and Net3 are the example networks an EPANET-compatible program is checked againstEC/CLAUDE.md: .inp export "returns 1,280 numeric tokens across Net1/2/3 character-for-character"; EPA ships them with EPANET

5. epanet.html

#ClaimSource
5.1EPANET performs extended-period simulation of hydraulic and water-quality behaviour in pressurised pipe networksWikipedia: EPANET, quoting the program's own description
5.2The four consequences of public domain (no licence, no owner, anyone may take it private, cannot be withdrawn)Follows from 4.2. The "anyone may take it private" point is standard public-domain doctrine and is also what makes EPANET's engine embeddable in commercial products (4.6)
5.3A run report from our page prints a version higher than the one on EPA's download pageEC/js/vendor/README.md: "The run report prints it as 2.3.05 ... beside EPA's own download page, which still offers 2.2.0"
5.4Open development continues at github.com/OpenWaterAnalytics/EPANETThe repository itself

6. Stated on the site as unverified

  • The release date of EPANET 2.2. Wikipedia gives July 23, 2020. EC/js/vendor/README.md records "EPA's 2.2.0 of December 2019". We did not resolve which is right, so no 2.2 date appears anywhere on the site, and epanet.html says the sources disagree.
  • The exact administrative name of the EPA division. Sources give "Water Supply and Water Resources Division" (Wikipedia) and "Drinking Water Research Division" (the 1993 report abstract). The site says only "EPA's water research programme" and states that it did not verify the division name.

7. Constraints observed, and what they cost

  • Cynthia Brewer. The Apache-2.0 licence on her schemes (see 4.17) fixes the wording of the acknowledgement and forbids using the project name to endorse or promote. The site therefore reproduces the required sentence verbatim, in English, untranslated, in its own box, and puts the name in no heading and in no product or control name. The one prose mention names the source of the colours, which is attribution and not promotion.
  • No live commercial trademark. EC/dev/positioning.md §1 and ROADMAP task 296 ban naming competing products. The site therefore credits the browser build of the EPANET engine by licence, author, and function, but does not print the package's name. This is a real cost to a gratitude page: thanking a piece of software without saying its name is thin thanks, and the package in question is a library, not a competing product, even though a differently-named web application by other people is easily confused with it.
  • No claim about phones, no comparison, no feature table, no completeness claim. All from EC/dev/positioning.md and ~/webdev/librewaternet.org/CLAUDE.md.

8. Claims deliberately not made

  • Any number for how many people use the software.
  • Any statement about what EPA thinks of this, or would think of it.
  • Any date, roadmap, or promise about future features.
  • Any statement that the software is as capable as EPANET, in any respect other than the specific measured agreements in rows 2.6 to 2.8.

9. The doors, the footers, and the claims page

Added 2026-09-06, after a review found these assertions on the page with no row of their own.

#ClaimSource
9.1The network editor draws a looped network on a map, solves it, and saves or exports an EPANET fileEC/js/looped-network.js File menu: New, Open, Save, Import .inp, Import geo, lpn_file_export_inp. Corrected 2026-09-06: the page said "publish the drawing", and there is no publish, share, or image export
9.2Free, no sign-up, runs in your browser, in 27 languagesEC/CLAUDE.md: no database, no authentication, all computation client-side; EC/lib/lang.ec.*.php is 27 files
9.3The project is looking for advisors, bug reports, power users with wish lists, and non-profit directors, not for moneyEC/dev/positioning.md §1, Tom's own four phrases, used in his order
9.4It is a web page rather than a Windows programEPA distributes EPANET as a Windows program from its own page; this suite runs in a browser (EC/CLAUDE.md). Not a claim that EPANET is Windows-only, and the site does not make one
9.5Neither page makes any request to another server: no fonts, no scripts, no images, no analytics, no cookies, no storageVerified 2026-09-06 by reading both pages and the stylesheet: no <img>, no <script>, no url(), no @import, and no webfont link. This is the claim a sceptical reader tests first, so it is checked on every change
9.6EPANET runs an instant or a weekFollows from 5.1: extended-period simulation with a user-set duration
9.7This page exists because the site says every claim is checkableThe site said so before this page existed, which was the defect that produced it