A single-pile run answers two questions from one soil profile: how the pile responds to lateral load (p-y), and how much axial load it carries and how far it settles (t-z / Q-z). The soil profile is entered once, and both analyses use the same layer stack, the same pile geometry and the same effective-stress integral.
The two are also physically coupled. The axial analysis produces the internal axial force diagram along the pile, which can be used as the P-Delta input for the lateral solve if you want it.
Lateral analysis
The pile is an elastic beam; the soil is a row of independent, nonlinear springs along it (Winkler). The equation solved is FHWA/RD-85/106 §2:
The entire solution is really one function, . Everything else is a derivative of it: slope , moment , shear , soil reaction .
The equation is discretised by finite differences with per-node coefficients, so and may vary with depth. The spring stiffness is a secant stiffness, resolved by iteration. Convergence is measured relatively (); a run that does not converge raises an error rather than returning zeros.
p-y curves
A p-y curve represents the force-deflection behaviour of one spring at one depth. is the pile's lateral deflection there (m); is the soil reaction per unit length of pile (kN/m). A separate curve is computed at every depth. Deeper soil is more confined.
These curves do not come from theory; they come from field tests on instrumented piles. Six models are implemented:
| Soil | Model | Source |
|---|---|---|
| Soft clay | Matlock (1970) | FHWA Eq. 3.18–3.23 |
| Stiff clay, submerged | Reese, Cox & Koop (1975) | FHWA Eq. 3.24–3.36 |
| Stiff clay, above water | Welch & Reese (1972) | FHWA Eq. 3.37–3.39 |
| Sand | Reese, Cox & Koop (1974) | FHWA Eq. 3.56–3.65 |
| Sand | API RP 2A §6.8.6 (O'Neill & Murchison calibration) | closed form, no chart |
| Linear / void | user-defined | — |
In soft clay the ultimate resistance is the smaller of two mechanisms:
Near the surface the soil moves up and out as a wedge and resists ahead of the pile. That resistance is limited by the weight of the surface wedge, so it grows with depth. Deeper, the soil cannot escape upward and has to move horizontally around the pile. That mechanism is depth-independent. Soil fails by the easiest available mechanism, so the real resistance is the smaller of the two.
Where the soil parameters come from
depends on the clay's consolidation history, not on alone: a 60 kPa normally consolidated clay and a 60 kPa overconsolidated clay have different . There are therefore two separate tables, and the (model, water table) pair decides which one applies.
| (kPa) | < 48 | 48–96 | ≥ 96 |
|---|---|---|---|
| — Table 3.3 | 0.020 | 0.010 | 0.005 |
Table 3.3 covers soft clay (Matlock) and stiff clay above the water table (Welch & Reese). Submerged stiff clay uses Table 3.5, indexed in T/ft² (0.007 / 0.005 / 0.004).
Picking from the table on alone has a measurable cost. The Sabine River pile in the verification section matches at the site-measured ; taking the same soil as normally consolidated from its kPa range would give 0.020 and a deflection roughly 55 % larger. Sabine is a soft but slightly overconsolidated clay: gives its strength class, not its consolidation history. If you have a measured , entering it is recommended. The tables are there for when no measured data is available.
In sand the initial modulus comes from FHWA Tables 3.9/3.10 (lbf/in³; ×271.447 → kN/m³):
| Relative density | Loose | Medium | Dense |
|---|---|---|---|
| Submerged | 20 | 60 | 125 |
| Above water | 25 | 90 | 225 |
The table is indexed by relative density. The data the soil profile carries is . The relative density classes in the table are mapped onto internal friction angles of = 30/35/40°, and intermediate values are obtained by linear interpolation. FHWA/RD-85/106 does not publish that mapping, which is why is offered as an explicit per-layer input; when you supply it, it is used instead of the derived value. The calculation output records which value was used.
Below the water table effective stress is used (). Total stress roughly doubles the resistance, so using effective stress is not offered as an option. The effective vertical stress is computed cumulatively across layers from the surface: the stress in a layer includes the weight of every layer above it.
Pile head support conditions
The support condition at the pile head is defined by two conditions, one for translation and one for rotation.
| Type | Given |
|---|---|
shear_moment | Shear + moment (head free to translate and to rotate) |
shear_slope | Shear + slope (free to translate; rotation is imposed externally, and a rotation of 0 makes the head fixed) |
shear_rotational_stiffness | Free to translate; rotation is resisted by a rotational spring, |
displacement_moment | Translation is imposed externally; a moment can be applied for rotation |
displacement_slope | Both translation and rotation are imposed externally |
The pile toe (the bottom end) is free (, ). Assigning a spring at the pile toe, or socketing it into a rock layer, is outside the scope of this calculation.
Depth to fixity
The depth to fixity is an indirect output of the lateral analysis. It gives the depth at which a 3D structural model (ETABS, SAP2000, ProtaStructure) may replace the pile and the soil with an equivalent fixed-base cantilever. Davisson & Robinson (1965), as printed in FHWA-HIF-18-031 §6.7.2:
In clay (Eq. 11-3); in sand is the rate of increase of soil modulus with depth. The method applies only to long/flexible piles (); below that the pile rotates rather than flexes and the equivalent cantilever does not apply. The value is still computed, but flagged with a warning.
The depth-to-fixity calculation is a closed form and rests on the assumption of one homogeneous soil. For a layered profile the active zone is reduced to a single equivalent modulus. A result whose active zone spans more than one layer is marked as preliminary. Two further values are reported alongside it: the observed depth read from this run's own , and the equivalent cantilever length back-calculated from the p-y result. The three answer different questions and each is labelled.
Serviceability check
The allowable pile head deflection limit is an input and has no default. Without a limit the calculation makes no comparison and returns no verdict; it reports the deflection only. Given a limit, the result is presented as a demand/capacity ratio. What comes out of it concerns serviceability only; it says nothing about the pile's structural or geotechnical capacity.
Axial analysis
A pile carries axial load two ways. The first is side friction along the shaft (t-z). The second is end bearing at the pile toe (Q-z). Both mechanisms depend on vertical displacement and mobilise at different scales. Side friction peaks at a vertical displacement of roughly 1 % of the diameter. End bearing needs about 10 % of the pile diameter to mobilise. Under a working load the shaft carries nearly all of it while the toe is barely mobilised, which is why the sum of the two ultimate values should be read as a strength-limit number rather than a serviceability measure.
Capacity
| Case | Approach | Source |
|---|---|---|
| Cohesive, driven | , () or , capped at 1.0; | RP 2GEO Eq. 18/19/20 |
| Cohesive, bored | for , falling to 0.45 at 2.5 | GEC 10 §13.3.5.2 |
| Cohesionless | and , both capped at the tabulated limit | RP 2GEO Table 1, Eq. 21/22 |
For a bored pile, side resistance is neglected over the top 1.524 m (5 ft) by default, because near-surface clay shrinks, swells and gaps away from the shaft. If the seasonal moisture-change depth at your site is greater, using that depth instead is recommended. GEC 10's data stops at , so is held at 0.45 beyond that point rather than extrapolated.
The critical-depth assumption is not used in cohesionless soil. Textbook practice assumes that unit shaft friction and end bearing grow with the effective vertical stress only down to a certain depth and stay constant below it; that depth is called the critical depth. API RP 2GEO defines no such depth. The effective vertical stress keeps growing, but the unit resistances are capped at the limiting values in its table. The two approaches give different numbers deep in a uniform sand.
Uplift capacity credits no end bearing. Only the same side friction and the pile's own weight are taken into account.
Allowable capacity takes one factor per component:
Established practice uses different safety factors for the shaft and the toe, typically 2.0 and 3.0, because end bearing mobilises at larger movement and is the less certain estimate. A single combined factor does not express that. Supplying one factor reduces the expression exactly to . In the app the form opens with 2.0 for the shaft and 3.0 for the toe, and you can edit both. The API has no default: without a factor no allowable capacity is computed, and only the ultimate capacity is reported.
Axial load-transfer curves
Three separate families of formulas are used for axial load transfer:
| Family | Source | Default for | Normalisation |
|---|---|---|---|
api | RP 2GEO Table 2 (t-z) + Figure 3 (Q-z) | driven | movement / (= 1 % of D) |
oneill_reese | O'Neill & Reese 1999, Fig. C.1/C.2/C.4 | bored, CFA | movement / diameter (%) |
parametric | the user's own mobilisation displacement | — | movement / |
The API tables are given numerically, so they carry no reading uncertainty. is used for routine design. RP 2GEO states its own uncertainty for that value explicitly (0.25 %–2 % of D), and is a direct function of that number.
FHWA-IF-99-025 gives the O'Neill & Reese curves as figures, so reading a value off them carries a reading tolerance of ±0.02.
Settlement and vertical spring
The solver marches up from the pile toe. A tip displacement is prescribed first, which fixes . From there each element adds its own side friction through . Sweeping the tip displacement traces the whole load-settlement backbone in a single pass.
Elastic shortening is obtained by integration, not estimated with a factor. The vertical spring is reported with the load level it was taken at (the initial tangent, the secant at , and the secant at the design load when one is given).
Because the ground already balances the pile's weight, the pile's own weight is not taken into account in compression. Under tension it is counted, since the pile does resist with its own weight.
Layered soil
Soil layers may be stacked in any order: clay, stiff clay, sand, linear and void. Each node takes its p-y curve from its own layer, and the curves are built at the node's true depth. This is known in the literature as the Direct method.
Georgiadis' equivalent-depth correction, which reshapes the curve where two layers differ sharply in stiffness, is not implemented; every layered run states which method it used.
A node's p-y curve is built from its own layer's parameters. Some quantities, though, cannot be read from a single layer, because by definition they include the soil above that node. The effective vertical stress accumulates from the surface down to that depth. The undrained strength the stiff-clay models use is the average between the surface and that depth. The for submerged stiff clay is read from the average from the surface down to . These are computed over the whole layer stack. The Matlock soft-clay model, by contrast, uses the local at that depth.
Section shape
Circular (circular) and square (square) sections are handled separately. The perimeter is
for a circular section and for a square one. The toe area is for a circular
section and for a square one. In a hollow circular section the inner void is deducted from the
toe area, but if the pile toe is declared plugged (plugged) the full circular area is used.
The unit soil resistances do not depend on the section shape (, and are stress-based). The shape only changes the perimeter and the area they multiply. The lateral analysis works with the width normal to loading. A square pile's flat face does mobilise a slightly fuller passive wedge than a circular one, but that is neglected here and the width is used as declared. The neglect is conservative for the lateral solve.
Verification
Compared against published field load tests and worked examples:
| Case | Source | Result |
|---|---|---|
| Soft clay, Sabine River | FHWA §9, Fig. 9.34b/9.35 | Groundline deflection within 6.3 % mean / 9.8 % max; within ~5 % |
| Sand, Mustang Island | FHWA §9, Fig. 9.50b/9.51 | Within 7.8 % mean; within ~5 % |
| Stiff clay (dry), Houston | FHWA §9, Fig. 9.36b/9.37 | 7–18 % over the working range (62–81 kip) |
| Side resistance, clay | GEC 10 Illustrative Example 13-2 | Within 0.2 % |
| Bored shaft, end to end | O'Neill & Reese Example C-3 | 1.928 mm against the published 1.9 mm; 1,964 kN against its own hand method's 1,960 kN |
| Driven pipe, sand | FHWA Deep Foundation Load Test Database — Kentucky Lake TPK-1 | Computed ultimate 23,594 kN, below the 26,800 kN the pile carried without failing |
| Driven pipe, clay | Port of Oakland TP6-17NCI | Compression and uplift; movement runs 2–2.5× the measured settlement at working loads, converging near the top |
The Sabine River and Mustang Island piles were loaded to failure. The Kentucky Lake and Port of Oakland piles were not taken to plunging failure, so their measured capacity is a lower bound.
FHWA/RD-85/106 gives the and coefficients for sand as charts, so those values carry a reading tolerance of ±0.02–0.05. That band is inherent to the model, not to this implementation: Reese's own procedure has an engineer reading the same curves by eye.
What is outside the scope of this calculation
| Out of scope | Note |
|---|---|
| Computing a moment-dependent | is a user input. A gross-section value can be entered and converted to a cracked section with a reduction factor. |
| Tip spring, rock socket | The pile toe is taken as free. |
| Sloping ground, battered piles | In FHWA/RD-85/106, not in this version. |
| Group effects | A separate calculation (pile-group): efficiency, block failure, p-multiplier. Use the pile group macro. |
| Kinematic (seismic free-field) loading | The analysis is inertial: the soil is taken as still, and the load is applied at the pile head. |
| Negative skin friction | Requires a soil-settlement profile as input. |
| Consolidation of strata below the toe | The settlement reported is pile-soil load transfer, a short-term value. |
| Set-up and relaxation | Capacity is the end-of-installation static value. |
| Plug behaviour of open-ended piles | plugged/unplugged is a user input, not a computed result. |
| Cyclic t-z degradation | The axial curves are static/monotonic. |
| Rock, loess, liquefied sand and silt p-y models | 6 of FHWA/RD-85/106's 16 models are implemented. |
Endpoints
The calculation runs from the app or directly over the API. Full request schemas are in the API reference.
| Endpoint | What it returns |
|---|---|
POST /api/v1/pile-single/analyze | Lateral solve: , , , , soil reaction, depth to fixity |
POST /api/v1/pile-single/py-curves | p-y curves at the requested depths |
POST /api/v1/pile-single/pushover | Lateral pushover backbone |
POST /api/v1/pile-single/stiffness | Pile head spring set: , , , |
POST /api/v1/pile-single/axial | Axial capacity, settlement, capacity-vs-depth profile |
POST /api/v1/pile-single/tz-curves | t-z curves at the requested depths |
/analyze accepts an optional axial-coupling block. Given it, the axial analysis runs first and the
profile it produces is used as the P-Delta input instead of a constant axial load. That
computes an input; it does not change the lateral formulation — typing the same in by hand
gives an identical result.