Equipment Nozzle Load Check Calculator (API 610 / NEMA SM-23)
Returns the per-component unity ratios |applied|/allowable at an equipment nozzle, the governing component, and the resultants FR and MR. Allowables come from the governing standard — API 610 §5.4, NEMA SM 23 §8.4, API 650 Annex P — and stay user inputs; none are embedded.
Method last updated (calculation changelog) · fixture-verified on every build — most recently 2026-09-03.
Built and fixture-verified by Matthew Norris, P.E. — active P.E. licensure in Arizona, California, Kansas, Missouri, North Carolina, Texas.
Compares the six applied load components at an equipment nozzle — Fx, Fy, Fz, Mx, My, Mz from your flexibility analysis — against the allowables for that nozzle size, and reports the unity ratio of each, the governing component, and the resultants FR and MR. The allowable-load tables in API 610, API 560, API 660, API 661, API 650, API 620 and NEMA SM 23 are copyrighted: by default you enter the allowables for your nozzle size from the governing standard or the vendor datasheet, and the standard you pick is a report label only — though on the Ultimate tier an autofill picker covers API 610 Tables 5a/5b, API 660 Table 2, API 661 Table 4 and API 560 Tables 7/9, each pick citing its edition, table and row (see the PiperNOZ tool page). This page, its method and its worked example are free to read; opening the live calculator on the Equipment line requires a Pro Plus subscription — see pricing.
Video demo
▶
PiperNOZ - Equipment Nozzle Load Check (API 610 / 560 / 660 / 661 & NEMA SM-23) (0:57) — This check as PiperNOZ runs it — six components as unity ratios, the governing component named, resultants FR and MR, and the PASS/FAIL verdict framed against API 610/560/660/661 and NEMA SM-23 practice. The allowables shown are illustrative and user-supplied, exactly as this page states. Watch on YouTube.
Method
The check is a per-component unity ratio. Every component is tested independently against its own allowable, and the largest ratio governs the result:
ri = |appliedi| / allowablei for i = Fx, Fy, Fz, Mx, My, Mz
rmax = max(ri) governing = the i that produced rmax
FR = √(Fx² + Fy² + Fz²) MR = √(Mx² + My² + Mz²)
status = PASS if rmax ≤ 1, otherwise FAIL
where appliedi is the load component transmitted by the piping to the nozzle, taken from the flexibility model in the axis system the equipment standard defines, and allowablei is the limit for that component at that nozzle size, read from the governing standard's table or the vendor datasheet. The absolute value is taken, so a sign convention error in the model will not be caught here. FR and MR are the vector resultants of the applied loads, reported for the record — they are not compared against any allowable, because most standards limit components (and combinations), not the bare resultant. Ratios are reported to five decimals, resultants to two. A zero or negative allowable is rejected rather than silently divided by.
| Inputs | ||
|---|---|---|
| standard | Governing standard label for the report (API 610, 560, 660, 661, 650, 620, NEMA SM-23, or vendor datasheet) — selects nothing in the arithmetic | — |
| NPS | Nozzle nominal size — tells you which row of the allowable table to read; it does not enter the calculation | in |
| Fx, Fy, Fz | Applied nozzle forces from the piping flexibility analysis | lbf |
| Mx, My, Mz | Applied nozzle moments from the piping flexibility analysis | ft·lb |
| Fx,all, Fy,all, Fz,all | Allowable forces for that nozzle size — user-supplied from the governing standard or datasheet | lbf |
| Mx,all, My,all, Mz,all | Allowable moments for that nozzle size — user-supplied from the governing standard or datasheet | ft·lb |
| Outputs | ||
| FR | Resultant applied force, √(Fx² + Fy² + Fz²) — reported, not checked | lbf |
| MR | Resultant applied moment, √(Mx² + My² + Mz²) — reported, not checked | ft·lb |
| ratios | The six per-component unity ratios |applied|/allowable | — |
| maxRatio | Largest of the six component ratios | — |
| governing | Component that produced maxRatio | — |
| status | PASS when every component ratio is ≤ 1, otherwise FAIL | — |
Limitations — what this calculator is not
- Component check only — it does not evaluate the combined criteria that most standards layer on top: NEMA SM 23's combined-resultant / 3F + M index and API 617 rotating-equipment limits are handled by the NEMA SM-23 / API 617 Combined Index calculator on the same Equipment line, and API 610 Annex F resolution of all nozzle loads to the pump centreline is a separate check. A PASS here is necessary, not sufficient.
- No allowable-load table is embedded for any standard. The
standardfield is a report label; you supply the allowables for your nozzle size from the governing edition or the vendor datasheet, and selecting the correct table row (size, rating, material, temperature, anchored vs. unanchored) is the engineer's responsibility. - No local shell or nozzle-junction stress is computed — nothing here tells you the stress in the vessel wall at the nozzle. Use the Shell Nozzle Loads calculator (WRC 107/297, BPVC Section VIII Div 2 Part 5) for that, or PiperFEA for a finite element nozzle/shell model.
- Ratios use absolute values, so the tool cannot detect a mismatch between your pipe-stress model's axis system and the axis system the equipment standard defines. Align the axes before entering loads.
- It does not produce the applied loads — they come from your flexibility analysis (ASME B31.3 ¶319.4.4). Nozzle flexibility, equipment thermal growth, settlement, cold spring and bolt-up effects must already be in that model.
- No flange leakage, gasket seating or bolt-stress check at the nozzle joint — use the Section VIII Appendix 2 bolted flange calculator on the Auxiliary line.
Worked example — fixture-verified
NPS 6 discharge nozzle on an API 610 centrifugal pump. The flexibility model delivers Fx 100, Fy 200, Fz 200 lbf and Mx 300, My 400, Mz 0 ft·lb. The allowables read from the governing standard's table for that nozzle size are 400 lbf on each force component and 600 ft·lb on each moment component.
| Given | ||
|---|---|---|
| Governing standard | API 610 | — |
| Applied Fx | 100 | lbf |
| Applied Fy | 200 | lbf |
| Applied Fz | 200 | lbf |
| Applied Mx | 300 | ft·lb |
| Applied My | 400 | ft·lb |
| Applied Mz | 0 | ft·lb |
| Allowable force, each component | 400 | lbf |
| Allowable moment, each component | 600 | ft·lb |
Step by step
- Resultant force: FR = √(100² + 200² + 200²) = √(10,000 + 40,000 + 40,000) = √90,000 = 300 lbf.
- Resultant moment: MR = √(300² + 400² + 0²) = √(90,000 + 160,000 + 0) = √250,000 = 500 ft·lb.
- Force ratios: Fx 100/400 = 0.25; Fy 200/400 = 0.50; Fz 200/400 = 0.50.
- Moment ratios: Mx 300/600 = 0.50; My 400/600 = 0.66667; Mz 0/600 = 0.
- Largest of the six: 0.66667 at My. Since rmax ≤ 1, every component is inside its allowable and the check returns PASS.
- Note what was not compared: FR = 300 lbf and MR = 500 ft·lb are reported for the record only — no resultant allowable is applied, and the API 610 combined criteria are a separate check.
| Result PASS | ||
|---|---|---|
| Resultant force FR | 300 | lbf |
| Resultant moment MR | 500 | ft·lb |
| Max unity ratio | 0.66667 | — |
| Governing component | My | — |
My carries the least margin at 0.66667 — it is the component to watch if the routing, the support scheme or the operating temperature changes. Push any component past 1.0 and the status flips to FAIL and names that component instead.
nozzle-load-check.json — case “API 610 style, all components within allowables -> pass” (tolerance 0.00001) — in the
calc-core release gate. It re-runs on every commit; a red fixture blocks deployment.
See the validation methodology.Additional verified cases in this fixture
NEMA SM23 style, Fz over allowable -> fail FAIL
input: {"standard":"NEMA SM23","applied":{"Fx":100,"Fy":200,"Fz":500,"Mx":300,"My":400,"Mz":0},"allowable":{"Fx":400,"Fy":400,"Fz":400,"Mx":600,"My":600,"Mz":600}}
expect: {"maxRatio":1.25,"governing":"Fz"}
tol: 0.00001Sources & citations
- API 610 / ISO 13709, Centrifugal Pumps for Petroleum, Petrochemical and Natural Gas Industries — §5.4 nozzle loadings and Annex F allowable-load criteria; table values user-supplied, not embedded.
- NEMA SM 23, Steam Turbines for Mechanical Drive Service — §8.4 nozzle load limits, including the combined-resultant criterion evaluated by the separate combined-index calculator.
- API 650, Welded Tanks for Oil Storage — Annex P, loads on shell openings; API 620 for low-pressure storage tanks.
- API 560 (fired heaters), API 660 (shell-and-tube heat exchangers) and API 661 (air-cooled heat exchangers) — nozzle loading clauses; allowables per the standard or the purchased datasheet.
- ASME B31.3, Process Piping — ¶319.4.4, flexibility analysis. Reactions on connected equipment are judged against the equipment standard's limits, not against B31.3 stress allowables.
Per the source & citation policy, allowable-stress and factor table values are user-supplied. Where a page does reproduce specific ASME data (the B16.5 ratings, the quick-reference tables), it states the source table and conditions inline.
FAQ
Which standard's allowable loads does this calculator use?
None — it holds no allowable-load tables at all, and that is a policy, not a gap. You enter the six allowables for your nozzle size from API 610, 560, 660, 661, 650, 620, NEMA SM 23 or the vendor datasheet, and the standard you select is written into the report as a label only. The reasoning has two halves. Those tables are copyrighted, and an embedded snapshot would silently go stale the moment a new edition issued — an engineer trusting a 2019 snapshot against a 2024 datasheet is worse off than one who typed the values in. And the table is frequently not the governing document anyway: vendors routinely quote allowables above or below the standard's defaults on the datasheet, and the datasheet wins. Typing six numbers costs a minute; the report then shows exactly which numbers were used and where you said they came from, which is what a reviewer actually needs to check the work.
If every component passes, will the equipment vendor accept the loads?
Not necessarily, and the gap is structural to how these standards are written. The per-component table limits this card checks are the first tier; most standards then apply combined criteria on top — NEMA SM 23 layers a combined-resultant check and the 3F + M index over its component values, and API 610 Annex F permits individual components to exceed the table only if the complete load set, resolved to the pump centreline, satisfies further conditions. So two outcomes both occur in practice: every component passes here and the combination still fails the vendor's screen, and — the direction people forget — a single component over the table survives disposition under Annex F because the resolved set qualifies. This card's role is the per-component tier and the resultants FR and MR for the record; run the NEMA SM-23 / API 617 Combined Index calculator for the second tier, and treat the vendor's stamped datasheet as the final authority on both.
Why is there an NPS selector if the nozzle size does not enter the arithmetic?
Because the allowable is a function of nozzle size in every one of these standards, and the failure mode the selector exists to catch is reading the wrong row. The unity-ratio arithmetic is identical for a 2 in nozzle and a 12 in nozzle — |applied| over allowable, component by component — but the allowables you should have entered differ enormously between those rows, and a transposed row produces a clean-looking check that is wrong everywhere. The selector records which table row you claim to have read and prints it on the report next to the entered values, so a reviewer can open the standard to that row and verify the six numbers belong to the nozzle actually being assessed. It changes nothing in the unity-ratio maths; it exists so the calculation is auditable — the record of a nozzle check has to say what was checked against, or it is not a record.
Is the nozzle load check free to use?
The method write-up, the equations, and the worked example on this page are free to read and always will be — you can hand-check a nozzle against them with nothing but a calculator, and the page exists so the check itself is never behind a wall. The live calculator sits in PiperNOZ on the Equipment line, included with Pro Plus at $7.99/month or $79/year; what the subscription buys is the execution around the arithmetic — per-component ratios with the governing component named, resultants FR and MR for the record, and report-grade output that lands in the same calculation package as the stress and spring calcs beside it. The ASME B31 pressure-design and stress calculators — wall thickness, allowable pressure, leak test, branch reinforcement, SIFs, displacement stress range — remain free with no account, permanently. Details at pricing.
Related calculators & tools
- Flange Equivalent Pressure Calculator (Kellogg Method) — The flanged joint at the same nozzle carries these loads
- Displacement Stress Range Check (ASME B31.3 ¶319.4.4) — Source of the moments and forces checked here
- Expansion Loop / Leg Sizing Calculator (Guided Cantilever) — Add flexibility when nozzle loads exceed allowables
- PiperNOZ — equipment nozzle loads (Pro Plus) — The full Equipment workspace — Annex F, NEMA index, WRC screen, preset autofill
- PiperFEA — nozzle/shell finite element analysis (Ultimate) — When the table check needs more: screen the junction with FEA