Fork sag and bicycle geometry: distinguish frame-fixed points from the ground-relative pose
Follow one explicitly ideal rigid-rear construction to see why fork compression, frame pitch, BB height and cockpit X/Y are not the same change.
Published 14 October 2026 · OpenBikeFit
Fixed frame points. A different ground pose.
- Original fictional frame plane: R(−420,75), F(600,75), BB(0,0), P(480,605) mm; initial α = 73°.
- Front-only axial c = 20 mm gives pre-rotation axle vector (1014.1526,19.1261) mm; clockwise φ ≈ −1.080424°.
- Rigid-rear / equal unchanged ideal 350-mm supports / level ground ONLY: final axle span ≈ 1014.3329 mm; BB ground Y ≈ 267.0939 mm, versus 275 mm.
- Head inclination ≈ 74.0804°. P’s gravity-aligned BB vector ≈ (491.3224,595.8416) mm; frame-fixed vector and direct norm unchanged.
- Equal X/Y plotting scale, not a real frame outline. Missing rear or loaded wheel state is not zero; no handling, clearance or suspension setting is predicted.
Original schematic; not to scale. No physical measurement, sag target, pressure, part permission, adjustment or installation is supplied.
On this page
- 01Declare both coordinate systems before moving a point
- 02Move the front axle along its declared axis
- 03Reorient the frame to its wheel supports
- 04The final axle span is a different projection
- 05Locate the BB relative to the ground
- 06Keep the intrinsic cockpit vector separate
- 07State the angle convention and exclusions
- 08Carry assumptions instead of a false whole-bike answer
Free blank worksheet
Keep supplementary paper references
General reference and question spaces, not dedicated fork-travel or sag fields or installation approval.
Open toolA geometry chart needs a state. A bicycle observed under a different suspension load can have different ground-relative angles and heights without any frame tube or cockpit part changing its intrinsic shape. BikeCAD’s sag explanation makes that state distinction visible. Here an original fictional construction shows the geometry explicitly, while the real bicycle’s unknown conditions remain unknown.
The calculation is a teaching model, not a fork selector or suspension setup engine. It assumes a rigid rear frame, a front axle that moves along one declared telescoping direction, level ground and equal unchanged ideal wheel support heights. A rear linkage, unequal loaded tyre radii or another fork motion convention requires a different model. Do not apply the following numbers to those missing conditions.
Declare both coordinate systems before moving a point
Use an initial frame-fixed side plane with BB = (0, 0), X forward and Y upward. Declare rear axle R = (−420, 75) mm and front axle F = (600, 75) mm. Their initial horizontal separation is 1020 mm. Equal ideal support heights place both axle centres 350 mm above a level ground line, so the initial BB ground height is 350 − 75 = 275 mm.
The initial frame axes are aligned with horizontal and vertical only in this starting state. Once the whole rigid frame rotates, frame-fixed coordinates are no longer gravity-relative components. Keep the frame convention and ground convention named throughout. A point welded to the fictional frame can keep its frame coordinates while its horizontal projection or height changes.
Move the front axle along its declared axis
Let the initial rearward-up steering-axis direction be u = (−cos α, sin α), with α = 73° measured above the horizontal line toward the rear. Independently declare front axial compression c = 20 mm. In the fixed frame plane the axle moves toward the crown by c × u: ΔX ≈ −5.8474 mm and ΔY ≈ +19.1261 mm.
The new frame-fixed front point is F′ ≈ (594.1526, 94.1261) mm. Rear R stays fixed in this rigid-rear example. Compression is not a 20 mm vertical change: the initial axis is inclined. The previously published fork-length guide explains the separate direct/axial crown triangle; it does not solve the whole frame’s ground-relative orientation.
Reorient the frame to its wheel supports
Before reorientation, the axle-to-axle vector is (D′, h′) = (1020 − 20 cos 73°, 20 sin 73°) ≈ (1014.1526, 19.1261) mm. Equal unchanged wheel supports require this vector to become horizontal in the ground plane. Rotate the rigid frame clockwise by φ = −atan2(h′, D′) ≈ −1.080424°.
Use x′ = x cos φ − y sin φ and y′ = x sin φ + y cos φ for every vector carried by that same frame. The atan2 construction keeps both components, rather than applying a generic degrees-per-millimetre rule. The model has no measured pressure or load distribution; its declared c is an input to an ideal construction, not a prediction of what a rider will compress.
The final axle span is a different projection
After rotation, the fictional axle span on the level ground is √(D′² + h′²) ≈ 1014.3329 mm. It is not the earlier D′ ≈ 1014.1526 mm, which was horizontal only in the fixed frame plane before rotation. Nor is it 1020 − 20. Those alternatives confuse a projection or an inclined axial movement with the final supported axle span.
Keep unrounded intermediate values until presentation. The final span is about 5.7 mm shorter than the initial 1020 mm in this particular construction. That difference is not a wheelbase target, permitted fork change or indication of handling. Altering initial axle coordinates, head-axis direction or wheel support assumptions changes the relationship.
Locate the BB relative to the ground
The vector from rear axle R to BB is (420, −75) mm in the frame plane. With rear support height 350 mm, final BB ground Y = 350 + 420 sin φ − 75 cos φ ≈ 267.0939 mm. Compared with the initial 275 mm, the BB is about 7.9 mm lower in this ideal example, not 20 mm lower.
The full rigid frame orientation matters: different named points have different lever arms from the rear reference. This ground height is not pedal clearance, because crank position, pedal shape, actual tyre state and terrain are not represented. The existing BB drop/height guide owns those endpoint distinctions. Do not use the number as a safe riding or replacement-fork verdict.
Keep the intrinsic cockpit vector separate
Declare a fixed frame point P = (480, 605) mm relative to BB. Its frame-fixed vector is unchanged by the whole-frame rotation. Its gravity-aligned BB-relative components become P′ ≈ (491.3224, 595.8416) mm. Thus the horizontal and vertical columns change even though the fictional cockpit parts did not move relative to the frame.
The direct planar BB-to-P distance remains √(480² + 605²), because rigid rotation preserves a vector’s length. Frame-fixed reach/stack conventions must not be silently replaced with these gravity-relative projections. A real grip or hood also needs its own named point and lateral coordinate; this planar construction is not a complete hand position or a reason to change stem, saddle or controls.
State the angle convention and exclusions
For the same rearward-up axis, the fictional head inclination above the horizontal becomes α′ = 73° − φ ≈ 74.0804°. This is the declared convention for this rigid front-only example. A chart might use another suspension state, and an actual bicycle might have rear movement or unequal wheel support heights. You need those facts before comparing an observed angle with a published one.
BikeCAD supplies the reason to distinguish sagged geometry; its source does not supply the numbers or assumptions of this original calculation. No universal angle correction is adopted. The fork’s available travel, a marker’s history and c as a loaded observation are also separate. A percentage does not specify c unless its correct applicable denominator is established.
Carry assumptions instead of a false whole-bike answer
A useful hand-off retains the initial points, fork direction, declared compression, rear condition, support heights, ground datum, coordinate convention and unresolved questions. If rear suspension state or loaded wheel heights are unknown, do not insert zero motion or equal radii simply to make this construction run. Mark the resulting whole-bike pose unknown while preserving the observations you actually have.
The free existing front geometry sheet can retain explicit static-state declarations and dimensions, but it does not calculate this fork-sag rotation. Use supplementary paper notes for this model’s assumptions rather than presenting its output as an installed reading. Following this learning journey creates no bicycle record, changes no equipment and certifies no compatibility, installation, handling, physical fit or health outcome.
Practical questions
Frequently asked questions
Does 20 mm fork compression lower the BB by 20 mm?
Not in the declared fictional model. After inclined axle motion and rigid frame rotation, BB ground height changes from 275 to about 267.1 mm. Other assumptions can produce another relationship.
Why do cockpit X/Y change without moving the stem?
Their gravity-relative projections rotate with the frame. The frame-fixed BB-to-point vector and its direct planar length stay unchanged; the coordinate conventions must remain explicit.
Can this calculate my full-suspension loaded geometry?
No. The model assumes a rigid rear, front-only telescopic motion and equal unchanged ideal wheel support heights. Unknown rear linkage or loaded wheel state is not replaced with zero or this assumption.
Does the existing geometry sheet run this sag rotation?
No. It retains declared dimensions and explicit static state for its separate constructions. Supplementary paper references can keep the assumptions without treating them as installed measurements.