<!-- https://zunderlabs.com/docs/methods/heat-score · Markdown version of the page -->

# The heat score

How the 0 to 100 heat score of a trade is computed, from which facts, and what it does not mean.

The heat score says how close to the edge a trader was when a trade happened: 0 is calm, 100 is at the edge. The live market and Watch show it next to each judged trade.

:::note[Planned]
Defined in `web/live/src/heat.ts`, part of the live data module that is being built. The formula below is the one in that file today; if it changes, this page changes with it.
:::

## The formula

```text
heat = round(100 × (0.30 × L + 0.25 × S + 0.20 × Q + 0.25 × R))
```

| Part | Weight | Definition | 0 at | 1 at |
|---|---|---|---|---|
| L, leverage | 0.30 | `min(1, effective leverage / 20)`, effective leverage = all positions' value / account value | no positions | 20x or more |
| S, missing stop | 0.25 | 1 if the traded coin's position has no protective stop on the venue, else 0 | a stop | no stop |
| Q, liquidation | 0.20 | `max(0, 1 − distance / 0.25)`, distance = \|trade price − liquidation price\| / trade price | 25% or more away, or none reported | at the price |
| R, risk at stop | 0.25 | `min(1, loss at the stop / (0.10 × account value))` for the coin's whole position, at its stop or, without one, at its liquidation price | no loss | 10% of equity or more, or unbounded |

After an exit (no position left in the coin) only L counts.

## Example

Equity 10,000. After the trade the trader holds positions worth 80,000 (8x), the traded coin has no stop, liquidation is 9% away, and the position would lose 1,500 at its liquidation price.

```text
L = min(1, 8 / 20)            = 0.40
S = 1                          (no stop)
Q = max(0, 1 − 0.09 / 0.25)   = 0.64
R = min(1, 0.15 / 0.10)       = 1.00

heat = round(100 × (0.30×0.40 + 0.25×1 + 0.20×0.64 + 0.25×1.00))
     = round(100 × (0.12 + 0.25 + 0.128 + 0.25))
     = round(74.8) = 75
```

## What it is

- **A display statistic.** It is computed from the engine's facts read as floating-point numbers, and never feeds back into a verdict. A trade with heat 90 can be allowed; one with heat 10 can be refused (for example for a market not on your list).
- **A choice of weights.** The weights and the 20x, 25% and 10% scales are a design choice, not a fitted model. They were not tuned on outcomes.

## What it is not

Not a prediction of loss, liquidation or skill. A trader at heat 100 can win; one at heat 5 can lose.
