Planter soil volume calculator — saved URL guide Page: https://www.lejnel.com/tools/soil-volume/ Query key: soil, percent-encoded readable JSON. All fields required. v: 2. shape: "box", "round" (cylinder), or "tapered" (round conical frustum). angle: side angle in degrees FROM VERTICAL, 0–80. Required; ignored except for tapered. Tapered bottom diameter = length - 2*height*tan(angle); must be at least 1 mm. Legacy v1 box/round URLs without angle remain supported and migrate to v2. length: inside left–right length for box or inside TOP diameter for round/tapered, mm, 1–100000. width: inside front–back width, mm, 1–100000. Retained but unused for round/tapered. height: inside height, mm, 1–100000. gap: unfilled top gap, mm, >=0 and <=height. The UI uses fill percentage of INSIDE HEIGHT (0–100), not percentage of volume. Convert UI fill to saved gap: gap = height*(1-fill/100). Existing URLs retain their soil level. Changing height in the UI preserves fill percentage; saving recomputes gap. count: whole identical containers, 1–1000. allowance: user-selected extra percent, 0–100. bag: labelled litres per bag, 0.1–10000. Does not convert with display units. All numbers finite. Saved dimensions stay metric with imperial display. Ask for missing inputs. Do not guess planting advice, product yield or settling allowances. Assumes empty rectangular prisms, cylinders or circular conical frustums; excludes curved walls, root balls and obstructions. For tapered: bottom radius b=length/2-height*tan(angle), soil-surface radius s=b+(height-gap)*tan(angle). Soil litres = pi*(height-gap)*(b*b+b*s+s*s)/3000000. Angle must be converted to radians for tan. Volume litres = base area in square mm × (height-gap) / 1000000. Multiply by count and (1+allowance/100), then divide by bag litres and round up. Defaults are illustrative, not verified product requirements. JSON: {"v":2,"shape":"tapered","length":400,"width":300,"height":350,"gap":30,"count":2,"allowance":0,"bag":40,"angle":10} Example: https://www.lejnel.com/tools/soil-volume/?soil=%7B%22v%22%3A2%2C%22shape%22%3A%22tapered%22%2C%22length%22%3A400%2C%22width%22%3A300%2C%22height%22%3A350%2C%22gap%22%3A30%2C%22count%22%3A2%2C%22allowance%22%3A0%2C%22bag%22%3A40%2C%22angle%22%3A10%7D