ASCE 7 Site Hazards for Piping — Wind & Seismic (PiperOCC)
PiperOCC computes ASCE/SEI 7 static wind and seismic component design loads for a piping run, and applies the equation form the selected edition actually specifies rather than one fixed formula: Kd stays inside velocity pressure under 7-10 and 7-16, but moves to the force equation under 7-22; seismic Fp uses the ap/Rp/(1+2z/h) form under 7-10/7-16, or Hf/Rmu/CAR/Rpo under 7-22. Every ASCE table, map, and figure value — V, Kz, SDS, and the rest — is a cited user input, not embedded code data. The factored wind and seismic results hand off directly to PiperBRC for brace selection, for engineers building an ASME B31.1-2024 or B31.3-2024 occasional-load basis.
Content last reviewed · page regenerated 2026-09-24 at build.
Built and maintained by Matthew Norris, P.E. — active P.E. licensure in Arizona, California, Kansas, Missouri, North Carolina, Texas.
What it does
One canvas, two static occasional-load cases, reported separately and never silently combined:
Wind, edition-explicit
- Velocity pressure qz: ASCE 7-10 and 7-16 keep the directionality factor Kd inside qz (Eq. 26.10-1); 7-22 moves Kd out of qz and into the force equation instead — PiperOCC picks the form the selected edition actually states, not one fixed formula. Kz, Kzt, Kd, Ke (7-16/7-22 only), G, and Cf are all fields you fill in.
- Distributed wind load: the design pressure is applied to the projected outside diameter — pipe OD plus insulation and jacketing — per Eq. 29.4-1, returned in lb/ft.
- Occasional-load factor: an explicit, separately entered wind load factor multiplies the raw distributed load into a factored value tied to the selected piping code.
Seismic, edition-explicit
- Component force Fp: Eq. 13.3-1 — the ap/Rp/(1+2z/h) form under 7-10/7-16, or the Hf/Rmu/CAR/Rpo form under 7-22 — clamped between the 0.3 SDS Ip Wp lower bound and the 1.6 SDS Ip Wp upper bound, with the governing case (raw, lower bound, or upper bound) named on the canvas.
- Vertical seismic force: a single 0.2 SDS Wp value, reported alongside Fp.
- Seismic load factor: its own explicit multiplier, separate from the wind factor.
Piping-code-aware warnings
Select ASME B31.1-2024 and enter a wind or seismic factor other than 1.0, and the tool raises a REVIEW warning that B31.1 101.5.2/.3 does not permit the ASCE ASD reduction, asking you to confirm the entered factor with the engineer of record. Select ASME B31.3-2024 and every run carries a standing reminder that the B31.3 load-factor basis is user-entered and should be cited to the owner specification or the engineer of record — PiperOCC applies whatever factor you give it either way; it does not adjudicate code compliance on its own.
No embedded ASCE data, and the ASSUMED discipline
The calculation module carries no ASCE table, map, or figure values by design. Every coefficient — V, Kz, Kzt, Kd, Ke, G, Cf on the wind side; SDS, Ip, and the edition's component factors on the seismic side — is a field you fill in, each tied to a required source-citation string; leave either the wind or seismic citation blank and the tool refuses to compute rather than substitute a default. A Location field (address or lat/long) sits beside a link to the ASCE 7 Hazard Tool, which opens in a new tab so you can look up the mapped wind speed and site-class spectral values for that location and type the cited numbers back in.
Every numeric field also starts pre-filled with a plausible tool default rather than a blank, so the canvas never shows a dead zero — but each one stays flagged ASSUMED until you either edit it or click its badge to accept it. The running ASSUMED count and field list appear in an on-canvas alert, and travel with the run into both the Report Manager capture and the PiperBRC handoff, so a reviewer sees exactly which inputs were tool defaults rather than project values.
Response spectrum review
A separate card imports a two-column period/acceleration CSV — the kind exported by the ASCE Hazard Tool or a site-specific seismic report for a horizontal, vertical, or MCER spectrum — parses it losslessly (a genuine zero-period value is kept, not dropped as an empty cell; non-numeric header or note rows are skipped), validates that periods are non-negative and in ascending order, and plots the result on an SVG chart for a visual check. A reviewed copy exports back out as a clean two-column CSV, ready to attach to a report or hand to a dynamic-analysis package.
This card does not run a modal or response-spectrum analysis: the spectrum passes through for use in external dynamic software, and PiperOCC's own Fp result stays a separate, code-mandated equivalent-static number alongside it.
Honest limits
- Static equivalent only. The seismic result is the component-force equation result, not a modal or time-history analysis; the spectrum-review card imports and exports data for outside dynamic software but does not compute a modal combination itself.
- No ASCE data embedded. Every mapped or tabulated value — V, Kz, Kd, SDS, the component factors — must come from the governing ASCE 7 edition or a site-specific hazard report and be cited; PiperOCC supplies the equation logic and the edition switch, not the code data.
- Two piping codes only. ASME B31.1-2024 or B31.3-2024 — no B31.9 or international codes, and no B31E dynamic qualification engine of its own.
- The REVIEW flag is a prompt, not a verdict. A nonunity ASCE factor under B31.1 raises a warning to confirm with the engineer of record; it does not itself adjudicate 101.5.2/.3 compliance.
- Wind and seismic stay separate cases. PiperOCC does not combine them into one occasional load or run the governing ASME stress equation — that happens downstream, in PiperBRC or the piping stress model, using this load basis as an input.
What's free and what needs Pro Plus
The underlying ASCE 7 equations are free to read and check by hand: the wind load on piping calculator and the seismic design force calculator each publish a fixture-verified worked example, and the B31 pipe stress load-cases guide explains where wind and seismic sit among sustained, expansion, and other occasional cases.
- Free — $0: the calculator pages and the load-cases guide, no account required.
- Pro — $2.99/month or $29/year: report capture, Report Manager, .pcp project files, batch runs.
- Pro Plus — $7.99/month or $79/year: PiperOCC (this tool), PiperBRC pipe-brace demand and selection, PiperEXJ, PiperHGR, PiperFLG, and PiperNOZ. The monthly plan starts with 30 days free — no card needed to start; add one before day 30 to continue, otherwise the trial simply ends and nothing is charged.
- Ultimate — $14.99/month or $149/year: adds PiperFEA, PiperSTR, and the PiperISO premium exports.
The full matrix and billing FAQ are at /pricing/. The static load basis PiperOCC produces feeds directly into PiperBRC for brace demand and selection with a one-click handoff.
Demo video
A recorded walkthrough of this tool is on the way — current demos are on the YouTube channel.
FAQ
What loads does PiperOCC actually compute?
Two static occasional-load cases: wind and seismic, computed and reported separately rather than combined. The wind side returns the ASCE/SEI 7 velocity pressure qz, the design wind pressure, and the distributed load in lb/ft on the projected outside diameter, insulation and jacket included, per Eq. 26.10-1 and Eq. 29.4-1. The seismic side returns the component design force Fp from the Eq. 13.3-1 equation set, clamped to the 0.3 to 1.6 times SDS, Ip, Wp bounds, plus a single vertical seismic force at 0.2 times SDS times Wp. Both results are multiplied by an explicit occasional-load factor you enter for the governing piping code, ASME B31.1-2024 or B31.3-2024, so what you get is the factored load ready for the stress model, not just the raw code force. A source citation is required for every wind and seismic input before the tool will compute anything, and the piping code selection changes which warning fires if that load factor is not 1.0.
How does switching the ASCE edition change the equations?
The wind velocity pressure equation changed where it places the directionality factor Kd. Under ASCE 7-10, qz equals 0.00256 times Kz, Kzt, Kd and V squared, with no ground elevation factor Ke. Under 7-16, Ke joins the same form, with Kd still inside qz. Under 7-22, Kd is removed from qz entirely and applied instead in the force equation alongside the gust factor G and force coefficient Cf, matching the edition's own restructuring of Eq. 26.10-1 and 29.4-1. PiperOCC selects the correct form automatically from the edition you pick, so switching editions on the same job changes which qz value is reported without changing the final distributed load, since the same Kd ends up multiplied in either way. The seismic side has a parallel split: 7-10 and 7-16 use the ap, Rp and 1+2z/h component form of Eq. 13.3-1, while 7-22 replaces those three terms with Hf, Rmu, CAR and Rpo. Every factor on both sides stays a field you fill in from the governing edition; none of them are looked up internally.
Does PiperOCC embed any ASCE 7 table or map values?
No. The module that runs the wind and seismic equations carries a comment stating it intentionally contains no ASCE table or map values, and every coefficient must arrive from you with a source citation: basic wind speed V, Kz, Kzt, Kd, Ke, G, Cf on the wind side, and SDS, Ip, plus the edition's component factors on the seismic side. Leave a wind or seismic source field blank and the calculation refuses to run rather than substitute a default silently. A Location field next to a link to the ASCE 7 Hazard Tool at ascehazardtool.org is built into the input rail specifically so you can pull the mapped wind speed and site-class spectral values for that address or coordinate pair in a new tab, then type the cited numbers back into PiperOCC yourself. The numeric fields do start pre-filled with a plausible placeholder so the tool never shows a blank or a zero, but every one of those is flagged ASSUMED on screen, in the captured report, and in the handoff to PiperBRC until you either edit it or accept it explicitly.
How does the load basis get to PiperBRC or the stress model?
Two ways, both one click. Add to Report Manager files the piping code, ASCE edition, location, wind and seismic source citations, which inputs were still tool defaults, and the factored wind, factored seismic, and vertical seismic results into a titleblocked report entry with a REVIEW status, so the ASSUMED list travels with the numbers instead of getting lost. Send load basis to PiperBRC does the handoff itself: it stores the factored wind load in lb per foot, the factored seismic force, the vertical seismic force, the source citations, and the list of still-assumed inputs, then opens PiperBRC with that record ready to import for brace demand and selection. A toast confirms the exact values sent and flags how many inputs were still defaults before you move on. Neither path runs the piping stress model for you; PiperOCC's job stops at a cited, factored occasional-load basis. What you do with it next, distributing the wind load over support spans, combining it with sustained stress, or running the seismic force through B31E qualification, happens in the stress model or in PiperBRC, using this basis as the input.
What does the response spectrum CSV tool do, and not do?
It imports a two-column period-and-acceleration CSV, of the kind the ASCE Hazard Tool or a site-specific seismic report exports for a horizontal, vertical, or MCER spectrum, and plots it for a visual check. The parser is deliberately lossless: it keeps a genuine zero-period value rather than dropping it as a blank cell, skips header or note rows that are not numeric, and rejects the file outright if any period value comes in out of ascending order or if a period or acceleration is negative, since either means the CSV is malformed or mismatched. A reviewed copy exports back out with the same values under a clean two-column header, ready to attach to a report or forward to a dynamic-analysis package. What it does not do is run a modal or response-spectrum analysis itself: the spectrum is passed through for use in an external dynamic model, and the static Fp result above it is a separate, code-mandated equivalent-static check, not a substitute for that dynamic analysis when the project scope calls for one.
What tier is PiperOCC on, and is there a trial?
Pro Plus, at $7.99 a month or $79 a year, on the same tier as PiperBRC, PiperHGR, PiperFLG, PiperNOZ, and PiperEXJ. The monthly plan starts with 30 days free and no card is needed to start it; add one from the Stripe customer portal any time before day 30 to keep going, and if no card is on file when the trial ends the subscription simply cancels and nothing is charged. One trial per customer, and it applies to the monthly plan only, since the annual plan's own discount is a separate offer. Before subscribing, the underlying method is free to read and check by hand: the wind-load-on-piping and seismic-design-force calculator pages publish the ASCE 7 equations with fixture-verified worked examples, and the B31 pipe-stress load-cases guide explains where wind and seismic sit among the other occasional cases. What the subscription adds is the edition-aware workspace itself, the ASSUMED-input discipline, the response-spectrum review, and the one-click report capture and PiperBRC handoff, not the underlying arithmetic, which stays public.