V-notch weir flow calculator
This V-notch weir flow calculator estimates open-channel discharge from the triangular notch angle and the vertical head measured above the notch vertex.
Run — free
It applies the standard sharp-crested V-notch equation, accepts an optional discharge coefficient for the installed weir, and reports flow in cubic metres per second and litres per second. Use it for quick field checks, design comparisons, laboratory calculations, or repeatable API-based processing when the approach flow and installation satisfy the assumptions of the equation.
Measure the head from the correct reference
The head is the vertical distance from the V-notch vertex to the upstream water surface, expressed here in metres. That reference matters because discharge varies with head raised to the power of 2.5, so even a modest measurement error can noticeably change the calculated flow. Measure sufficiently upstream of the plate to avoid the local drawdown immediately beside the crest, and use a stilling well or another stable level reference when the surface fluctuates. Enter the full included notch angle, not the half-angle shown on one side of a centreline. The calculator accepts angles greater than zero and less than 180 degrees. A 90-degree notch is common, but narrower notches can provide greater sensitivity at low flows. The equation assumes free discharge, meaning the downstream water level does not drown the nappe. If the nappe is submerged, clings to the plate, or is poorly ventilated, this simple free-flow calculation may not represent the actual discharge.
Understand the equation and coefficient
The calculation uses Q = (8/15) Cd sqrt(2g) tan(theta/2) h^(5/2), where Q is discharge, Cd is the dimensionless discharge coefficient, g is gravitational acceleration, theta is the included notch angle, and h is head above the vertex. The calculator uses 9.80665 metres per second squared for standard gravity. It defaults Cd to 0.611, a practical nominal value for a sharp-crested notch, but the best coefficient is the one specified by the applicable standard, calibration, or weir installation data. Edge sharpness, plate thickness, approach velocity, aeration, and the ratio of head to channel dimensions can all influence the effective coefficient. Changing Cd scales the answer directly, while changing head has a much stronger nonlinear effect. For defensible measurements, record the coefficient source alongside the dimensions and head rather than treating the default as a universal calibration for every plate and channel.
Interpret and check the result
The primary result is volumetric discharge in cubic metres per second, accompanied by litres per second for convenient field use. The output also repeats the angle, head, coefficient, and gravity used, making automated results easier to audit. Before relying on the number, check that the notch is level, the crest edge is in good condition, sediment or debris is not changing the opening, and the upstream flow is reasonably calm and distributed. Compare the computed value with the expected operating range and investigate surprising jumps in successive readings; because of the 2.5 power on head, a shifted gauge zero can look like a genuine change in flow. This tool calculates one idealized steady reading and does not correct for submerged flow, approach-velocity effects, contractions outside the coefficient, or time-varying levels. For billing, regulatory reporting, or safety-critical control, follow the governing measurement standard and verify the installation by calibration or an independent method.
What you can do with it
Estimate irrigation channel flow
Convert a staff-gauge head reading at a sharp-crested triangular notch into a convenient litres-per-second estimate.
Check laboratory hydraulics data
Recalculate observed V-notch runs with a stated coefficient and compare discharge consistently across different heads.
Automate monitoring calculations
Turn validated level readings into deterministic discharge values for logs, dashboards, and engineering review workflows.
FAQ
What does the calculation cost?
It is free to run in the browser on this page. Each API request costs $0.002.
Where should I measure the head?
Measure vertically from the notch vertex to the upstream water surface, far enough upstream to avoid local drawdown near the plate.
What notch angle should I enter?
Enter the full included angle between both sides of the V. Do not enter the half-angle used inside the tangent term.
What discharge coefficient does the calculator use?
The default is 0.611. Replace it with a coefficient from the relevant standard, calibration, or installation documentation when available.
Does this work for a submerged V-notch?
No. The equation represents free discharge with a ventilated nappe; submerged or drowned flow requires an appropriate correction or another method.
Why does a small head change alter the flow so much?
Discharge is proportional to head raised to the power of 2.5, which makes accurate level measurement and gauge-zero control especially important.
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/eng/weir-vnotch \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"notch_angle_degrees":90,"head_m":0.25}'const res = await fetch("https://api.kit.forhosting.com/eng/weir-vnotch", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"notch_angle_degrees": 90,
"head_m": 0.25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/eng/weir-vnotch",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"notch_angle_degrees": 90,
"head_m": 0.25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/eng/weir-vnotch", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"notch_angle_degrees":90,"head_m":0.25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"notch_angle_degrees":90,"head_m":0.25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/eng/weir-vnotch", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"notch_angle_degrees": 90,
"head_m": 0.25
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "eng.weir_vnotch",
"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. |