The whole ledger

Every claim, with its source

One row per assertion on this site, 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. It is public at github.com/hawstom/engcalcs, so a row citing a path inside it is citing a file you can open. Where a claim rests on an outside source, the source is linked and you can go and disagree with us. Every claim number is a link to its own row.

One row per assertion, so each can be checked on its own. EC means the EngCalcs repository, which is public at github.com/hawstom/engcalcs; a row citing a path inside it is citing a file you can open. LWN means LibreWaterNet.org, the sister site whose pages this one mirrors; where a row says a sentence is carried from LWN, that site’s own claims ledger is its first source. Rendered to citations.html by tools/build.py.

Ledger written 2026-09-27.

1. The headline and lede (index.html)

The headline and the lede are Tom Haws’s own wording of 2026-09-27, made exact about the engine (OWA-EPANET 2.3.5, MIT-licensed) on his instruction the same day.

#ClaimSource
1.1EPANET++ extends the EPANET engine with scenarios, a world map, fire flow, customers, custom properties, and asset librariesRows 2.1 to 2.6, one per extension
1.2It is free, libre, and open sourceGNU GPL v3 or later: EC/CLAUDE.md license line; row 6.1
1.3It is built on OWA-EPANET 2.3.5, Open Water Analytics’ MIT-licensed continuation of EPA’s EPANETThe default engine for a new project is EPANET (EC/js/looped-network.js, defaultSettings(), engine: 'epanet'). The engine is OWA-EPANET 2.3.5 (EC/js/vendor/README.md); see row 3.1
1.4The solver is the one the U.S. Environmental Protection Agency wrote and gave awayEPANET was written at EPA and is public domain under 17 U.S.C. § 105 (rows 7.2, 7.3). The engine we run is Open Water Analytics’ continuation of it (row 7.6); see section 9
1.5Asset libraries can be imported across projectsEC commit 640c018f "Import a library from another project file", merged to master in bfb5d37d (2026-09-18) on Tom’s all-clear
1.6It is not EPANET, and it is not affiliated with or endorsed by the EPARow 1.8
1.7It is one of many tools built on the engine EPA releasedRow 7.5: EPANET’s engine sits under many other programs, commercial and free
1.8The first-screen disclaimer: EPANET is a program of the US EPA; this site is not EPA’s; EPANET++ is not EPANET, not a version of it, and not an official successor; EPA has not reviewed, endorsed, approved, sponsored, or been askedepa.gov/water-research/epanet. Adapted from not-epanet.org’s disclaimer paragraph, which its own ledger sources to Tom Haws’s confirmation of 2026-09-06 that EPA had not been contacted. See section 9
1.9The screenshot title block: EPA Net3, 92 junctions, EPANET engine, GPL v3+Net3 as EPA ships it has 92 junctions, 2 reservoirs, and 3 tanks (97 nodes; the import on the Screenshots page reports 97). Carried from LWN

2. Why ++ (index.html, features.html)

Each row is a statement about EPANET++ and not about EPANET. No row claims EPANET lacks the feature.

#ClaimSource
2.1Scenarios hold only their differences from the base model, with an override report and a scenario comparison reportEC/dev/roadmap-closed-ids.md Tasks 201, 407, 412, 512; EC/dev/features.md
2.2A world map, street or satellite, or your own backdrop; a wizard moves an XY model onto the map and converts nothing until you confirmEC/dev/features.md (Tasks 145, 276, 476); EC/js/lpn-terrain.js. The confirm-or-cancel behavior is carried from LWN’s Screenshots plate 6
2.3A whole-system fire flow analysis reporting, per junction, whether the required flow is met and which failure it hits, including pressure pulled down elsewhereEC/dev/roadmap-closed-ids.md Task 530: whole-system sweep, Failure modes naming both modes, drawdowns measured, per-junction required flow
2.4Customers: metered services with demand, service count, and pattern, connected by a draggable line to the node or pipe that serves themEC/dev/roadmap-closed-ids.md Task 247: "metered demands lumped to the nearest node, with station, offset, per-service demand, service count, pattern and a draggable connection point that re-attaches to another asset"; EC merge e82d8f9c
2.5Custom properties on any kind of asset, with labels and limits, overridable by a scenario, and flagged in place rather than cleared when a value breaks its limitsEC/dev/custom-property-scope.md: phases 1 and 2 shipped 2026-09-13; "everything is overridable by a scenario"; a value that breaks its design is "flagged in place, never cleared" (EC/dev/ROADMAP.md Task 636)
2.6Libraries of pipe types, fittings, curves, patterns, controls, and rules, defined once and referred to by name; editing a pipe type edits every pipe using itThe six Libraries sections are lpn_library_patterns, _curves, _pipetypes, _fittings, _controls, _rules in EC/lib/lang.ec.en.php; Task 465 (pipe types), Task 590 (fittings)
2.7Importing libraries skips a name already taken and lists it, so nothing already in the project changesEC/lib/lang.ec.en.php, lpn_library_import_tip and lpn_library_import_conflict
2.8The fittings list starts from the EPANET user manual’s own table and is editableEC/lib/lang.ec.en.php, lpn_library_fittings_source: the thirteen fittings of Table 3.3 of the EPANET 2.2 user manual
2.9Group edit three ways: find and replace, select an area, spreadsheet tablesEC/dev/features.md (Task 266)
2.10All of it is free, including the parts that are normally the paid tierGPL v3 or later with no paid tier (row 6.1). "Normally the paid tier" is sanctioned wording in EC/dev/positioning.md §8; no vendor or price is named

3. What is EPANET’s (index.html, disclosures.html)

#ClaimSource
3.1The engine is a 679 KB browser build of OWA-EPANET 2.3.5, released 2025-02-20, loaded on demandEC/js/vendor/epanet-js.js is 678,695 bytes. EC/js/vendor/README.md names the engine OWA-EPANET 2.3.5. OpenWaterAnalytics/EPANET releases, v2.3.5, February 20, 2025
3.2Extended-period runs, water age, source trace, chemical decay, pump energy, rule-based controls, and PRV/PSV/FCV valves run through the EPANET engine onlyEC/CLAUDE.md, lpn_ section: EPS "through the EPANET engine only"; "PRV/PSV/FCV solve through EPANET only". Water quality and pump energy are run-based (Tasks 566, 566.01)
3.3Our own solver answers a single instant, pressures and flows only, with no time dimensionEC/CLAUDE.md: "The built-in solver solves one instant and is not getting a time dimension"
3.4EPANET++ reads and writes EPANET’s .inp file, and an unedited value comes back out character for characterEC/CLAUDE.md: "Export is character-exact on Net1/2/3"; EC/js/lpn-inp.js
3.5A project also saves in a format of our own, because an .inp cannot hold scenarios, profile paths, the backdrop image, map view, multi-line Text, or longitude and latitude; five round trips are reported rather than droppedCarried from LWN; its ledger rows 2.5a and 2.5b cite EC/js/looped-network.js serializeProject() and Task 281
3.6Extended-period results are checked against EPA’s own Net3 report: 2,425 head comparisons over 25 steps, to 0.005 ft; water quality worst 0.105%; pump energy against the report’s energy tableEC/dev/lpn-spike/eps-net3-harness.js; EC/dev/roadmap-closed-ids.md Tasks 566 and 566.01. Carried from LWN
3.7The Hazen-Williams pair is derived from EPANET’s 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. Carried from LWN
3.8The vocabulary is EPANET’s: element names, the four curve types, the grammar of a rule, unit-switch behaviorEC/CLAUDE.md: "otherwise default to EPANET terminology"; "Four kinds" of curve; EC/js/lpn-rules.js
3.9The curve editor and the asset table come from EPANET’s; EPANET’s five map colors are in the palette unsoftened; the default ramp is ViridisCarried from LWN; its ledger rows 2.11 and 2.11a cite EC/js/lpn-ramps.js and defaultSettings()

4. What exists, languages, and the invitation (index.html)

#ClaimSource
4.1Draw junctions, reservoirs, tanks, pipes, pumps, valves, customers, and text on XY or on a latitude and longitude map with street or satellite viewEC/dev/features.md; customers per row 2.4
4.2Opening an .inp reports every difference rather than ignoring anything quietlyEC/CLAUDE.md: "Import reports every difference, never rejects, never drops silently"
4.3Patterns, controls, tanks filling and draining, playback, water quality, and pump run time and energy costEC/dev/features.md, Extended period simulations section
4.4Color the map by pressure, flow, velocity, or head loss; 41 color rampsCarried from LWN; EC/js/lpn-ramps.js
4.5Labels you drag, set, and keep, with leader linesEC/js/lpn-geom.js, EC/js/lpn-collide.js; EC/dev/positioning.md §4
4.6"And although you of course prefer working on your PC, it works also on a phone in tall mode."The one sanctioned phone sentence, verbatim: EC/dev/positioning.md §3
4.7The network editor is in 27 languages, translated in the program itself; right-to-left languages lay out right-to-leftEC/lib/lang.ec.*.php is 27 files; EC/CLAUDE.md: lpn_ is "in scope in all 26 languages" beside English
4.8The translations are AI-made against a hydraulics glossary, and each language’s quality is recorded openlyEC/dev/scripts/glossary.json; QUALITY in EC/lib/Language.Settings.php
4.9Looking for stakeholders, not for money: advisors, bug reports, power users with wish lists, non-profit directorsTom Haws’s four phrases, EC/dev/positioning.md §1, used in his order
4.10There is no foundation and no governing document yetEC/dev/positioning.md §1 and §8

5. Screenshots (screenshots.html)

#ClaimSource
5.1Every caption and plateCarried from LWN’s screenshots page with the same fifteen captures, vetted publishable there against EC/dev/screenshots/INDEX.md. The counts are made consistent (fifteen throughout), and "upload for a spin" became "open it and try", because nothing is uploaded
5.2The network in most plates is EPA’s Net3 placed on the streets of Novato, CaliforniaCarried from LWN

6. License and privacy (index.html, disclosures.html)

#ClaimSource
6.1The software is GNU GPL v3 or later, with no paid tierEC/CLAUDE.md license line; EC/dev/positioning.md §2
6.2The license paragraph in Disclosures item 2, quotedTom Haws, 2026-09-06, carried from LWN
6.3Every calculation runs in your browser; there is no account; it installs and runs offlineEC/CLAUDE.md: no database, no authentication, all computation client-side; EC/dev/features.md (install for offline use)
6.4Four features reach another server: OSM street tiles (shown on the first, empty project), Mapbox satellite tiles, Nominatim place-name search, and Mapbox terrain elevations; the last two ask their own consentEC/CLAUDE.md, "Four third-party requests, all on this page"
6.5No page of this site makes a request to another server, and none stores anything on your devicecheck.sh check 5 fails on any cross-origin fetch; the site has no script at all

7. Credits and About EPANET (credits.html, epanet.html)

Carried from LWN’s Credits and About EPANET pages; its ledger section 4 and 5 rows give the outside sources, repeated here in brief.

#ClaimSource
7.1EPANET is a program of the US EPA, obtained from epa.gov/water-research/epanetepa.gov/water-research/epanet
7.2A work of the US government cannot be copyrighted in the United States17 U.S.C. § 105
7.3EPANET was created by Lewis A. Rossman for EPA and first appeared in 1993, with a formal report on its water quality model the same yearWikipedia: EPANET; OSTI record
7.42.2 was the last release EPA itself madeUSEPA/EPANET2.2; EC/js/vendor/README.md
7.5EPANET is used worldwide and its engine is embedded in many other programsWikipedia: EPANET; EPA Science Matters
7.6Open Water Analytics continued EPANET in the open, in collaboration with EPA: 2.3 on 2024-07-17, 2.3.5 on 2025-02-20OpenWaterAnalytics/EPANET releases
7.7The browser build of the engine is epanet-js, MIT, © Luke Butler, wrapping MIT OWA-EPANET compiled to WebAssemblyEC/js/vendor/README.md; EC/js/vendor/epanet-js.LICENSE. Named on the Credits page only, as a license credit (EC/dev/positioning.md §1, second exception)
7.8Bootstrap 5.3.2 (MIT); Brewer color schemes (Apache 2.0); viridis, magma, inferno, plasma (CC0)EC/js/vendor/README.md; EC/js/lpn-ramps.js
7.9Cynthia Brewer published the schemes in 2002 with Mark Harrower and Penn State, and received the ICA Carl Mannerfelt Gold Medal in 2023Wikipedia: Cynthia Brewer
7.10The FSF released GPL version 3 on 2007-06-29fsf.org/news/gplv3_launched
7.11A run report from the editor prints a version higher than EPA’s download page offersEC/js/vendor/README.md: printed as 2.3.05, beside EPA’s page offering 2.2.0
7.12The street map shows on the first, empty project; the search and the elevations each ask their own permissionRow 6.4. LWN’s Credits page still says both services are off until turned on; that sentence was corrected here

8. Disclosures items 3 to 5 (disclosures.html)

#ClaimSource
8.1Development started on 28 July 2026; as of 1 September 2026 the software had carried one real-world design reportTom Haws, 2026-09-06, carried from LWN
8.2We do not publish a completeness claim against EPANETEC/dev/positioning.md §2
8.3The AI paragraph, quotedTom Haws, 2026-09-06, carried from LWN
8.4No EPA, government, or university affiliation, no sponsor, no foundation, no fundingEC/dev/positioning.md §1 and §8

9. Stated with a caution

  • "The same solver the U.S. Environmental Protection Agency wrote" (row 1.4). The engine we run is OWA-EPANET 2.3.5, which Open Water Analytics developed from EPA’s code after EPA’s own 2.2, in collaboration with EPA. The About EPANET and Credits pages say so. OWA-EPANET is MIT licensed; the EPA original is public domain.
  • EPA has not been asked (row 1.8). Confirmed by Tom Haws on 2026-09-06 for the sister site. It must be confirmed again if anyone writes to EPA.
  • The exact release date of EPANET 2.2 and the name of the EPA division are stated on the About EPANET page as unverified, as on LWN.

10. Who we are (advisors.html)

Not yet published (noindex, out of the sitemap and the nav) until Tom fills in its placeholder cards. The two sentences already written about him.

#ClaimSource
10.1Tom’s advisor card: his first network model (1990, Cotton County Rural Water District, Micro Hardy Cross), software for engineers since 1995, free multi-lingual online calculators since 2010, and why he made EPANET++Tom Haws’s own words, 2026-09-28, supplied for this card and used verbatim. The 2010 date agrees with the earliest Internet Archive capture he found; the server’s own log shows EngCalcs running by 2009-10-20 (EC/dev/earliest-date.md)

11. Claims deliberately not made

  • Any statement that EPANET++ does everything EPANET does, or is as capable in any respect other than the measured agreements in row 3.6.
  • Any statement that EPANET lacks a feature EPANET++ has.
  • Any statement about what EPA thinks of this, or would think of it.
  • Any number for how many people use the software, and any date or promise about future features.
  • Any competing application or live commercial trademark, by name.