Why the answer is a crossing, not a number
A pipe does not have a flow rate. It has a relationship between flow and the head needed to sustain it, and that relationship rises steeply — friction goes roughly as the square of velocity, so doubling the flow roughly quadruples the loss. A pump does not have a flow rate either. It has a curve that starts at its shutoff head with the discharge closed and falls away as you open it up. Neither one determines the answer alone.
Put both on the same axes and there is exactly one flow where the head the pipe demands equals the head the pump supplies. Everywhere left of it the pump is producing more head than the pipe needs, so the flow accelerates. Everywhere right of it the pipe demands more than the pump has, so the flow falls back. The system settles at the crossing whether you calculate it or not.
hf = f × (L/D) × V² / 2g
Re = V D / ν
TDH = static lift + hf + ΣK·V²/2g + V²/2g + pressure head
Why Darcy-Weisbach and not Hazen-Williams
Hazen-Williams is easier and more familiar, and this page computes it too — as a cross-check, never as the answer. The reason is that it carries no viscosity term at all. Its constant was calibrated for water at about 60 °F and the temperature dependence is baked into the number, so it cannot know that the same pond loop is a different hydraulic problem in April than in August. Darcy-Weisbach carries viscosity explicitly, through the Reynolds number, which is why it works for any fluid at any temperature.
It also has published limits that are narrower than most people realise. Diskin's 1960 analysis found Hazen-Williams applicable only in part of the turbulent transition zone, only for C between 100 and 160, and only inside a Reynolds window that is bounded above as well as below and that shifts with relative roughness. The familiar "valid above Re 105" rule of thumb is not what the source says. This page checks your case against Diskin's own table and tells you when the cross-check does not apply rather than printing a number that looks authoritative.
The critical zone, where nobody has an answer
Between Reynolds 2,000 and 4,000 the flow is neither reliably laminar nor reliably turbulent, and the friction factor genuinely is not a well-defined function of Reynolds number and roughness. It depends on the disturbance history of the flow. Reynolds himself found the transition could be pushed from about 2,000 up to 13,000 by keeping the inlet quiet enough.
Calculators handle this in one of three ways: silently extrapolating the turbulent equation (wrong, and wrong by a lot — at Re 2,000 it runs 60% high), refusing to answer, or interpolating. This one interpolates using the published cubic from EPANET, the EPA's water distribution model, which is the closest thing to a reference implementation in this field. It joins continuously to 64/Re at 2,000 and to the turbulent equation at 4,000. It is also not monotonic — the interpolated factor dips before it rises — and that is a real property of the published algorithm, not a bug here. Whatever the method, a result in this band deserves the warning it gets.
What Crane actually says about fittings
Nearly every fitting table on the internet gives one number per fitting: a 90° elbow is 0.75, a gate valve is 0.17, and so on. Crane's Technical Paper 410, which is where most of those numbers ultimately come from, does not say that. Crane publishes an equivalent length ratio L/D and defines the resistance coefficient as:
K = fT × (L/D)
fT = 0.25 / [ log10(3.7 D / ε) ]² with ε = 0.0018 in
fT is the friction factor for that pipe size in fully turbulent flow, evaluated for clean commercial steel. Because the roughness is fixed by that assumption, fT becomes a function of pipe size alone — and it falls as the pipe gets bigger. The consequence is that the same 90° elbow is K ≈ 0.78 in half-inch pipe and K ≈ 0.49 in four-inch, a spread of more than 1.5 to 1. A single-number K table is a small-pipe approximation, and this page shows the size dependence rather than hiding it.
Note also what Crane does not scale this way. Entrances, exits, sudden contractions and enlargements are geometric losses with bare K values — an exit is one velocity head whatever the pipe size, always. Multiplying those by fT is a common and silent error.
Two other published methods are offered above, and they disagree with Crane by enough to matter: for a 2-inch flanged 90° elbow at Re 105, Crane gives K = 0.57, Hooper's 2-K gives 0.38 and Darby's 3-K gives 0.39 — Crane runs about 45% higher. Peer-reviewed comparison work judges the 3-K method the most accurate of the three for elbows. None of them is "the" answer; what would be wrong is silently blending them, so switching methods here switches the whole calculation and says so.
Where these numbers come from
The friction equations, the flow-regime thresholds and the roughness table are from the USDA-NRCS National Engineering Handbook, Title 210 Part 634 Chapter 4 (2022) — a US government engineering handbook, chosen over textbook reproductions because it is fetchable, citable and prints its own worked examples. Fitting resistance is Crane TP-410. Inside diameters are computed from the published outside diameter and wall thickness in the ASTM and ASME dimensional standards rather than copied from a supplier's friction chart, so the arithmetic is visible.
Two things this page will not tell you
An accuracy figure for the Swamee-Jain equation. The explicit friction-factor approximation used above turbulent Re 4,000 is widely quoted as being "within 1%" of the implicit Colebrook equation. That figure appears only on aggregator sites, and direct computation contradicts it — peer-reviewed comparison over a million-node grid finds a worst case of −3.36%, and an independent check agrees at about 3%, worst at low Reynolds and high roughness. Rather than print a tolerance, this page solves Colebrook iteratively as well and shows you both numbers and the gap between them for your actual case.
Crane's tabulated fT. Crane prints an fT-by-size table on appendix page A-26. That page could not be verified, and the three transcriptions of it in circulation disagree — precisely in the small sizes a homeowner uses. So fT is computed here from the fully-rough equation Crane itself prints, and labelled as computed rather than quoted. Against the widely-copied two-figure table it is exact at 2 inches and runs up to about 4% low elsewhere, so the two are close but not interchangeable. Where a fitting dominates your total — many valves on short pipe — that difference is worth knowing about.
What this tool is for, and what it is not
Water only, and specifically: irrigation mains, shop and yard supply lines, rainwater and greywater transfer, pond and water-feature loops, pool circulation plumbing, and aquarium sump returns. Every equation on this page carries the properties of liquid water and nothing else.
It is not for gas or compressed-air piping, steam, fire-protection sprinkler hydraulics, plumbing-code fixture-unit sizing, backflow prevention, or any determination about pool or spa suction outlets. That last one is deliberate and not a technicality: suction-outlet velocity limits exist to prevent bodily entrapment, they are governed by their own standard, and a general-purpose friction calculator is the wrong instrument for a life-safety decision. If that is the question you have, it belongs with a pool professional working to the applicable code.