Piping Toolset
Home › Changelog — Suite Updates & Calculation Record

Changelog — Suite Updates & Calculation Record

High-level record of changes to the Piping Toolset suite — the browser tools, calculation engines, reports, plans, and the site/API surface. Calculation behavior is the versioned core of this record: if a number a calculator produces could change, it is recorded here, and the entry names the affected module ids and the fixture files that lock the change. No calculation ships without a green fixture; "Verified" notes the derivation basis (hand calculation, PVP Suite validation set, or published source-sheet example). UI-only and content-only changes are summarized at suite level.

The site's /trust/changelog page is generated from this file at build time.

2026-10-12 — Hydrogen (B31.12) line checked against the 2023 edition

2026-10-12 — B31.5 cards checked against ASME B31.5-2022; B31.5 gets its own leak test

2026-10-11 — Allowable pressure now applies the weld joint strength reduction factor W

2026-10-04 — DNV-RP-F101 rejects defects deeper than 85 % of the wall; Section III NC-3658.3 flange guidance stated as checked against NC-2019

2026-10-04 — A guide to reading piping isometrics; PiperISO's Category M examination default corrected; vendor links are plain text

2026-10-02 — Slope designations, CIP velocity, BN2 and the sulfur range served as cited data; the CIP branch advisory says what SD-6.3.5.2.1 says

The last ASME BPE-2026 values compiled into the BPE calculation engines now ship through the data service that gates and cites embedded standard data, and the /trust/sources.html embedded-data table lists each of them. Every value was re-read against the printed BPE-2026 page before it moved. No calculated number changes for any input the cards offered before.

2026-10-02 — Spray-device bands and EP/passivation criteria served as cited data; duplex and nickel coupons no longer judged on criteria BPE does not set

Two BPE engines carried ASME BPE-2026 values compiled into the calculation code — outside the data service that gates and cites embedded standard data — and the embedded-data inventory on /trust/sources.html did not list them. Both are closed here. Every value was re-read against the printed BPE-2026 page before it moved. No calculated number changes for any input the cards offered before.

2026-10-02 — Polymer thermal-expansion coefficients served as cited data, with a units check on α

The 2026-09-23 correction put the right PM-4.2.3 coefficients on the Polymer Thermal Expansion card, but compiled them into the calculation engine — outside the data service that gates and cites embedded standard data — and the embedded-data inventory on /trust/sources.html did not list them. Both are closed here. No calculated number changes for any α a user can pick.

2026-09-23 — Independent audit corrections: DNV Part B factor, EJMA squirm, BPE polymer coefficients, current B31.1/B31.3 equation forms, ASCE 7-22 wind and seismic, support bending span

An independent review of the live calculators raised eighteen items. Each was checked against the edition text before anything changed; the ones that held are corrected below, every changed fixture is re-derived by hand (arithmetic in each fixture's description), and the landing pages, app cards and worked examples now say what the engines do. Items the edition text did not support were left as they were: B31.3 Eq. (24) carries no ceiling on ST/S in the 2016, 2020, 2022 or 2024 texts; the site's B31.3 table names (A-1C, A-2, A-3) are the 2024 edition's own; and the spring-variability rule lives in MSS SP-58 §6.16 / Table 5, not the clause the review named.

2026-09-22 — BPE tube weld acceptance and the BN2 ferrite criterion: corrected to the edition's own basis

Two BPE engines computed their acceptance criteria on the wrong basis. Both are corrected against ASME BPE-2026, both fixtures are re-derived by hand, and both landing pages, app cards and diagrams now say what the engines do.

2026-09-19 — Dependency and security maintenance: PDF and Excel export libraries

Maintenance release; no calculation behavior changes. No engine, fixture or dataset was touched.

2026-09-19 — Dry-run findings: numeric entry, ASSUMED defaults, PiperBRC/PiperEXJ corrections

One input-handling defect that could change a calculated number, plus eight display and sample-data corrections. No engine formula changed; every fixture is unchanged and green.

2026-09-19 — PiperSTR report prints E, electrode strength and f'c in full

Report-display fix. No calculation changed: the engine reads the numeric inputs, never the printed strings, so every ratio, reaction and verdict in an affected report was already correct. Every fixture is unchanged and green.

Affected module ids: none — the defect was in the report formatter (apps/web/src/tools/piperstr/exporters.js), downstream of the engine. Locked by apps/web/src/tools/piperstr/test/report-format.test.js (the formatter directly, plus the default model through the real engine into the Report Manager document, the flat entry and the PDF draw calls, across every standard electrode and f'c value) and by e2e/piperstr.spec.ts ("the captured document prints E, FEXX, the electrode and f'c in full").

2026-09-13 — Reference-tool buttons in PiperOCC and PiperBRC

UI-only release; no calculation behavior changes.

2026-09-13 — PiperHGR, PiperPSV, PiperSIF and PiperOCC get their own marks

UI-only release; no calculation behavior changes.

2026-09-12 — Hover-activated Tools menu, tier-star sweep, PiperBRC and PiperEXJ marks

UI-only release; no calculation behavior changes.

2026-09-12 — PiperEXJ expansion joint design package

New paid-tool release (Pro Plus). Metallic bellows verification, non-metallic rubber-joint rating, movement equivalence, and anchor/guide loads are fixture-locked; no ASME, EJMA, or manufacturer table values are embedded beyond the coefficient/fatigue tables listed below — every other dimension, rating, and coefficient remains engineer-entered from the vendor bellows data sheet or the manufacturer's catalog.

2026-09-12 — PiperOCC, PiperBRC and configured PiperHGR submittals

New paid-tool release. The ASCE and brace engines are fixture-locked; no ASCE, MSS, or manufacturer table values are embedded. Map values, component factors, capacities, spacing limits, and their citations remain engineer-entered.

2026-09-12 — Governing code on every card and report, deliberate edition choices, checkout recovery, trial-offer copy

Suite release from the 2026-09-11 revenue and acquisition re-audit. No engine equation or fixture changed; two cards now refuse to compute until an edition choice is made, which changes what a fresh card shows (an instruction instead of a defaulted number).

2026-09-11 — Five B31.1 FAQ pages, the B31 load-case guide, content-audit corrections, homepage footer and favicon

Content and site-surface release. No calculation behavior changes in this entry; the two engine changes the same audit produced are recorded in their own sections below (welding-tee SIF base entry; fatigue factor 2022+ form).

2026-09-11 — Welding-tee SIF closed form: Table D300 base entry (3.1·T/r2) alongside the Note (7) form

The same content audit read the legacy Appendix D tables directly (B31.3-2016 Table D300; B31.1-2016 Table D-1) and found that piping.b31-sif computed the welding-tee flexibility characteristic as h = 4.4·T/r2 — which both tables carry only in Note (7), for a tee whose crotch radius rx ≥ Db/8 and crotch thickness Tc ≥ 1.5T. The unconditional entry for a B16.9 welding tee in both tables is h = 3.1·T/r2, and because io varies as h^(−2/3) it gives SIFs (4.4/3.1)^(2/3) = 1.263 times higher.

2026-09-11 — Fatigue factor: B31.3-2022+ equation form, cube-rule equivalent cycles, 0.15 floor

The site-wide content audit of 2026-09-11 confirmed against the licensed text that piping.fatigue-factor implemented only the pre-2022 B31.3 form — f = 6·N^(−0.2) with fifth-power equivalent cycles — which is also the form every B31.1 edition uses (¶102.3.2(b) eq. (1C) and eq. (2)). ASME B31.3-2022 and 2024 ¶302.3.5(d) changed both: eq. (1c) is f = 20·N^(−0.333) ≤ fm, with fm = 1.2 for ferrous materials of SMTS ≤ 517 MPa (75 ksi) at metal temperatures ≤ 371 °C (700 °F) and 1.0 otherwise, and eq. (1d) weights each partial range by the cube of its stress ratio, N = NE + Σ ri³·Ni. The two forms cross near N ≈ 7,000 and diverge materially above 10⁵ cycles.

2026-09-10 — PiperSTR: pipe-frame horizontal loads reach the column base; "lateral load at top" retired; cloud designs; dock divider

Calculation behavior changed in structural.support-assembly (analyzeAssembly), locked by support-assembly.test.ts (13 → 18 cases). Every PiperSTR result that carries a horizontal pipe load moves; a support carrying vertical load only is unchanged.

2026-09-10 — Report capture names what was picked; schedule verdict on the wall-thickness cards; picker labels; PiperISO dock divider

Found while recording the B31.3 calculator videos. No engine, module id, or fixture value changes — every number a calculator produced yesterday it produces today. What changed is what the sheet says and what the screen shows.

2026-09-01 — BPE fitting-dimension lookup: registered engine, fixture, landing page

The ASME BPE Part DT-4.1 fitting-dimension card has shipped on the BPE line since 2026-07-04, reading the bpe-fitting-dimensions dataset directly. It was the one BPE card with no registered calculator, no fixture and no public URL. This promotes it to a first-class method.

2026-09-01 — Six BPE landing pages (material, surface, weld, polymer)

Content-only. Six BPE calculation engines that have shipped since 2026-07-04 had no public URL — they were reachable in the app and invisible to search. This adds the landing page, sample report and worked examples for each, closing the last gap between what the BPE line computes and what it publishes.

2026-08-31 — Flange Bolt-Up Sequence (General line)

New free calculator on the General line — the second tool out of the same r/pipefitter calculator thread that produced the trapeze tool: field crews tracing end-of-day flange leaks to bad tightening patterns, not torque values ("the sequence matters more than the number"). A phone-sized star-pattern chart by bolt count, with pass percentages for the crews that torque.

2026-08-30 — Trapeze / Strongback Sizing (General line)

New free calculator on the General line, built from a working request in the r/pipefitter calculator thread (four 30" sch 10 cooling-tower headers on rod-hung back-to-back channel strongbacks): channel size, rod size and count, and maximum strongback spacing, in one pass.

2026-08-29 — PiperISO 45° routing, equipment symbols, cloud-save fix; site accessibility and caching

PiperISO (owner redlines, PRJ-0001):

Site (content/infrastructure only; no other calculation behavior changed):

2026-08-19 — Source policy, terms and homepage copy refresh

Content-only release; no calculation behavior changed and no module ids are affected.

2026-08-18 — Section IX A-Numbers reference + §4.5.15 method-scope correction

2026-08-18 — PiperPSV v1: relief sizing, discharge reaction, scenario router (Ultimate)

New product line at #/psv (Ultimate; free tier unaffected — the route's tools never mount below the tier).

New calculation engines

New datasets

Also on the route: the Section XIII device-type part guide (Parts 3–8 map; set-pressure/accumulation limits stay with the referencing code per XIII 2.3/2.4 — a per-referencing-code limits card follows once those rules pass the verification gate).

2026-08-18 — Material Property Autofill v1: B31.3/B31.1 allowable-stress first slice

The flagship Pro-tier picker: material line + design temperature autofills the allowable stress into the Process and Power calculators, interpolated per the tables' own rules, with the table and line number cited on the card and in the report. First-slice specs (the >90%-of-BOMs set): A53, A105, A106, A182, A193, A234, A312, A335 in the slice grades. Free tier keeps every hand-keyed input.

New datasets (served via getDataset(), citations included)

New shared engine

Where it autofills

B31.3 wall thickness (S), B31.3 allowable pressure (S), displacement stress range (Sc and Sh, two pickers), sustained + occasional stress (Sh), B31.1 wall thickness (SE with E→1.0), B31.1 allowable pressure (SE with E→1.0).

Verified: deterministic font-aware extraction, two independent blind visual transcriptions of 600 dpi page rasterizations, per-cell adjudication, plus a page sweep for slice rows outside the extraction. /trust/sources §3 inventory updated in the same change.

2026-08-18 — Code-data expansion: B31J-2023 engine, factor pickers, MDMT tool, API nozzle presets, 2025-edition datasets

Embedded reference data expanded to ASME B31J-2023, B31.9-2025, B16.5-2025 (current edition), NM.1-2022, and the API nozzle-load tables (610 Tables 5a/5b · 660 Table 2 · 661 Table 4 + §7.1.10 · 560 Tables 7–10). Every dataset in this release was transcribed dual-blind from the printed standards with per-cell adjudication, and formula/sign ambiguities were settled against 600 dpi rasterizations of the printed pages. /trust/sources §3 carries the complete embedded-data inventory.

New calculation engines

Calculation-affecting data correction

Reference data now embedded (paid-tier pickers; free tier keeps hand-keyed inputs everywhere)

2026-08-12 — Suite update: report documents in every paid tool, Pro Plus trial, three-tier packaging

Summary of tool development landed 2026-07-31 through 2026-08-12.

Tools and reports

Calculation record

Plans and access

Site and documentation

2026-07-31 — B16.5 flange dimensions extended to Classes 400, 1500 and 2500

Closes the asymmetry between connections.b165-rating (all seven classes since 2026-07-24) and the dimensional table, which stopped at Classes 150/300/600/900 — the tool could rate a Class 1500 flange but not size one.

Added

Changed

Fixed

NPSFieldWasNow
0.5bolt dia5/8"1/2"
12bolt dia1-3/8"1-1/4"
20number of bolts2024
20bolt dia1-3/4"1-5/8"
24bolt dia2"1-7/8"

These reach the Appendix 2 bolting checks through Ab (actual bolt area). NPS 20 was the worst: oversized bolts and an undercount of them left Ab wrong by −9% overall — unconservative, a joint could have been shown adequate on bolt area when it was not. No other class was affected; every corrected cell satisfies the B16.5 para. 6.5 bolt-hole cross-check, and the fixture and unit suite lock the corrected values.

Verified: double-blind transcription of B16.5-2017 Mandatory Appendix II and B16.20-2017 Table SW-2.1-1 — 485 facing/drilling cells and 214 gasket cells re-extracted and diffed, 0 mismatches (that re-extraction pass is what caught the Class 600 defects). Hub X/Y cross-checked against three independent public reproductions, 43/43 rows agreeing, and all rows satisfy the geometric invariants (bore < X < flange OD, h = Y − t > 0, g1 ≥ g0). Bolt root areas are derived, not transcribed: π/4·(D − 1.299038/n)² reproduces all thirteen pre-existing entries exactly. Dimensional data should still be verified against the standard before use for construction.

2026-07-31 — PiperFLG pre-release audit fixes: |M| in the Kellogg term; App 2 2-8(a) hub cap

Two findings from the adversarial pre-release audit of aux.app2-flange-integral, both landed before the module shipped — no released number changes.

2026-07-31 — PiperFLG: Appendix 2 integral (weld-neck) flange design

New calculation. aux.app2-flange covers a loose ring without a hub and cannot analyse a weld-neck flange; aux.app2-flange-integral adds the integral/hubbed case and supersedes it for new work (the loose module stays registered and fixture-locked for the API tier and the batch runner).

New modules

Two conventions this entry pins down

Verified

Against a Bentley AutoPIPE Advanced 11.01 flange report (NPS 16 Class 150 weld neck, 500 psi at 500 °F): moment (Mo 35250.22 ft·lb), hub stress (S_H 17116 psi) and both rigidity indices (J 0.357 operating / 0.275 seating) land exactly; S_R and S_T sit 0.1–0.7% off only because the report prints two factors rounded. The straight-hub limit reproduces the Code's tabulated F/V values to six figures with no special-casing.

Supporting data (not calculation modules)

2026-07-31 — B16.5 Table 9 weld-neck hub dimensions (X, Y) and derived App 2 hub geometry

connections.b165-dimensions gains the two Table 9 weld-neck columns it was missing, so an Appendix 2 integral flange no longer estimates its hub: g0, g1 and h now derive exactly (g0 = (pipe OD − B)/2, g1 = (X − B)/2, h = Y − t), and the confirmation gate in front of the aux.app2-flange-integral result was removed without ever shipping. No existing calculator's output changed; aux.app2-flange is loose-type without a hub and is unaffected.

Fixed

Verified

X and Y transcribed from three independent public reproductions, two of them blind, then adjudicated: all 64 X and 64 Y cells agree once the raised-face convention is resolved. The one real trap: Y in this table excludes the raised face, matching the listed minimum thickness — pairing that thickness with an RF-inclusive Y inflates h by 0.06. The AutoPIPE reference report's h = 3.56 at NPS 16 Class 150 is reproduced by both conventions independently. Locked by 18 unit cases including two all-row invariant sweeps. (Superseded the same day: the seven-class expansion above registers the table with fixture b165-dimensions.json.)

2026-07-31 — PiperSTR: AISC 360-22 + ACI 318-19 structural pipe-support design

New product line. Six modules covering the whole structural load path of a pipe support — the first calc-core surface to carry both LRFD and ASD from one nominal-strength core.

Module idScope
structural.aisc-memberAISC 360-22 Ch. B4 classification, D tension, E compression, F2-F10 flexure, G shear, H1 interaction, deflection
structural.fillet-weldAISC J2 fillet welds with the directional strength increase and a J4 base-metal rupture check
structural.baseplate-anchorageAISC J8 bearing, Design Guide 1 plate yielding, ACI 318-19 Ch. 17 anchorage and the 17.8 interaction
structural.pier-soilSoil bearing, overturning, sliding, ACI Ch. 22 punching shear
structural.support-assemblyThe cascade: pipe load → arm → weld → column → weld → base plate → anchors → pier → soil

Fixtures: piperstr-member.json (14 cases), piperstr-weld.json (4), piperstr-baseplate.json (4), piperstr-pier.json (3), all with self-contained inputs so a fixture cannot silently change when the shapes dataset is regenerated.

Verified against published AISC Steel Construction Manual values: Table 3-2 Mp / Lp / Lr match to three significant figures for four benchmark W shapes, and the engine independently reproduces the Manual's exact ten-shape non-compact-flange footnote list from Table B4.1b arithmetic alone.

New dataset aisc.shapes-v16 (mode derived) — 1,506 shapes from AISC's freely published Shapes Database v16.0; L, HSS and Pipe computed from nominal geometry by a generator that gates itself against published AISC values and refuses to emit on a mismatch. Four defects were caught by those gates before ship (HSS corner slivers, a missing ACI 17.6.2.1.2 substitution, a base-plate yield-line over-demand, and D1/E2 slenderness now correctly advisory), and a check with an infinite ratio now sorts to the top of the governing roll-up in all modules.

Data firewall. AISC 360 and ACI 318 equations are methods and live in code. Proprietary anchor qualification data (adhesive bond stress, product-specific factors) is never embedded — it arrives from the user's ICC-ES evaluation report, and an adhesive anchor without it reports that the bond check did not run rather than passing silently. Soil bearing, friction and cohesion are likewise always user-supplied.

Supersedes general.aisc-member-check, which remains registered (ASD only) for API and batch callers.

2026-07-30 — Line-depth expansion: 13 calculators (documentation backfill)

Documentation-only entry, recorded 2026-07-31. These modules shipped 2026-07-30 in one commit without a changelog record; no calculation behavior is changed by this entry — it backfills the record so each module's landing page has a true source for its published "last updated" stamp.

Code-table values (design factors, C-factors, FL, ice/snow parameters) are user-supplied throughout, and each module carries its applicability warnings on every run.

2026-07-30 — Engineering Tools expansion: six PVP-Suite-parity calculators + two corrections

Five new modules, one extension, and one correction, all fixture-locked and anchored to the PVP Suite validation set where its inputs could be reverse-derived, hand-derived otherwise.

Added

Changed

2026-07-24 — B16.5 flange pressure–temperature rating lookup (new module)

New module connections.b165-rating (fixture b165-rating.json, 8 cases): ASME B16.5-2017 pressure–temperature ratings for material Groups 1.1, 2.1, 2.2 and 2.3, Classes 150–2500, with linear interpolation per B16.5 Section 2 and per-group material sub-limit warnings. Rating data embedded and fixture-locked; B16.47 deliberately excluded. Verified: double-blind transcription (two independent readers per table, zero cell disagreements) plus hand-derived interpolation cases locked in the fixture.

2026-07-22 — New locked fixture cases behind published worked examples

No equation, limit, or verdict logic changed. Six hand-derived fixture cases added (and one existing case's expected values locked) so every worked example published on the calculator landing pages is CI-gated: piping.b313-wall-thickness (two new cases), piping.b311-wall-thickness, pipeline.b31g (pass path), piping.branch-reinforcement (expected values locked), noncode.thermal-growth, and bpe.cip-velocity.

2026-07-21 — PiperFEA nozzle/shell FEA goes live

Scope note: covers the FEA service, outside this file's usual calc-core scope, because it is a calculation surface users can run.

Verified: Sa and the B31 bound reproduce the legacy commercial-FEA reference reports to the psi on all 35 golden fixtures carrying a fatigue result. Secondary-stress ratio agreement: 19 of 24 runnable fixtures gated (15 within ±20%, 4 within ±35%); geometry outside the validated envelope is refused at submission rather than answered with a number. v1 limit: surface-maximum von Mises within a junction-local window stands in for a through-thickness linearized result — conservative.

2026-07-19 — Thermal Flexibility line

2026-07-14 — Pipe support spring selection

2026-07-04 — BPE line expansion + Equipment/Non-Metallic ports

Added

Changed

Verified

2026-07-03 — BPE toolset full-parity port

2026-07-03 — Phase 1 core

Added

Verified