Vertical Curve Calculator computes K-value, PVC, PVT, grade difference, and high or low point using K=L/A for equal-tangent parabolic crest and sag vertical curves.
Grade Change Isn’t Linear — Your Profile Geometry Shouldn’t Be Either
A straight grade transition — two slopes meeting at a sharp angle — is fine on paper but physically impossible at road speed. Vehicles have mass, suspension travel, and sight-line geometry that demand a smooth, controlled transition. That transition is the vertical curve: a parabolic arc fitted between two tangent grades so that the rate of grade change stays constant from end to end. The parabola is not an approximation or a simplification; it is the mathematically correct shape for constant rate-of-change, which is why every highway, runway, and rail alignment standard specifies it by default.
The number designers reach for first is the K-value — the length of curve required to produce a one-percent change in grade. A K of 40 means a tight, aggressive transition; a K of 180 means a long, flat one suited to high-speed or drainage-critical alignments. Everything else — PVC station, PVT elevation, high-point location — flows directly from K, the grade pair, and the PVI coordinates you set.
Formulas Used in This Calculator
All variables match the labels in the input and output cards.
Grade Difference (A)
A = |g1 − g2|
Where g1 is the entering grade (%) and g2 is the exiting grade (%). The absolute value is always used; sign is handled separately for curve-type determination.
Curve Type
if g1 > g2 → Crest Curve (grades descend through the curve) if g1 < g2 → Sag Curve (grades ascend through the curve)
Rate of Curvature (K-Value) — Hero Output
K = L ÷ A
Units: ft/% (US Customary) or m/% (Metric). L is the full curve length entered by the user.
PVC (Point of Vertical Curvature)
PVC Station = PVI Station − (L ÷ 2) PVC Elevation = PVI Elevation − (g1 ÷ 100) × (L ÷ 2)
PVT (Point of Vertical Tangency)
PVT Station = PVI Station + (L ÷ 2) PVT Elevation = PVI Elevation + (g2 ÷ 100) × (L ÷ 2)
Parabolic Rate of Grade Change (r)
r = (g2 ÷ 100 − g1 ÷ 100) ÷ L [decimal per unit length]
Apex / Turning Point — Distance from PVC (x)
x = −(g1 ÷ 100) ÷ r
The apex only exists within the curve when 0 ≤ x ≤ L. If x falls outside that range, the card displays “Outside Curve.”
Apex Station and Elevation
Apex Station = PVC Station + x Apex Elevation = PVC Elevation + (g1 ÷ 100) × x + (r ÷ 2) × x²
Unit Label
US Customary → "ft" (all station, elevation, and K outputs) Metric → "m" (all station, elevation, and K outputs) Grade inputs are always in percent (%) regardless of unit system.
How the Calculator Works
Inputs
You provide six values: the measurement system (US or Metric), the entering grade g1 and exiting grade g2 in percent (negative values are valid and expected for descending grades), the total curve length L, and the station and elevation of the Point of Vertical Intersection (PVI) — the geometric point where the two tangent grades would meet if there were no curve. All station and elevation values share the same linear unit (ft or m) chosen by the measurement system toggle.
Calculation Flow
The calculator first checks that g1 and g2 are not identical — identical grades mean no curve is needed and A would be zero, which makes K undefined. If that condition passes, it computes A as the absolute difference of the two grades, then divides L by A to get the K-value shown in the hero card.
Next it splits the curve symmetrically around the PVI: the PVC sits exactly L/2 back along the incoming tangent, and the PVT sits exactly L/2 forward along the outgoing tangent. Elevations at each point follow directly from those horizontal distances and the respective tangent grades, using the grade-as-decimal form (g ÷ 100).
The apex calculation uses the parabolic rate r — how quickly grade changes per unit of length — to find the point where instantaneous grade equals zero. That is where the high point (on a crest) or low point (on a sag) sits. Because the parabola is symmetric only in its rate of change and not in its geometry when g1 ≠ −g2, the apex station is almost never at the midpoint of the curve. The calculator checks whether x falls within [0, L] and flags “Outside Curve” when it doesn’t rather than reporting a physically meaningless value.
Unit System Toggle
Switching between US Customary and Metric recalculates all outputs immediately and relabels every unit badge in the interface. Grade percentages are dimensionless and do not change. The formulas themselves are identical; only the unit string appended to each output changes.
Live vs. Button Calculation
Every numeric input field fires a silent recalculation on each keystroke, so the output cards update in real time as you type. The “Calculate Curve Data” button additionally scrolls the result section into view — useful on mobile where the outputs may be below the fold.
The Apex That Isn’t There — And Why It Matters
A crest curve where g1 = +3% and g2 = −2% has its high point well inside the curve span, which is the standard case. But consider a sag curve with g1 = −0.5% and g2 = +4%: the entering grade is nearly flat, so the mathematical apex — the zero-grade point — lands very close to the PVC, possibly before it. The calculator evaluates x = −(g1/100) ÷ r and checks whether the result falls between 0 and L. When it doesn’t, the Apex card reports “Outside Curve” for both station and elevation.
This matters for drainage design. On a sag curve with a low point outside the curve limits, there is no internal low point to place a catch basin — the drainage path continues through the entire curve without a grade reversal. Designers sometimes mistake the absence of an apex result for a calculation error; it is not. It means the grade does not reverse within the curve length you specified, and either the curve needs to be lengthened or the drainage strategy needs to account for a continuous directional flow across the full span.
Worked Example: Crest Curve on a Rural Collector Road
A rural two-lane collector crests a hill. The survey locates the PVI at station 1+000 ft with an elevation of 500.00 ft. The incoming grade is +2.0% and the outgoing grade is −1.5%. The design calls for a 400 ft curve.
Inputs Entered
- Measurement System: US Customary
- Length of Curve (L): 400 ft
- Entering Grade (g1): +2.0%
- Exiting Grade (g2): −1.5%
- PVI Station: 1000 ft
- PVI Elevation: 500.00 ft
Outputs — What Each Card Shows
Hero — K-Value: A = |2.0 − (−1.5)| = 3.50%. K = 400 ÷ 3.50 = 114.29 ft/%. Each percent of grade change consumes 114 feet of curve — a moderate K suited to a 50 mph design speed crest condition.
Card 1 — Absolute Grade Difference: 3.50%, Crest Curve. g1 > g2 confirms this is a summit, not a sag.
Card 2 — PVC: Station = 1000 − 200 = 800.00 ft. Elevation = 500.00 − (0.02 × 200) = 500.00 − 4.00 = 496.00 ft.
Card 3 — PVT: Station = 1000 + 200 = 1200.00 ft. Elevation = 500.00 + (−0.015 × 200) = 500.00 − 3.00 = 497.00 ft.
Card 4 — Apex (High Point): r = (−0.015 − 0.02) ÷ 400 = −0.0000875 per ft. x = −(0.02) ÷ (−0.0000875) = 228.57 ft from PVC. Apex Station = 800 + 228.57 = 1028.57 ft. Apex Elevation = 496.00 + (0.02 × 228.57) + ((−0.0000875 ÷ 2) × 228.57²) = 496.00 + 4.571 − 2.286 = 498.29 ft.
The high point is 28.57 ft past the curve midpoint — not at the center — because the incoming grade (+2%) is steeper than the outgoing grade magnitude (1.5%). Sight distance checks for stopping and passing conditions reference this apex station and elevation, not the PVI.
Frequently Asked Questions
What happens if I enter the same value for g1 and g2?
The calculator blocks the result and shows a warning: “Entering and exiting grades cannot be identical.” When A = 0, K = L ÷ 0, which is undefined. Physically, identical grades mean there is no grade change and therefore no curve is required. Enter any difference, even 0.1%, to proceed.
Can g1 or g2 be negative?
Yes — negative grades are standard for descending tangents. Enter them with a minus sign (e.g., −1.5). The calculator uses the signed values in every formula; the absolute value is only taken when computing A for the K-value. A sag curve results when g2 > g1, regardless of whether either grade is negative.
Why does the Apex card show “Outside Curve” instead of a station?
The turning point — where instantaneous grade equals zero — is computed as x = −(g1/100) ÷ r relative to the PVC. If x is negative or greater than L, the grade reversal falls outside the physical limits of the curve. This is a valid geometric outcome, not an error. It typically happens when the entering grade is very shallow relative to the total grade change, pushing the zero-grade point back before the PVC or forward past the PVT.
Does switching between US and Metric change the formula, or just the label?
Only the unit label changes. The formulas are dimensionally consistent regardless of unit system — K is always L ÷ A, stations are always in the linear unit you entered, and elevations follow the same tangent-grade arithmetic. If you enter L in meters and stations in meters, all outputs are in meters. The toggle does not convert existing numeric inputs; it changes the displayed unit string and recalculates using whatever numbers are in the fields.
Is the PVI station the same as the PVC station?
No. The PVI (Point of Vertical Intersection) is where the two tangent grades would intersect if extended — it is not a physical point on the road surface. The PVC (start of curve) sits L/2 before the PVI station, and the PVT (end of curve) sits L/2 after it. The PVI station and elevation are survey inputs; PVC and PVT are calculated outputs.
Does the K-value change if I switch from US Customary to Metric for the same physical curve?
Yes, the numeric value of K changes because L is measured in different units. A 400 ft curve with A = 3.5% gives K = 114.29 ft/%. The same curve in metric is approximately 121.92 m, giving K = 34.84 m/%. The physical flatness of the curve is identical; only the number reflects the unit system. AASHTO design tables list minimum K-values in US Customary units; metric equivalents appear in the SI edition of the Green Book.