ThisCalculator

Everyday

Vertical Curve Calculator Excel: Build Your Own

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.

Vertical Curve Calculator Excel: Build Your Own

You can calculate vertical curve elevations, grades, and the high or low point directly in Microsoft Excel using the standard parabolic formula, and this page explains exactly how to set up your own spreadsheet calculator. You enter the curve’s start station and elevation, the initial and final grades, and the curve length; the calculator returns the elevation at any station, the location of the highest or lowest point, and the elevation at that critical point.

Formula

The vertical curve is a parabola defined by the equation:

y = y0 + g1x + (g2 – g1)x² / (2L)

Where:

  • y = elevation at a point (ft or m)
  • y0 = elevation at the start of the curve (ft or m)
  • g1 = initial grade, expressed as a decimal (e.g., -2% = -0.02)
  • g2 = final grade, expressed as a decimal
  • x = horizontal distance from the start of the curve (ft or m)
  • L = total length of the curve (ft or m)

The location of the highest or lowest point (the vertex) is found by setting the derivative to zero:

xvertex = -g1L / (g2 – g1)

Then plug that x back into the main equation to get the elevation at the vertex.

Worked Example

Using the default values from the calculator above:

  • Start station = 1000 ft
  • Start elevation = 500 ft
  • Initial grade g1 = -2% = -0.02
  • Final grade g2 = 1.5% = 0.015
  • Curve length L = 400 ft
  • Evaluate at x = 200 ft (station 1200 ft)

Step 1: Convert grades to decimals: g1 = -0.02, g2 = 0.015.

Step 2: Calculate the elevation at x = 200 ft:

y = 500 + (-0.02)(200) + ((0.015 – (-0.02))/(2*400)) * (200)²

y = 500 – 4 + (0.035/800) * 40000

y = 496 + 0.00004375 * 40000 = 496 + 1.75 = 497.75 ft

Step 3: Find the vertex location:

xvertex = -(-0.02) * 400 / (0.015 – (-0.02)) = 8 / 0.035 = 228.57 ft

Step 4: Elevation at vertex:

yvertex = 500 + (-0.02)(228.57) + (0.035/(2*400)) * (228.57)²

yvertex = 500 – 4.5714 + 0.00004375 * 52244.9 = 495.4286 + 2.2857 = 497.71 ft

The calculator rounds to two decimals, so the vertex elevation is 497.71 ft and the station is 1228.57 ft (1000 + 228.57).

Why Use Excel for Vertical Curves?

Excel is a natural tool for vertical curve calculations because it lets you create a table of elevations at every station (e.g., every 25 or 50 ft) without retyping the formula. A single formula can be dragged down a column to generate the entire curve profile. You can also create a chart to visualize the curve, which is helpful for presentations or checking the design against existing ground.

Many engineers and surveyors use Excel because it is ubiquitous, easy to audit, and does not require specialized software. You can also add conditional formatting to highlight the high or low point, or use Excel’s Goal Seek to find the station that gives a specific elevation.

How to Build Your Own Calculator in Excel

Follow these steps to create a reusable vertical curve calculator in Excel:

  1. In cells A1 through A5, enter the labels: Start Station, Start Elevation, Initial Grade (%), Final Grade (%), Curve Length.
  2. In cells B1 through B5, enter the corresponding values (e.g., 1000, 500, -2, 1.5, 400).
  3. In cell A7, type “Station� and in A8, type “Elevation�.
  4. In B7, enter the first station to evaluate (e.g., 1000). In B8, enter the next station (e.g., 1025).
  5. In C7, enter the formula: =$B$2 + ($B$3/100)*(B7-$B$1) + (($B$4/100 - $B$3/100)/(2*$B$5))*(B7-$B$1)^2
  6. Drag the formula down for as many stations as you need.
  7. For the vertex, use the formula: =-($B$3/100)*$B$5/(($B$4/100)-($B$3/100)) to get the distance from the start, then add the start station.

Make sure to use absolute references (the $ signs) so the formula copies correctly. You can also name the cells (e.g., StartSta, StartElev) to make the formula more readable.

Common Mistakes and How to Avoid Them

The most frequent error is mixing percent and decimal. Always divide the grade percentage by 100 before using it in the formula. Another common mistake is using the station value directly instead of the distance from the start of the curve. The x in the formula is the horizontal distance from the BVC (beginning of vertical curve), not the station number. If your station starts at 1000, you must subtract 1000 from the station to get x.

Also, check that the curve length L is the horizontal length, not the slope length. In most design contexts, L is the horizontal projection. Finally, be careful with the sign of the grades: a downhill grade is negative, an uphill is positive. The vertex formula works for both crest (g1 > g2) and sag (g1 < g2) curves, but the vertex may lie outside the curve if the grades have the same sign and the length is too short—in that case, the high/low point is at one of the endpoints.

Limitations of the Parabolic Formula

The standard parabolic vertical curve assumes that the curve is a perfect parabola, which is the typical design standard for highways and railways. However, it does not account for:

  • Earthwork or cut/fill volumes—you need cross-section data for that.
  • Superelevation or horizontal alignment—those are separate calculations.
  • Non-uniform grade changes—if the grades are not constant, a different model is needed.
  • Vertical clearance or sight distance—those require additional checks against design standards.

For most preliminary design and construction staking, the parabolic formula is sufficient and is the industry standard. For final design, you may need to use specialized software that integrates with GIS and CAD, but Excel is still a valuable cross-check.

Alternatives to Excel

If you do not want to build your own spreadsheet, there are several alternatives:

  • Online vertical curve calculators (like the one at the top of this page) that do the math for you.
  • Civil engineering software such as AutoCAD Civil 3D, Bentley OpenRoads, or MicroStation—these are full-featured but expensive and require training.
  • Programming languages like Python or MATLAB, which are flexible but require coding.
  • Surveying calculators built into total stations or data collectors—they often have vertical curve routines built in.

Excel remains the most accessible and transparent method, especially for checking the output of other software.

Frequently Asked Questions

How do I calculate the elevation at a specific station in Excel?

Use the formula =StartElev + (g1/100)*(Station - StartSta) + ((g2/100 - g1/100)/(2*L))*(Station - StartSta)^2. Replace the cell references with your actual cells. Make sure the grades are in percent and divided by 100, and that the station is the actual station number, not the distance from the start.

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

A crest curve occurs when the initial grade is greater than the final grade (g1 > g2), forming a hill. A sag curve occurs when the initial grade is less than the final grade (g1 < g2), forming a valley. The formula is the same, but the vertex is a maximum for crest and a minimum for sag.

How do I find the high or low point on the curve?

Use the vertex formula: distance from the start = -g1*L/(g2-g1). Then add the start station to get the station of the high/low point. If this distance is negative or greater than L, the high/low point is outside the curve, and the extreme elevation is at one of the endpoints.

What if the grades are in percent and I only have the grade in decimal?

If you have the grade as a decimal (e.g., 0.02 for 2%), you do not need to divide by 100 again. Just use the decimal directly in the formula. The key is to be consistent throughout the calculation.

Can I use this calculator for metric units?

Yes, the formula is unit-agnostic. As long as you use the same units for elevation, station, and length (e.g., meters for all), the result will be in meters. The grades are dimensionless, so they are the same regardless of unit system.

Why does my vertex calculation give a station that is not on the curve?

This happens when the grades have the same sign and the curve is relatively short. The vertex may lie before the start or after the end of the curve. In that case, the highest or lowest point on the curve is at one of the endpoints. You should always check whether the vertex distance is between 0 and L.

Related

Formula used
in sta | Start station (ft) | ft | 1000 | 0
in elev | Start elevation (ft) | ft | 500 | 0
in g1 | Initial grade (%) | % | -2 | 0
in g2 | Final grade (%) | % | 1.5 | 0
in L | Curve length (ft) | ft | 400 | 0
in x | Station to evaluate (ft) | ft | 1200 | 0
out y | Elevation at x (ft) | ft | elev + (g1/100)*x + ((g2/100 - g1/100)/(2*L))*x^2 | 2
out x_highlow | Station of high/low point (ft) | ft | - (g1/100) / ((g2/100 - g1/100)/L) | 2
out y_highlow | Elevation at high/low point (ft) | ft | elev + (g1/100)*x_highlow + ((g2/100 - g1/100)/(2*L))*x_highlow^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.