How the Herb Run Profit Calculator works

Harvest lives, the chance-to-save formula with every boost, the disease model and the money, with a worked example at level 99.

checked against the live game · 2026-11-12 ← Back to the calculator

1. Chance to save a harvest life

CTS′ = floor(CTS × (1 + item)) + diary, then floor(× 1.05) if attas
pSave = (1 + floor(CTS′low × (99 − F) / 98 + CTS′high × (F − 1) / 98 + 0.5)) / 256

F is your Farming level (1–99). CTS_low is the herb's constant at level 1 and CTS_high = 80 for every herb, so at 99 all herbs yield the same. item is 0.10 for magic secateurs, 0.05 for the Farming or Max cape, 0.15 for both. diary is +10 / +17 / +25 at Catherby for the medium / hard / elite Kandarin diary and +10 at Hosidius and the Farming Guild for the hard Kourend & Kebos diary. Boosts are applied in the order item → diary → attas to both constants before the level interpolation.

2. Expected herbs from a living patch

herbs = lives / (1 − pSave) lives = 3, +1 compost, +2 supercompost, +3 ultracompost

Each pick either uses a life or not, so the number of herbs is negative-binomial with the lives as the number of failures; the mean is lives ÷ (1 − pSave). The minimum harvest is the number of lives.

3. Disease and death

perCycle = (floor(floor(26 / div) × iasor) + 1) / 128 div: none 1, compost 2, super 5, ultra 10 · iasor 0.2 or 1
survive = (1 − perCycle)³ 1 for disease-free patches

That gives 27, 14, 6 and 3 chances in 128 per growth cycle; with iasor 6, 3, 2 and 1. Herbs can be diseased at the end of three of their four cycles, and an untreated diseased herb dies. Troll Stronghold, Weiss and Harmony Island patches are immune; Hosidius becomes immune with the easy Kourend & Kebos diary, Civitas illa Fortis at Colosseum champion rank.

4. Money and XP per run

herbsRun = Σ patches herbs(patch) × survive(patch)
revenue = herbsRun × (grimyPrice − tax) tax = floor(0.02 × price), 0 under 50 gp, optional
cost = patches × (seedPrice + compostPrice × bucket) bucket = 0.5 with the bottomless compost bucket
profit = revenue − cost
xp = patches × plantXp + herbsRun × herbXp

Seeds and compost are priced at the Grand Exchange instant-buy price, grimy herbs at the instant-sell price. Dead patches still pay for the seed and compost. Cleaning XP, teleport costs and the time of the run are not included.

Worked example

Level 99, ultracompost, magic secateurs, no cape, no diaries: CTS′ = floor(80 × 1.1) = 88 → pSave = (1 + 88) / 256 = 34.77%. Expected herbs from a living patch = 6 / (1 − 0.3477) = 9.20. Survival with ultracompost = (125 / 128)³ = 93.1%, so an ordinary patch gives 8.56 herbs on average and a disease-free patch 9.20. Nine patches (three of them disease-free) ≈ 79.0 herbs per run.

Constants used

HerbLevelPlant XPXP per herbCTS at 1CTS at 99
Guam91112.52580
Marrentill1413.5152880
Tarromin1916183180
Harralander2621.5243680
Ranarr322730.53980
Toadflax383438.54380
Irit444348.54680
Avantoe5054.561.55080
Kwuarm5669785480
Snapdragon6287.598.55780
Huasca
Level-1 chance-to-save constant not published; 59 is interpolated between snapdragon and cadantine. Exact at level 99.
6586.51105980
Cadantine67106.51206080
Lantadyme73134.5151.56480
Dwarf weed79170.51926780
Torstol85199.5224.57180
CompostLivesDisease / cycleSurvive 3 cycles
No compost327/12849.1%
Compost414/12870.6%
Supercompost56/12886.6%
Ultracompost63/12893.1%

Patches: Ardougne, Catherby, Falador, Farming Guild, Hosidius, Port Phasmatys, Troll Stronghold, Weiss, Harmony Island, Civitas illa Fortis.

Sources

Old School RuneScape is a trademark of Jagex. This site is an independent fan-made tool and is not affiliated with, endorsed by or sponsored by Jagex. Game names are used only to describe what the calculators are for. No game art, icons or logos are used. Formulas are compiled from public sources and may lag behind patches — each tool shows the game version it was checked against.