Eddie Yung, February 2026
On and off during a dive trip, or among diver discussions, I hear discussions about NDL. Hearing people discuss the importance of NDL is good news. Many divers regard the NDL as the line drawn between a recreational dive and a technical “deco” dive, which is a handy, easy-to-remember concept that strengthens a safety mindset.
This kind of conversation will sometimes lead to confusion, such as: “If NDL hitting zero means we are no longer in a recreational dive, then where is the deco plan?” The non-existence of an immediate deco plan “pop-up” will confuse a lot of new technical divers who use technical dive computers for recreational purposes. Their underlying assumption is, “If NDL is 0, there is a deco plan to follow.”
This is not the case. Seeing NDL hit 0 doesn’t necessarily mean you have a deco plan to follow.
If you also have this query, it is now time to throw the question into an AI and try to learn from it. I have done the same — not for the purpose of learning from AI, but to see if it can give me a legitimate, all-around answer to a question that I know pretty well through the development of deco planning software. So, if you think you already got what you need to know from the AI, you can skip the rest of this article. 😉 But if you are interested in knowing how NDL and deco plans are generated in a dive computer, the following write-up may shed some light.
NDL (No Decompression Limit) — a little bit of revision from our Divemaster manual — is defined as: “the maximum amount of time a diver can stay at the current depth and still be able to ascend directly to the surface at a safe, prescribed rate without requiring mandatory decompression stops.”
For a dive computer to tabulate NDL is surprisingly easy (in the actual program, it can be as short as several lines of code). Basically, it does one thing:
Increase the nitrogen loading of the theoretical tissues according to the current ambient pressure, for a period of one (additional) minute.
Compare each (updated) tissue loading with the corresponding surface M-values (the limits at the surface) and see if any one of them exceeds the limit.
If not, go back to step 1 to simulate another additional minute.
If yes, the number of minutes (the number of "step 1s" we went through) is the NDL you see.
In software terminology, this is an iteration process that does something like "keep adding one minute as long as tissue loading < limit".
(Okay, for simplicity sake, I mentioned "minute". In the actual program, the unit was "seconds" to ensure accuracy.)
Many technical dive computers didn’t even show NDL in the old days because it was “not useful” for technical diving. It was later added simply because, “Well, there is a chance that I use my technical dive computer for recreational purposes, and we need to match NDL with our buddies.”
The market called for such features, and software engineers inserted those numbers onto the screen. But programmatically, we never relate NDL to the calculation of a deco plan; they are two totally different concepts and, therefore, different algorithms.
The derivation of a deco plan deserves a separate write-up, but a “top-level” algorithm looks something like this:
Every 2 seconds, the software updates the diver's tissue loadings on all compartments according to ambient pressure
The 16 M-value lines (at depth, not at the surface as opposed to the case of NDL calculation) are also determined on the fly
Adjust the 16 M-value lines based on the diver’s choice of gradient factors
(Taking into consideration the possible use of other inert gases if Trimix is concerned, and also deco gases) (Read this for more)
The software simulates an off-gas process based on the assumed ascent rate (This is important!)
During the ascent, the software looks for any potential tissue loading exceeding its limit
If there is an excess, simulate a stop there for off-gassing (effectively “created” a deco stop at this depth)
Re-attempt to ascend after the stop.
If one minute of stopping is not enough, simulate an additional minute.
If all tissues are safe to go up to the next stop and the next stop is not the surface, go back to step 1
If the "next stop" is the water surface, the simulation ends
The above greatly simplified “loop” is performed every 2 seconds when the dive computer updates the ambient pressure (not depth), and the process is done until the diver reaches the surface and a complete deco plan is established and shown (if any).
When NDL is 0, it means you shouldn’t stay any longer at that depth. The idea of NDL is about “staying” and the violation of a limit. It is a "time based" limit. The idea of deco plan generation is: during an ascent, do we see any roadblocks? It is a "stop based" or "depth based" limit. It is pretty obvious that they look at things from totally different perspectives. When you see NDL being 0 and there is no deco plan, it simply means that you cannot stay at your current depth any longer, but if you ascend right now, the road to the surface is still clear. It also means that during an ascent (according to the assumed ascent rate), there is no stop required because, as you ascend, the tissues in your body off-gas timely enough so that no limit is exceeded along the way. If no limit is exceeded, no deco plan is shown.
NDL is about how long you can stay in the coffee shop before a traffic jam will cause you a lot of stops on the way back home. The deco plan is the actual traffic jam that you experience. In the initial phase of traffic build-up (that is when NDL is already 0), the road is still clear enough that your drive stays smooth, and you experience no stops.
Is it possible to rewrite the code for NDL calculations so that it "anticipates" a real traffic jam — ensuring that when NDL hits 0, a deco obligation is also in place? Theoretically, we can do anything with programming. But this would create a predicament. First, we would have twisted the definition of NDL, making it incomparable to other dive computers and essentially invalidating the original purpose of showing it. Second, when NDL finally hits 0 in this case, the diver would already be "in deco," which is, of course, the worst thing for a dive computer to do.
Now that we’ve cleared up the 'zero NDL' mystery, it’s time to start thinking about the CEIL (Ceiling) indication — and how it replaces NDL as your primary guide in the technical world — let's do it in the next article.
Additional thinking:
If I want to match the NDL with my buddies, what do I adjust on my technical diving computer?
Playing with conservatism in a recreational dive is about tempering NDL. In a technical dive computer, how do we “influence” the calculation of NDL?
It is the Gradient Factor High (percentage) that you set. In the NDL calculation, Gradient Factor High governs the pressure gradient that you are willing to accept when you surface. Thus, the NDL calculation is also based on these gradient factor (high)-adjusted M-values at the surface. (Disclaimer: this is brand- and model-dependent)