ThisCalculator

Everyday

Vertical Curve Calculator: Formula & How to Use

Updated · Standard formula, shown below

The calculator for this page is switched off while it is checked. The formula is below, and the worked example in the article shows how to use it by hand.

A vertical curve calculator computes the elevation at any point along a parabolic vertical curve, given the grades of the two tangents, the length of the curve, and the station of the point of vertical intersection (PVI). You enter the initial and final grades, the curve length, the PVI station and elevation, and the calculator returns the elevation at a specified station, along with the location and elevation of the highest or lowest point on the curve.

Formula

The vertical curve is a parabola, defined by the equation:

y = yPVI + g1·x + (g2 − g1)·x² / (2·L)

Where:

  • y = elevation at a point on the curve (ft or m)
  • yPVI = elevation of the point of vertical intersection (ft or m)
  • g1 = initial grade, expressed as a decimal (e.g., 3% = 0.03)
  • g2 = final grade, expressed as a decimal
  • x = horizontal distance from the PVI to the point of interest (ft or m)
  • L = length of the vertical curve (ft or m)

The grade is the slope of the tangent line, usually given as a percentage. A positive grade means uphill, negative means downhill. The curve itself is a smooth transition between the two tangent grades, with the PVI being the point where the two tangents would intersect if extended.

Worked Example

Using the default values from the calculator: g1 = −3%, g2 = +2.5%, L = 400 ft, PVI station = 1200 ft, PVI elevation = 500 ft, and we want the elevation at station 1400 ft (x = 200 ft from PVI).

  1. Convert grades to decimals: g1 = −0.03, g2 = 0.025
  2. Compute x = 1400 − 1200 = 200 ft
  3. Plug into the formula: y = 500 + (−0.03)(200) + (0.025 − (−0.03))·(200²) / (2·400)
  4. First term: 500 + (−6) = 494
  5. Second term: (0.055)·(40000) / 800 = 2200 / 800 = 2.75
  6. Add: y = 494 + 2.75 = 496.75 ft

The calculator shows 496.75 ft, matching the manual calculation. The K-value is 400 / |2.5 − (−3)| = 400 / 5.5 = 72.73 ft per percent. The vertex (lowest point, since the curve is sagging) is at x = −(−0.03)·400 / (0.055) = 12/0.055 = 218.18 ft from the PVI, so at station 1418.18 ft, with elevation 500 + (−0.03)(218.18) + (0.055)(218.18²)/(800) = 496.73 ft.

When to Use a Vertical Curve Calculator

Vertical curves are used in road and railway design wherever the grade changes—at hill crests (crest curves) and valley bottoms (sag curves). You need this calculation when:

  • Designing a new road or highway alignment
  • Checking sight distance at a hill crest
  • Determining drainage at a sag curve
  • Setting grade stakes for construction
  • Computing elevations for earthwork quantities

The calculator gives you the elevation at any station along the curve, which is essential for plotting the profile, computing cut/fill volumes, and ensuring the curve meets design standards for comfort and safety.

How to Choose the Curve Length (L)

The curve length is the horizontal distance over which the grade changes. It is not arbitrary—it must be long enough to provide adequate sight distance and comfort. For crest curves, the length is often controlled by stopping sight distance: the driver must see a stopped vehicle ahead. For sag curves, the length is controlled by headlight sight distance and comfort (vertical acceleration). Design guides provide minimum lengths based on design speed and algebraic difference in grades (A = |g2 − g1|). A common rule of thumb is L = K·A, where K is a design value (e.g., 50 ft per percent for a 60 mph crest). The calculator lets you test different lengths to see the resulting elevations and vertex location.

Common Mistakes and How to Avoid Them

  • Using grades as percentages instead of decimals: Always divide by 100. The formula expects g as a decimal (e.g., 3% = 0.03).
  • Mixing units: If you use feet for length, keep all distances in feet. Do not mix meters and feet.
  • Incorrect sign for x: x is positive to the right of the PVI, negative to the left. If your station is before the PVI, x is negative.
  • Forgetting the vertex: The high or low point is not at the PVI unless the grades are symmetric. Use the vertex formula to find it.
  • Rounding too early: Keep at least 3 decimal places in intermediate steps to avoid final errors of several tenths.

Limitations of the Parabolic Formula

The standard vertical curve formula assumes a perfect parabola, which is the industry standard for most road and rail designs. However, it does not account for:

  • Spiral transitions or clothoid curves sometimes used in high-speed rail
  • Superelevation (banking) on curves—that is a separate horizontal alignment issue
  • Non-uniform soil settlement or construction tolerances

For most design purposes, the parabolic approximation is accurate to within a fraction of an inch over a typical curve length of 200–1000 ft. If you need extreme precision for a special project, consult a civil engineering reference or use specialized design software.

Frequently Asked Questions

What is the K-value in vertical curves?

The K-value is the horizontal distance (in feet or meters) required to effect a 1% change in grade. It is calculated as L / |g2 − g1|. A higher K means a flatter, longer curve. Design standards often specify minimum K values for different design speeds to ensure adequate sight distance.

How do I find the highest or lowest point on a vertical curve?

The vertex (high point for crest, low point for sag) is found by setting the derivative of the curve equation to zero. The distance from the PVI is xvertex = −g1·L / (g2 − g1). Plug that x back into the main equation to get the elevation. The calculator provides both values.

Can I use this for metric units?

Yes. The formula is unit-agnostic. If you enter grades as percentages and lengths in meters, the elevations will be in meters. Just be consistent—do not mix feet and meters.

What is the difference between a crest and a sag curve?

A crest curve is where the grade changes from uphill to downhill (convex upward). A sag curve is where the grade changes from downhill to uphill (concave upward). The formula is the same, but the vertex is a maximum for crest and a minimum for sag. The sign of (g2 − g1) tells you which: if negative, it’s a crest; if positive, it’s a sag.

Why does my calculated elevation differ from a surveyor’s field measurement?

The formula gives the theoretical design elevation. Actual construction may have small deviations due to compaction, settlement, or measurement error. Also, check that you are using the same stationing and datum. If the difference is more than a few tenths of a foot, recheck your inputs.

What if my grades are both positive or both negative?

That’s fine—the curve still works. For example, a road going from +2% to +4% is a sag-like curve (concave upward), and the vertex will be below the PVI. The formula handles all cases as long as g1 ≠ g2. If g1 = g2, the curve is flat, and the formula degenerates to a straight line.

Related

Formula used
in g1 | Initial grade (%) | % | -3.0 | -20
in g2 | Final grade (%) | % | 2.5 | -20
in L | Curve length (ft) | ft | 400 | 1
in pvi_sta | PVI station (ft) | ft | 1200 | 0
in pvi_el | PVI elevation (ft) | ft | 500 | 0
in x | Station to compute (ft) | ft | 1400 | 0
out y | Elevation at station | ft | pvi_el + (g1/100)*(x - pvi_sta) + ((g2/100 - g1/100)/(2*L))*(x - pvi_sta)^2 | 2
out k | K-value (ft per %) | ft/% | L / abs(g2 - g1) | 2
out x_vertex | Distance to high/low point (ft) | ft | - (g1/100) * L / ((g2/100 - g1/100)) | 2
out y_vertex | Elevation at high/low point | ft | pvi_el + (g1/100)*(x_vertex) + ((g2/100 - g1/100)/(2*L))*(x_vertex)^2 | 2

Each line is one input (in, sel, list) or one result (out: label, unit, formula, decimals). How the calculators work

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.