---
title: "Ascent calculation"
weight: 6
description: "Why your MV-Plan plans are slightly shorter than before: ascent computed the way Subsurface computes it, exact ceiling, named safety stop, and what to do with your saved plans."
source_hash: f415d9e8564e
---

# Ascent calculation

MV-Plan has changed the way it computes the ascent: when a stop is left, the
depth of the first stop, and the way gradient factors apply between the bottom
and the surface. The decompression model itself is unchanged: Buhlmann ZHL-16C
(or ZHL-16B), with your gradient factors, on real physical pressure.

**Direct consequence: most of your plans are slightly shorter than before**, by
1 to 3 minutes in general, and by up to 12 minutes on deep trimix rebreather
dives. A plan computed with the old ascent no longer recomputes identically.

## Why the change

MV-Plan is continuously compared against the decompression engine of Subsurface,
the reference free software in diving, over fifty profiles ranging from 12 m to
120 m, on air, nitrox, trimix and rebreather, at sea, in fresh water and at
altitude. That comparison showed that the old MV-Plan ascent held three
conventions inherited from the original MVPlan which pulled it away from
Subsurface, one of them not on the side of caution.

## What changed

**The ghost minute is gone.** Every plan used to end with at least one minute of
"decompression stop" at 3 m, even on a dive that owed no decompression at all
(20 m for 15 min on air, for instance). That minute was not a choice: it was a
flaw in the calculation loop, which counted a minute before checking whether the
stop was needed at all. The same flaw added a minute at each level evaluated
after the first stop, and sometimes placed the first stop one step too deep. A
first stop that is too deep is not harmless: it moves the point where GF Low
applies, which makes the gradient factors **more permissive** on every stop
above it. On some profiles, MV-Plan left the water before Subsurface did.

**A stop is left when the ascent to the next level is safe.** Before each leg of
the ascent, MV-Plan plays that leg on a copy of your tissues and checks that the
decompression ceiling, on arrival, is indeed above you. If not, it holds the
stop one more minute and tries again. That is exactly the Subsurface criterion
for Buhlmann.

**The ceiling is computed exactly.** The gradient factor used to compute the
ceiling is the one of the depth of the ceiling itself, not the one of the depth
you are aiming for. The difference shows on deep stops: on a 100 m rebreather
dive at GF 35/75, leaving 45 m, the old calculation gave a ceiling at 41.5 m and
let you ascend, the new one gives 43.1 m and holds the stop. Here too, this is
the Subsurface formula.

**GF Low applies at the deepest ceiling of the dive**, as the tissues produce
it, and not at the first stop rounded onto the 3 m grid. GF High applies at the
surface, and the interpolation between the two is linear.

**The safety stop is named.** When a dive owes no decompression, MV-Plan no
longer shows a decompression stop. Instead it holds a **safety stop**, marked as
such in the table, whose duration is set in the [Settings](/mvplan/reglages)
(3 minutes by default, 0 to hold none). On a dive with decompression, no safety
stop is added: the last decompression stop plays that part.

## What it does to your stops

A few reference profiles of the project, in salt water at sea level, ascending
at 9 m/min to the first stop then 3 m/min between stops, last stop at 3 m. Stop
notation: `depth:time`.

| Profile | GF | Stops before | Stops now | Runtime |
|---|---|---|---|---|
| air 20 m / 15 min | 30/85 | 3:1 | none | 19 -> 17.9 min |
| air 15 m / 90 min | 30/85 | 6:1 3:11 | 3:11 | 105 -> 103.3 min |
| air 30 m / 30 min | 50/80 | 9:2 6:5 3:11 | 9:1 6:4 3:11 | 54 -> 51.3 min |
| air 40 m / 30 min | 50/80 | 15:1 12:3 9:6 6:10 3:26 | 15:1 12:3 9:5 6:11 3:25 | 84 -> 82.8 min |
| air + EAN50 + O2 45 m / 25 min | 50/80 | 18:1 15:1 12:1 9:3 6:3 3:7 | 15:1 12:1 9:3 6:3 3:7 | 50 -> 49 min |
| TX21/35 60 m / 30 min | 35/75 | 30:1 27:1 24:1 21:1 18:2 15:3 12:4 9:7 6:10 3:17 | 27:1 24:2 21:1 18:2 15:2 12:5 9:7 6:9 3:16 | 91 -> 87.7 min |
| CCR TX10/70 100 m / 12 min | 35/75 | 54:1 39:1 36:1 33:1 30:1 27:2 24:2 21:4 18:4 15:6 12:9 9:13 6:19 3:32 | 39:1 36:1 33:1 30:1 27:2 24:2 21:4 18:4 15:6 12:9 9:11 6:18 3:30 | 131.1 -> 124.4 min |

The safety stop is not counted in these tables, which are those of the engine
alone: on screen, the 20 m for 15 min dive shows a 3 min safety stop at 3 m if
you kept the default setting.

Over the 324 reference profiles of the project, the runtime moves from -12.4 to
+1.1 min. The largest drops are on trimix rebreather dives between 110 and
120 m, where the ghost minute repeated itself over a good fifteen stops.

## Compared with Subsurface

Over the fifty profiles of the comparison, the mean runtime gap between MV-Plan
and Subsurface went from 0.85 min to **0.33 min**, the maximum gap from 2.30 min
to **1.11 min**, and the first stop is identical on 47 profiles (20 before).
MV-Plan stays longer than Subsurface on 38 profiles; on the others, the gap in
favour of Subsurface never exceeds 0.89 min, which is the whole-minute
granularity of the stops.

## What to do with your saved plans

Your saved plans have not been touched and remain readable. The runtime shown in
the list of saved plans is the one frozen when you saved, and is never
recomputed.

For each plan you use as a reference:

1. Open the [Saved plans](/mvplan/plans-favoris) page and load the plan.
2. Run **Calculate Decompression** again: loading a plan deliberately clears the
   old result.
3. Compare with the old runtime and save it again.

If a plan serves as teaching material or as a printed safety sheet, produce the
PDF again: a sheet printed before this change may announce a one-minute
decompression stop where MV-Plan now shows a safety stop, or stops slightly
longer than the ones computed now.

## What did not change

- The algorithm is still Buhlmann ZHL-16C (or ZHL-16B), with your gradient
  factors, on the real physical pressure described in
  [New pressure model](/mvplan/nouveau-modele-de-pression).
- Your mixes, your cylinders, your GF presets, your rates and all your settings
  are kept as they are.
- Rebreather mode, bailout, gas consumption and the alerts work as before.
