Tools
Deco Planner
Plan multi-level, multi-gas decompression dives on open circuit or CCR with the Bühlmann ZH-L16C engine and configurable gradient factors.
Last updated 5 Haziran 2026
On this page
- What it is
- Plan a dive
- Bottom depth, time, and multi-level dives
- Descent
- Add and manage gases
- Automatic gas switching
- Gradient factors
- Open Circuit vs. CCR
- Contingencies and lost gas
- Stop depth and step size
- Read the results
- Quick stats bar
- Stop table
- Gas required
- Warnings bar
- Per-plan settings vs. your defaults
- Stop time display
- Share and export a plan
- Behaviour and limits
- Related
What it is
The Deco Planner builds a complete decompression schedule for a planned dive: descent, time at each level, ascent, every required stop, and the gas you will breathe along the way. It runs the Bühlmann ZH-L16C algorithm with gradient factors, so its output lines up with established planners like MultiDeco.
It handles both Open Circuit (OC) and Closed Circuit Rebreather (CCR) dives, multiple gases with automatic switching on ascent, repetitive dives that carry tissue loading forward, contingency scenarios, and sharing a plan with your buddy by link or QR code.
The Deco Planner is a Dive Kit Pro feature. Without Pro you can open a plan a buddy shared and read every output, but you cannot create or edit one.
Plan a dive
Open the planner and start a plan
From the Plan tab, open Deco Planner. You land on the plan list, grouped by repetitive-dive chains. Tap to create a new plan. You can start a Fresh Dive (inherits your defaults, no prior tissue loading) or a Repetitive Dive (continues from a previous plan after a surface interval you set, minimum 15 minutes).
Name the plan
The plan name sits at the top of the editor and is editable. Give it something you will recognise later (for example “Wreck 45 m Tx21/35”).
Build the dive profile
The Dive Profile section sits at the top of the editor. Set your depth, time, and breathing gas for each level. Tap a level to edit it, or Add Level for a multi-level profile. A single-level dive needs one row. See Bottom depth, time, and multi-level dives.
Add your gases
In the Gases section below the profile, add at least one bottom gas, plus any deco gases. Each gas has an O₂ % and He %, a cylinder volume and starting pressure, a twinset toggle, and an “Exclude from Deco” toggle. See Add and manage gases below.
Check the settings (or accept your defaults)
Tap Settings to open the settings sheet: gradient factors, ascent and descent rates, the last stop and step size, PPO₂ limits, warning thresholds, and more. Most divers leave these at their saved defaults. See Per-plan settings vs. your defaults.
Read the results
The stop table, runtime, TTS (time to surface), gas required, and the warnings bar update live as you type. See Read the results.
The planner recalculates as you edit, so there is no “calculate” button to press for the base plan. Everything you change is reflected immediately.
Bottom depth, time, and multi-level dives
The dive is described as one or more levels. Tap a level row to open its edit sheet, which (like the gas sheet) saves on dismiss. Each level has:
- Depth of the level (up to 120 m / 400 ft).
- Time at that level.
- Gas you breathe there: pick Auto to let the planner choose the best gas (or loop diluent) for that depth, or pick a specific gas from your list.
- A Travel stop toggle. Turning it on sets the time to zero, which marks the level as a “switch gas at this depth” point rather than a stay. The same happens if you simply type 0 for the time.
For a square dive, use a single level: depth and bottom time. For a multi-level profile (deepest part first, then shallower stages), add a level for each segment. You can long-press a level row and drag it to reorder the profile. The deepest level drives the decompression load; depth contingencies apply to the deepest level and time contingencies to the last level (see Contingencies and lost gas).
Depth and rates display in your chosen unit. The app supports both metric and imperial, set in Settings, so depths read in metres or feet and rates in m/min or ft/min. PPO₂ and setpoints are always shown in bar regardless of your unit choice.
Descent
The planner descends to your first level at the Descent Rate set in Settings (a common value is 18 to 20 m/min). Descent time is included in the total runtime and in gas consumption.
One behaviour to understand: the Include travel in level time toggle (in the Behaviour section). When on, the descent or travel time to reach a level is counted inside that level’s entered time rather than added on top. If you enter a level time shorter than the travel required to reach it, the planner warns you and treats the at-depth stay as zero minutes.
Add and manage gases
Tap a gas to edit it, or use the Add Gas button to add one. Each gas opens its own edit sheet, which saves automatically when you dismiss it (swipe down, tap the backdrop, or the header tick). There are no Save or Cancel buttons. A new gas is added the moment you tap Add Gas, so an unwanted one is a single tap to delete. You can long-press a gas row and drag it to reorder the list (this is cosmetic only; the planner picks gases by fit, not list order).
For each gas you set:
| Field | Meaning | Notes |
|---|---|---|
| O₂ % | Oxygen fraction | Drives MOD (maximum operating depth) and PPO₂; 21 % is air. Range 5 % to 100 % |
| He % | Helium fraction | For trimix; 0 % for nitrox or air. Capped so O₂ % + He % cannot exceed 100 % |
| Volume | Cylinder water volume | In your volume unit; doubled internally for a twinset |
| Pressure | Starting cylinder pressure | Used for gas-required and ascent-pressure math |
| Twinset | Doubles the gas supply | For back-mounted doubles |
| Exclude from Deco | Keeps a gas out of auto-switching | For a gas you carry but do not want the planner to schedule. Hidden on CCR plans |
The sheet shows a live usable-depth range (MOD, and a minimum depth for hypoxic mixes) below the mix fields, so you can sanity-check a gas before you save it.
The planner uses each gas on ascent when you reach its MOD. The PPO₂ cap that sets each gas’s MOD and triggers its hyperoxia warning depends on the gas’s O₂ content, in three bands (the MultiDeco convention, all three configurable in Settings):
| Band | O₂ content | Default max PPO₂ |
|---|---|---|
| Lean | under 28 % | 1.4 bar |
| Mid | 28 % to under 45 % | 1.5 bar |
| Rich | 45 % and above | 1.6 bar |
So air and standard trimix use 1.4 bar, EAN32 uses 1.5 bar, and EAN50 or oxygen use 1.6 bar. Naming follows the usual convention (EAN50 for 50 % nitrox, oxygen for 100 %, Tx21/35 for 21 % O₂ / 35 % He).
The PPO₂ section in Settings also has a fourth control, Minimum PPO₂ (default 0.18 bar). This is the low-end floor: the planner warns you when a breathed PPO₂ drops below it, and it sets the minimum operating depth for a hypoxic mix (one too lean to breathe at the surface). You can set it between 0.16 and 0.21 bar; 0.16 bar is the hard floor below which the planner always flags hypoxia.
The open-circuit gas list allows duplicate mixes on purpose. Two cylinders of the same blend (sidemount or independent doubles, for example) are tracked separately so each depletes on its own. Only CCR diluents reject a duplicate mix. Mix the gases this plan assumes with the Gas Blender.
Automatic gas switching
On ascent the planner switches to the most aggressive available gas whose MOD you have reached, then recalculates the schedule with that gas. You do not place switches manually; you give the planner the gas list and it picks. Two settings shape this:
- Switch Time: how long to hold at a switch for the gas change before continuing.
- Gas Switch Point (“At MOD”): whether the switch happens at the gas’s MOD.
A gas marked Exclude from Deco is never auto-scheduled, which is how you keep, for example, a bailout bottle out of the OC schedule.
Gradient factors
Gradient factors tune how conservative the schedule is. There are two values:
- GF Low sets how deep your first stop begins. A lower number starts deco deeper.
- GF High sets how much supersaturation you allow on surfacing. A lower number means longer shallow stops.
The default is GF 50/80. The Settings section offers quick preset pills (30/70, 50/80, 80/80) and you can type any pair from 10 to 100, in either order (GF Low above GF High is allowed, though unconventional). Lower numbers mean a more conservative profile: deeper first stop and longer total deco. Higher numbers mean a more aggressive profile.
If your GF High is too low for the plan to ever surface (the classic case: air at a 6 m last stop with GF High 50 and enough bottom time), the engine raises GF High to the lowest value that can complete the deco and says so loudly: a red critical banner above the graph, a red border on the schedule, an entry in Plan Issues, and a notice on the export sheet. Every export records the GF the schedule was actually computed with. See When a GF High cannot surface the plan.
See Gradient factors for the full explanation, and How the engine works for the tissue model behind them.
Open Circuit vs. CCR
The planner runs in two modes:
- Open Circuit (OC), the default, where you breathe the gases in your list directly and the planner auto-switches between them on ascent.
- Closed Circuit Rebreather (CCR), enabled by turning on CCR in the editor. This adds a CCR card with two summary blocks, CCR Gases and Setpoints, where you configure the diluent (O₂ % / He %), the setpoints, the descent-setpoint switch depth, and the O₂ and diluent cylinder sizes. Your open-circuit gas list is retitled OC / Bailout Gases while CCR is on.
CCR uses setpoints (a target PPO₂ in bar that the loop holds) rather than a fixed gas mix. The rig supports separate setpoints for the descent, the bottom, deco, and an oxygen-break setpoint, so the loop PPO₂ can change through the dive. CCR plans also model OC bailout for emergency reference.
CCR has its own depth, including the loop model, the setpoint schedule, diluent switches (dilout), and bailout. See CCR diving for the full walkthrough.
Contingencies and lost gas
Beyond the base plan, the planner computes “what-if” scenarios so you can see how the schedule changes if the dive deviates. You switch between them on the scenario tab bar under the results. Built-in scenarios include:
| Scenario | What changes |
|---|---|
| +3 m / +5 m | Deepest level goes 3 m or 5 m deeper |
| +3 min / +5 min | Last level runs 3 or 5 minutes longer |
| +3 m & +3 min / +5 m & +5 min | Deeper and longer together |
| Lost gas | A specific stage or deco bottle is removed from the available pool |
Lost-gas scenarios are generated for cylinders that are not assigned to a dive level (stage and deco bottles) and not marked “Exclude from Deco”. You can also build a custom contingency: tap the accent-coloured + at the start of the scenario tabs to combine losing any set of gases with extra depth and time in one scenario, so you can plan for the specific failure you are worried about. Tap the ✕ on a custom scenario tab to remove it.
Stop depth and step size
The shape of the stop schedule is controlled in the Deco Stops section of Settings:
- Last Stop: the depth of your final decompression stop, typically 3 m or 6 m. The toggle offers true imperial presets (stored internally as their metric equivalents).
- Deco Step Size: the spacing between stops, typically 3 m.
The same section holds the Stop time display control (1s / 30 sec / Minutes, with Minutes the default). See Stop time display under settings for how that affects the table.
Read the results
The results update live and are organised into a few areas.
Quick stats bar
A status bar shows, in order, RT (runtime), TTS, CNS %, OTU, and ρ (gas density), plus a status indicator. Tap a stat for an explanation.
| Stat | Meaning |
|---|---|
| RT (Runtime) | The entire dive, from leaving the surface through descent, bottom, ascent, and all stops |
| TTS (Time to surface) | Time to surface from the deepest point, including the full ascent and deco |
| CNS % | Central nervous system oxygen toxicity exposure for the dive |
| OTU | Oxygen tolerance units (pulmonary oxygen exposure) |
| ρ (Gas density) | Worst-case breathing-gas density across the profile, in g/L, with the depth and gas that produced it |
Stop table
The table lists each segment of the ascent and deco: each stop’s depth, the time held there, the cumulative runtime at that point, and the gas (or mix) in use. Gas switches appear as their own marked rows.
Gas required
The planner estimates consumption per cylinder, in both pressure (bar) and volume (litres), so you can confirm each cylinder holds enough. It also reports an Ascent Pressure (also called turn pressure): the bottom-gas pressure at which you should begin your ascent. Consumption uses your breathing-rate settings, the surface respiratory minute volume (SRMV): a Working SRMV for the bottom and travel phases and a Deco SRMV for the ascent and stops. There is also an ascent/deco SRMV lens for gas-only “what-ifs” such as gas sharing, which changes only gas usage and not the schedule.
Warnings bar
A warnings bar surfaces safety alerts as you build the plan: missing gases, no bailout gas on a CCR plan, a PPO₂ over the limit on a level, CNS approaching its threshold, high gas density, a level time shorter than the travel to reach it, and more. Each warning has a severity and a short explanation. Treat them as prompts to re-check your plan, not as a clearance to dive it.
If the engine cannot produce any schedule at all for your settings, the table area is replaced by a clear red error card explaining why, and the same error appears in Plan Issues. The planner never leaves an old schedule on screen next to an error.
Per-plan settings vs. your defaults
Tapping Settings in the editor opens a sheet with every setting, grouped into collapsible sections in this order: Gradient Factors, Behaviour, Ascent & Descent Rates, Deco Stops, PPO₂, Environment, Gas Consumption, Gas Switch, Oxygen Breaks, and Warning Thresholds. Use Expand all / Collapse all at the top to open or close every section at once when you are hunting for one control.
The planner has two tiers of settings:
- Your defaults apply to every new plan. Edit them from Edit Defaults, which sits at the top of the Settings sheet and on the plan list, and also lives under Manage → Settings → Deco Planner. The same sections appear there.
- Per-plan overrides apply to one plan only. When you change any setting inside a plan, that setting is marked as overridden (its label turns to the accent colour with an underline) and a small reset button appears next to it. Everything you have not touched keeps inheriting your defaults. Reset N at the top of the sheet reverts every override at once back to your current defaults, which is handy after importing a friend’s plan that uses different settings.
Every setting in this sheet is now per-plan and travels in the share link. That includes things that used to be defaults-only, such as the ascent-rate change depth and the END (equivalent narcotic depth), CNS %, and OTU warning thresholds. So when you share a plan, your buddy sees the exact gradient factors, rates, PPO₂ caps, environment, and warning thresholds you planned with, not their own defaults.
Settings that you have not overridden track your defaults, so updating a default value flows into existing plans that have not overridden it. The CCR rig is the one exception: it is seeded from your CCR defaults once, when you first enable CCR on a plan, and is not pushed retroactively to plans that already have a rig (see CCR diving).
Stop time display
The Stop time display control lives in the Deco Stops section, alongside the last stop depth and step size. It controls how stop durations are held and shown. The toggle reads, in order:
- 1s shows the precise obligation to the second in
MM'SS"form. - 30 sec rounds to the nearest half minute.
- Minutes (the default) rounds each stop to a whole minute, integrated in the engine so the table is followable and matches MultiDeco’s whole-minute output.
The rounding is modelled in the engine, not just the display, and it is one-directional: a rounded stop lasts at least as long as the exact obligation, never less. Switching modes never produces an earlier or shallower ascent; it only changes where a stop is released and how the time reads. There is also a minimum stop time of one minute; a sub-minute obligation is folded into the ascent rather than shown as a one-line stop.
Share and export a plan
You can hand a complete plan to a buddy:
- Share link / QR code: the planner encodes the plan into a
https://divekit.app/share/deco-plan/...link (and adivekit://deep link) and a QR code. The link carries your full configuration, including every per-plan setting, so your buddy opens the exact same plan rather than one re-fitted to their own defaults. A text share includes all scenario results; a QR code carries the base scenario. Opening the link in Dive Kit recreates the plan and recalculates it; opening it on the web shows the same table without needing a deco engine. CCR plans always share the CCR loop-ascent view. - Slate export: export the schedule as a printable A6 PDF, a PNG image, or plain text for underwater reference. The slate shows the deco table, key stats, and CNS, with optional PPO₂, CNS %, and gas-remaining columns.
See Share links for how shared plans behave on import.
Behaviour and limits
- The plan is a model. It assumes the gases, depths, rates, and settings you entered are exactly what you dive. Reality (cold, work, current, an off blend) makes you on-gas faster than the model predicts.
- The planner does not know your real cylinder fills or your actual breathing rate on the day. Verify gas analysis and reserves before every dive.
- Repetitive plans carry forward tissue loading from the previous dive across a surface interval; an imported plan can carry tissue state too. A wrong surface interval changes the schedule.
- Always dive within your training and certification, and follow the most conservative of your computer, your team’s plan, and your judgement.
Related
- Gas Blender mixes the gases this plan assumes.
- Gradient factors explains GF Low / GF High in depth.
- How the engine works covers the ZH-L16C tissue model.
- CCR diving is the full closed-circuit walkthrough.
- Share links covers sharing and importing plans.
Parts of this guide were drafted with AI assistance and may contain mistakes. It's educational, not a substitute for training. Always dive within your certification and verify with your instruments.