Prescription generation
Once your soil samples are uploaded, generating a prescription is a five-minute workflow. This page covers every option and the reasoning behind the defaults.
Basic Rx workflow
From a field's detail screen, click Create prescription. The wizard asks for:
- Nutrient — P, K, N, lime, or any of the secondaries/micros present in your samples.
- Source — your state's mapped land-grant source, filtered by extractant compatibility. Iowa, Tri-State, and Penn State anchor the Corn Belt and Mid-Atlantic; a calibrated land-grant source is mapped for every U.S. state (40+ extension publications).
- Philosophy — Hybrid (default), Build-and-Maintain, or Sufficiency.
- Yield goal — bushels per acre for grain crops, tons per acre for hay, etc.
- Product — DAP, MAP, urea, UAN-32, KCl, ag lime, etc. Each has a published analysis Zone Forge uses for the nutrient-to-product conversion.
Click Generate and within a few seconds you'll see the five-zone prescription overlaid on your field with a per-zone table.
Zone count
Default is five zones — Very Low, Low, Optimum, High, Very High — matching the published soil-test class breaks. You can switch to 3 or 7 from the wizard:
- 3 zones — when your sample density is low (under ~10 samples per field) or when you want a simpler prescription. Zones map to Below Optimum / Optimum / Above Optimum.
- 5 zones — default. Matches state soil-test bands.
- 7 zones — for densely sampled fields where finer gradation pays off.
Advanced mode lets you set custom thresholds (2–6 of them).
Polygon cleanup
Raw zone polygons from pixel-classified rasters look noisy. Zone Forge runs two cleanup passes automatically:
- Smoothing. Morphological dilate-erode to remove single-cell artifacts at zone boundaries.
- Minimum-zone enforcement. Polygons under 0.25 acres merge into the adjacent zone whose product rate would be highest — i.e., the most-deficient neighbor. (A standard rate controller updating every 5 seconds at typical applicator speeds covers ~0.25 acres — anything smaller can't actually be honored.)
- Gap-fill. Small unzoned islands inside the field auto-assign to that same most-deficient adjacent zone, so the spreader over-applies on uncertain ground rather than under-applies. When Zone Forge is unsure which side of a class boundary an island belongs to, it errs toward feeding the crop, not starving it.
You can disable cleanup from the advanced settings if you want raw output.
Headland buffer
Optional 10–20 ft inward buffer from the field boundary. When enabled, the headland region is excluded from variable-rate zoning — typically your applicator runs a flat rate on headlands during turns.
Configurable per field. Defaults to off; enable it from the field's settings menu.
Click-to-reassign zones
On the review screen, every contour on the prescription map is interactive. Tap a contour to bump it to the next zone (or shift-tap to bump backwards). The shape preserves; only the rate and color change.
Field totals and per-zone cost-per-acre update on every tap. The field-total bar shows the acre-weighted delta from the original generation.
Five-second undo
Accidental tap? Hit undo. Zone counts, acres, and costs revert with the action.
Inline rate editing
Tap any rate in the per-zone table to override it. Cost-per-acre recomputes on every keystroke without re-running the engine — Zone Forge derives cost_per_unit client-side and just multiplies.
Manual edits are saved alongside the prescription. Future regenerations don't blow them away unless you explicitly choose "Regenerate from scratch."
Cost transparency
Every zone shows $/ac. The field-total bar shows total estimated cost. Cost is computed from your product price input (per ton or per gallon) — Zone Forge ships illustrative defaults but you should override these per organization to reflect what your retailer actually charges.
Costs are labeled "estimated" because:
- Product price is a single user input — actual delivery cost varies with surcharges, taxes, and quantity discounts
- Yield-target misses shift the realized rate after application
- Rate-controller calibration introduces ±5% variance in the field
Multi-year buildup planning
The Hybrid engine builds soil toward target across the years you set, not the table's default. From Field Setup → Products by nutrient, two per-nutrient inputs control the build:
- Target soil level (ppm). Override the source default. Want phosphorus at 75 ppm even though Iowa publishes 25? Enter 75 — Build / Maintain / Drawdown all key off the user value, not the university default.
- Years to reach target. Spread the buildup across 1–20 growing seasons. The engine divides the deficit by your number of years and adds a per-zone deficit-scaled buildup on top of crop removal.
Leave either field blank to fall back to the source default. The math is in Calculations → Hybrid build formula.
Honest timelines under max-rate caps
If you set a per-nutrient max-rate cap and the requested annual buildup would exceed it, the engine clamps the rate and reports the realistic timeline. A 3-year build under a tight cap might actually take 5 years — Zone Forge surfaces a cap_extends_buildup_timeline warning on the Rx response so you see the real schedule before you save.
If your cap is at or below crop removal, the warning escalates: under that setting the soil never reaches target. Raise the cap or reduce the yield goal.
Litter-adjusted three-layer workflow
Open the Stacked Rx wizard from the Rx tab. The wizard generates three linked prescriptions in one pass:
Step 1 — VRT Litter
Enter your litter lab results: total nitrogen, available nitrogen (typically 60–80% of total for poultry; ~40% for dairy / swine slurry; ~25% for beef solids), P₂O₅, and K₂O in pounds per ton of as-applied litter. The engine computes a per-zone tons-per-acre litter map sized by your chosen strategy — match P demand or N demand — capped at user-defined min/max tons/ac.
Step 2 — VRT Potash
Soil-K demand minus the K credit Step 1 supplied at each zone, expressed as a follow-up potash Rx. Per-zone math, because the litter rate varies spatially.
Step 3 — VRT Nitrogen
Crop N demand minus the available first-year litter N at each zone, expressed as a follow-up nitrogen Rx.
Each layer saves as its own Prescription row with a industry-standard shapefile (Rate, Product, Units, Zone, Acres, CostAc). The three are linked by a WorkflowRun so editing the litter inputs and re-running the wizard recomputes K and N. No manual offset math, no double-counting.
Note on K spatial variability. The MVP ships per-zone P and per-zone litter rates (driven by the spatially-varying P soil values). The K demand uses the field-mean K value; per-zone K interpolation is a follow-up enhancement. This means the K Rx is spatially variable thanks to the litter credit subtraction, but the underlying K demand is uniform. If your soil samples show wide K variability, expect the litter-credit-driven spread to under-represent it.
Multi-product blend prescriptions
Most fields need more than one nutrient corrected at once — phosphorus and potassium, say. Open the Blend wizard from the Rx tab and assign two or three products to nutrients in one action — DAP for P, potash for K — instead of running the single-product creator once per nutrient and pushing each file separately. The wizard's last setup step asks how you want to put it on the ground.
Two ways to apply — your call
Both modes use the same per-zone university recommendation. They differ only in how the product reaches the field.
- Apply each product separately (default). One Rx per product, each placed to its own university rate with no blend-ratio compromise between nutrients. You get a file per product and make a pass for each. Best when you have the equipment or the time to place every nutrient exactly.
- Spread as one blended bag. One pre-mixed bag at a single field-wide ratio, spread at a variable total rate — one file, one pass. Best for a single-bin spreader and one trip across the field.
Either way it's one action and one grouped push: every layer shares an upload group, so a single send lands them in your connected platform under one map-layer summary — and each file goes to both surfaces, the viewable map layer and the file your equipment actually pulls.
Apply each product separately — how it's zoned
Zones are generated on your soil-test-driven nutrient — P if you assigned it, otherwise K. (A blend needs at least one of P or K to build zones; for nitrogen alone, use the single-product creator.) The zoning nutrient uses each zone's own interpolated soil value; a second P or K nutrient uses the field-mean soil value, and nitrogen is yield-driven. Each product is then converted from its nutrient rate to a product rate with the same published analysis the single-product engine uses — so each product carries its own rate instead of a shared blend ratio.
Spread as one blended bag — and the honesty no one else ships
A physically pre-mixed bag has one ratio. A single-bin spreader can vary the total rate zone to zone, but not the ratio — so one bag mathematically can't hit two different per-zone targets at once. Zone Forge solves it in two stages, then tells you exactly where the compromise lands:
- Field ratio. The bag is sized to your field's aggregate need — each product's share is its acre-weighted total product mass divided by the total. You get a synthesized grade, e.g.
12-30-20(N-P₂O₅-K₂O), with each product's mass percentage. - Per-zone total rate. For each zone, Zone Forge picks the one total rate that best covers that zone's targets together — a least-squares fit against the fixed bag analysis — clamped to your min/max.
Because one ratio can't satisfy every zone perfectly, the result carries a per-zone coverage-gap report: for each nutrient, how many zones — and how many acres — the blend under-applies or over-applies, and by how much per acre. Under-application is a warning (those acres run short); over-application is an advisory (wasted product, and a flag if it pushes P over a cap). Most tools just hand you a bag grade and let the field find out; Zone Forge shows you before you apply.
A single blended bag is dry products only. Liquids, lime, and seed go on their own passes — lime is pH-driven (use the lime card), seed is yield-driven.
Incidental nutrients, disclosed
A product chosen for one nutrient usually carries another — DAP picked for phosphorus is 18-46-0, so it also delivers nitrogen: 18 lb of N for every 100 lb of DAP applied. Zone Forge computes that incidental nitrogen at each zone's actual rate and surfaces it so you credit it against your N plan instead of double-applying.
Note on per-zone variability. Like the litter workflow, blend zones are driven by one primary soil-test nutrient; a secondary P/K nutrient uses the field-mean value and nitrogen is yield-driven. If your second nutrient varies widely across the field, its rate won't capture that spread yet — fully simultaneous per-zone variability for every nutrient is a planned enhancement.
Saved prescriptions
Every Rx is saved with: name, field, nutrient, product, philosophy, source, yield goal, generation date, zones GeoJSON, and per-Rx upload status.
From the saved-list view you can:
- Open to re-review the zones and edits
- Print for a one-page field report PDF
- Retry upload if upload failed (re-runs the four-step pipeline against saved data)
- Download shapefile to grab a zipped ESRI shapefile (.shp/.shx/.dbf/.prj) and load it onto your display by USB — useful for older 2630/4640 displays without over-the-air transfer, or for non-John Deere platforms like AgLeader, Climate FieldView, or Trimble. Learn more.
- Regenerate with new inputs (yield, source, philosophy)
- Delete
Next: Connected platforms →