The map is a grid of N forest parcels, each holding a cover fraction ci ∈ [0,1]. A fixed pseudo-random "conservation priority" per parcel decides which ones fall inside the protected fraction you set — so the protected zone grows smoothly outward as the slider rises, instead of reshuffling.
Global sourcing demand D is allocated across parcels in proportion to their current forest cover, si = ci / Σcj. Enforcement rigor ε caps how much of a protected parcel's natural demand share can actually be harvested there:
avoided = D · Σ(s_i for i protected) · ε
displaced = avoided · λ (leakage coefficient)
d_i = D·s_i·(1-ε) if i protected
d_i = D·s_i + displaced·(s_i / Σ s_unprotected) if i unprotected
Each parcel's cover then evolves as dci/dt = −k·di + r·(1−ci), a harvest term against the reallocated demand plus slow natural regrowth r. When λ = 0 the protection is fully effective — the avoided harvest simply disappears. When λ = 1 every unit of avoided demand resurfaces on unprotected parcels, which is exactly the "jurisdictional leakage" problem no-deforestation commitments have to guard against with monitoring across the whole sourcing region, not just the protected pocket.
Summing every parcel's allocated demand shows total harvest pressure equals D − avoided·(1−λ): the only demand that truly leaves the system is the share that is both avoided in the protected zone and not leaked elsewhere. The live flow diagram below the map draws exactly this split every frame, so you can watch how much of "avoided" demand is genuine reduction versus relocation.
- Protected land — how much of the map a no-deforestation commitment covers.
- Leakage coefficient λ — the fraction of avoided demand that displaces to unprotected parcels rather than being genuinely reduced.
- Global demand — overall sourcing pressure driving harvest across the whole map.
- Enforcement rigor — how tightly the protection is actually policed inside its own boundary.