Manning open-channel velocity calculator
Enter a roughness of 0.013, a hydraulic radius of 1 m and a slope of 0.001, and Manning's formula returns the mean flow velocity in metres per second; switch to US units and it works in feet with the 1.486 factor. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Roughness
- 0.013
- Hydraulic radius
- 1
- Slope
- 0.001
- Unit system
- Si
- Manning k
- 1
- Velocity
- 2.4325212771
- Velocity unit
- m/s
Mean flow velocity in an open channel is the first number a drainage, irrigation, or river-hydraulics check needs once roughness, hydraulic radius, and bed slope are known. Manning’s formula gives that velocity directly: V equals k over n times R to the two-thirds times the square root of S. This Manning open-channel velocity calculator accepts the roughness coefficient n, the hydraulic radius R, and the energy or bed slope S, then returns mean velocity in metres per second when you use SI units with k equal to one, or feet per second when you use US customary units with k equal to 1.486.
Manning’s formula for mean open-channel velocity
Robert Manning’s empirical resistance law is the everyday way civil and agricultural engineers turn a roughness number, a hydraulic radius, and a slope into a mean velocity. Written for uniform flow it is V equals k over n times R to the two-thirds times the square root of S. The hydraulic radius R is the flow area divided by the wetted perimeter; it is a length, not a geometric radius of a circle, and it is the characteristic size that appears in every open-channel friction formula.
Slope S is the dimensionless energy gradient, often taken as the bed slope for long prismatic reaches at normal depth. The roughness coefficient n lumps grain texture, vegetation, irregularities, and alignment into a single number: finished concrete often sits near 0.012 to 0.015, earth canals near 0.020 to 0.030, and weedy or cobbled channels higher still. The factor k carries the unit system.
In SI, with R in metres, k is one and V comes out in metres per second. In US customary units, with R in feet, k is 1.486 and V comes out in feet per second; some handbooks round that factor to 1.49, but this calculator keeps 1.486 so automation does not drift from the usual textbook conversion.
Because n sits in the denominator and S is taken under a square root, neither may be zero or negative: a zero roughness would imply frictionless flow, and a zero or uphill slope would not drive a positive uniform-flow velocity under this law. Negative n or S is a data error, not a physical case this landing advertises. Hydraulic radius must also be positive, because a dry or degenerate section has no meaningful mean velocity to report.
When a quick Manning velocity check helps
Drainage and irrigation designers size roadside ditches, lined canals, and earthen laterals by first taking a section’s hydraulic radius from survey or a geometry helper, then applying Manning’s equation to see whether the mean velocity stays below an erosive limit or above a silting limit. Municipal stormwater spreadsheets that mix SI and US customary reaches need a deterministic oracle so a k of 1.486 never becomes 1.49 in one cell and 1 in the next.
University open-channel courses and exam generators need both the SI and US forms without maintaining two code paths, and they need the zero-n and zero-slope cases to fail loudly instead of returning infinity or a quiet NaN. Field apps used by survey crews can accept a measured or design n, an R from staff-gauge geometry, and a surveyed bed slope and return mean velocity for roughness calibration. Prefer this capability when you already have n, R, and S and only need the mean velocity.
What you can do with it
Canal and ditch design velocity checks
Convert a design Manning n, hydraulic radius, and bed slope into mean velocity and compare the result with maximum allowable velocity for the lining or soil.
Open-channel homework and exam oracles
Let students submit n, R, and S in SI or US customary units and verify V = (k/n)·R^(2/3)·√S, including loud rejection of zero or negative n or slope.
Stormwater spreadsheet and model inputs
Produce a deterministic mean-velocity series from reach roughness, hydraulic radius, and energy slope without embedding conflicting k factors in a workbook.
FAQ
What happens if the roughness coefficient or slope is zero or negative?
Manning’s law is undefined for n ≤ 0 or S ≤ 0; those failures are not billed.
Does this find normal depth or channel discharge?
No. It evaluates mean velocity from n, R, and S only. Compute hydraulic radius from geometry first if you need it, and multiply V by area yourself if you need discharge.
What does the Manning open-channel velocity calculator cost?
The browser tool is free and runs locally.
Can I work in feet instead of metres?
Yes. Choose US customary units, enter the hydraulic radius in feet, and the calculator applies the factor 1.486 and returns feet per second. With SI units the factor is 1 and the result comes out in metres per second.
What roughness coefficient should I use?
Pick the value that matches the channel lining. Finished concrete often sits near 0.012 to 0.015, earth canals near 0.020 to 0.030, and weedy or cobbled channels run higher still.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/earth/manning-velocity \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"roughness":0.013,"hydraulic_radius":1,"slope":0.001}'const res = await fetch("https://api.kit.forhosting.com/earth/manning-velocity", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"roughness": 0.013,
"hydraulic_radius": 1,
"slope": 0.001
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/earth/manning-velocity",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"roughness": 0.013,
"hydraulic_radius": 1,
"slope": 0.001
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/earth/manning-velocity", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"roughness":0.013,"hydraulic_radius":1,"slope":0.001}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"roughness":0.013,"hydraulic_radius":1,"slope":0.001}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/earth/manning-velocity", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"roughness": 0.013,
"hydraulic_radius": 1,
"slope": 0.001
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "earth.manning_velocity",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
A zero or negative roughness coefficient or slope is rejected with invalid_input, because the resistance law is undefined when n or S cannot be positive.
Input contract, response shape, and error behaviour
POST a JSON body with three required finite numbers: roughness (aliases n, manning_n, roughness_coefficient, and manning_roughness), the positive Manning coefficient; hydraulic_radius (aliases r, R, radius, and rh), the positive hydraulic radius in metres for SI or feet for US customary; and slope (aliases s, S, bed_slope, energy_slope, s0, and friction_slope), the positive dimensionless rise-over-run. An optional unit_system field accepts the closed set si or us and defaults to si. Values may arrive as JSON numbers or numeric strings that match a strict finite pattern. Missing fields, non-finite values, a roughness or slope that is zero or negative, a non-positive hydraulic radius, n above ten, S above ten, or R above one trillion fail with invalid_input and a message that names the field; those failures are not billed. On success the body echoes roughness, hydraulic_radius, slope, and the resolved unit_system, then returns manning_k (one or 1.486), velocity, velocity_unit (m/s or ft/s), method set to manning, a compact formula string, and an equation string filled with the rounded numbers. Example: roughness 0.013, hydraulic_radius one metre, slope 0.001, SI units yields about 2.4325 metres per second, because one over 0.013 times one to the two-thirds times the square root of 0.001 is that value. Pricing is a flat $0.002 per successful request with unit item; failed validation does not consume prepaid balance.
Technical questions
How do I calculate open-channel velocity with Manning’s equation?
Send positive finite roughness n, hydraulic_radius R, and slope S. The API returns V = (k/n)·R^(2/3)·√S, with k = 1 in SI (m/s) or k = 1.486 in US customary (ft/s).
Which units does the Manning velocity calculator use?
unit_system si (default) takes R in metres and returns m/s with k = 1. unit_system us takes R in feet and returns ft/s with k = 1.486. Slope is always a dimensionless ratio.