# Eriksson Wall — method & structure spec, and the gap to our code What Eriksson Wall actually computes, reverse-engineered from **six** real output packages, so that `tools/panelanalysis.py` + the `panelanalysis/1` deck schema can replace it. Part A is the spec; Part B is the concrete punch-list of what our code must add to reach parity, ordered by importance for a wall panel. **Scrub note.** The packages carry a client, a developer, an engineering office, its address, job numbers, designer initials and per-run model (`.ewf`) filenames. **None of those appear here.** The samples are named only by their piece-mark / sheet labels, which are generic precast nomenclature: | label | what it is (type, not identity) | | --- | --- | | **WPA1.0** | 12" solid wall, non-prestressed, in-place only | | **WPA2.0** | 16" horizontal wall, prestressed, handling + in-place | | **WPA3.0** | 8" horizontal wall, non-prestressed, in-place only | | **WPA4.0** | 8" vertical (spanning) wall, prestressed, one unified handling + in-place run | | **SWA1.0** | 12" shear wall, non-prestressed | | **MWH1.0** | 8" prestressed wall, one file carrying several analysis units | Page cites are **PDF page numbers** written `WPA4.0 p.10`. Software on every run is **Eriksson Wall v4.3.2**, spec **ACI 318-14**, losses **PCI Design Handbook 8th Ed.** (The richer insulated-sandwich package studied earlier — call it **WPB (v4.13.2)** — is `knowledge/library/notes/E1-wpb10-eriksson-package.md`; this note reconciles against it and does not repeat its arithmetic proofs.) Read: 2026-09-02, text layer via PyMuPDF, all six extract cleanly. Numbers below are transcribed as printed; anything image-only is flagged in §A.8, not guessed. --- # Part A — the Eriksson method & structure ## A.1 The invariant section order, and the two-model split Every Eriksson Wall run prints the same input blocks in the same order, then a results half whose sections depend on which stages were enabled. Confirmed identical across all six samples and WPB: ``` Project Information materials (f'ci/f'c, Eci/Ec, unit wt, type; rebar fy/Es, strand fpu/Ep), prestress-loss method + humidity + release/ erection times, exterior/interior soil, LOAD COMBINATIONS Settings deflection limit, 2nd-order + βd, R-value, stress options, in-place stress limits, handling stress limits, flexure options, resistance factors, development multipliers, shear options, axial options ← this page IS the method Concrete Extents panel geometry (top/bottom elevation, height, section type, "top in form", miters, width, thickness), openings/ reveals/solid zones, then SECTION PROPERTIES (Area, Cx, Cy, Izz, Iyy, Izy, Sb, St) Structural Model restraints (foundation + floor ties, each an elevation + type + gravity/thermal restraint + stiffness), releases, concentrated loads, load options, WIND loads, SEISMIC loads, TEMPERATURE loads, SOIL loads, additional self weight, structural sections [handling runs] Handling panel weight + CG, face lifters, edge lifters, then per-stage Stripping / Transportation / Erection blocks Reinforcement strands / rebar / mesh / interrupts tables, plus a Strand summary box (Aps, cgx, cgy, ex, ey) and a Mild box (As...) ------ results ------ [handling] Stripping (and Transportation/Erection if run): Reactions (+ Tilt Potential) → Stresses table → Flexure table → Shear table [in-place] In-Place Strength Summary: Reaction Forces → Flexure table → Shear table → Axial table In-Place Service Summary: Tension table → Total Compression table → Deflection graph ``` Every page carries the header (`Eriksson Wall v4.3.2` / `Licensee:` / timestamp) and footer (`.ewf` / copyright / `pg. n / N`). **Handling and In-Place are two separate models of the same panel, and the two are NOT always in the same run.** WPB ran them as separate `.ewf` files (one mild-only, one strand-only, each deliberately blind to the other's steel). WPA4.0 instead runs **both in one file** (§A.3/A.4) — strand credited in both. Which pattern you get is a per-job modelling choice, not an Eriksson rule. What IS invariant: the block order above, and that a handling result section only appears when that stage is enabled. **A per-file run can also contain several analysis units.** MWH1.0 prints `2.1 In-Place Strength Summary` and `4.1 In-Place Strength Summary` (MWH1.0 p.1763, p.3260) — one document, multiple numbered runs. Our schema must tolerate a package that is a *list* of runs, not assume one. Reconciliation with WPB's per-run order: **identical.** WPB additionally had `Sandwich Panel Properties`, `Design Parameters` (composite/non-composite section interpolation) and `Horizontal Shear Analysis` — those appear **only for insulated sandwich panels**. None of the six solid walls here print them (§A.7). ## A.2 The checks Eriksson runs, with the method as printed | check | where | method / criterion as printed | | --- | --- | --- | | **Flexure** | handling + in-place | `Util = |Mu|/|ΦMn|`. ΦMn from **Whitney stress block** (Settings: `Flexure Method: Whitney Stress Block`) on a P-M interaction surface at the actual `Pu` (in-place). Columns carry `c`, `θ`, `As`, `A's`, `Aps`, `Loss`, `d`. **Φ is not constant** — it ramps 0.75→0.90 down the table (§A.2.1). | | **Shear** | handling + in-place | ACI 318 **detailed method**: both `Vci` and `Vcw` printed side by side, `Vc = min(Vci, Vcw)`, `ϕVn = 0.75·Vc` (verified: WPA4.0 p.11 Loc 5.51 → 154.5/206.1 = 0.75). `bwd` printed as one product (in²). `∞` printed for `Vci` at a zero-moment station. Settings: `Shear Options: Treat as column, Use ACI 22.5.8.2`. | | **Axial** | in-place only | Columns `Pu`, `ΦPn (C)`, `ΦPn (T)`, `ΦPcrit`, `Ag`. `ΦPcrit` is the **critical buckling** load (`∞` where slenderness does not bind). Settings: `Axial Options: Ignore tensile strength failures, Ignore buckling failures` (both defeat-able switches, both ON here). | | **P-M interaction** | in-place | ΦMn is read off the interaction diagram at the station's `Pu`. The one-page summary prints an **Interaction Diagram (Controlling Section @ 0.95L)** (WPA4.0 p.9). | | **Service tension / cracking** | in-place | extreme-fibre tension vs a **Cracking** limit = `7.5√f'c` (= 580.9 psi at 6000, WPA4.0 p.15). Prestressed: **Class U** `7.5√f'c` / **Class T** transition `12√f'c` (WPA4.0 p.15 section view). Non-prestressed: a single **Modulus of Rupture** `7.5√f'c` (SWA1.0 p.10). | | **Service compression** | in-place | total compression vs **Limit = 0.6 f'c** (= 3600 psi at 6000, WPA4.0 p.16 / SWA1.0 p.17). | | **Handling stresses** | handling | extreme-fibre tension vs **`5√f'ci` or `7.5√f'ci`** (per job, §A.6) and compression vs **`0.6 f'ci`** (= 2100 at 3500), with an `fci req` column = the f'ci the station would need. This is the check that usually **governs stripping** (§A.3). | | **Deflection** | in-place | vs `L / 150` (or `L/120`, `L/240` per job, §A.6). Graph only, no table. | | **Torsion** | — | **Eriksson Wall does not run torsion for a wall.** No torsion table in any of the six. (WPB's torsion table came from Eriksson *Beam*, a different program, for a lintel.) Not needed for wall parity. | ### A.2.1 The Φ ramp (flexure) — development, not strain `Φ` in every flexure table runs `0.75 → 0.90` with distance from the piece end (WPA4.0 p.10: 0.75 at 1.84 ft, 0.90 by mid-panel). It is **ACI 318-19 §21.2.3**: Φ = 0.75 from the end through the **transfer** length, linear 0.75→0.90 to the end of the **development** length, then 0.90 — not the c/dₜ strain transition. The transfer/development lengths are scaled by the **Development Multipliers** setting. WPB proved the mechanism (its own §4.1); these six confirm the ramp and pin the multiplier at **1.0** for all v4.3.2 runs (§A.6), where WPB used **1.3**. ## A.3 Handling stages Two stages are ever enabled on these walls; a third exists and is off: | | Stripping | Transportation | Erection (Primary/Secondary) | | --- | --- | --- | --- | | **Load Multiplier** | **1.4** | **1.5** (WPB) | — (never run in any of the six) | | Concrete strength | **Initial** (f'ci) | In-Place (f'c) | — | | Stress limits | **Handling** (§A.6) | In-Place | — | | Lift Type | Static Lift | Static Lift | — | | Sling Angle | 60° | — | — | Confirmed WPA4.0 p.7 (Stripping, mult 1.4, Initial, Handling limits, Static, 60°; Transportation/Erection "not being performed") and WPA2.0 p.853 (Stripping, mult 1.4). The multiplier is the equipment/dynamic factor; **no strength-design load factor stacks on top of it** (WPB §6: handling `Mu` = self-weight × the stage multiplier, nothing else). **PCI basis & rigging idealisation.** The panel is idealised as a **beam whose supports are the lifter lines**, not dunnage. Lifters are entered as **Face Lifters** and **Top-Edge Lifters**, each a number of columns and lateral locations given as a **fraction of panel width** (WPA4.0 p.7: 2 columns at 0.207 from each side). The run prints: - `Panel weighs X kips and its center of gravity is …` (WPA4.0 p.7), - **Reactions** as `Location | Vertical | Horizontal (k)` per lifter line, with a **Tilt Potential (deg)** value (WPA4.0 p.10), - reactions are printed **unfactored per lifter** while the Stresses/Flexure moments are **factored** — the run says which is which. The Stripping **Stresses** table (WPA4.0 p.10) is the governing handling check: `Loc | Tension | Limit | Comp. | Limit | fci req | Mg | Aps | Losses | Pi | Mzi | Myi`. `Pi` is the prestress force (negative = compression), `Mzi/Myi` the prestress moments about the two axes, `Mg` the stage moment. ## A.4 The In-Place model The panel is analysed as a member spanning between its **restraints** (a foundation connection + floor ties — WPA4.0 p.6 lists 5 restrained elevations) under lateral + gravity + axial demand. **Load cases applied** (Structural Model, WPA4.0 p.6 / SWA1.0 p.12): | case | how applied | | --- | --- | | Dead + Self weight | self weight distributed; self-weight eccentricity from panel CG | | Live, Roof | as part of concentrated loads / tributary | | **Wind** | out-of-plane **distributed**, a `W1…W4` table of **Pressure** and **Suction** magnitudes (psf), varying start→end over height (WPA4.0 p.6: 68/82 psf then 212/212 psf zones) | | **Seismic** | zone(s) over `x/L`, `Cs` as % of dead, applied to Deadload + Self weight | | **Earth / soil** | interior & exterior soil, elevation + surcharge; lateral pressure coefficient set in Project Information | | Temperature | exterior/interior °F + thermal-elasticity multiplier (out-of-plane thermal bow) | | **Concentrated axial** | `P1/P2 …` at an elevation with an eccentricity, split Dead/Live/Roof/Pres/Suct/Seis (SWA1.0 p.12: 139.6k D + 44.6k L each) | **Load combinations** (Project Information): the ACI 318-14 set with columns `D L R W E T H`, printed as **Strength** (8 combinations: 1.4D; 1.2D+1.6L+0.5R; … 0.9D+1.0W; 0.9D+1.0E — each with `T` at 1.0 and soil `H` at 1.6, Include=1) and **Service** (5–10 combinations, WPA4.0 p.4 shows 10; SWA1.0 p.10 shows 5). The result tables are headed `All Combinations` and each controlling section names its governing LC (e.g. WPA4.0 p.9 `Flexure LC: LC 7 - 0.9D + 1.0W + 1.0T + 1.6H`). **Second-order / slenderness.** Settings `2nd Order Effects: P-Delta`, `Analysis βd: Non-Sway` (all six). The restraints define the unbraced spans; the axial table's `ΦPcrit` is the buckling capacity; the summary prints a controlling P-M interaction section at `0.95L`. (WPB additionally printed a `Second Order Effects` block with `kL/r`, 1st-order vs 2nd-order moment, `% Increase`.) ## A.5 Service checks - **Tension**: `Location | Tension (psi) | Cracking (psi) | M (k-ft) | P (k)` (+ prestress `Aps/Losses/Pi/Mzi/Myi`). Cracking = **7.5√f'c**. Prestressed runs classify each section **Class U** (≤7.5√f'c) / **Class T** (≤12√f'c) (WPA4.0 p.15). Non-prestressed use a single Modulus-of-Rupture 7.5√f'c. - **Total Compression**: `Location | Comp. (psi) | Limit (psi) | M | P`. Limit = **0.6 f'c** = 3600 (WPA4.0 p.16, SWA1.0 p.17). - **Deflection**: graph vs allowable = the deflection limit (§A.6). A `Δlim` and `Δmax` also print in the one-page summary. - The controlling section for each prints a **Section View** block (section properties Ag/Cx/Cy/Izz/Iyy, θ, strand Aps/%Loss/ex/ey, the stress vs limit). ## A.6 Settings / parameters Eriksson exposes (and the per-job variation) The Settings page is the method statement. Verbatim-equivalent across the six, with the per-job values called out: ``` Deflection Limit L/150 (WPA3, WPA4) | L/120 (WPA1) | L/240 (WPA2, SWA, MWH) 2nd Order Effects P-Delta | Analysis βd: Non-Sway Stress Options Failure if cracked | Ignore Lateral Strand Eccentricity | Use Principal Axis In-Place Stress Limits Tension 7.5 √fc (Uncracked / Class U) / 12 √fc (Transition / Class T) | Compression 0.6 fc | Allowable Δfps 36 ksi (non-prestressed prints one "Modulus of Rupture 7.5 √fc") Handling Stress Limits Tension 5 √fc (WPA1, MWH, WPB) OR 7.5 √fc (WPA2, WPA3, WPA4) | Compression 0.6 fc ← PER-JOB, both occur Flexure Options Method: Whitney Stress Block | Cracking Check: None Resistance Factors Developed: Tension 0.90, Compression 0.65, Shear 0.75 Transferring: Tension 0.75 (values verified against the shear tables; the printed grid's column order is ambiguous — see §A.8) Development Multipliers Strand Normal 1.0 | Debonded 2.0 | Cut 1.0 | Mild 1.0 (ALL v4.3.2 runs here; WPB v4.13.2 used 1.3 — PER-JOB) Shear Options Treat as column | Use ACI 22.5.8.2 Axial Options Ignore tensile strength failures | Ignore buckling failures Prestress Losses PCI Design Handbook | Humidity 70 | Release ~8 hrs | Erection 30 days Materials f'ci 2.5–3.5 ksi, f'c 6.0 ksi, 150 pcf normalweight; strand fpu 270, Ep 28500; mild fy 60, Es 29000 ``` ## A.7 Result presentation - **Per-check tables**, each preceded by a `Legend`, a `Max/Min` header block, a `Summary Graph` (x-axis in **inches**, 11 ticks 0→L) and a `Summary Table`. - **`Loc.` always first, in feet, two decimals.** Signs: sagging +, hogging −; a separate `θ (deg)` column carries the sense (0 sagging / 180 hogging). `c` prints an inch mark inside the cell. - **Zero rows at the piece ends are printed, not suppressed** (Φ, ΦMn, Aps all 0.00 there). `∞` where a quantity is genuinely unbounded. **No colour, no FAIL flag** — the verdict lives in the `Max Utilization:` header and the engineer's margin. - Station spacing ≈ **L/20** plus a straddling pair at every geometric discontinuity; **Section Properties at L/10** (11 rows). - **A one-page summary** (WPA4.0 p.9) collects, per stage: utilizations (shear/flexure/axial), controlling LC, `Max Comp/Tension vs limit`, and the P-M interaction diagram. This is the at-a-glance sheet an engineer reads first. - Column sets, exactly: - **Handling Stresses**: `Loc | Tension | Limit | Comp | Limit | fci req | Mg | Aps | Losses | Pi | Mzi | Myi` - **Flexure (handling)**: `Loc | Util | Mu | Φ | ΦMn | c | θ | As | A's | Aps | Loss | d` - **Flexure (in-place)** adds `Mcr | Pu | ΦPn` (15 cols) - **Shear**: `Loc | Util | Vu | ϕVn | Vc | Vs Req | bwd | Av Min | Vci | Vcw` (Vci/Vcw handling only; in-place drops them) - **Axial**: `Loc | Util | Pu | ΦPn(C) | ΦPn(T) | ΦPcrit | As | Aps | Loss | Ag` - **Service Tension**: `Loc | Tension | Cracking | M | P | (Aps | Loss | Pi | Mzi | Myi)` - **Service Compression**: `Loc | Comp | Limit | M | P | …` ## A.8 What Eriksson Wall does NOT do here (and what is image-only) **Not done for a solid wall — do not build to mimic:** - **No torsion** (§A.2). **No horizontal-shear / percent-composite / C-GRID** interpolation — those are sandwich-panel sections (WPB only), absent from all six solid walls. - **No in-plane shear-wall / diaphragm design.** SWA1.0's in-plane shear (`Vc1/Vc2`, ACI 11.5.4/11.6, `Vcmax = 10√f'c·h·d`), overturning/uplift story-by-story spreadsheet, horizontal-joint shear-friction and corbel (PCI 5.3.1) are all **hand Mathcad/spreadsheet** sheets by the engineer (SWA1.0 p.4–8, p.18). Eriksson Wall itself only did SWA's **out-of-plane** bending + axial + service. Our tool replaces the Eriksson part, not these. - **No minimum-reinforcement / Mcr floor** (`Cracking Check: None`); `Mcr` is an informational column. **Image-only — flagged, NOT transcribed, needs image verification before any number is trusted:** 1. **Resistance-factor grid** (WPA4.0 p.4): the Developed/Transferring × Tension/ Compression/Shear cell placement extracts jumbled (`0.9 / 0.75 / 0.65`). The *values* 0.90/0.65/0.75 are verified against the shear tables and WPB p.71, but confirm the exact cell layout from the rendered page. 2. **Interaction (P-M) diagrams** (WPA4.0 p.9, and each service Section View): plotted curves, axis values partially OCR'd — read from image if a numeric PM point is ever needed. 3. **Summary Graphs** on every results section: the curve is an image; only the Summary Table beneath it is text. We rely on the table. 4. **Cover-sheet strand/reinforcing patterns and stripping-pick geometry** (each p.1): dimensioned drawings — pick fractions (`.104L / .291L`) read as text but the layout is an image. --- # Part B — GAP analysis vs our current code Scope of what exists today (`tools/panelanalysis.py`, `panelanalysis_schema.py`, schema `panelanalysis/1`, engine `panellift`): a **self-weight handling beam** solved on `structural_model.supports` (continuous beam, rigid supports), strand-only capacity (`ΦMn`, `Mcr` informational, `ΦVn`, `f_se`) at L/20 stations, section properties at L/10, a demand-vs-capacity table with `M/ΦMn` and `V/ΦVn` ratios, and every In-Place section rendered as an explicit NOT-BUILT placeholder. Legend of status: **(a) covered · (b) partial/different · (c) missing.** Ordered by importance for a wall panel: **flexure / shear / handling → in-place wind → service → the rest.** ### Tier 1 — handling & the capacity primitives (build first) 1. **(c) Handling STRESS check — the governing stripping check is not computed.** Eriksson's Stripping *Stresses* table (extreme-fibre tension vs `5`/`7.5√f'ci`, compression vs `0.6 f'ci`, and `fci req`) is what governs stripping — and we compute `ΦMn` strength but never the service stress that actually controls. The settings block already carries `tension_limit_sqrt_fc` / `compression_limit_ratio`; **nothing reads them.** Add: extreme-fibre stress from `(Pi/A ± Pi·e·y/I ± Mg·y/I)` at each station, compared to the two limits, plus the `fci req` back-solve. **Highest handling priority.** 2. **(b) Handling is one self-weight stage; Eriksson runs staged multipliers.** We have a single stage at `loading.self_weight.load_factor`. Eriksson runs **Stripping ×1.4 @ f'ci with Handling limits** and **Transportation ×1.5 @ f'c with In-Place limits** (and an Erection stage, off here). Add a `handling.stages[]` list, each with `{multiplier, concrete: initial|in_place, stress_limits: handling|in_place}`, and solve/report each. The engine already takes a per-stage `fc_psi` and `multiplier`. 3. **(b) Handling idealisation is dunnage, not lifters.** Eriksson idealises stripping as a **beam on lifter lines** (Face + Top-Edge lifters at width fractions, sling angle, **Tilt Potential**, per-lifter Vertical/Horizontal reactions). We solve a beam on generic `supports`. `panellift` already models lifters/rigging — wire `structural_model` to carry lifter columns + lateral fractions and let the handling solve use the lift path, reporting reactions per lifter (unfactored) with moments factored, matching Eriksson's split. 4. **(c) Φ development ramp + development multiplier.** Our Φ is a constant 0.90; Eriksson ramps **0.75→0.90 across the transfer→development length** (ACI 21.2.3), scaled by the Development Multiplier (1.0 here, 1.3 on WPB). Our `pci.development_length_in` applies no multiplier. Add the ramp to Φ and to the effective `Aps(x)`; expose `development_length_multiplier` in settings (already a field, currently unused). Materially changes near-end capacity. 5. **(c) Non-prestressed / mild-steel capacity path.** `panellift.capacity` is **strand-only** — so WPA1.0, WPA3.0 and SWA1.0 (mild-reinforced walls) cannot be analysed at all today; the tool renders a "no prestress → not computed" box. Eriksson runs full flexure/shear/axial on mild `As` (with `A's`). Add a mild-steel flexural/axial capacity path. **Unlocks whole panel classes.** 6. **(b) Shear method.** Confirm our `ΦVn` uses the Eriksson **detailed Vci/Vcw** method (`Vc = min(Vci, Vcw)`, `ΦVn = 0.75·Vc`, `bwd` as a product, `∞` at zero-moment) and reports both columns for handling. WPB §4.6 found our `d` and √f'c-coefficient handling differed from Eriksson's — re-check against these tables and align, or document the deviation. ### Tier 2 — the In-Place engine (the large missing piece, Stage 3) 7. **(c) Load-case engine.** None of it exists. Build the cases of §A.4: self/dead, live, roof, **wind (out-of-plane distributed Pressure + Suction, varying over height)**, **seismic (Cs % of dead over x/L zones)**, **soil (interior/exterior surcharge + lateral coefficient)**, temperature (thermal bow), and **concentrated axial loads** at an elevation + eccentricity. The `loading.wind` / `loading.combinations` fields are already `unread` placeholders waiting for this. The owner has named a `wallanalysis` Project Config module (wind speed, Kzt, ASCE edition, parameter table) as the input source — not built. 8. **(c) ACI 318-14 load combinations.** The `D L R W E T H` **8 strength / N service** matrix, envelopes per station, and the "controlling LC" naming. Prerequisite for everything in-place. 9. **(c) In-place flexure with axial (P-M interaction).** In-place `ΦMn` is evaluated at the actual `Pu` on the interaction surface, with `Mcr`, `Pu`, `ΦPn` columns. Our flexure is pure bending, no axial. Add the P-M surface and evaluate demand `(Mu, Pu)` against it. 10. **(c) Axial check.** `ΦPn(C)`, `ΦPn(T)`, and `ΦPcrit` (buckling) with utilization — entirely absent. Include the two "ignore tensile/buckling failure" switches from Axial Options. 11. **(c) Second-order / slenderness.** P-Delta with non-sway βd, `kL/r` per restrained span, moment magnification, 1st vs 2nd-order `% increase`. Depends on the restraint model (next). 12. **(c) Restraint / span model.** `structural_model.restraints` is an `unread` placeholder. In-place needs the foundation + floor-tie restraints (elevation, type, gravity/thermal, stiffness) to set spans for both bending and slenderness. ### Tier 3 — service, then presentation & settings 13. **(c) Service checks.** Tension vs cracking (`7.5√f'c`; Class U/T `12√f'c` for prestressed; Modulus of Rupture for mild), total compression vs `0.6 f'c`, and deflection vs the per-job limit (`L/150` etc.). None built. Reuse the extreme-fibre stress primitive from item 1 with in-place loads/limits. 14. **(b) Settings coverage.** Expose the full Settings page: in-place stress limits (`7.5/12√f'c`, `Δfps 36 ksi`), the resistance-factor matrix (developed 0.90/0.65/0.75 + transferring 0.75), stress options (Failure if cracked, Ignore Lateral Strand Eccentricity, Use Principal Axis), shear/axial options, cracking method. Our `settings` block is thin. **Per-job values (handling limit 5 vs 7.5√f'ci; dev multiplier 1 vs 1.3; deflection limit) must be inputs, not constants** — both values occur across the six. 15. **(b) Result presentation parity.** Move from our single combined demand-vs-capacity table toward Eriksson's **separate Stresses / Flexure / Shear / Axial** tables with the exact column sets in §A.7 (`θ`, `c`, `Loss`, `d`, `As`, `A's`, `Aps` …), plus the **one-page summary** (per-stage utilizations, controlling LC, P-M diagram). Lower priority — arithmetic first, layout second. 16. **(c) Multi-run / multi-section packages.** A deck must be able to carry **several analysis runs** (MWH1.0's `2.1`/`4.1`) and Eriksson's optional `Structural Sections` (analysing sub-strips of the cross-section). Our schema assumes one panel/one run. ### Explicitly NOT on the punch-list (scope guards) - **Torsion** — Eriksson Wall does not run it for a wall (§A.2). Do not add. - **Horizontal shear / percent-composite / C-GRID** — sandwich-panel only (WPB), absent from every solid wall here. Needed only when insulated panels enter scope; our code already marks it N/A for a solid section, which is correct. - **In-plane shear-wall / diaphragm / corbel design** — the engineer does this by hand (SWA1.0), Eriksson Wall does not, so neither must the replacement. - **1.2 Mcr floor / minimum-steel check** — Eriksson has `Cracking Check: None`; keep `Mcr` informational (matches our current behaviour — do not "fix"). --- ## Reconciliation summary (this note vs WPB note) | item | WPB (v4.13.2, sandwich) | these six (v4.3.2, solid walls) | | --- | --- | --- | | section/page order | as §A.1 | **identical** | | handling/in-place split | separate `.ewf`, mild-only vs strand-only | either separate OR one unified run (WPA4.0); MWH multi-run | | handling tension limit | 5√f'ci | 5√f'ci (WPA1,MWH) or 7.5√f'ci (WPA2/3/4) — per job | | development multiplier | 1.3 | 1.0 (all v4.3.2) — per job, confirms WPB open-Q #4 | | torsion | from Eriksson *Beam* (lintel) | none | | horizontal shear / % composite | yes (C-GRID sandwich) | none (solid) | | Φ ramp, Whitney block, Vci/Vcw, P-M, service limits, combos | as §A.2–A.6 | **same method** |