Nutrient Management Plans and NVZ Records With AI
In short This article shows how AI can draft manure storage and spreading calculations and keep NVZ records consistent, and why the final figures must be checked against the official rules and RB209.
Route ahead 7 sections
- What it costs and what you need
- Worked example 1: slurry storage for a 180-cow dairy unit 1 min
- Worked example 2: the 170 kg N/ha whole-farm limit 2 min
- Worked example 3: the field limit and N-max 3 min
- Keeping the spreading log consistent 4 min
- Rules the AI won’t apply unless you give it the facts 5 min
- Where the checking happens 6 min
Most of a nutrient management plan is arithmetic. You count the stock, look up standard figures, multiply by days, add the rainfall, and then try to keep a spreading log that matches the plan you wrote in February. A general AI assistant such as ChatGPT, Claude or Microsoft Copilot can do that arithmetic and the cross-checking quickly. What it can’t do is take responsibility for the figures. If an Environment Agency inspector or a Red Tractor assessor finds a wrong number, the AI isn’t the one answering for it.
This article covers both sides: getting an AI tool to draft your manure storage and spreading calculations for your nutrient management plan and NVZ records, and finding the mistakes it will make before they end up in your records.
The figures below follow the England NVZ rules (the Nutrient Management (Nitrate Vulnerable Zones) Regulations and Defra’s guidance on them) and the AHDB Nutrient Management Guide, RB209. Wales, Scotland and Northern Ireland each have their own rules. If you farm there, give the AI your own nation’s rulebook and don’t assume anything here carries over.
What it costs and what you need
You don’t need specialist software to start. A ChatGPT Plus or Claude Pro subscription costs about £18 to £20 a month. Copilot inside Excel comes with some Microsoft 365 plans and is an add-on for others. Free tiers will handle a single calculation, but they tend to run out partway through a whole-farm job, and that’s exactly when you need them.
Have these ready before you start:
- Livestock numbers by category, plus milk yield band for dairy cows
- Housing dates for each group
- Field list with areas, cropping and soil type (sandy/shallow or other)
- Store dimensions and type (tank, lagoon, earth-banked)
- Areas of yards and roofs that drain to the store
- Last year’s spreading log, even if it’s a notebook
Keep these free official tools open alongside the AI: the RB209 guide, MANNER-NPK for manure nutrient values, and Defra’s NVZ guidance tables. If you already record spreading in Gatekeeper, Muddy Boots or a similar package, export the log as a CSV. The AI works much better from a CSV than from you retyping the data.
Worked example 1: slurry storage for a 180-cow dairy unit
The farm: 180 Holstein cows yielding 6,000 to 9,000 litres, housed from October to March, cattle slurry going into an earth-banked lagoon. In an NVZ, cattle slurry needs five months’ storage, covering 1 October to the end of February.
Here’s a prompt that works. It forces the AI to show its working and to label every figure it assumed:
I farm in an NVZ in England. Calculate the slurry storage capacity I need
for the 5-month cattle storage period (1 Oct to 28 Feb, 151 days).
- 180 dairy cows, 6,000-9,000 litre yield band. Use 53 litres/day excreta
per cow and state that this is from the Defra NVZ standard table.
- Parlour and dairy washings: 2.7 m3/day into the store.
- Uncovered yard draining to store: 1,200 m2.
- Lagoon surface area: 900 m2.
- Rainfall for Oct-Feb at my location: 450 mm.
- Earth-banked lagoon: add 750 mm freeboard.
Show each line of working in a table. Flag every number you assumed
rather than took from me.
This is the kind of table you should get back. Check every row of it:
| Source | Working | Volume (m³) |
|---|---|---|
| Cow excreta | 180 × 0.053 m³ × 151 days | 1,441 |
| Parlour washings | 2.7 m³ × 151 days | 408 |
| Yard rainfall | 1,200 m² × 0.45 m | 540 |
| Rain on lagoon | 900 m² × 0.45 m | 405 |
| Required working volume | 2,794 | |
| Freeboard | 900 m² × 0.75 m | 675 (excluded from capacity) |
The AI handled the sums well. The part a person has to own is the inputs. Where did the 450 mm come from? Is the per-cow figure the right one for the yield band? Is the yard area current, or was it measured before you put up the new collecting yard? Check the excreta figure against the current Defra table and the rainfall against your own Met Office or farm data. If you’ve roofed part of the yard since the last plan, the AI has no way of knowing.
Freeboard is the next thing to look at. AI tools often treat it as usable capacity and quote a store as “big enough” when it’s only big enough if you fill it to the brim. Freeboard is the safety margin, and you can’t count it as storage. Ask directly: “Is freeboard included in your capacity figure?”
Worked example 2: the 170 kg N/ha whole-farm limit
In an NVZ, the livestock manure nitrogen applied across your holding, including what stock drop while grazing, must average no more than 170 kg N/ha per year.
Using the Defra standard figure for the 6,000 to 9,000 litre band (101 kg N per cow per year):
Cows: 180 × 101 kg N = 18,180 kg N
Farm area: 120 ha
Loading: 18,180 / 120 = 151.5 kg N/ha (limit 170)
Minimum area: 18,180 / 170 = 107 ha
This looks comfortable, but the herd isn’t the whole farm. Add youngstock from the same Defra table and the loading goes up. Then take the land out properly. The AI will happily divide by 120 ha unless you tell it that 6 ha is woodland, yard and track that can’t receive manure. That alone takes the loading to about 159 kg N/ha before you’ve counted a single heifer.
For any calculation that comes in close to a limit, ask the AI for the headroom in plain numbers (“how many more cows before I hit 170?”). A single figure like 151.5 doesn’t tell you how much room you have. The headroom does.
Worked example 3: the field limit and N-max
This is where AI tools most often get the rules wrong, and it’s the main reason to check against the official sources.
Take a 12 ha grass field that gets two applications of cattle slurry at 35 m³/ha. RB209 gives cattle slurry at 6% dry matter as about 2.6 kg total N/m³ and 1.2 kg readily available N/m³.
Total N applied: 2 × 35 m³ × 2.6 kg = 182 kg N/ha
Field limit: 250 kg total N/ha from organic manure in 12 months -> OK
So far, so good. Then you ask how much bagged nitrogen you can still apply under the crop N-max limit (300 kg N/ha for grass in England). A common AI answer:
“Your slurry supplies 84 kg/ha of readily available nitrogen (2 × 35 × 1.2), leaving 216 kg N/ha of manufactured fertiliser within N-max.”
That answer mixes up two different systems. RB209’s readily available nitrogen tells you how much the crop can actually use, so it’s the right figure for deciding how much fertiliser to buy. The N-max calculation in the NVZ rules uses fixed availability percentages from the regulations instead (cattle slurry is 40% in the England guidance):
N-max manure contribution: 182 × 0.40 = 72.8 kg N/ha
Manufactured N allowed: 300 − 72.8 = 227 kg N/ha (legal ceiling)
Now look at the RB209 recommendation for that field, which for a cutting field at moderate grass growth class will often be well below 227. The legal ceiling isn’t a target. A good plan shows both numbers side by side: what the law allows, and what the agronomy says to apply. Tell the AI to keep them in separate columns and to say which document each one comes from. Otherwise it will blend them into one plausible but wrong figure.
Keeping the spreading log consistent
The calculations are done once a year. The record keeping goes on all year, and that’s where AI saves the most time week to week.
You have to record each manure application within a week of spreading, and keep records for five years. Most logs drift: field names don’t match the plan (“Top Ground” in the log, “OS 4521” in the plan), rates go in as gallons per acre one week and m³/ha the next, and a Friday contractor job never gets written down.
Export the log as a CSV and paste it in with a prompt like this:
Here is my spreading log (CSV) and my field list with soil types.
Check every row against the England NVZ rules and flag:
1. Any slurry application in a closed period for that field's soil type
and land use.
2. Any application between the end of a closed period and 28 Feb above
30 m3/ha, or less than 3 weeks after the previous one.
3. Any field whose 12-month organic manure total exceeds 250 kg N/ha.
4. Field names that don't match the field list.
5. Rates not in m3/ha or t/ha; convert them and show the conversion.
Output a table of problems only. Do not rewrite the log.
Typical output:
| Row | Field | Issue |
|-----|--------------|----------------------------------------------------|
| 14 | Long Meadow | 2,500 gal/ac converted = 28.1 m3/ha. OK on rate. |
| 22 | Top Ground | Not in field list. Possible match: OS 4521 (Top). |
| 31 | Brook Field | 2 Feb and 16 Feb: 14 days apart, under 3 weeks. |
| 40 | Sandpit | 3 Sep on sandy grassland: inside 1 Sep-31 Dec |
| | | closed period. Verify date and soil type. |
The last line in that table is the kind of thing you want flagged. Either the date was mistyped or someone spread in a closed period. You need to know which before an inspector asks. The instruction “do not rewrite the log” matters too. An AI that “tidies” your records changes dates and quantities without telling you, and a tidied record that doesn’t match the contractor’s invoice looks worse than an untidy honest one.
Rules the AI won’t apply unless you give it the facts
Some restrictions depend on what’s physically in the field, so the AI can’t apply them on its own:
- Spreading within 10 m of surface water (6 m with precision equipment such as a dribble bar or trailing shoe), or within 50 m of a spring, well or borehole
- Waterlogged, flooded or snow-covered ground, or ground frozen for more than 12 of the previous 24 hours
- Slopes over 12° (the limit applies to some kit and not others)
- Field heap siting, and the 12-month limit on how long a solid manure heap can stay in one place
Your risk map deals with these, and only you or your advisor can draw it. An AI can turn a risk map you’ve already drawn into a written description for the plan. It can’t tell you where the spring under Brook Field is.
Where the checking happens
A sensible split for a typical family farm:
| Task | AI drafts | Person verifies against |
|---|---|---|
| Storage capacity | Volume table, rainfall maths | Defra excreta tables, local rainfall, measured areas |
| 170 kg N/ha loading | Stock × standard figures | Current Defra table, eligible land area |
| N-max | Fixed-efficiency arithmetic | NVZ guidance percentages and crop N-max |
| Fertiliser plan | RB209 lookup draft | RB209 itself, soil analysis, FACTS-qualified advisor |
| Spreading log | Consistency and closed-period flags | Contractor invoices, the actual field |
If you’re also using these records for assurance audits or SFI nutrient management actions, our pillar guide on AI for SFI, Grants and Farm Assurance covers how to keep one set of evidence that works for all of them, so you aren’t keeping three slightly different versions.
For one large dairy, drafting the storage and loading calculations by hand usually takes most of a wet afternoon. With the prompts above, the first draft takes about twenty minutes, and the checking takes another hour if you do it properly. That hour is still yours to do. Start with last year’s spreading log this week, while the closed period still means there’s nothing new to add to it.