The Rational Method is the most widely used technique for estimating peak runoff from small drainage areas. HydraStorm implements the full rational method calculation with automatic downstream accumulation of area, weighted C, and travel-time-adjusted Tc.
Where:
HydraStorm walks the network from upstream to downstream, so every node is computed only after everything draining to it. At each node it performs the following steps:
In a rational hydrology mode (Manual, or HydraLink on the Basin Parameters basis) the accumulation is pure: a pipe's flow is
and nothing else is added to it. In particular:
Because ΣCA and I are both reported per pipe in the results table, the product Cf × ΣCA × I reproduces the computed peak the way a hand-checked storm drain sheet does. Two options can still move the flow a pipe finally carries away from that product: the non-decreasing-flow rule, when a larger upstream Q is carried down; and the rational conversion factor (×1.008), when it is enabled. Hover the Q_tot cell for the breakdown: a carried-down upstream Q is called out there.
When the inlet module is coupled to a storm, the pipes carry what each inlet actually captures, and bypassed flow joins the accumulation at the structure that intercepts it downstream. See Capture and CA in below for how that shows up in the outputs.
Excluding a flow silently would look like flow vanishing, so HydraStorm raises one aggregate calculation warning per storm naming the affected structures (the first five, then a count of the rest):
Entered/imported flow excluded on 3 node(s): 'STM-14' (4.2 cfs), 'STM-15' (1.8 cfs), 'STM-22' (6.0 cfs). In this hydrology mode Q comes from the ΣCA · Cf · I accumulation only; a directly specified flow never sums into a rational peak (the peaks are not coincident in time). Represent off-site flow as C·A basin parameters, clear the leftover flow, or, if the flows come from a routed HydraLink model, link on the Fixed Flows basis.
The warning names the structures rather than pointing at one, since it covers all of them at once. You have three ways to resolve it:
Because a typed Q is excluded on every row in a rational mode, the results grid hides its local Q input column entirely in these modes; the computed Q_tot stays, read-only. Edit C, A, or Tc instead.
Note: A structure that carries an excluded flow is not also flagged as "no drainage area assigned", since that would report the same problem twice. It appears only in the exclusion warning.
These parameters are entered in the Hydrology Table or imported from a data source depending on the active hydrology mode.
| Parameter | Units | Description |
|---|---|---|
| Drainage Area | acres | Contributing drainage area at this node |
| C (Runoff Coefficient) | dimensionless | Weighted average if multiple basins contribute |
| Tc (Time of Concentration) | minutes | Travel time from the most hydraulically remote point |
Blank C or Tc uses the project default, and says so. A structure with a drainage area but no runoff coefficient or no inlet time is priced on the default from Project Settings > Hydrology. That is a legitimate value, but it is the program's, not yours: the calculation raises a warning naming the structures and the default it used, and the flow breakdown tooltip on those rows marks the value as the project default rather than an entered one. A basin that arrived from an import without a C reads as a considered choice otherwise.
A structure with no cumulative drainage area at all is different: its Weighted C reports as 0, not the project default. Q is zero either way, but a pass-through junction with nothing tributary to it printing “C = 0.70” in the grid, the drafted table, and the workbook would read as a considered coefficient rather than the absence of one.
Rainfall intensity is interpolated from IDF data configured in Project Settings > Hydrology. The IDF equation used is:
See the IDF Data page for setup instructions and data source options.
Note: Because system-Tc accumulation looks up intensity at a different duration for every node, a rational hydrology mode needs a usable intensity source (a table or fitted b/d/e coefficients) for every configured storm return period (design, check, and any independent culvert/inlet storms). HydraStorm checks this when you click OK in Project Settings and blocks the change, listing which return periods are missing intensity data, until it's satisfied.
The calculation enforces the same rule, because the data can move after the settings were committed: an IDF row deleted, a HydraLink re-import that no longer publishes a storm, a project file authored on another machine. A storm with no intensity source would otherwise price every basin at zero intensity: all flows 0.00 cfs, the HGL sitting on the invert, and a storm that passes every criterion because nothing was ever loaded into it. Instead that storm is reported as an error and its results are withheld (it gets no rows, no HGL, no compliance verdict), while the storms that can be priced compute normally. (On older projects that predate per-storm configuration there is only one set of results to withhold, so the run stops instead.)
Note: A rational hydrology mode also refuses to run at all against a pond this network continues below, because storage attenuates flow and ΣCA cannot. See Import Basis for when this applies and the remedy (solve the plan in HydraLink so its routed outflow can be read, never delete the pond).
Per-pipe rational-method values are shown in the results table: C, A, and Tc (the local inlet time) at the upstream structure, Tt (this pipe's travel time), Tc_tot (the controlling accumulated system Tc), ΣCA (the accumulated C·A at the upstream structure, laterals included), and I (the intensity looked up at Tc_tot). These columns only appear when a rational hydrology mode is active, and the local Q input column is hidden while they are shown.
In Manual mode, C/A/Tc are editable directly in the grid. In HydraLink mode, they're seeded from the matched basin(s) and shown read-only; edit them in the Hydrology Table, or convert the node to Manual there to break the link and enter values by hand. Tt, Tc_tot, and I are always engine-computed and read-only.
Two literals close ΣCA once inlet capture routing is in play: Capture, the share of a structure's own C·A that enters the pipes there, and CA in, the C·A carried to it along the gutter by an upstream inlet's bypass that it actually intercepted. Both are inlet facts and are read on the Inlet tab and in the Excel storm calcs sheet; neither is repeated on the Storm Drain grid, which states the accumulation it owns (C, A, Tc, ΣCA, I). Together with the upstream ΣCA, these two columns let a reviewer reconcile the ΣCA at each structure in the workbook.
A blank Capture reads as a multiplier of 1 (nothing routed away). Both columns appear in the workbook automatically once a rational hydrology mode and the inlet module are both active. There is nothing to turn on. With inlets off, ΣCA already reconciles from C·A alone and they stay hidden.
When the rational method is active, Tc accumulates downstream through the network. At each node:
Where pipe travel time is:
This ensures that the most hydraulically remote path governs the Tc at each downstream node, which in turn determines the rainfall intensity used in the Q = CIA calculation.
Travel time accumulation is off by default (Include pipe travel time in Tc, under Flow Accumulation on Project Settings > Storm Drain). When it's on, which velocity feeds tpipe = L / V is a project-wide choice, set alongside that checkbox:
When multiple basins contribute to a node (via confluence of upstream pipes), the runoff coefficient is area-weighted:
This weighting applies automatically at every node that receives flow from more than one contributing area.
A structure with more than one outgoing pipe, such as an outfall-typed splitter (the only kind of split HydraStorm allows) or twin/parallel barrels leaving one pair of structures, divides its flow and ΣCA among the outgoing pipes. The results grid and the export report each pipe's own share, not the node's total, the same way a peak-flow accumulation (Peak Flows Only / Peak Flows basis) divides flow at a split. Add the legs together when you need the node total.
By default, HydraStorm accepts standard rational-method behavior: because intensity drops as system Tc grows, the computed ΣCA·i(Tc) at a node can come out lower than the flow already arriving in its incoming pipes. Check Carry larger upstream Q downstream (non-decreasing flow) in Project Settings > Storm Drain to instead enforce a TxDOT-style "use the higher discharge" rule: a node's peak flow is then never allowed to drop below the total flow carried by its incoming pipes.
An optional multiplier can be applied to the runoff coefficient for higher return periods, following TxDOT and FHWA guidance. When enabled:
Configure Cf in Project Settings > Hydrology: tick Apply Storm Frequency Adjustment Factor (Cf) and fill in the Cf column of the Storm Events table, which holds one row per return period. Because Cf is keyed to the return period, every storm and every module (storm drain, culverts, inlets) resolves its own value from that one table. See Frequency Adjustment (Cf).
The classic Q = CIA formula assumes a unit conversion factor of 1.0, which is an approximation. The exact English-unit conversion factor is 43,560 / 43,200 ≈ 1.0083. Toggle this option in Project Settings if your jurisdiction requires the precise factor.
Note: The rational method computed values do NOT overwrite your input data. All computed values (accumulated area, weighted C, adjusted Tc) are stored in the calculation results, not in the node's hydrology input. Your original per-node entries remain unchanged.