Rational Method

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.

Formula

Q = C × I × A

Where:

  • Q = peak runoff flow (cfs)
  • C = dimensionless runoff coefficient (0 to 1)
  • I = rainfall intensity (in/hr) from the IDF curve at duration = Tc
  • A = contributing drainage area (acres)

How It Works in HydraStorm

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:

  1. Accumulate drainage area — sum the areas of all contributing basins at this node plus all upstream contributing areas.
  2. Compute weighted runoff coefficient — area-weighted average of all contributing basins.
  3. Determine time of concentration — the greater of the local inlet time or any upstream Tc plus pipe travel time.
  4. Interpolate rainfall intensity — look up I from the project's IDF curve at the computed Tc duration.
  5. Compute Q = C × I × A — the peak flow at this node.

What Enters the Rational Accumulation

In a rational hydrology mode (Manual, or HydraLink on the Basin Parameters basis) the accumulation is pure: a pipe's flow is

Q = Cf × ΣCA × I(Tctot)

and nothing else is added to it. In particular:

  • A directly entered or imported peak flow contributes nothing. Rational peaks and a fixed peak are not coincident in time, so summing them would overstate the design flow. This applies to every structure, whether or not it also carries basin parameters.
  • Nodes carrying a non-rational methodology (SCS, unit hydrograph, or an accumulated hydrograph result) contribute nothing either: a hydrograph peak has no time of concentration, so it cannot be repriced at the system Tc. Their area and C stay out of ΣCA as well.

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.

Inlet capture is not a separate adjustment applied to Q after the fact — when the inlet module is coupled to a storm, capture is a routing step run inside the same walk. Each inlet's captured share of its local C·A enters the pipes there at that inlet's own Tc; the bypassed complement travels the gutter to its target at the approach Tc and is re-priced at the target's system Tc alongside everything else arriving there. See Capture and CA in below for how that shows up in the grid.

The exclusion warning

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:

  1. Model the contribution as area. Off-site or bypass flow entering the system belongs in the accumulation as C and A, which is also how TxDOT- and iSWM-style calculation sheets carry it.
  2. Clear the leftover flow. If the number is a remnant of an earlier Peak Flows Only design or an earlier import, remove it by round trip: switch the hydrology mode to Peak Flows Only temporarily (Project Settings > Hydrology), blank the value in the Hydrology Table, and switch back. Rational modes hide every flow-entry surface, so the value cannot be cleared while one is active.
  3. Switch the basis. If the flows come from a routed HydraLink model (ponds, culverts, or hydrograph routing), link on the Peak Flows basis instead, where the routed numbers drive the network directly.

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" — that would report the same problem twice. It appears only in the exclusion warning.

Parameters per Node

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.

IDF Curve

Rainfall intensity is interpolated from IDF data configured in Project Settings > Hydrology. The IDF equation used is:

i = b / (Tc + d)e

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 it reaches — storage attenuates flow, and ΣCA cannot. See Import Basis for the reachability rule and the remedy (link the solved .hlresults, never delete the pond).

Results Grid Columns

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.

Capture and CA in

When the inlet module is enabled and coupled to the active storm, one more column appears: CA in, the C·A carried here along the gutter by an upstream inlet's bypass that this structure captured. The share of a structure's own C·A that enters the pipes at that structure — its capture — is an inlet fact and is read on the Inlet tab (and as the Capture column of the Excel storm calcs sheet); it is not repeated on the Storm Drain grid. The ledger the workbook closes is:

ΣCAtot = ΣCAup + Capture × C·A + CA in

A blank Capture reads as a multiplier of 1 (nothing routed away). CA in appears 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 the column stays hidden, matching the Excel export's own default.

Travel Time Accumulation

When the rational method is active, Tc accumulates downstream through the network. At each node:

Tcnode = max(Tclocal inlet, Tcupstream + tpipe)

Where pipe travel time is:

tpipe = L / V
  • L = pipe length (ft)
  • V = pipe velocity (ft/s)

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 Velocity Basis

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:

  • Q / Afull (default) — the pipe's computed discharge over its full-barrel area (shape-aware: box = width × height). Matches the legacy DFW spreadsheet convention and the Excel export's live velocity column. Because full-barrel area doesn't change with flow depth, this basis stays numerically stable even though it depends on Q, which itself depends on Tc.
  • Manning full-barrel normal velocity — velocity from pipe geometry and slope alone, independent of flow. Slightly conservative at partial flow; matches HydraStorm's pre-1.1 behavior.

Weighted C

When multiple basins contribute to a node (via confluence of upstream pipes), the runoff coefficient is area-weighted:

Cweighted = Σ(Ci × Ai) / Σ(Ai)

This weighting applies automatically at every node that receives flow from more than one contributing area.

Multi-Outlet Nodes (Splits)

A structure with more than one outgoing pipe — an outfall-typed splitter (the only kind of split HydraStorm allows) or twin/parallel barrels leaving one pair of structures — divides both the flow and the ΣC·A that prices it equally per outgoing pipe. The results grid and the export report each pipe's own share, not the node's undivided total: a structure splitting into two equal barrels shows half the upstream ΣCA on each pipe's row, matching how a peak-flow accumulation (Peak Flows Only / Peak Flows basis) already divides flow at a split. Reading the node total off one leg's row would overstate it, and re-pricing C·i·A on the whole upstream area at the next structure below a split would double it again if both barrels reconverge.

Non-Decreasing Accumulated Flow

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.

Storm Frequency Adjustment (Cf)

An optional multiplier can be applied to the runoff coefficient for higher return periods, following TxDOT and FHWA guidance. When enabled:

Q = Cf × C × I × A

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).

Rational Unit Conversion Factor

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.

Branches Without Inflow

  • Branches that have no contributing drainage area are automatically skipped during the rational method calculation.
  • If a node has zero area and zero upstream flow, it will show Q = 0 in the results.
  • To assign inflow to a node, enter drainage area in the Hydrology Table or import from a data source.