Two programs, one pipe, and a 2.5 percent disagreement
Every storm sewer program you have ever used runs the Rational method and Manning's equation. So why do two of them give different answers for the same pipe? Because "the Rational method" leaves three decisions to whoever writes the code, and no vendor tells you which way they went. This week I ran the same Civil 3D network through Hydraflow Storm Sewers and through the storm sewer program I wrote, and chased every difference to its decision.
The network and the two reports
Four lines in series, laid out in Civil 3D and exported the way any of us would: 12, 18, 18 and 18 inch RCP at half a percent, 175 to 186 ft apart, $n = 0.012$, four 4 × 4 ft sag grate inlets with 5-minute inlet times draining 0.42 to 0.57 acres each at $C$ of 0.67 to 0.78, a 10-year NOAA Atlas 14 storm that Hydraflow fitted as $i = 62.50/(t + 8.80)^{0.794}$, a starting HGL of 757.37 at the outfall, and a tenth of a foot of drop through every structure. Hydraflow printed its Storm Sewer Tabulation and HGL Computations pages. StormSewer opened the same .stm file. Downstream first, as Hydraflow numbers them:
| Line | Hydraflow $Q$ (cfs) | StormSewer $Q$ (cfs) | Δ | Hydraflow HGL at structure | StormSewer | Δ (ft) |
|---|---|---|---|---|---|---|
| 1 (outfall) | 10.23 | 10.49 | +2.5% | 759.08 | 759.35 | +0.27 |
| 2 | 7.68 | 7.84 | +2.0% | 760.03 | 760.38 | +0.35 |
| 3 | 5.28 | 5.28 | 0 | 760.44 | 760.94 | +0.50 |
| 4 (top) | 2.97 | 2.97 | 0 | 761.69 | 762.08 | +0.39 |
The top two lines match to the last printed digit. Everything below them drifts. That pattern is the first clue: whatever differs is something that accumulates downstream, and the only thing the Rational method accumulates besides area is time.
Decision one: which velocity feeds travel time
Time of concentration at a structure is the inlet time plus the travel time down every pipe above it, and travel time is length over velocity. The question the method never answers is: which velocity? A pipe running partly full at normal depth has one velocity. The same pipe drowned by backwater from downstream, running full, has a lower one, because the same $Q$ is spread over the whole barrel.
On this trunk, line 3 is exactly that case. Its downstream HGL sits above its crown, so in Hydraflow it runs full: area $1.77$ ft², velocity $5.28/1.77 = 2.99$ ft/s, and $174.95$ ft of pipe takes $0.99$ minutes. StormSewer computes normal depth for $5.28$ cfs in an 18-inch pipe at 0.5% and gets $0.89$ ft, area $1.09$ ft², velocity $4.86$ ft/s, travel time $0.60$ minutes. Follow that downstream:
| Line | Hydraflow $V$ (ft/s) | Travel (min) | StormSewer $V$ (ft/s) | Travel (min) |
|---|---|---|---|---|
| 4 (top, surcharged) | 3.78 | 0.77 | 3.78 | 0.77 |
| 3 (backwatered) | 2.99 | 0.99 | 4.86 | 0.60 |
| 2 (backwatered) | 4.35 | 0.68 | 5.19 | 0.56 |
| $T_c$ at line 1 | $5.0 + 0.77 + 0.99 + 0.68 = $ 7.4 min | $5.0 + 0.77 + 0.60 + 0.56 = $ 6.9 min | ||
Half a minute of $T_c$ is worth 2.5% of intensity on this curve: $i(7.4) = 6.83$ in/hr against $i(6.9) = 7.00$. Multiply by the same $\sum C A = 1.497$ acres and you have Hydraflow's 10.23 cfs against StormSewer's 10.49. That is the entire flow difference in the first table, and line 4 shows why it starts at zero: the top pipe is surcharged in both programs, so both use the full-pipe velocity and both get 0.77 minutes.
Which is right? Hydraflow's is the better physics for a drowned pipe: the water really is moving at 2.99 ft/s. But it costs an iteration the textbook never mentions. The velocity depends on the HGL, the HGL depends on $Q$, $Q$ depends on $T_c$, and $T_c$ depends on the velocity. Hydraflow closes that loop. StormSewer does not, and its normal-depth velocity always errs toward the shorter travel time, the higher intensity, and the larger flow, which is the side you would rather be on when you are sizing.
Decision two: how a surcharged reach loses head
Line 1 carries 10.23 cfs in a pipe whose full-flow capacity is 8.04, so it is pressurised, and the two programs walk the HGL up it differently. Hydraflow works on the energy line. At the outfall the depth is 1.36 ft (the starting HGL sits below the crown), velocity 6.06 ft/s, friction slope 0.706%. At the upstream end the pipe is full, velocity 5.79, friction slope 0.808%. It averages the two, $0.757\%$, multiplies by the 186.07 ft length for 1.41 ft of loss, adds that to the downstream EGL, and subtracts the upstream velocity head to get back to an HGL of 758.82.
StormSewer takes the shortcut most hand calculations take: a pressurised pipe starts at the higher of the downstream HGL and its own crown, and loses the full-flow friction slope at the design flow over its whole length. On line 1 that is $0.845\%$ over 186 ft, or 1.57 ft, starting from the crown at 757.50 instead of the tailwater at 757.37. The upstream HGL lands at 759.07 before the junction loss. Against Hydraflow's 758.82 that is a quarter of a foot, and every structure above inherits it, which is why the HGL column in the first table never closes back up.
Decision three: what the last inlet is worth
Both programs charge a structure loss of $K \, V^2/2g$ at every junction, and both use $K = 0.5$ at the three intermediate inlets. At the top of the run, where there is no incoming pipe, Hydraflow switches to $K = 1.0$: it treats the terminal inlet as an entrance and charges a full velocity head. On line 4 at 3.78 ft/s that is 0.22 ft against StormSewer's 0.11. Small, and worth knowing when your top structure comes out a tenth shallower than the reviewer's run.
The 0.3% nobody talks about
Every capacity in the StormSewer report is 0.3% higher than Hydraflow's: 8.07 cfs against 8.04 on the 18-inch lines, 2.74 against 2.73 on the 12. That is not hydraulics. It is $1.49$ versus $1.486$ in front of Manning's equation. Both are in print; $1.486$ is the exact conversion and $1.49$ is what half the manuals round it to. It will never change a pipe size. It will show up in a percent-full column, and if you have ever wondered why your spreadsheet and your software disagree in the third digit, that is usually where it lives.
What did not differ
It is worth being precise about the agreement too, because it says which parts of the method are actually settled. Slopes matched once StormSewer kept each pipe's own inverts instead of re-sloping to the structure (Hydraflow gives every line its own end inverts; a drop through a manhole is a real thing). Accumulated $C \cdot A$ matched. Intensity for a given $T_c$ matched, and so did the Rational flow for a given $T_c$. The surcharge calls matched. And the inlet schedule matched to 0.01 cfs: every 4 × 4 sag grate captured its approach flow in full at the design depth, once the local flow was computed with the intensity at the inlet's own 5-minute inlet time rather than the pipe system's accumulated $T_c$. That last one had been wrong in StormSewer, and it took the comparison to see it.
Why this matters
On this network, none of the three decisions moves a pipe size. Line 1 surcharges in both programs, lines 3 and 4 are comfortable in both. But line 2 runs at 96% of capacity in Hydraflow and 97% in StormSewer. Another 3% of flow, a slightly flatter grade, a slightly longer run, and the two programs would disagree about whether an 18-inch pipe is adequate, and each would be applying the Rational method and Manning's equation correctly. The engineer sealing the sheet owns that choice. You can only own a choice you can see, and the only way to see a program's choice is to run a network you already know the answer to and read the differences.
The full line-by-line table, with the tolerances and the test that enforces them, is in StormSewer's VALIDATION.md. One trunk under one storm is a start, not proof. If you have a network you designed and stamped and a Hydraflow or Stormwater Studio report to go with it, I would like to add it.
Read the choices, don't guess them
StormSewer is free and open source, opens Civil 3D Storm Sewers .stm files, LandXML and DXF, and writes a submittal PDF. Every one of the three decisions above is documented in the source and in the validation page. HydroComplete follows the same rule on the hydrology side: every formula on the page, with the numbers that went into it.
— Michael Flynn, PE
Next issue: back to the pond outlet for its third personality — when the riser barrel itself becomes the control, and how to tell weir, orifice, and pipe control apart from the stage-discharge curve alone.
More from the Hydraulic Notebook
← Previous Issue 006 — Your low-flow orifice is a weir half the time
← Issue 005 The deterministic dam-breach peak is a lie of false precision
← Issue 002 Kirpich vs NRCS: when time of concentration disagrees by a factor of two
See also: Manning's equation calculator on pe-calc · Rational method calculator