HydraStorm supports multiple storm events per project with independent return periods for each design module: storm drains, inlets, and culverts. Each module can have its own design storm and check storm, and each return period carries its own frequency adjustment factor (Cf).
Many jurisdictions require analysis at two or more return periods, and different design elements may use different storms. Common requirements include:
Rather than maintaining separate parallel calculations, HydraStorm runs all storms on the same network in a single analysis pass, guaranteeing consistency.
Storm configuration has two levels, on different tabs of Project Settings. The Hydrology tab declares which storms exist at all; the Storm Drain, Culverts, and Inlets tabs each pick which of those storms that module runs, and in what role.
The Storm Events table on the Hydrology tab is where a return period first comes into existence. Each row has:
Adding a storm here only makes it available. A storm does nothing until a module below picks it up, and the IDF Curves sub-tab gets one intensity column per storm the moment it's added, so a municipal table can be filled in before any module is pointed at that return period.
Each module carries its own Storm Events grid, populated by picking from the periods declared on the Hydrology tab (a + Add combo lists only the ones that module doesn't already analyze) and assigning a role per row:
| Column | Meaning |
|---|---|
| Storm | The return period, read-only — add or remove periods on the Hydrology tab. |
| Role | Design, Check, or Analysis. Exactly one row may hold Design and one may hold Check; any number of the rest run as Analysis (HGL computed, no sizing or compliance verdict). The Storm Drain tab requires a Design row; Check is optional on all three tabs. |
| Inlet (Storm Drain grid only) | Couples that storm's pipe flows to the inlet module's captured/bypass results (see Inlet Flow Coupling below). Culverts and Inlets have no such column — only the Storm Drain pipe network has flows for inlet capture to feed into. |
A module's list can be left empty: Culverts and Inlets then run on the storm drain's own storm list, at the same roles. Leaving the storm drain list itself empty is not possible — it needs at least a Design row to compute anything.

Beside the storm drain's own grid, the Sizing Storm radio pair (shown once a check storm is enabled) controls which storm event the Auto Design engine uses when selecting pipe sizes:
| Option | When to Use |
|---|---|
| Design Storm | Most common. Size pipes to convey the design storm at or below full capacity. The check storm is used only for HGL verification. |
| Check Storm | Some jurisdictions require sizing to the check storm. This produces larger pipes that can convey the higher flows. |
When multiple storms are defined, the calculation engine runs the full hydraulic pipeline for each storm event with completely independent results:
The Cf factor is a multiplier on the runoff coefficient C per TxDOT and FHWA guidance. It accounts for the fact that the rational method can underestimate peak flows at higher return periods. Each return period has one Cf, entered in the Cf table on the Hydrology tab:
| Storm | Return Period | Cf | Effective C |
|---|---|---|---|
| Design | 10-year | 1.00 | C |
| Check | 100-year | 1.25 | 1.25 × C |
The resulting flow is: Q = Cf × C × I × A
Because the lookup is by return period, a module analysing a storm the storm drain isn't sized for still gets the right factor: a 100-year culvert check uses the 100-year Cf even when the trunk line is sized for the 10-year storm. See Frequency Adjustment (Cf).
When the inlet module is enabled, coupling is authored per storm drain storm, not by two project-wide checkboxes: on the Storm Drain tab's Storm Events grid, the Inlet column checked on a row means that storm's pipe flows route actual inlet capture and bypass instead of assuming full interception at every structure (the conventional conservative method — the inlet module still rates spread and capture either way; only what feeds the pipes changes). Check it on the Design row, the Check row, both, or neither, independently.
This coupling allows the pipe network to carry only what the inlets actually capture, resulting in a more accurate (and often more economical) design.
When creating HGL profiles in Civil 3D via Output → Create HGL Profiles…, you can choose to profile the design storm, the check storm, or both. Each storm produces its own named profile in the drawing:
Alignment1-HGL-10yr — design storm HGL profileAlignment1-HGL-100yr — check storm HGL profileBoth profiles reference the same pipe alignment, making it easy to compare hydraulic grade lines in the Civil 3D profile view.
The Results Table displays columns for the selected storm. The storm drain results grid shows design storm values by default, with check storm columns visible when a check storm is configured. Key columns include:
Culvert results and inlet results appear in their own tabs with per-storm columns.
Note: In Peak Flows Only mode, and on the HydraLink Peak Flows basis, each storm carries its own directly entered or imported flow at each node. In the rational modes (Manual, and HydraLink on the Basin Parameters basis), each storm uses its own IDF curve and its return period's Cf to compute flows independently, and a directly entered flow is excluded from every storm.