Validation
The same problem, three ways: a published reference worked example, HydroComplete's shipped engine, and the difference between them. No number on this page is typed in by hand — the HydroComplete column is computed by the engines every time the site is built.
src/engines/ at commit ab307ad561Summary
| Case | Check | Reference | HydroComplete | Delta | Status |
|---|---|---|---|---|---|
| SCS curve-number runoff depth · IDEAL · TR-55 (1986) Ex. 2-1 to 2-4 | |||||
| Ex. 2-1: CN 70, P 6.0 in → Q | 2.81 in | 2.805 in | −0.005 (−0.17%) | Match | |
| Ex. 2-2: CN 75 → Q | 3.28 in | 3.282 in | +0.002 (+0.06%) | Match | |
| Ex. 2-3: CN 77 → Q | 3.48 in | 3.479 in | −0.001 (−0.03%) | Match | |
| Ex. 2-4: CN 74 → Q | 3.19 in | 3.185 in | −0.005 (−0.16%) | Differs | |
| Area-weighted curve number · IDEAL · TR-55 (1986) Worksheet 2, Ex. 2-1/2-2 | |||||
| Ex. 2-1 weighted CN | 70.1 | 70.10 | 0.00 (0.00%) | Match | |
| Ex. 2-2 weighted CN | 75.2 | 75.20 | 0.00 (0.00%) | Match | |
| TR-55 three-segment time of concentration · Conveyance · TR-55 (1986) Ex. 3-1 | |||||
| Sheet-flow travel time | 0.30 hr | 0.296 hr | −0.004 (−1.37%) | Match | |
| Shallow-concentrated travel time | 0.24 hr | 0.241 hr | +0.001 (+0.42%) | Match | |
| Channel travel time | 0.99 hr | 0.991 hr | +0.001 (+0.06%) | Match | |
| Total Tc | 1.53 hr | 1.528 hr | −0.002 (−0.16%) | Match | |
| TR-55 graphical peak discharge · SEDCAD4 · TR-55 (1986) Ex. 4-1 + Table F-1 | |||||
| 25-yr peak discharge qp | 345 cfs | 344.7 cfs | −0.3 (−0.07%) | Match | |
| Runoff depth Q used in qp | 3.28 in | 3.282 in | +0.002 (+0.06%) | Match | |
| SCS dimensionless unit-hydrograph peak · Hydraflow · NEH-630 Ch. 16 (2007) Ex. 16-1 | |||||
| Example 16-1: qp (Tc = 2.3 h) | 1,455 ft³/s | 1,452.0 ft³/s | −3.0 (−0.21%) | Match | |
| Figure 16-2 area B: qp (Tc = 6.0 h) | 557 ft³/s | 556.6 ft³/s | −0.4 (−0.07%) | Match | |
| Example 16-1: time to peak Tp | 1.53 h | 1.533 h | +0.003 (+0.22%) | Match | |
| Detention routing, storage-indication (Modified Puls) · Hydraflow · HEC-22 3rd ed. Ex. 8-9 | |||||
| Peak routed outflow | 18.3 ft³/s | 18.28 ft³/s | −0.02 (−0.09%) | Match | |
| Stage at peak outflow | 37.58 ft | 37.575 ft | −0.005 (−0.01%) | Match | |
| Storage at peak outflow | 27,816 ft³ | 27,831.6 ft³ | +15.6 (+0.06%) | Match | |
| Mass balance: outflow volume + residual storage vs inflow volume (closed form) | 0 (exact) ft³ | 0.0 ft³ | 0.0 | Match | |
| Stage-storage from an elevation-area table · Hydraflow · NCDEQ SW Design Manual Part B, Table 5 | |||||
| Cumulative volume at 726 ft | 11,500 cf | 11,500.0 cf | 0.0 (0.00%) | Match | |
| Cumulative volume at 727 ft | 26,250 cf | 26,250.0 cf | 0.0 (0.00%) | Match | |
| Cumulative volume at 728 ft | 45,250 cf | 45,250.0 cf | 0.0 (0.00%) | Match | |
| Cumulative volume at 729 ft | 69,000 cf | 69,000.0 cf | 0.0 (0.00%) | Match | |
| Orifice stage-discharge · Hydraflow · HEC-22 3rd ed. Ex. 8-5 | |||||
| Q at stage 11.0 m | 0.045 m³/s | 0.0452 m³/s | +0.0002 (+0.40%) | Match | |
| Q at stage 12.0 m | 0.065 m³/s | 0.0652 m³/s | +0.0002 (+0.27%) | Match | |
| Riser pipe stage-discharge (weir-to-orifice transition) · Hydraflow · HEC-22 3rd ed. Ex. 8-6 | |||||
| Q at 10.9 m (weir control) | 0.10 m³/s | 0.097 m³/s | −0.003 (−3.20%) | Match | |
| Q at 11.4 m (orifice control) | 0.45 m³/s | 0.454 m³/s | +0.004 (+0.95%) | Match | |
| Q at 12.0 m (orifice control) | 0.64 m³/s | 0.642 m³/s | +0.002 (+0.38%) | Match | |
| Culvert headwater, inlet and outlet control · Hydraflow · HDS-5 3rd ed. DG 1.3 + App. A | |||||
| A. Inlet-control HW, square edge w/ headwall (closed form, eq. A.3) | 9.29 ft | 9.290 ft | +0.004 (+0.04%) | Match | |
| B. Outlet-control HW (CDF: ELho 107.0 − ELi 100.0) | 7.0 ft | 6.97 ft | −0.03 (−0.43%) | Match | |
| C. Controlling HW as designed (groove end, CDF HWi) | 7.97 (HY-8: 7.9) ft | 7.930 ft | −0.040 (−0.50%) | Match | |
| D. Inlet-control HW, groove end w/ headwall (closed form, eq. A.3) | 7.93 ft | 7.930 ft | +0.005 (+0.06%) | Match | |
| Triangular gutter flow (spread) · Conveyance · HEC-22 3rd ed. Ex. 4-1 | |||||
| Q at T = 8.2 ft | 1.4 ft³/s | 1.41 ft³/s | +0.01 (+0.73%) | Match | |
| Q at T = 9.0 ft (Solution 1 in reverse) | 1.8 ft³/s | 1.81 ft³/s | +0.01 (+0.42%) | Match | |
| Manning's equation, trapezoidal channel capacity and normal depth · Conveyance · HEC-22 3rd ed. Ex. 5-1 | |||||
| Capacity Q at d = 1.64 ft | 59.7 ft³/s | 59.42 ft³/s | −0.28 (−0.46%) | Match | |
| Velocity V | 4.8 ft/s | 4.81 ft/s | +0.01 (+0.12%) | Match | |
| Normal depth for Q = 59.7 ft³/s | 1.64 ft | 1.643 ft | +0.003 (+0.18%) | Match | |
| Manning's equation, circular pipe full and half full · Conveyance · closed form (Manning, circular segment) | |||||
| Full-pipe capacity | 22.683 ft³/s | 22.6833 ft³/s | 0.0000 (0.00%) | Match | |
| Half-full flow | 11.342 ft³/s | 11.3416 ft³/s | 0.0000 (0.00%) | Match | |
| Half-full velocity (= full velocity) | 7.220 ft/s | 7.2200 ft/s | −0.0003 (0.00%) | Match | |
| RUSLE slope length-steepness factor LS · SEDCAD4 · AH-703 (1997) Ch. 4, p. 112 | |||||
| LS, 400 ft at 10% | 2.84 | 2.836 | −0.004 (−0.15%) | Match | |
| S at 10% (eq. 4-5, via LS at λ = 72.6 ft) | 1.1717 | 1.17166 | 0.00000 (0.00%) | Match | |
| S at 5% (eq. 4-4, via LS at λ = 72.6 ft) | 0.5693 | 0.56933 | 0.00000 (0.00%) | Match | |
| MUSLE single-storm sediment yield · SEDCAD4 · closed form (MUSLE, HEC-HMS App. Guide eq. 11) | |||||
| Event sediment yield Y | 875.80 tons | 875.800 tons | +0.003 (0.00%) | Match | |
| Runoff energy term 95 (Q qp)0.56 | 2316.9 | 2,316.90 | −0.02 (0.00%) | Match | |
| Camp's ideal-basin trap efficiency (two-bin PSD) · SEDCAD4 · closed form (Camp 1946; Stokes/Rubey) | |||||
| Overall trap efficiency | 75.3 % | 75.26 % | 0.00 (0.00%) | Match | |
| Silt settling velocity (Stokes) | 2.939e-4 ft/s | 2.939e-4 ft/s | 0.00e+0 (0.00%) | Match | |
| Fine-sand settling velocity (Rubey) | 0.0593 ft/s | 0.05930 ft/s | 0.00000 (0.00%) | Match | |
| NCDEQ Simple Method design volume (1-inch storm) · IDEAL · closed form (NCDEQ Part B Simple Method) | |||||
| Runoff coefficient RV | 0.635 | 0.6350 | 0.0000 (0.00%) | Match | |
| Design volume DV | 27660.6 ft³ | 27,660.60 ft³ | 0.00 (0.00%) | Match | |
| Design volume in acre-ft | 0.6350 ac-ft | 0.63500 ac-ft | 0.00000 (0.00%) | Match | |
| Weir outlets: emergency spillway and rectangular weir · Hydraflow · HEC-22 Ex. 8-8 + TR-55 Ex. 6-1 | |||||
| HEC-22 Ex. 8-8 spillway Q at Hp = 0.98 ft | 40.6 ft³/s | 40.57 ft³/s | −0.03 (−0.07%) | Match | |
| TR-55 Ex. 6-1 weir qo at Hw = 5.7 ft, Lw = 4.1 ft (eq. 6-4 closed form) | 178.5 ft³/s | 178.54 ft³/s | 0.00 (0.00%) | Match | |
| HydroCAD 10.10-4a side-by-side: real project file, runoff, culvert outlets and pond routing · Hydraflow · HydroCAD 10.10-4a report, pp. 2, 8–10, 14 | |||||
| 100-yr combined inflow peak to 27P (p. 9) | 410.34 cfs | 410.339 cfs | −0.001 (0.00%) | Match | |
| 100-yr time of peak (p. 9) | 12.06 hr | 12.000 hr | −0.060 (−0.50%) | Match | |
| 100-yr inflow volume, HydroCAD 5.00–20.00 hr span (p. 9) | 28.354 af | 28.3428 af | −0.0112 (−0.04%) | Match | |
| 100-yr full-storm volume vs closed-form CN volume ΣA·Q/12 | 30.391 af | 30.3775 af | −0.0140 (−0.05%) | Match | |
| 2-yr combined inflow peak to 27P (p. 14) | 113.98 cfs | 114.267 cfs | +0.287 (+0.25%) | Match | |
| 2-yr time of peak (p. 14) | 12.07 hr | 12.050 hr | −0.020 (−0.17%) | Match | |
| 2-yr inflow volume, 5.00–20.00 hr span (p. 14) | 7.589 af | 7.5904 af | +0.0014 (+0.02%) | Match | |
| 2-yr full-storm volume vs closed-form CN volume | 8.243 af | 8.2417 af | −0.0012 (−0.01%) | Match | |
| 2-yr peak stage in 27P (p. 14) | 665.07 ft | 665.068 ft | −0.002 (0.00%) | Match | |
| 2-yr storage in 27P at 20 hr (p. 14) | 330,391 cf | 330,746.5 cf | +355.5 (+0.11%) | Match | |
| #1 24 in RCP at HW 672.04 ft, head 4.28 ft — HydroCAD outlet-depth convention (p. 10) | 29.58 cfs | 29.615 cfs | +0.035 (+0.12%) | Match | |
| #1 24 in RCP, same head — HydroComplete default (HDS-5, ho = (dc + D)/2) | 29.58 cfs | 30.050 cfs | +0.470 (+1.59%) | Match | |
| #2 6 in CPP at HW 672.04 ft, head 5.22 ft (p. 10) | 1.52 cfs | 1.529 cfs | +0.009 (+0.57%) | Match | |
| #3 4.7 in CPP at HW 672.04 ft, head 7.04 ft (p. 10) | 1.03 cfs | 1.034 cfs | +0.004 (+0.41%) | Match | |
| 100-yr storage at the 27P peak, HydroCAD constant-storage convention (p. 9) | 987,220 cf | 987,219.5 cf | −0.5 (0.00%) | Match | |
| 100-yr 27P outflow volume through 20 hr, same convention (p. 9) | 5.702 af | 5.7294 af | +0.0274 (+0.48%) | Match | |
100-yr peak stage in 27P — HydroCAD convention replicated (aboveTable:'constant-storage') | 672.04 ft | 673.254 ft | +1.214 (+0.18%) | Convention | |
| 100-yr peak outflow from 27P — HydroCAD convention replicated | 32.13 cfs | 38.629 cfs | +6.499 (+20.23%) | Convention | |
100-yr peak stage in 27P — HydroComplete default (aboveTable:'extend-last-area') | 672.04 ft | 667.637 ft | −4.403 (−0.66%) | Convention | |
| 100-yr peak outflow from 27P — HydroComplete default | 32.13 cfs | 1.045 cfs | −31.085 (−96.75%) | Convention | |
| 26P stage at 36,341 cf on its table, no outflow (p. 8) | 664.81 ft | 664.803 ft | −0.007 (0.00%) | Match | |
| 26P storage after feeding 36,341 cf (p. 8) | 36,341 cf | 36,341.0 cf | 0.0 (0.00%) | Match | |
| HEC-HMS 4.13 side-by-side: real basin model, frequency-storm runoff volume and peaks · Hydraflow · HEC-HMS 4.13 run summaries pp. 1–2 + Run_53 .results | |||||
| WS8 100-yr runoff volume, CN 86.2 (Run_53 results) | 13.910 af | 13.8979 af | −0.0124 (−0.09%) | Match | |
| WS8 100-yr excess depth, CN 86.2 (Run_53 results; closed-form CN) | 6.909 in | 6.9090 in | −0.0001 (0.00%) | Match | |
| WS3 100-yr runoff volume, CN 84.5 (Run_53 results) | 2.442 af | 2.4418 af | −0.0002 (−0.01%) | Match | |
| WS8 100-yr peak, CN 86.2, HMS Tp placement (Run_53 results) | 150.93 cfs | 149.430 cfs | −1.503 (−1.00%) | Match | |
| WS8 100-yr time of peak (Run_53: 12:08) | 12.133 hr | 12.1700 hr | +0.0367 (+0.30%) | Match | |
| WS3 100-yr peak, CN 84.5, HMS Tp placement (Run_53 results) | 20.56 cfs | 20.510 cfs | −0.048 (−0.23%) | Match | |
| WS3 100-yr time of peak (Run_53: 12:17) | 12.283 hr | 12.3200 hr | +0.0367 (+0.30%) | Match | |
| WS8 100-yr peak, CN 87, HMS Tp placement (run summary p. 1) | 152.37 cfs | 150.800 cfs | −1.570 (−1.03%) | Match | |
| WS3 100-yr peak, CN 85, HMS Tp placement (run summary p. 1) | 20.70 cfs | 20.650 cfs | −0.050 (−0.24%) | Match | |
| WS8 2-yr peak, CN 87, HMS Tp placement (run summary p. 2) | 46.39 cfs | 46.290 cfs | −0.100 (−0.22%) | Match | |
| WS3 2-yr peak, CN 85, HMS Tp placement (run summary p. 2) | 5.94 cfs | 5.950 cfs | +0.010 (+0.17%) | Match | |
| WS8 100-yr peak, CN 87, HydroComplete default Tp = ⅔Tc (run summary p. 1) | 152.37 cfs | 149.250 cfs | −3.120 (−2.05%) | Match | |
| WS3 100-yr peak, CN 85, HydroComplete default Tp = ⅔Tc (run summary p. 1) | 20.70 cfs | 20.060 cfs | −0.640 (−3.09%) | Match | |
HydroCAD and HEC-HMS side-by-side
Cases 19 and 20 are real project files, not textbook examples. The HydroCAD case is a McGill Associates scratch model of a 55.4-acre site in northern Illinois (HydroCAD 10.10-4a, report printed 3/3/2026): four subcatchments into an existing pond with a three-culvert outlet stack and a second pond behind it. The HEC-HMS case is the 4.x model of the same site built later in the project. HydroComplete imports each file through the same importer the app uses, runs it at the other program's time step, and the rows above are the other program's printed numbers next to ours, page cited. The site, its owner and the file names are not published; the subcatchment areas, curve numbers, times of concentration, stage-area tables and culvert sizes are, because a reviewer needs them to reproduce the run and they identify nothing.
What matched. Runoff peaks and volumes against HydroCAD, the culvert barrel discharges once the same outlet-datum convention is used, the 2-yr pond routing, and the second pond's stage from storage; against HEC-HMS, the frequency-storm runoff volumes and peaks once the unit hydrograph is placed where HMS places it. All of them inside tolerances fixed before the runs (0.5 % on volumes, 3 % on peaks, 0.02 ft on stage, 1–2 % on culvert discharge) and most of them far inside; the deltas are in the tables. Reference volumes are compared over the window each program actually computed (HydroCAD ran 5.00–20.00 hr and said so); the full-storm volumes are checked against the closed-form curve-number volume alongside them.
What differs, and why. Two conventions, both documented and both switchable: HydroCAD's barrel equation takes the outlet crown as its downstream datum where HDS-5 takes (dc + D)/2 (1.6 % on a 24-in pipe, nothing on small full-flowing pipes), and HEC-HMS places the unit-hydrograph peak at Δt/2 + lag where NEH-630 places it at ⅔Tc (2–3 % on these basins). The one place the tools legitimately diverge is what to do when a pond rises above its stage-storage table. On this file the 100-yr pool went 5 ft above the top of the table; HydroCAD, by its own documented convention, credits no storage above the table and flagged the result as oscillating. Those rows are shown as Convention, not pass/fail: our replication of HydroCAD's convention, our default (the top surface area carried upward), and HydroCAD's message text with the link, so a reviewer can see exactly why neither number is the engineering answer and what the model needs instead. 4 rows on this page are marked that way; they are not counted as matches.
The standing offer stands. Send us a .hcp (HydroCAD) or .basin/.hms (HEC-HMS) project and we will run it and publish the delta here, with your permission and your name on it or not, as you prefer: support@hydrocomplete.com. Nothing on this page is a "typical" result quoted from a brochure; every HydroCAD and HEC-HMS number here came off a report or results file we have in hand, and every HydroComplete number is recomputed at build time.
A full pre/post routing walk-through with every intermediate table is in the worked example Detention pond routing by Modified Puls, pre- vs post-development (NC).
Case detail
SCS curve-number runoff depth
Published reference
USDA-NRCS, Urban Hydrology for Small Watersheds, Technical Release 55, 2nd ed., June 1986 (210-VI-TR-55). Chapter 2, Examples 2-1 to 2-4, Worksheet 2 (Figures 2-5 to 2-8), pp. 2-13 to 2-16. [document]
Inputs
| Rainfall P (25-yr, 24-hr) | 6.0 in |
| Curve numbers (weighted, from Worksheet 2) | 70, 75, 77, 74 |
| Antecedent condition | ARC II (engine argument antecedentDays = 3 selects no CN adjustment) |
Formula and hand steps
TR-55 equations 2-3 and 2-4:
For CN = 70: S = 1000/70 − 10 = 4.286 in, Ia = 0.857 in, Q = (6.0 − 0.857)² / (6.0 − 0.857 + 4.286) = 26.45 / 9.429 = 2.81 in. The worksheets take Q from Table 2-1 (CN tabulated every 5) with linear interpolation for CN 74 and 77; HydroComplete evaluates equation 2-3 directly.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Ex. 2-1: CN 70, P 6.0 in → Q | 2.81 in | 2.805 in | −0.005 (−0.17%) | ±0.005Worksheet reports Q to 0.01 in | Match |
| Ex. 2-2: CN 75 → Q | 3.28 in | 3.282 in | +0.002 (+0.06%) | ±0.005 | Match |
| Ex. 2-3: CN 77 → Q | 3.48 in | 3.479 in | −0.001 (−0.03%) | ±0.005 | Match |
| Ex. 2-4: CN 74 → Q | 3.19 in | 3.185 in | −0.005 (−0.16%) | ±0.005 | Differs |
Area-weighted curve number
Published reference
USDA-NRCS TR-55 (1986), Chapter 2, Worksheet 2 for Examples 2-1 and 2-2 (Figures 2-5 and 2-6), pp. 2-13 to 2-14. [document]
Inputs
| Ex. 2-1 | Memphis, HSG B, pasture good condition: CN 61 × 30 ac; Loring, HSG C, pasture good: CN 74 × 70 ac |
| Ex. 2-2 | CN 70 × 75 ac; CN 80 × 100 ac; CN 74 × 75 ac (250 ac) |
Formula and hand steps
Ex. 2-1: (61 × 30 + 74 × 70) / 100 = 7,010 / 100 = 70.1 (worksheet: "Use CN 70"). Ex. 2-2: (70 × 75 + 80 × 100 + 74 × 75) / 250 = 18,800 / 250 = 75.2 ("Use CN 75").
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Ex. 2-1 weighted CN | 70.1 | 70.10 | 0.00 (0.00%) | ±0.05 | Match |
| Ex. 2-2 weighted CN | 75.2 | 75.20 | 0.00 (0.00%) | ±0.05 | Match |
TR-55 three-segment time of concentration
Published reference
USDA-NRCS TR-55 (1986), Chapter 3, Example 3-1 and Worksheet 3 (Figure 3-2), pp. 3-4 to 3-5. [document]
Inputs
| Sheet flow AB | dense grass, n = 0.24, L = 100 ft, P2 = 3.6 in, s = 0.01 |
| Shallow concentrated BC | unpaved, L = 1,400 ft, s = 0.01 |
| Channel CD | n = 0.05, a = 27 ft², pw = 28.2 ft, s = 0.005, L = 7,300 ft |
| Channel geometry given to HC | The worksheet gives a and pw directly; the engine takes a section. A rectangular channel (z = 0) with b = 26.134 ft and d = 1.0331 ft reproduces a = 27.0 ft² and pw = 28.2 ft (r = 0.957 ft) exactly. |
Formula and hand steps
Sheet: 0.007 (24)0.8 / (3.60.5 · 0.010.4) = 0.0890 / 0.3007 = 0.296 hr (worksheet rounds to 0.30). Shallow: V = 1.61 ft/s, Tt = 1400 / (3600 · 1.61) = 0.241 hr. Channel: V = 29.8 · 0.9572/3 · 0.0707 = 2.05 ft/s, Tt = 7300 / (3600 · 2.05) = 0.99 hr. Sum = 1.53 hr.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Sheet-flow travel time | 0.30 hr | 0.296 hr | −0.004 (−1.37%) | ±0.005worksheet precision 0.01 hr | Match |
| Shallow-concentrated travel time | 0.24 hr | 0.241 hr | +0.001 (+0.42%) | ±0.005 | Match |
| Channel travel time | 0.99 hr | 0.991 hr | +0.001 (+0.06%) | ±0.005 | Match |
| Total Tc | 1.53 hr | 1.528 hr | −0.002 (−0.16%) | ±0.01sum of three values each rounded to 0.01 hr | Match |
TR-55 graphical peak discharge
Published reference
USDA-NRCS TR-55 (1986), Chapter 4, Example 4-1 and Worksheet 4, pp. 4-2 to 4-3; Appendix F, Table F-1 (regression coefficients behind Exhibit 4-II). [document]
Inputs
| Drainage area | 250 ac = 0.390625 mi² (worksheet rounds to 0.39) |
| CN / Q | 75 / 3.28 in (Example 2-2) |
| Tc | 1.53 hr (Example 3-1) |
| Rainfall / distribution | P = 6.0 in, Type II, Ia/P = 0.667/6.0 = 0.11 |
| Unit peak (worksheet) | qu = 270 csm/in read from Exhibit 4-II; Fp = 1.0 |
Formula and hand steps
Worksheet: 270 × 0.39 × 3.28 × 1.0 = 345 cfs. Appendix F regression, Type II, Ia/P = 0.10 curve at Tc = 1.53 hr: qu = 271.7 csm/in; Ia/P = 0.30 curve: 222.0; linear interpolation to 0.11: 269.2 csm/in, i.e. the chart read of 270. HydroComplete does exactly this interpolation and carries Am = 0.390625 mi² and Q = 3.282 in unrounded: qp = 269.2 × 0.390625 × 3.282 = 345.1 cfs.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| 25-yr peak discharge qp | 345 cfs | 344.7 cfs | −0.3 (−0.07%) | ±0.5worksheet gives qp to the nearest 1 cfs | Match |
| Runoff depth Q used in qp | 3.28 in | 3.282 in | +0.002 (+0.06%) | ±0.005 | Match |
SCS dimensionless unit-hydrograph peak
Published reference
USDA-NRCS, National Engineering Handbook Part 630 Hydrology, Chapter 16 Hydrographs (210-VI-NEH, March 2007). Example 16-1, Step 1 (p. 16-8); Figure 16-2 (p. 16-5); Appendix 16A eqs. 16A-6 to 16A-9, 16A-13. [document]
Inputs
| Drainage area A | 4.6 mi² |
| Time of concentration Tc | 2.3 h (Example 16-1); 6.0 h (Figure 16-2, area B) |
| Runoff Q | 1 in (unit hydrograph) |
Formula and hand steps
Example 16-1 rounds ΔD from 0.306 to 0.3 h, giving Tp = 1.53 h and qp = 484 × 4.6 / 1.53 = 1,455 ft³/s. HydroComplete keeps ΔD = 0.133 Tc unrounded, so Tp = 0.6667 Tc = 1.533 h and qp = 1,452 ft³/s; the 3 ft³/s (0.2%) gap is the example's rounding of ΔD, not a formula difference. HydroComplete's dimensionless ordinates are the Table 16-1 ratios (0.030, 0.100, 0.190 … 1.000 … 0.005, 0.000).
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Example 16-1: qp (Tc = 2.3 h) | 1,455 ft³/s | 1,452.0 ft³/s | −3.0 (−0.21%) | ±4the example rounds ΔD to 0.3 h; the unrounded NEH formula gives 1,452 | Match |
| Figure 16-2 area B: qp (Tc = 6.0 h) | 557 ft³/s | 556.6 ft³/s | −0.4 (−0.07%) | ±0.5 | Match |
| Example 16-1: time to peak Tp | 1.53 h | 1.533 h | +0.003 (+0.22%) | ±0.005 | Match |
Detention routing, storage-indication (Modified Puls)
Published reference
FHWA, Urban Drainage Design Manual, Hydraulic Engineering Circular No. 22, 3rd ed., Sept. 2009 (rev. Aug. 2013), FHWA-NHI-10-009. Chapter 8, Example 8-9 (English units), Storage Indicator Numbers Table p. 8-47 and Final Routing Table p. 8-48; result text p. 8-46. [document]
Inputs
| Inflow hydrograph | 26 ordinates at Δt = 0.057 hr, peak 31.1 ft³/s at 0.51 hr (Final Routing Table, col. 2) |
| Stage-storage-discharge | 21 rows, stage 32.8 to 39.4 ft, storage 0 to 43,906 ft³, discharge 0 to 80.7 ft³/s (Storage Indicator Numbers Table, cols. 1-3) |
| Routing interval | 0.057 hr = 205.2 s, as in the example |
Formula and hand steps
HydroComplete uses the same continuity statement written as 2S/Δt + O (NEH-630 Ch. 17 form). Because the rating has a steep riser segment (dS/dO as small as 118 s between 38.4 and 38.7 ft), the engine sub-steps internally to keep Δtint ≤ τ/2 and reports back on the 0.057-hr grid; the reference marches at the full 0.057 hr. The mass-balance row below is a closed-form check: inflow volume by trapezoidal rule equals routed outflow volume plus residual storage.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Peak routed outflow | 18.3 ft³/s | 18.28 ft³/s | −0.02 (−0.09%) | ±0.05table precision 0.1 ft³/s | Match |
| Stage at peak outflow | 37.58 ft | 37.575 ft | −0.005 (−0.01%) | ±0.02 | Match |
| Storage at peak outflow | 27,816 ft³ | 27,831.6 ft³ | +15.6 (+0.06%) | ±100the text interpolates the table; 100 ft³ is 0.36% | Match |
| Mass balance: outflow volume + residual storage vs inflow volume (closed form) closed form | 0 (exact) ft³ | 0.0 ft³ | 0.0 | ±10closed-form check; inflow volume is 63,715 ft³ so 10 ft³ is 0.016% | Match |
Stage-storage from an elevation-area table
Published reference
NCDEQ, Stormwater Design Manual, Part B Stormwater Calculations, "Stage-Storage Tables for Storage Volume of Ponds", Table 5 (revised 3-15-2017, p. 7). [document]
Inputs
| Surface areas | 725 ft: 10,000 sf; 726 ft: 13,000; 727 ft: 16,500; 728 ft: 21,500; 729 ft: 26,000 |
Formula and hand steps
(10,000 + 13,000)/2 × 1 = 11,500; (13,000 + 16,500)/2 = 14,750 → 26,250; (16,500 + 21,500)/2 = 19,000 → 45,250; (21,500 + 26,000)/2 = 23,750 → 69,000 cf.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Cumulative volume at 726 ft | 11,500 cf | 11,500.0 cf | 0.0 (0.00%) | ±0.5 | Match |
| Cumulative volume at 727 ft | 26,250 cf | 26,250.0 cf | 0.0 (0.00%) | ±0.5 | Match |
| Cumulative volume at 728 ft | 45,250 cf | 45,250.0 cf | 0.0 (0.00%) | ±0.5 | Match |
| Cumulative volume at 729 ft | 69,000 cf | 69,000.0 cf | 0.0 (0.00%) | ±0.5 | Match |
Orifice stage-discharge
Published reference
FHWA HEC-22, 3rd ed. (2009), Chapter 8, Example 8-5 and its "Stage Discharge Tabulation for Only Orifice Flow", pp. 8-22 to 8-23; eq. 8-18. [document]
Inputs
| Orifice | D = 0.15 m (5.91 in), Cd = 0.60, invert at 10.0 m |
| Stages checked | 11.0 m (depth 1.0 m) and 12.0 m (depth 2.0 m) |
| HC units | engine works in ft and cfs; results converted to m³/s for comparison |
Formula and hand steps
At 11.0 m: Ho = 1.0 − 0.075 = 0.925 m, Q = 0.60 × 0.01767 × √(19.62 × 0.925) = 0.0452 m³/s (tabulated 0.045). At 12.0 m: Ho = 1.925 m, Q = 0.0652 m³/s (tabulated 0.065). HydroComplete measures orifice head to the centroid once the opening is submerged (HEC-22 eq. 8-18, NCDEQ Part B); had it used the invert, 11.0 m would give 0.0470 m³/s (+4%). Below the crown it applies the same equation to the wetted segment, which meets the submerged branch exactly at the crown.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Q at stage 11.0 m | 0.045 m³/s | 0.0452 m³/s | +0.0002 (+0.40%) | ±0.0005table precision 0.001 m³/s | Match |
| Q at stage 12.0 m | 0.065 m³/s | 0.0652 m³/s | +0.0002 (+0.27%) | ±0.0005 | Match |
Riser pipe stage-discharge (weir-to-orifice transition)
Published reference
FHWA HEC-22, 3rd ed. (2009), Chapter 8, Example 8-6 and its stage-discharge table, pp. 8-24 to 8-25; eqs. 8-18 and 8-19. [document]
Inputs
| Riser | D = 0.53 m (20.87 in), crest 10.8 m, Cscw = 3.33 (English), Cd = 0.60 |
| Stages checked | 10.9 m (head 0.1 m, weir controls), 11.4 m (head 0.6 m, orifice controls), 12.0 m (head 1.2 m) |
Formula and hand steps
HEC-22 at 11.4 m: weir 3.073 × 0.61.5 = 1.43, orifice 0.587 × 0.60.5 = 0.45 → 0.45 m³/s controls. HydroComplete's riser outlet applies the same two equations and takes the minimum. The reference table is printed to 0.01 m³/s, so the tolerance is half of that.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Q at 10.9 m (weir control) | 0.10 m³/s | 0.097 m³/s | −0.003 (−3.20%) | ±0.005table precision 0.01 m³/s | Match |
| Q at 11.4 m (orifice control) | 0.45 m³/s | 0.454 m³/s | +0.004 (+0.95%) | ±0.005 | Match |
| Q at 12.0 m (orifice control) | 0.64 m³/s | 0.642 m³/s | +0.002 (+0.38%) | ±0.005 | Match |
Culvert headwater, inlet and outlet control
Published reference
FHWA, Hydraulic Design of Highway Culverts, HDS-5, 3rd ed., April 2012 (HIF-12-026). Design Guideline 1.3 and Culvert Design Form DG 1.3.3 (pp. DG1.1 to DG1.4); Appendix A eqs. A.1 and A.3 and Table A.1; Appendix C Table C.2; Chapter 5 outlet-control energy equation as restated in CDF footnote (7). [document]
Inputs
| Design flow / tailwater | Q = 200 ft³/s, TW = 3.5 ft |
| Barrel | 54 in concrete (n = 0.012), L = 200 ft, So = 0.01, invert in 100.0 / out 98.0 ft |
| Entrance | DG 1.3 uses a groove end in headwall (ke = 0.2, Chart 1 scale 2). HydroComplete takes entranceType with the Table A.1 constants for Chart 1 scales 1 to 3 (default square edge with headwall); check A runs the square-edge closed form, check C the groove-end design value. |
Formula and hand steps
Q/(A D0.5) = 200 / (15.90 × 2.121) = 5.928 (> 4.0, so submerged). Square edge: HW/D = 0.0398 × 35.14 + 0.67 − 0.005 = 2.064, HWi = 9.29 ft. Groove end (c = 0.0292, Y = 0.74): HW/D = 1.761, HWi = 7.93 ft; the CDF's nomograph read is 7.97 ft (HY-8: 7.9), HDS-5 §A.4 puts the nomographs within ±10% of the equations.
V = 200/15.90 = 12.58 ft/s, V²/2g = 2.456 ft, R = 1.125 ft, friction term = 29 × 0.012² × 200 / 1.1251.33 = 0.714, H = 4.70 ft (CDF: 4.7). HDS-5 reads dc = 4.1 ft from Chart 4; solving Q²T/(gA³) = 1 exactly gives dc = 4.04 ft, so ho = (4.04 + 4.5)/2 = 4.27 ft (CDF rounds to 4.3) and HWo = 4.70 + 4.27 − 2.0 = 6.97 ft (CDF: 7.0, ELho 107.0).
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| A. Inlet-control HW, square edge w/ headwall (closed form, eq. A.3) closed form | 9.29 ft | 9.290 ft | +0.004 (+0.04%) | ±0.01 | Match |
| B. Outlet-control HW (CDF: ELho 107.0 − ELi 100.0) | 7.0 ft | 6.97 ft | −0.03 (−0.43%) | ±0.05CDF reports elevations to 0.1 ft | Match |
| C. Controlling HW as designed (groove end, CDF HWi) | 7.97 (HY-8: 7.9) ft | 7.930 ft | −0.040 (−0.50%) | ±0.1nomograph read; HY-8 gives 7.9 | Match |
| D. Inlet-control HW, groove end w/ headwall (closed form, eq. A.3) closed form | 7.93 ft | 7.930 ft | +0.005 (+0.06%) | ±0.01 | Match |
Notes
The residual 0.03 ft on check B is the difference between HDS-5's Chart 4 read of dc (4.1 ft) and the exact solution (4.04 ft), carried through ho; H itself agrees to 0.01 ft. Inlet control governs in this example, so the controlling HW (check C) is the groove-end eq. A.3 value, 0.04 ft under the CDF's nomograph read.
Triangular gutter flow (spread)
Published reference
FHWA HEC-22, 3rd ed. (2009), Chapter 4, Example 4-1 (English units), Solutions (1) and (2), pp. 4-10 to 4-11; eq. 4-2. [document]
Inputs
| Longitudinal slope SL | 0.010 |
| Cross slope Sx | 0.020 |
| Manning n | 0.016 |
| Spread T | 8.2 ft (Solution 2); 9.0 ft is the spread HEC-22 solves for at 1.8 ft³/s (Solution 1) |
Formula and hand steps
HEC-22: Qn = 0.56 × 0.0201.67 × 0.0100.5 × 8.22.67 = 0.022; Q = 0.022 / 0.016 = 1.4 ft³/s. HydroComplete uses the exact exponents 5/3 and 8/3 that 1.67 and 2.67 abbreviate. Solution (1) is run in reverse: HydroComplete evaluated at HEC-22's answer T = 9.0 ft should return the 1.8 ft³/s that HEC-22 started from (9.0 is itself rounded, so ±0.05 ft³/s).
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Q at T = 8.2 ft | 1.4 ft³/s | 1.41 ft³/s | +0.01 (+0.73%) | ±0.05HEC-22 reports Q to 0.1 ft³/s | Match |
| Q at T = 9.0 ft (Solution 1 in reverse) | 1.8 ft³/s | 1.81 ft³/s | +0.01 (+0.42%) | ±0.05T = 9.0 ft is rounded; dQ/dT at 9 ft is 0.53 ft³/s per ft | Match |
Manning's equation, trapezoidal channel capacity and normal depth
Published reference
FHWA HEC-22, 3rd ed. (2009), Chapter 5, Example 5-1 (English units), pp. 5-6 to 5-7; eq. 5-5. [document]
Inputs
| Section | B = 2.62 ft, side slopes z = 3 (H:V), depth d = 1.64 ft |
| Slope / roughness | So = 0.01, n = 0.030 |
Formula and hand steps
HEC-22 rounds A to 12.4 ft², P to 13.0 ft, R to 0.95 ft and Qn to 1.79, then Q = 1.79/0.030 = 59.7 ft³/s, V = 4.8 ft/s. Unrounded: A = 12.366, P = 12.992, R = 0.9518, Q = 59.42 ft³/s. The 0.3 ft³/s spread is HEC-22's intermediate rounding (R0.67 with R = 0.95 vs R2/3 with R = 0.9518), so the tolerance is set to that rounding envelope, not to HydroComplete's output. The normal-depth row inverts the problem: given Q = 59.7 ft³/s, the engine's iterative solver should return d = 1.64 ft.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Capacity Q at d = 1.64 ft | 59.7 ft³/s | 59.42 ft³/s | −0.28 (−0.46%) | ±0.5HEC-22 carries A, P, R and Qn to 3 significant figures; unrounded arithmetic gives 59.4 | Match |
| Velocity V | 4.8 ft/s | 4.81 ft/s | +0.01 (+0.12%) | ±0.05 | Match |
| Normal depth for Q = 59.7 ft³/s | 1.64 ft | 1.643 ft | +0.003 (+0.18%) | ±0.01 | Match |
Manning's equation, circular pipe full and half full
Closed-form reference
Closed-form hand calculation (Manning's equation with the circular-segment geometry, as in FHWA HEC-22 Chapter 7 and TR-55 eq. 3-4). No published number is needed: at half depth R equals the full-pipe R, so Qhalf = Qfull/2 exactly. [document]
Inputs
| Pipe | 24 in (D = 2.0 ft) RCP, n = 0.013, S = 0.01 |
| Depths | full (d = D) and half full (d = 12 in) |
Formula and hand steps
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Full-pipe capacity closed form | 22.683 ft³/s | 22.6833 ft³/s | 0.0000 (0.00%) | ±0.001 | Match |
| Half-full flow closed form | 11.342 ft³/s | 11.3416 ft³/s | 0.0000 (0.00%) | ±0.001 | Match |
| Half-full velocity (= full velocity) closed form | 7.220 ft/s | 7.2200 ft/s | −0.0003 (0.00%) | ±0.005 | Match |
RUSLE slope length-steepness factor LS
Published reference
Renard, K.G., Foster, G.R., Weesies, G.A., McCool, D.K., Yoder, D.C. (1997). Predicting Soil Erosion by Water: A Guide to Conservation Planning with the Revised Universal Soil Loss Equation (RUSLE). USDA Agriculture Handbook No. 703. Chapter 4, eqs. 4-1 to 4-5 (pp. 105-107) and the Table 4-2 value quoted on p. 112. [document]
Inputs
| Slope | 400 ft long, 10% uniform (moderate rill/interrill ratio, Table 4-2) |
| Unit-plot checks | λ = 72.6 ft at 10% and at 5% (L = 1, so LS = S) |
Formula and hand steps
10%: sin θ = 0.0995, β = 1.0745, m = 0.5179, L = (400/72.6)0.518 = 2.420, S = 16.8 × 0.0995 − 0.50 = 1.1717, LS = 2.836 (AH703 p. 112: 2.84). HydroComplete evaluates eqs. 4-1 to 4-5 as written (moderate rill/interrill ratio, eq. 4-3); the unrounded result is 2.836, which AH703 prints as 2.84.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| LS, 400 ft at 10% | 2.84 | 2.836 | −0.004 (−0.15%) | ±0.005AH703 prints LS to 0.01 | Match |
| S at 10% (eq. 4-5, via LS at λ = 72.6 ft) closed form | 1.1717 | 1.17166 | 0.00000 (0.00%) | ±0.0005 | Match |
| S at 5% (eq. 4-4, via LS at λ = 72.6 ft) closed form | 0.5693 | 0.56933 | 0.00000 (0.00%) | ±0.0005 | Match |
MUSLE single-storm sediment yield
Closed-form reference
Williams, J.R. (1975), "Sediment-yield prediction with Universal Equation using runoff energy factor", USDA-ARS S-40; equation and units as restated in USACE, HEC-HMS Applications Guide, "Case Study: Estimating Sediment Yield in the Upper North Bosque River Watershed (UNBRW)", eq. 11. Closed-form evaluation, all steps shown. [document]
Inputs
| Runoff volume Q | 2.5 acre-ft |
| Peak discharge qp | 120 ft³/s |
| K, LS, C, P | 0.28, 1.5, 0.9, 1.0 (construction-site cover, no practice) |
Formula and hand steps
Q qp = 2.5 × 120 = 300; (300)0.56 = 24.3887; 95 × 24.3887 = 2316.92; × 0.28 × 1.5 × 0.9 × 1.0 = 875.80 tons.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Event sediment yield Y closed form | 875.80 tons | 875.800 tons | +0.003 (0.00%) | ±0.01 | Match |
| Runoff energy term 95 (Q qp)0.56 closed form | 2316.9 | 2,316.90 | −0.02 (0.00%) | ±0.1 | Match |
Camp's ideal-basin trap efficiency (two-bin PSD)
Closed-form reference
Camp, T.R. (1946), "Sedimentation and the design of settling tanks", Trans. ASCE 111; vc = Q/A as stated in USACE HEC-HMS Technical Reference Manual, "Chen Sediment Trap". Fall velocities: Stokes' law and Rubey (1933) as printed in HEC-HMS TRM, "Fall Velocity and Settling". Closed-form evaluation, all steps shown. [document]
Inputs
| Basin | Q = 1.0 ft³/s, surface area As = 2,000 ft² → Vo = 5.0 × 10-4 ft/s |
| Sediment | 60% silt (d = 0.010 mm), 40% fine sand (d = 0.158 mm); SG 2.65; 20 °C |
Formula and hand steps
ηsilt = 2.939e-4 / 5.0×10-4 = 0.5877; ηfine sand = min(1, 119) = 1; η = 0.6 × 0.5877 + 0.4 × 1 = 0.7526 = 75.3%.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Overall trap efficiency closed form | 75.3 % | 75.26 % | 0.00 (0.00%) | ±0.05 | Match |
| Silt settling velocity (Stokes) closed form | 2.939e-4 ft/s | 2.939e-4 ft/s | 0.00e+0 (0.00%) | ±2.9e-7 | Match |
| Fine-sand settling velocity (Rubey) closed form | 0.0593 ft/s | 0.05930 ft/s | 0.00000 (0.00%) | ±0.0001 | Match |
NCDEQ Simple Method design volume (1-inch storm)
Closed-form reference
NCDEQ, Stormwater Design Manual, Part B Stormwater Calculations, "Simple Method for Runoff Volume" (revised 3-15-2017, p. 2). Closed-form evaluation of the published equations, all steps shown. [document]
Inputs
| Design storm depth RD | 1.0 in (non-coastal NC) |
| Drainage area A | 12 ac |
| Impervious fraction IA | 0.65 (65%) |
Formula and hand steps
HydroComplete writes the same coefficient as 0.05 + 0.009 × I(%) and the volume as P · Rv · A · 43,560 / 12; 43,560/12 = 3,630, so the two forms are algebraically identical.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| Runoff coefficient RV closed form | 0.635 | 0.6350 | 0.0000 (0.00%) | ±0.0005 | Match |
| Design volume DV closed form | 27660.6 ft³ | 27,660.60 ft³ | 0.00 (0.00%) | ±0.5 | Match |
| Design volume in acre-ft closed form | 0.6350 ac-ft | 0.63500 ac-ft | 0.00000 (0.00%) | ±0.00005 | Match |
Weir outlets: emergency spillway and rectangular weir
Published reference
FHWA HEC-22, 3rd ed. (2009), Chapter 8, Example 8-8 and eq. 8-26, pp. 8-35 to 8-36 (Q = 40.6 ft³/s at Hp = 0.98 ft). USDA-NRCS TR-55 (1986), Chapter 6, Example 6-1 and eq. 6-4, p. 6-4 (Lw = 4.1 ft, Hw = 5.7 ft, C = 3.2). [document]
Inputs
| HEC-22 Ex. 8-8 | broad-crested spillway, b = 16.4 ft, Csp = 2.55, invert 38.0 ft, stage 38.98 ft |
| TR-55 Ex. 6-1 | rectangular weir, Lw = 4.1 ft, C = 3.2, crest 100.0 ft, stage 105.7 ft |
Formula and hand steps
HEC-22: 2.55 × 16.4 × 0.981.5 = 40.57 ft³/s (printed 40.6). TR-55: 3.2 × 4.1 × 5.71.5 = 3.2 × 4.1 × 13.609 = 178.5 ft³/s; TR-55 sized the weir for 180 ft³/s and rounded Lw to 4.1, so the reference row uses the rounded length and the closed-form result.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| HEC-22 Ex. 8-8 spillway Q at Hp = 0.98 ft | 40.6 ft³/s | 40.57 ft³/s | −0.03 (−0.07%) | ±0.05 | Match |
| TR-55 Ex. 6-1 weir qo at Hw = 5.7 ft, Lw = 4.1 ft (eq. 6-4 closed form) closed form | 178.5 ft³/s | 178.54 ft³/s | 0.00 (0.00%) | ±0.05 | Match |
HydroCAD 10.10-4a side-by-side: real project file, runoff, culvert outlets and pond routing
Published reference
HydroCAD 10.10-4a printed report for a McGill Associates scratch model of a 55.4-acre site in northern Illinois, printed 3/3/2026 (16 pp.). SCS TR-20 runoff, SCS unit hydrograph, Stor-Ind routing, time span 5.00–20.00 hr at dt 0.05 hr; storms "100yr" 8.57 in and "2yr" 3.34 in, SCS Type II 24-hr (p. 2). Node summaries pp. 8–10 and 12–14. The project file is read at build time from the private test fixtures and is not published; message texts [82]/[85]/[92]/[93] are quoted from hydrocad.net/messages.htm. [document]
Inputs
| Project file | HydroCAD 10.10-4a .hcp, FileUnits = English (areas in sf, Tc in seconds, storm depth in feet, converted on import). 19 subcatchments, 10 ponds, 7 links; the report prints nodes 26P, 27P and 28L only, so those are what is compared. |
| Subcatchments into the existing pond (27P) | 22S: 9.62 ac, CN 83, Tc 17.3 min; 23S: 12.32 ac, CN 80, Tc 22.0 min; 24S: 22.72 ac, CN 81, Tc 11.8 min; 25S: 10.78 ac, CN 93, Tc 19.3 min. Σ = 55.44 ac (report p. 9: "Inflow Area 55.440 ac"). |
| Storms | SCS Type II 24-hr, 8.57 in (100-yr) and 3.34 in (2-yr); HydroCAD time span 5.00–20.00 hr, dt 0.05 hr. HydroComplete runs at the same dt. |
| Existing pond 27P stage-area | 664 ft / 290,386 sf, 665 ft / 326,222 sf, 666 ft / 337,428 sf, 667 ft / 356,753 sf (prismatic). Cum. storage at the table top 987,220 cf (p. 9). Note the table stops at 667 ft, below the primary culvert invert 667.76 ft (HydroCAD message [92]). |
| 27P outlets | #1 24 in RCP, invert 667.76 / outlet 667.75 ft, L 37.3 ft, n 0.013, Ke 0.2, groove-end projecting, Primary; #2 6 in CPP, invert 666.82 ft, L 40 ft, Ke 0.9, Secondary; #3 4.7 in CPP, invert 665.00 ft, L 40 ft, Ke 0.5, Tertiary (p. 9). All three "Barrel Controls" at the 100-yr head (p. 10). |
| Second pond 26P | 7-point stage-area table (ft / sf): 664 / 43,486, 665 / 47,038, 666 / 50,705, 667 / 54,480, 668 / 58,355, 669 / 62,330, 670 / 66,405; cum. storage 327,854 cf; no outlet devices (p. 8). |
Formula and hand steps
Runoff: SCS curve number with the SCS Type II 24-hr mass curve evaluated at every 0.05-hr step, convolved with the NRCS dimensionless unit hydrograph (Table 16-1 ratios, 0.1 Tp to 2.0, 0.2 to 4.0, 0.5 to 5.0). The four subcatchment hydrographs are summed on the common grid. HydroCAD's printed volumes cover its 5.00–20.00 hr span only (it printed "[82] Early inflow requires earlier time span" and "Inflow Depth > 6.14 in"), so the window volume is compared to the report and the full-storm volume to the closed-form CN volume.
HydroCAD's barrel equation takes the outlet crown (ho = D) as the downstream energy datum; HDS-5 uses ho = (dc + D)/2. HydroComplete exposes both (outletDepth:'crown' replicates HydroCAD; the default is HDS-5). On the 24-in barrel that is 2.00 vs 1.93 ft of tailwater datum, a 1.6 % difference in discharge; on the 6-in and 4.7-in pipes dc = D and the two conventions coincide. Hand check on the 24-in at 4.28 ft head: 4.28 − 2.00 + 0.01 = 2.29 ft = (1 + 0.2 + 0.083)×V²/2g → V = 9.42 ft/s, Q = 29.6 cfs.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| 100-yr combined inflow peak to 27P (p. 9) | 410.34 cfs | 410.339 cfs | −0.001 (0.00%) | ±12.313 % of reference; UH implementation, HydroCAD dt 0.05 hr | Match |
| 100-yr time of peak (p. 9) | 12.06 hr | 12.000 hr | −0.060 (−0.50%) | ±0.1HydroCAD prints an interpolated peak time; ours is on the 0.05-hr grid | Match |
| 100-yr inflow volume, HydroCAD 5.00–20.00 hr span (p. 9) | 28.354 af | 28.3428 af | −0.0112 (−0.04%) | ±0.140.5 %; same window applied to our hydrograph | Match |
| 100-yr full-storm volume vs closed-form CN volume ΣA·Q/12 closed form | 30.391 af | 30.3775 af | −0.0140 (−0.05%) | ±0.150.5 %; HydroCAD does not print the full-storm value | Match |
| 2-yr combined inflow peak to 27P (p. 14) | 113.98 cfs | 114.267 cfs | +0.287 (+0.25%) | ±3.423 % of reference | Match |
| 2-yr time of peak (p. 14) | 12.07 hr | 12.050 hr | −0.020 (−0.17%) | ±0.1 | Match |
| 2-yr inflow volume, 5.00–20.00 hr span (p. 14) | 7.589 af | 7.5904 af | +0.0014 (+0.02%) | ±0.0380.5 % | Match |
| 2-yr full-storm volume vs closed-form CN volume closed form | 8.243 af | 8.2417 af | −0.0012 (−0.01%) | ±0.0410.5 % | Match |
| 2-yr peak stage in 27P (p. 14) | 665.07 ft | 665.068 ft | −0.002 (0.00%) | ±0.02stage-table interpolation rule only | Match |
| 2-yr storage in 27P at 20 hr (p. 14) | 330,391 cf | 330,746.5 cf | +355.5 (+0.11%) | ±16520.5 % | Match |
| #1 24 in RCP at HW 672.04 ft, head 4.28 ft — HydroCAD outlet-depth convention (p. 10) | 29.58 cfs | 29.615 cfs | +0.035 (+0.12%) | ±0.31 %; same barrel equation and datum | Match |
| #1 24 in RCP, same head — HydroComplete default (HDS-5, ho = (dc + D)/2) | 29.58 cfs | 30.050 cfs | +0.470 (+1.59%) | ±0.592 %; the outlet-datum convention difference described above | Match |
| #2 6 in CPP at HW 672.04 ft, head 5.22 ft (p. 10) | 1.52 cfs | 1.529 cfs | +0.009 (+0.57%) | ±0.0151 % | Match |
| #3 4.7 in CPP at HW 672.04 ft, head 7.04 ft (p. 10) | 1.03 cfs | 1.034 cfs | +0.004 (+0.41%) | ±0.011 % | Match |
| 100-yr storage at the 27P peak, HydroCAD constant-storage convention (p. 9) | 987,220 cf | 987,219.5 cf | −0.5 (0.00%) | ±9870.1 %; the table top, by construction under this convention | Match |
| 100-yr 27P outflow volume through 20 hr, same convention (p. 9) | 5.702 af | 5.7294 af | +0.0274 (+0.48%) | ±0.173 %; a mass-balance comparison under the same convention | Match |
100-yr peak stage in 27P — HydroCAD convention replicated (aboveTable:'constant-storage') | 672.04 ft | 673.254 ft | +1.214 (+0.18%) | n/aHydroCAD flagged this run "[85] Oscillations … severity = 59"; see the note | Convention |
| 100-yr peak outflow from 27P — HydroCAD convention replicated | 32.13 cfs | 38.629 cfs | +6.499 (+20.23%) | n/aoscillation artefact in both programs | Convention |
100-yr peak stage in 27P — HydroComplete default (aboveTable:'extend-last-area') | 672.04 ft | 667.637 ft | −4.403 (−0.66%) | n/atop surface area (356,753 sf) extended upward | Convention |
| 100-yr peak outflow from 27P — HydroComplete default | 32.13 cfs | 1.045 cfs | −31.085 (−96.75%) | n/athe 24-in invert at 667.76 ft is barely engaged | Convention |
| 26P stage at 36,341 cf on its table, no outflow (p. 8) | 664.81 ft | 664.803 ft | −0.007 (0.00%) | ±0.02HydroCAD interpolates prismatically within the first foot; ours is linear in storage at 0.01 ft | Match |
| 26P storage after feeding 36,341 cf (p. 8) | 36,341 cf | 36,341.0 cf | 0.0 (0.00%) | ±1820.5 % | Match |
Notes
What matched. Runoff peaks and volumes, the 2-yr routing (which stays inside the stage-area table), all three culvert barrel discharges under HydroCAD's outlet-depth convention, the pinned 100-yr storage and the 100-yr outflow volume under HydroCAD's above-table convention (our primary/secondary/tertiary split through 20 hr: 4.932 / 0.356 / 0.442 af against HydroCAD's 4.864 / 0.394 / 0.445 af, p. 9), and the second pond's stage from storage. The time-of-peak deltas are the 0.05-hr grid: HydroCAD prints an interpolated time.
Volume window. HydroCAD's report volumes are for its 5.00–20.00 hr computed span, and it said so ("[82] Early inflow requires earlier time span", "Inflow Depth > 6.14 in"). Our full 24-hr volumes are 30.377 af (100-yr) and 8.242 af (2-yr) against the closed-form CN volumes 30.391 and 8.243 af; the windowed values 28.343 and 7.590 af are what the report prints. The truncated span hides about 2.0 af of the 100-yr storm.
The one place the two programs legitimately diverge: routing above the storage table. The 27P table ends at 667 ft, below the 24-in primary invert (667.76 ft, HydroCAD "[92] Device #1 is above defined storage"), and the 100-yr pool went to 672.04 ft (HydroCAD "[93] Storage range exceeded by 5.04'"). HydroCAD message [93] (hydrocad.net/messages.htm) documents what it does then:
"The water surface elevation has exceeded the highest defined stage. All defined storage has been filled. Routing continues by applying additional head to the outlet(s), but without utilizing any additional storage. In essence, the pond has been extended upward as a pencil-thin chamber with no additional storage."
That is why the report shows storage = 987,220 cf (the table top) at 672.04 ft. With zero storage above the table the storage-indication equation degenerates to O2 = I1 + I2 − O1 and saw-tooths between roughly I and 2I; HydroCAD flagged it ("[85] Oscillations may require smaller dt, severity = 59") and so does our engine when asked to replicate the convention (11,342 spurious peaks counted). The inflow when the pond first reaches the table top is 21.6 cfs at 13.69 hr (HydroCAD: 13.80 hr), so the artefact band is roughly 22–43 cfs; HydroCAD's 32.13 cfs and our 38.6 cfs are both samples of that band, which is why those rows are marked Convention and not pass/fail. Under HydroComplete's default, the top surface area is carried upward (vertical walls), the pool tops out at 667.64 ft with 1,214,313 cf stored and 1.05 cfs leaving, and there is no oscillation. Neither answer is the engineering answer: the table needs contours above 667 ft, which is what HydroCAD's own guidance on that page says too. Both conventions and an 'error' mode are available, and every route reports the condition:
Engine warnings, constant-storage replication run:
Storage range exceeded by 6.25 ft: peak stage 673.25 ft is above the top of the elevation-area table (667.00 ft); no storage was credited above the table (constant-storage convention) — the stage is set by the outlet rating alone. Define storage above the highest outlet before relying on this stage.Outlet "culvert" invert/crest 667.76 ft is above the top of the elevation-area table (667.00 ft); it only operates in the extrapolated range.Oscillations: the routed outflow has 11342 spurious peaks (storage-indication instability — too little storage for the outlet rating at this step); peak outflow 38.63 cfs and peak stage 673.25 ft are numerical artefacts. Add storage above the highest outlet or reduce the routing step.
Engine warnings, default run:
Storage range exceeded by 0.64 ft: peak stage 667.64 ft is above the top of the elevation-area table (667.00 ft); storage above the table was extrapolated with the top surface area (356,753 sf, vertical walls). Define storage above the highest outlet before relying on this stage.Outlet "culvert" invert/crest 667.76 ft is above the top of the elevation-area table (667.00 ft); it only operates in the extrapolated range.
The second pond (26P) inherits the artefact: its inflow is the secondary + tertiary pipes at the artefact stage (HydroCAD 2.55 cfs / 0.838 af through 20 hr; ours 2.84 cfs / 0.797 af under the same convention). Its own stage-from-storage row is inside the table and matches.
HEC-HMS 4.13 side-by-side: real basin model, frequency-storm runoff volume and peaks
Published reference
HEC-HMS 4.13 basin model of the same 55.4-acre northern-Illinois site as case 19 (a later, revised model: different subbasin set, CN 85/87, lag in minutes). Reference peaks from the project's run-summary sheets (pp. 1–2, 100-yr and 2-yr) and the Run_53 results file (100-yr, CN 86.2/84.5): peak flow, time of peak, excess volume and depth. Meteorologic models are "Frequency Based Hypothetical" storms (NOAA Atlas 14 depth-duration table, 5-min interval, 1440 min, 50 % before peak) read from the .met files at build time. Project files are private test fixtures and are not published. [document]
Inputs
| Basin file | HEC-HMS 4.13 .basin, Unit System English. 9 subbasins, 2 reservoirs (storage-outflow tables in DSS, not imported), 1 reach. Subbasin Area is in square miles and is converted to acres on import (WS8: 0.03775 mi² = 24.16 ac, the run-summary label). |
| Subbasins compared | WS8: 24.16 ac, CN 87, lag 7.11 min (Tc = lag/0.6 = 11.85 min); WS3: 4.37 ac, CN 85, lag 15.56 min. Run_53 re-runs the same basins at CN 86.2 / 84.5. |
| 100-yr storm (.met) | Frequency Based Hypothetical, 5-min blocks, 1440 min, 50 % before peak. Depth-duration: 5 min 0.74, 10 min 1.21, 15 min 1.59, 30 min 2.49, 60 min 3.57, 120 min 4.70, 180 min 5.39, 360 min 6.52, 720 min 7.55, 1440 min 8.57 in. |
| 2-yr storm (.met) | Frequency Based Hypothetical; depth-duration: 5 min 0.29, 10 min 0.47, 15 min 0.62, 30 min 0.97, 60 min 1.39, 120 min 1.83, 180 min 2.10, 360 min 2.54, 720 min 2.94, 1440 min 3.34 in. |
| Computation step | 1 minute (control specification). HMS places the unit-hydrograph peak at Tp = Δt/2 + lag; HydroComplete reproduces that with unitDuration_hr and otherwise uses NEH-630's Tp = ⅔Tc. |
Formula and hand steps
The incremental depths are ranked and placed alternately either side of the block at 50 % of the duration (largest at the centre, second to its left, third to its right, and so on) — the HEC-HMS Frequency Storm construction. The resulting 288-block hyetograph is registered as a custom distribution and run through the same SCS curve-number / dimensionless-unit-hydrograph path as every other case.
Closed-form check on WS8 at CN 86.2: S = 1.601 in, Q = (8.57 − 0.320)² / (8.57 + 1.281) = 6.909 in; HMS printed 6.909 in. Volume = 24.16 ac × 6.909 / 12 = 13.91 af.
Result
| Check | Reference | HydroComplete | Delta | Tolerance | Status |
|---|---|---|---|---|---|
| WS8 100-yr runoff volume, CN 86.2 (Run_53 results) | 13.910 af | 13.8979 af | −0.0124 (−0.09%) | ±0.070.5 %; a CN mass-balance check | Match |
| WS8 100-yr excess depth, CN 86.2 (Run_53 results; closed-form CN) closed form | 6.909 in | 6.9090 in | −0.0001 (0.00%) | ±0.005reported to 0.001 in; engine rounds to 0.001 | Match |
| WS3 100-yr runoff volume, CN 84.5 (Run_53 results) | 2.442 af | 2.4418 af | −0.0002 (−0.01%) | ±0.0120.5 % | Match |
| WS8 100-yr peak, CN 86.2, HMS Tp placement (Run_53 results) | 150.93 cfs | 149.430 cfs | −1.503 (−1.00%) | ±4.533 % | Match |
| WS8 100-yr time of peak (Run_53: 12:08) | 12.133 hr | 12.1700 hr | +0.0367 (+0.30%) | ±0.1 | Match |
| WS3 100-yr peak, CN 84.5, HMS Tp placement (Run_53 results) | 20.56 cfs | 20.510 cfs | −0.048 (−0.23%) | ±0.623 % | Match |
| WS3 100-yr time of peak (Run_53: 12:17) | 12.283 hr | 12.3200 hr | +0.0367 (+0.30%) | ±0.1 | Match |
| WS8 100-yr peak, CN 87, HMS Tp placement (run summary p. 1) | 152.37 cfs | 150.800 cfs | −1.570 (−1.03%) | ±4.573 % | Match |
| WS3 100-yr peak, CN 85, HMS Tp placement (run summary p. 1) | 20.70 cfs | 20.650 cfs | −0.050 (−0.24%) | ±0.623 % | Match |
| WS8 2-yr peak, CN 87, HMS Tp placement (run summary p. 2) | 46.39 cfs | 46.290 cfs | −0.100 (−0.22%) | ±1.3923 % | Match |
| WS3 2-yr peak, CN 85, HMS Tp placement (run summary p. 2) | 5.94 cfs | 5.950 cfs | +0.010 (+0.17%) | ±0.183 % | Match |
| WS8 100-yr peak, CN 87, HydroComplete default Tp = ⅔Tc (run summary p. 1) | 152.37 cfs | 149.250 cfs | −3.120 (−2.05%) | ±7.625 %; NEH placement sits a few % below HMS by construction | Match |
| WS3 100-yr peak, CN 85, HydroComplete default Tp = ⅔Tc (run summary p. 1) | 20.70 cfs | 20.060 cfs | −0.640 (−3.09%) | ±1.0355 % | Match |
Notes
What matched. Import (areas, CNs, lags, links), runoff volumes to 0.1 % (they are the same closed-form CN equation), and peaks within 1 % on the larger basin and 0.5 % on the smaller one once the unit hydrograph is placed where HMS places it. HydroComplete's default placement (Tp = ⅔Tc, NEH-630 eq. 16A-13) gives peaks 2–3 % lower on these 12–26-minute basins; that is a documented convention difference between the two programs, not a defect in either, and the option to match HMS is exposed as unitDuration_hr.
Storm caveat. The run-summary captions and the .met descriptions say "SCS Type II 24-hr", but the meteorologic method in the .met files is Frequency Based Hypothetical (Atlas 14 nested blocks). The two are not interchangeable: for this location the nested storm carries 2.49 in in its peak 30 minutes where Type II carries 3.11 in, and the same WS8 basin run under SCS Type II at 8.57 in peaks at 232 cfs instead of 151 cfs. Every row above uses the storm HMS actually ran.
Not compared. The two reservoirs' storage-outflow ratings are stored in DSS, which the importer does not read (it keeps the initial pool, 7.489 ac-ft, and warns). Pond routing against HMS is therefore not on this page; the pond-routing comparison is case 19 against HydroCAD.
How to reproduce
The case modules in build-tools/validation/cases/ hold the inputs, the reference value and citation, the tolerance, and a run() that calls the engine. The same modules drive this page and the test suite, so the page cannot say one thing and the tests another.
# from a checkout of the HydroComplete repository npm install npx vitest run tests/validation-suite.test.js # asserts every check above node build-tools/build-validation.js # regenerates this page
The application repository is private; licensed users who want to audit the suite can request read access, and the open-source companions (Civil 3D add-in, OpenCAD plugin, swmm-breach) are listed on the open-source page.
Every check that is "within source precision" is asserted as |HydroComplete − reference| ≤ tolerance. Every "differs" check is asserted against its locked HydroComplete value, so an engine change that moves it — in either direction — fails the suite and forces this page to be updated honestly.
Check any of these yourself
Open the app, build the case from the inputs above, and compare. Every calculation shows its formula and substitution in the report.
Sources
- USDA-NRCS, Urban Hydrology for Small Watersheds, Technical Release 55, 2nd ed., June 1986 (210-VI-TR-55). Chapter 2, Examples 2-1 to 2-4, Worksheet 2 (Figures 2-5 to 2-8), pp. 2-13 to 2-16. [link]
- USDA-NRCS TR-55 (1986), Chapter 2, Worksheet 2 for Examples 2-1 and 2-2 (Figures 2-5 and 2-6), pp. 2-13 to 2-14. [link]
- USDA-NRCS TR-55 (1986), Chapter 3, Example 3-1 and Worksheet 3 (Figure 3-2), pp. 3-4 to 3-5. [link]
- USDA-NRCS TR-55 (1986), Chapter 4, Example 4-1 and Worksheet 4, pp. 4-2 to 4-3; Appendix F, Table F-1 (regression coefficients behind Exhibit 4-II). [link]
- USDA-NRCS, National Engineering Handbook Part 630 Hydrology, Chapter 16 Hydrographs (210-VI-NEH, March 2007). Example 16-1, Step 1 (p. 16-8); Figure 16-2 (p. 16-5); Appendix 16A eqs. 16A-6 to 16A-9, 16A-13. [link]
- FHWA, Urban Drainage Design Manual, Hydraulic Engineering Circular No. 22, 3rd ed., Sept. 2009 (rev. Aug. 2013), FHWA-NHI-10-009. Chapter 8, Example 8-9 (English units), Storage Indicator Numbers Table p. 8-47 and Final Routing Table p. 8-48; result text p. 8-46. [link]
- NCDEQ, Stormwater Design Manual, Part B Stormwater Calculations, "Stage-Storage Tables for Storage Volume of Ponds", Table 5 (revised 3-15-2017, p. 7). [link]
- FHWA HEC-22, 3rd ed. (2009), Chapter 8, Example 8-5 and its "Stage Discharge Tabulation for Only Orifice Flow", pp. 8-22 to 8-23; eq. 8-18. [link]
- FHWA HEC-22, 3rd ed. (2009), Chapter 8, Example 8-6 and its stage-discharge table, pp. 8-24 to 8-25; eqs. 8-18 and 8-19. [link]
- FHWA, Hydraulic Design of Highway Culverts, HDS-5, 3rd ed., April 2012 (HIF-12-026). Design Guideline 1.3 and Culvert Design Form DG 1.3.3 (pp. DG1.1 to DG1.4); Appendix A eqs. A.1 and A.3 and Table A.1; Appendix C Table C.2; Chapter 5 outlet-control energy equation as restated in CDF footnote (7). [link]
- FHWA HEC-22, 3rd ed. (2009), Chapter 4, Example 4-1 (English units), Solutions (1) and (2), pp. 4-10 to 4-11; eq. 4-2. [link]
- FHWA HEC-22, 3rd ed. (2009), Chapter 5, Example 5-1 (English units), pp. 5-6 to 5-7; eq. 5-5. [link]
- Closed-form hand calculation (Manning's equation with the circular-segment geometry, as in FHWA HEC-22 Chapter 7 and TR-55 eq. 3-4). No published number is needed: at half depth R equals the full-pipe R, so Qhalf = Qfull/2 exactly. [link]
- Renard, K.G., Foster, G.R., Weesies, G.A., McCool, D.K., Yoder, D.C. (1997). Predicting Soil Erosion by Water: A Guide to Conservation Planning with the Revised Universal Soil Loss Equation (RUSLE). USDA Agriculture Handbook No. 703. Chapter 4, eqs. 4-1 to 4-5 (pp. 105-107) and the Table 4-2 value quoted on p. 112. [link]
- Williams, J.R. (1975), "Sediment-yield prediction with Universal Equation using runoff energy factor", USDA-ARS S-40; equation and units as restated in USACE, HEC-HMS Applications Guide, "Case Study: Estimating Sediment Yield in the Upper North Bosque River Watershed (UNBRW)", eq. 11. Closed-form evaluation, all steps shown. [link]
- Camp, T.R. (1946), "Sedimentation and the design of settling tanks", Trans. ASCE 111; vc = Q/A as stated in USACE HEC-HMS Technical Reference Manual, "Chen Sediment Trap". Fall velocities: Stokes' law and Rubey (1933) as printed in HEC-HMS TRM, "Fall Velocity and Settling". Closed-form evaluation, all steps shown. [link]
- NCDEQ, Stormwater Design Manual, Part B Stormwater Calculations, "Simple Method for Runoff Volume" (revised 3-15-2017, p. 2). Closed-form evaluation of the published equations, all steps shown. [link]
- FHWA HEC-22, 3rd ed. (2009), Chapter 8, Example 8-8 and eq. 8-26, pp. 8-35 to 8-36 (Q = 40.6 ft³/s at Hp = 0.98 ft). USDA-NRCS TR-55 (1986), Chapter 6, Example 6-1 and eq. 6-4, p. 6-4 (Lw = 4.1 ft, Hw = 5.7 ft, C = 3.2). [link]
- HydroCAD 10.10-4a printed report for a McGill Associates scratch model of a 55.4-acre site in northern Illinois, printed 3/3/2026 (16 pp.). SCS TR-20 runoff, SCS unit hydrograph, Stor-Ind routing, time span 5.00–20.00 hr at dt 0.05 hr; storms "100yr" 8.57 in and "2yr" 3.34 in, SCS Type II 24-hr (p. 2). Node summaries pp. 8–10 and 12–14. The project file is read at build time from the private test fixtures and is not published; message texts [82]/[85]/[92]/[93] are quoted from hydrocad.net/messages.htm. [link]
- HEC-HMS 4.13 basin model of the same 55.4-acre northern-Illinois site as case 19 (a later, revised model: different subbasin set, CN 85/87, lag in minutes). Reference peaks from the project's run-summary sheets (pp. 1–2, 100-yr and 2-yr) and the Run_53 results file (100-yr, CN 86.2/84.5): peak flow, time of peak, excess volume and depth. Meteorologic models are "Frequency Based Hypothetical" storms (NOAA Atlas 14 depth-duration table, 5-min interval, 1440 min, 50 % before peak) read from the .met files at build time. Project files are private test fixtures and are not published. [link]
Footnote on unit tests: as of this build the repository carries 464 vitest unit tests in 36 files plus 31 node integration scripts under tests/. Those check that the code does what the code intends; the cases on this page check that what it intends matches the published references. Only the second kind is evidence a reviewer should care about, which is why the count is a footnote.
— Michael Flynn, PE
Cases are added as we find published examples that exercise a shipped engine path. If you know a worked example we should run, or you find a number here that is wrong, tell us and it will be fixed on the page, not in the tolerance.