Section 01
How to read this page
Three things change what the numbers mean.
The numbers are computed, not transcribed
Each validation case is a full set of calculator inputs plus ranges derived by hand — sling angles from trigonometry, section properties from first principles, every clause applied on paper before it was implemented. Rendering this page runs the engine on those exact inputs and compares. The platform's traceability gate asserts the same fixtures on every build, so a divergence fails the build rather than reaching this page.
End-to-end, not unit-by-unit
Each case exercises the whole chain at once — arrangement solve, internal forces, station selection, route factors, resistance clauses — because a correct formula read at the wrong station still produces a wrong report. Module-level tests additionally pin the individual clause implementations, branch boundaries and constants.
Verification, not validation
Agreement with a hand calculation is evidence the equations are solved as stated. It is not physical test data, and it does not verify that your geometry, declared factors or padeye detail represent your lift. That judgement stays with the qualified person.
The release gate has been passed
All three computed routes and the overlay are implemented and hand-validated; the published-benchmark cross-checks (V-3, V-5) are closed; and the adversarial review — seven independent reviewers, sixty-six findings, every one triaged, fixed or recorded, and the fix pass itself re-reviewed — completed on 2026-08-05. Section 4 records what each item was and what closed it.
Section 02
The validation register
Four hand-calculated engine cases, re-solved on this render, plus the independently published benchmarks held in the automated suite (the SDC spreader case below, and the STAAD S16/Mcr cross-checks recorded in section 4).
Symmetric level lift — tilt and sling-angle hand calculation
| Check | Quantity | Hand-derived range | Computed | Agreement |
|---|---|---|---|---|
| Equilibrium tilt angle | Demand (deg) | 0.0000 | 0.0000 | Agrees |
| Equilibrium tilt angle | Utilisation | 0.0000 | 0.0000 | Agrees |
| Sling angle within declared limits | Demand (deg from horizontal) | 59.20 … 59.40 | 59.29 | Agrees |
| Sling angle within declared limits | Utilisation | 0.7570 … 0.7610 | 0.7590 | Agrees |
Default CHS spreader — BTH-1 member + padeye hand calculation
| Check | Quantity | Hand-derived range | Computed | Agreement |
|---|---|---|---|---|
| Axial compression — BTH-1 §3-2.2 | Demand (MPa) | 3.14 … 3.20 | 3.17 | Agrees |
| Axial compression — BTH-1 §3-2.2 | Utilisation | 0.0365 … 0.0375 | 0.0370 | Agrees |
| Major-axis bending incl. LTB — BTH-1 §3-2.3 | Demand (MPa) | 13.40 … 13.70 | 13.52 | Agrees |
| Major-axis bending incl. LTB — BTH-1 §3-2.3 | Utilisation | 0.1020 … 0.1060 | 0.1039 | Agrees |
| Combined axial + bending — BTH-1 §3-2.4 | Utilisation | 0.1390 … 0.1430 | 0.1409 | Agrees |
| Padeye pin bearing — BTH-1 §3-3.3.4 | Utilisation | 0.5000 … 0.5170 | 0.5082 | Agrees |
| Padeye pinhole tension — BTH-1 §3-3.3.1 | Utilisation | 0.2470 … 0.2560 | 0.2513 | Agrees |
Centred single-lug lifting beam — EN hybrid conditions incl. the ±6° design-tilt case, hand calculation
| Check | Quantity | Hand-derived range | Computed | Agreement |
|---|---|---|---|---|
| Shear — EN 1993-1-1 §6.2.6 | Demand (kN) | 300.0 … 302.9 | 301.4 | Agrees |
| Shear — EN 1993-1-1 §6.2.6 | Utilisation | 0.2213 … 0.2236 | 0.2224 | Agrees |
| Bending and lateral-torsional buckling — EN 1993-1-1 §6.3.2 | Demand (kN·m) | 15.30 … 15.46 | 15.38 | Agrees |
| Bending and lateral-torsional buckling — EN 1993-1-1 §6.3.2 | Utilisation | 0.0500 … 0.0506 | 0.0503 | Agrees |
| Elastic yield criterion — EN 1993-1-1 §6.2.1(5) | Demand (MPa) | 55.30 … 55.90 | 55.60 | Agrees |
| Elastic yield criterion — EN 1993-1-1 §6.2.1(5) | Utilisation | 0.1558 … 0.1575 | 0.1566 | Agrees |
| Padeye pin connection — EN 1993-1-8 §3.13 | Utilisation | 0.7536 … 0.7612 | 0.7574 | Agrees |
| Combined axial + bending — EN 1993-1-1 §6.2.9 / §6.3.3 | Utilisation | 0.0501 … 0.0507 | 0.0504 | Agrees |
| Elastic condition — EN 13155 §5.1.2.1 at 2 × load | Utilisation | 0.6442 … 0.6507 | 0.6475 | Agrees |
| Yielded condition — EN 13155 §5.1.2.1 at 3 × load | Utilisation | 0.7536 … 0.7612 | 0.7574 | Agrees |
Default CHS spreader at αf = 1.50 — CSA S16-09 member + padeye hand calculation
| Check | Quantity | Hand-derived range | Computed | Agreement |
|---|---|---|---|---|
| Axial compression — S16-09 Cl.13.3 | Demand (kN) | 45.80 … 46.30 | 46.07 | Agrees |
| Axial compression — S16-09 Cl.13.3 | Utilisation | 0.0204 … 0.0208 | 0.0206 | Agrees |
| Bending — S16-09 Cl.13.5 / 13.6 | Demand (kN·m) | 12.24 … 12.37 | 12.31 | Agrees |
| Bending — S16-09 Cl.13.5 / 13.6 | Utilisation | 0.0445 … 0.0450 | 0.0447 | Agrees |
| Shear — S16-09 Cl.13.4 | Utilisation | 0.0033 … 0.0033 | 0.0033 | Agrees |
| Combined axial + bending — S16-09 Cl.13.8 / 13.9 | Utilisation | 0.0654 … 0.0661 | 0.0657 | Agrees |
| Padeye pin connection — S16-09 Cl.13.2(b) / 13.11 / 13.10 / 13.4.4 | Utilisation | 0.2936 … 0.2966 | 0.2950 | Agrees |
| Padeye attachment weld — S16-09 Cl.13.13.2.2 | Utilisation | 0.3089 … 0.3120 | 0.3104 | Agrees |
Published spreader benchmark — independent of our hands
The four cases above were derived by the same people who wrote the engine, which is why this fifth case matters: an independently published spreader-beam benchmark whose numbers nobody here produced. The automated suite holds the engine's bending implementation to it on every build.
IPE600, 25 t rated load, Design Category B, Service Class 0: λf = 5.79 vs limit 10.25, Lp = 2.25 m, Fb = 100.83 MPa, fb = 93.71 MPa, U = 0.93
The benchmark is published on a BTH-1-2023 basis; the standard's own Summary of Changes leaves the governing bending provisions untouched between the editions, so the comparison is like-for-like — that reasoning is recorded with the source, not assumed silently.
Section 03
The tilt case, by hand
SB-VC-EN-01 is the record's hardest case, and the one worth reading: the mandatory ±6° attitude of the EN route, closed entirely on paper before the engine ran it.
The fixture is a centred single-lug lifting beam — the same CHS 273×12.7 as the default spreader, with the lug and the load's centre of gravity both at midspan. Level, it is almost trivial: the hook force and the load force share one vertical line, everything closes at midspan, and the only bending is self-weight hogging of 3.598 kN·m with 2.4 kN of shear.
Held at the 6° design attitude the geometry stops being trivial. The force closure moves: the hand solution places the closure abscissa at 2 998.5 mm, and the top-force station — once the lug's term is carried — at 3 030.8 mm in beam-local coordinates. That ~31 mm offset between a 103.4 kN upward force and a 98.6 kN downward force drives the peak shear to 100.5 kN and the peak moment to 5.126 kN·m at the top-pin station, with 10.6 kN of axial tension appearing from the tilted force components. Every one of those values was computed on paper first; the engine matches them to four to five significant digits. The section-2 table re-measures them as the 3× yielded-condition demands — 301.4 kN and 15.38 kN·m — so a reader comparing the two should multiply these raw values by the condition coefficient first.
Section 04
Open and closed items
What stood between the current state and release, kept here as a record: two items are now closed, with what closed them stated, and the review gate's outcome is recorded below.
V-3 — published benchmark for the EN route
Closed 2026-08-05. The elastic-critical-moment implementation now reproduces an independently published hand calculation — the laterally unbraced W310×52 in Bentley's public STAAD.Pro verification suite (itself referenced to Kulak & Grondin's Limit States Design in Structural Steel) — to the example's print precision: with equals the published 109.3 kN·m over a 7.5 m fork-supported span. The automated suite holds it on every build, together with the machine-precision identity between the EN and CSA arrangements of the same classical elastic solution.
V-5 — published benchmark for the CSA route
Closed 2026-08-05, against the same published example on the S16 side: Clause 13.6 gives = 109.3 kN·m and the elastic-branch resistance = 98.38 kN·m, both reproduced to print precision. Clause 13.3.1 compressive resistance reproduces a second published example (W250×73): the example's precise chain ( = 1 901 MPa → = 2 715.9 kN) within 0.1 %, its rounded hand chain (2 708.5 kN) pinned separately — the example's own two chains disagree by 0.28 %, which the record documents rather than absorbs — and the cross-section 2 923 kN exactly. Held by the automated suite on every build.
The adversarial review gate
Closed 2026-08-05. Seven independent reviewers attacked the engine mechanics, all three code routes, the DNV overlay, the workspace state machine and every outward claim: 66 findings (4 blockers, 35 majors, 27 minors), each recorded with the reviewer's own refutation attempt, then triaged — 63 fixed, 3 accepted with the reasoning documented. The fix pass was itself re-reviewed (the same discipline that has caught regressions before), surfacing 9 further defects, all resolved. The strongest findings — an overall PASS reported at 0 % utilisation on a failed equilibrium check, and a tension state that escaped every EN criterion past the plastic capacity — are exactly why this gate exists.
None of these gates the honesty of what is above: the four engine cases and the published benchmarks hold now, on every build, and were re-measured as this page rendered.