Deforestation Rates Explained

On this page

Problem statement

"Deforestation fell by 30%" and "the forest is disappearing at 2% a year" can describe the same landscape in the same year. The first compares hectares lost this year with last year; the second divides hectares lost by the forest that remains. Both are called a deforestation rate, and they move in different directions as a frontier matures: absolute loss falls because there is less forest left to clear, while the relative rate on what remains can stay high or rise.

A rate needs three choices stated: what is lost (gross loss, or net of regrowth), what it is divided by (the original forest, the forest at the start of each year), and how it compounds over a period.

Quick answer

For forest area A₁ at time t₁ and Aβ‚‚ at tβ‚‚:

absolute rate      = (A₁ βˆ’ Aβ‚‚) / (tβ‚‚ βˆ’ t₁)                     ha per year
simple relative    = (A₁ βˆ’ Aβ‚‚) / (A₁ Β· (tβ‚‚ βˆ’ t₁))               share of the original forest per year
compound (Puyravaud)= ln(A₁ / Aβ‚‚) / (tβ‚‚ βˆ’ t₁)                    instantaneous rate on what remains
import numpy as np, rasterio

with rasterio.open("rondonia_gfc.tif") as src:          # Hansen stack, reading guide
    treecover, lossyear, datamask = src.read()
    tf = src.transform
px_ha = (abs(tf.a) * 111_320 * np.cos(np.radians(-10.55))) * (abs(tf.e) * 110_574) / 1e4
f2000 = (treecover > 30) & (datamask == 1)

def forest(year):
    return (f2000 & ((lossyear == 0) | (lossyear > year - 2000))).sum() * px_ha

A = {y: forest(y) for y in range(2000, 2025)}
print(f"{'period':<11}{'ha/yr':>9}{'simple %/yr':>13}{'compound %/yr':>15}")
for t1, t2 in ((2000, 2008), (2008, 2016), (2016, 2024)):
    a1, a2 = A[t1], A[t2]
    print(f"{t1}–{t2}{(a1 - a2) / (t2 - t1):>10,.0f}{100 * (a1 - a2) / (a1 * (t2 - t1)):>13.2f}"
          f"{100 * np.log(a1 / a2) / (t2 - t1):>15.2f}")
period         ha/yr  simple %/yr  compound %/yr
2000–2008     4,737         3.39           3.96
2008–2016       941         0.92           0.96
2016–2024     1,985         2.11           2.31

Both measures drop sharply after 2008 and climb again after 2016, but not in proportion. From the first period to the last, the absolute rate falls by 58% while the compound rate β€” the share of the remaining forest cleared each year β€” falls by only 42%, because the same hectares now come out of a smaller forest. Which one "deforestation has fallen" refers to changes the size of the story.

Gross or net, a denominator, compound rates

1. Choose gross or net

Gross loss counts every hectare cleared. Net change subtracts regrowth. Most satellite loss data are gross; national statistics are often net. They are not comparable.

2. Choose the denominator

The forest at the start of the whole period, the forest at the start of each year, or the forest of a baseline year. Relative rates with different denominators diverge as the forest shrinks.

3. Use the compound rate for multi-year periods

The Puyravaud formula, ln(A₁/Aβ‚‚)/Ξ”t, treats loss as proportional to the remaining forest and is independent of the period length. Simple rates over long periods understate the rate on what remains.

4. State the forest definition

The canopy threshold changes A₁ and Aβ‚‚ and therefore every rate.

5. Report absolute and relative together

Hectares per year for impact, percent of remaining forest per year for pressure. Either alone invites a misleading headline.

Absolute, simple relative and compound deforestation rates with what each measures. three formulas, three "rates"rateformulameasures2016–24 hereabsolute(A₁ βˆ’ Aβ‚‚) / Ξ”thectares a year1,985 ha/yrsimple relative(A₁ βˆ’ Aβ‚‚) / (A₁ Ξ”t)share of the start2.11 %/yrcompoundln(A₁ / Aβ‚‚) / Ξ”tshare of what remains2.31 %/yrOver long periods of heavy loss the simple rate understates the compound one spatialworkflow.io
Three formulas, three different "rates".

The same loss as two headlines

The data used on this page

The RondΓ΄nia window used throughout the forest guides (63.0°–62.5Β°W, 10.8°–10.3Β°S): Hansen Global Forest Change v1.12 β€” tree cover in 2000, the year of loss, and the data mask β€” read from Google's storage into a three-band rondonia_gfc.tif, as in the Hansen reading guide.

import os

import rasterio
from rasterio.windows import from_bounds

W, S, E, N = -63.0, -10.8, -62.5, -10.3
V = "GFC-2024-v1.12"
if not os.path.exists("rondonia_gfc.tif"):
    bands = []
    for name in ("treecover2000", "lossyear", "datamask"):
        url = f"https://storage.googleapis.com/earthenginepartners-hansen/{V}/Hansen_{V}_{name}_10S_070W.tif"
        with rasterio.open(url) as src:
            window = from_bounds(W, S, E, N, src.transform)
            bands.append(src.read(1, window=window))
            profile = src.profile | {"count": 3, "width": bands[0].shape[1], "height": bands[0].shape[0],
                                     "transform": src.window_transform(window), "compress": "deflate",
                                     "driver": "GTiff", "tiled": False}
    profile.pop("blockxsize", None)
    profile.pop("blockysize", None)
    with rasterio.open("rondonia_gfc.tif", "w", **profile) as dst:
        for i, band in enumerate(bands, start=1):
            dst.write(band, i)
with rasterio.open("rondonia_gfc.tif") as src:
    print(src.count, src.shape, src.crs, src.res)
3 (2000, 2000) EPSG:4326 (0.00025, 0.00025)

Example 1 β€” the same loss, two headlines

loss = {y: A[y - 1] - A[y] for y in range(2001, 2025)}
for y in (2008, 2016, 2024):
    print(f"{y}: lost {loss[y]:>7,.0f} ha = {loss[y] / A[2000]:.2%} of the 2000 forest, "
          f"{loss[y] / A[y - 1]:.2%} of the forest standing at the start of {y}")
2008: lost   1,401 ha = 1.00% of the 2000 forest, 1.36% of the forest standing at the start of 2008
2016: lost   1,981 ha = 1.42% of the 2000 forest, 2.06% of the forest standing at the start of 2016
2024: lost   1,645 ha = 1.18% of the 2000 forest, 2.06% of the forest standing at the start of 2024

As the forest shrinks, the same hectares are a growing share of what remains. A rate on the original forest makes late loss look smaller than it is for the forest that is left.

Example 2 β€” years until the forest is gone

r = np.log(A[2016] / A[2024]) / 8
print(f"compound rate 2016–2024: {r:.2%} per year")
print(f"forest remaining in 2024: {A[2024]:,.0f} ha ({A[2024] / A[2000]:.0%} of 2000)")
print(f"half-life at that rate: {np.log(2) / r:.0f} years")
print(f"at the 2016–24 absolute rate ({(A[2016] - A[2024]) / 8:,.0f} ha/yr), "
      f"gone in {A[2024] / ((A[2016] - A[2024]) / 8):.0f} years")
compound rate 2016–2024: 2.31% per year
forest remaining in 2024: 78,383 ha (56% of 2000)
half-life at that rate: 30 years
at the 2016–24 absolute rate (1,985 ha/yr), gone in 39 years

Linear and compound extrapolations give very different futures: at a constant 1,985 ha a year the forest is gone in 39 years; at a constant 2.31% of what remains it halves in 30 years and never quite disappears. Neither is a forecast: frontiers slow as remaining forest becomes remote, protected or steep.

Example 3 β€” rates by period length

for t1, t2 in ((2000, 2024), (2000, 2012), (2012, 2024)):
    simple = (A[t1] - A[t2]) / (A[t1] * (t2 - t1))
    comp = np.log(A[t1] / A[t2]) / (t2 - t1)
    print(f"{t1}–{t2}: simple {simple:.2%}/yr, compound {comp:.2%}/yr")
2000–2024: simple 1.83%/yr, compound 2.41%/yr
2000–2012: simple 2.44%/yr, compound 2.89%/yr
2012–2024: simple 1.72%/yr, compound 1.93%/yr

Over a long period with heavy loss, the simple rate understates the compound one. For short periods and small losses they converge.

Annual loss as a share of the 2000 forest and as a share of the forest remaining at the start of the year, for three years. the same hectares, two denominators2008 Β· of 2000 forest1.00%2008 Β· of remaining1.36%2016 Β· of 2000 forest1.42%2016 Β· of remaining2.06%2024 Β· of 2000 forest1.18%2024 Β· of remaining2.06%01%2%As the forest shrinks, the same loss is a larger share of what is left spatialworkflow.io
The same hectares, divided by two different forests.

Why compound rates, and why absolute ones still matter

Why compound rates

Clearing removes a share of what is left, not a fixed share of what was once there. The compound formula models that, and it lets rates from periods of different lengths be compared. It is the standard in the land-change literature for exactly this reason.

Why absolute rates still matter

Carbon emissions, habitat lost and policy targets are in hectares. A falling absolute rate is real good news for emissions even when the relative rate on the remaining forest is not falling.

Why gross and net get confused

Satellite products naturally measure loss; regrowth is harder to see and slower. National reporting under international agreements often uses net change, including plantations and regrowth. A net rate near zero can coexist with high gross clearing of old forest and planting elsewhere.

The compound deforestation rate calculation, annotated. the rate on what remainsr = np.log(A[2016] / A[2024]) / 8half_life = np.log(2) / ryears_left = A[2024] / ((A[2016] - A[2024]) / 8)β‘ β‘‘β‘’β‘ 2.31% a year of what remainsβ‘‘halves in 30 yearsβ‘’linear: gone in 39 yearsNeither extrapolation is a forecast; frontiers slow as forest gets remote spatialworkflow.io
The same eight years give a 30-year half-life or a 39-year countdown, depending on the model.

Annual rates, baselines and small areas

  • Annual rates from a loss-year layer are gross; regrowth after loss is not in the data after 2012.
  • Baseline year: rates relative to 2000 forest and relative to 1985 forest are different numbers.
  • Small areas give noisy annual rates; aggregate periods of several years.
  • Carbon needs biomass per hectare, which varies strongly; hectares are not tonnes.
  • Version changes in the loss data affect rates across periods.

FAQ

How is a deforestation rate calculated?

Absolute: hectares lost per year. Relative: hectares lost divided by forest area, per year β€” simple or compound.

What is the Puyravaud formula?

The compound annual rate ln(A₁/Aβ‚‚)/(tβ‚‚ βˆ’ t₁), the instantaneous rate of loss relative to remaining forest.

Why can deforestation fall while the rate rises?

Absolute loss can fall because less forest remains, while the share of the remaining forest lost each year rises.

What is the difference between gross and net deforestation?

Gross counts all loss; net subtracts regrowth and planting.

Which rate should I report?

Both absolute and relative, with the forest definition and the period.

Can I project when the forest will be gone?

Only as an illustration; frontiers slow and shift, and neither linear nor compound extrapolation is a forecast.