---
title: "GF calibration"
description: "What the gradient-factor pair fitted to a Thalmann schedule is reporting, how to read the fit, and what a close fit does and does not prove."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.divelogic.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# GF calibration

import { GfSolver } from "@/components/react/PlannerScreens";
import { trimixDeco } from "@/demo/plans";

GF calibration answers one question: which gradient-factor pair comes closest to
reproducing this Thalmann schedule, for this dive? The planner runs Thalmann
first as a reference, searches for the GF Low and GF High whose Bühlmann ceiling
tracks the Thalmann one most closely, and hands you the Bühlmann plan at that
pair.

It exists because gradient factors are the vocabulary divers and dive computers
share, and Thalmann has no equivalent. The schedule you get is a **Bühlmann**
schedule; Thalmann is only the target it was aimed at.

## Reading the result

| Figure | What it measures | How to read it |
|---|---|---|
| **Fitted GF Low / High** | The pair the final schedule was built with | The answer, if there is one. |
| **Raw GF Low / High** | The pair before it was clamped into a usable range | These can legitimately land above 100 % or below zero. A raw value far outside the normal range means no real GF pair reproduces this schedule, and the fitted pair approximates one that does not exist. |
| **Mean divergence** (m) | Average gap between the two ceilings across the ascent | The everyday fit-quality number. |
| **Max divergence** (m) | The largest gap at any single point | A small mean with a large max means the pair fits most of the ascent and misses one region, usually the deepest stops. |
| **TTS difference** (min) | The fitted plan's time to surface minus Thalmann's | Negative means the plan you are holding surfaces sooner than the schedule it was fitted to. |

Read the divergence figures before the pair. A pair with a large maximum
divergence is not a translation of the Thalmann schedule, it is the closest
Bühlmann could get, which is a different thing.

## Auto and manual

By default the planner fits the pair for you. Editing **GF Low** or **GF High**
in the calibration view switches to **manual mode**: your pair is compared
against the Thalmann reference as it stands, the header changes to *Manual GF vs
Thalmann*, and a **Reset to auto-solve** control returns to fitting. The fit
figures are not calculated in manual mode, because nothing was fitted; the
divergence and time-to-surface comparisons are still real.

Inside no-stop limits there is nothing to fit, so nothing is calibrated. The
planner returns the gradient factors you entered, unchanged.

## What a good fit proves

That for **this dive**, with **this parameter set**, a Bühlmann plan at that
pair produces a similar ceiling through the ascent. That is all.

It does not prove the two models are equivalent. A gradient-factor pair is two
numbers laid over sixteen limits that all move together, and the Thalmann curve
it is fitted to has a different shape, so the fit is lossy by construction.

It does not transfer to another dive. The calibration is against one fixed
profile; change the depth, the bottom time or the gas and the best-fit pair
moves, sometimes considerably.

And it validates nothing. The reference schedule comes from a parameter set that
has never been checked against its claimed source.

## Next

- [Gradient factors](/theory/gradient-factors) explains what the fitted pair
  controls.
- [Thalmann E-L](/theory/thalmann) is the reference model, with its caveats.

Source: https://docs.divelogic.ai/theory/gf-solver/index.mdx
