Data Files — .inc Files Overview¶
All data files loaded by the main GAMS model via $include. These are the raw sources — they are never modified by the model or this wiki. Each entry shows what the file provides and which model parameters depend on it.
Raw truth principle: When the wiki contradicts a raw file, the raw file is authoritative. Wiki pages are derived summaries — always verify against the source.
Raw file access: All active .inc files are in
raw/inc files/(relative to project root). Links in the tables below use relative paths from this wiki page. Click to open in VS Code / Obsidian. Files with spaces in their path use angle-bracket link syntax.Statistics note: Statistics marked (computed 2026-04-06) are derived from direct awk passes over the raw files. Values are exact counts; means are arithmetic over all 639,459 field entries including zeros unless otherwise noted.
Directly readable raw files (project root)¶
| File | Path | Description |
|---|---|---|
| Main model | WikiTargetEcon/TargetEcon 2026.gms |
Complete GAMS model — the definitive source for all equations, parameter assignments, and constraints |
| Model (no reporting) | WikiTargetEcon/TargetEcon 2026_without_reporting(putfile).gms |
Same model, reporting section removed — used for wiki ingestion |
| Differentiation effects | WikiTargetEcon/differentiation_effects.inc |
Catchment-specific N effects for SA and LRH — directly readable, values confirmed 2026-04-05 |
| DCA advisory note (PDF) | WikiTargetEcon/raw/DCA_Levering_Diff_effekt_kv_lstofvirkemidler_REVIDERET_300925.pdf |
Rolighed et al. 2025 — scientific source for differentiation_effects.inc |
All other .inc files are referenced by name only and have not been read directly (status ⚠️ or 🔲 below). Their content is inferred from the main .gms code.
Status column: ✅ = content confirmed from direct file read; ⚠️ = content inferred from parameter names in .gms; 🔲 = needs to be read/confirmed.
Spatial / Set files¶
| File | Provides | Used for | Status |
|---|---|---|---|
Seti.inc |
Set i 'mark' — 639,462 agricultural fields |
Core field index | ✅ |
Not_Vp2perm.inc |
Set not_VP2(i) — fields not in VP2 permanent measures |
Scenario restrictions on P measures | ⚠️ |
Set_ret.inc |
Set ret (ID15 sub-catchments) |
N routing unit | ⚠️ |
Set_k.inc |
Set k — 109 coastal catchments (kystvanddeloplande). One catchment has no agricultural fields in Setki (no i with Countcy>0), so only 108 catchments are active in the optimization. differentiation_effects.inc covers exactly these 108. |
N target unit | ✅ |
Setki.inc |
Set setki(k,i) — field-to-coastal-catchment mapping |
Cost attribution | ⚠️ |
Set_Reti.inc |
Set Reti(ret,i) — field-to-ID15 mapping |
N routing | ⚠️ |
Set_KRet.inc |
Set kret(k,ret) — ID15-to-coastal-catchment mapping |
N routing | ⚠️ |
Set_p.inc |
Set p (WWT plants) |
WWT indexing | ⚠️ |
Set_KP.inc |
Set kp(k,p) — plant-to-catchment mapping |
WWT cost attribution | ⚠️ |
set_pp.inc |
Set pp (overflow points) |
Overflow indexing | ⚠️ |
set_kpp.inc |
Set kpp(k,pp) — overflow-to-catchment mapping |
Overflow attribution | ⚠️ |
set_w.inc |
Set w (watercourses) |
Stream measures | ⚠️ |
set_geo.inc |
Geographic zone classification | P effects for sand traps | ⚠️ |
Set_ero_stretch.inc |
Set ero_stretch (erosion stretches) |
Tree planting | ⚠️ |
set_lakecatch.inc |
Set lakecatch (lake catchments) |
P target unit | ⚠️ |
set_up_lakecatch.inc |
Set up_lakecatch |
P routing unit | ⚠️ |
set_lakeret.inc |
Set up_LakeRet(up_lakecatch,ret) |
MW P routing | ⚠️ |
set_up_lakeret.inc |
Set up_lakeret |
P routing | ⚠️ |
set_kero.inc |
Set kero(k,ero_stretch) |
Tree planting attribution | ⚠️ |
set_lake_ero.inc |
Set lake_ero(lakecatch,ero_stretch) |
Tree P routing | ⚠️ |
set_up_lake_ero.inc |
Set up_lake_ero(up_lakecatch,ero_stretch) |
Tree P routing | ⚠️ |
set_WGeo.inc |
wgeo(w,geo) — watercourse geographic zone |
Sand trap P effects | ⚠️ |
set_w_ero_stretch.inc |
Linking erosion stretches to watercourses | Spatial | ⚠️ |
set_up_lakew.inc |
up_lakew(up_lakecatch,w) |
Stream measure P routing | ⚠️ |
set_lakew.inc |
lake_lakew(lakecatch,w) |
Reporting | ⚠️ |
set_kw.inc |
kw(k,w) — watercourse-to-catchment |
Cost attribution | ⚠️ |
set_wi_Pwet.inc |
wi_pwet(w,i) — P wetland–watercourse linkage |
PWET constraints | ⚠️ |
set_Lakei.inc |
lake_i(lakecatch,i) |
P reporting per lake | ⚠️ |
Set_up_lakei.inc |
up_lake_i(up_lakecatch,i) |
P routing | ⚠️ |
set_Klake.inc |
kl(k,lakecatch) or similar |
P-to-N catchment linkage | ⚠️ |
set_Kup_Lake.inc |
kup_lake(k,up_lakecatch) |
P-to-N linkage | ⚠️ |
set_WWT_lake.inc |
WWT-to-lake-catchment linkage | WWT P routing | ⚠️ |
set_WWT_up_lake.inc |
WWT_up_lake(up_lakecatch,p) |
WWT P routing | ✅ |
set_lakepp.inc |
Overflow-to-lake linkage | Overflow P routing | ⚠️ |
set_up_lakepp.inc |
up_lakepp(up_lakecatch,pp) |
Overflow P routing | ✅ |
lakechain_nokyst.inc |
lakechain(lakecatch,up_lakecatch) |
P lake chain routing | ⚠️ |
lakechain_k.inc |
lakechain_k(k,up_lakecatch) |
P to coast routing | ✅ |
groups.inc |
Set groups — 59 numbered lake groups (1–59) used for P routing |
Groups upstream lake catchments into connected drainage systems | ✅ |
MW (mini-wetland) sets¶
| File | Provides | Status |
|---|---|---|
setmw1.inc, setmw2.inc, setmw3.inc |
Sets mw1, mw2, mw3 (MW locations by size) |
⚠️ |
setmw1ret.inc, setmw2ret.inc, setmw3ret.inc |
mw1ret(ret,mw1) etc. — MW-to-ID15 linkage |
⚠️ |
setmw1_VP2.inc, setmw2_VP2.inc, setmw3_VP2.inc |
VP2 MW location sets | ⚠️ |
setmw1ret_VP2.inc, setmw2ret_VP2.inc, setmw3ret_VP2.inc |
VP2 MW-to-ID15 linkage | ⚠️ |
Biophysical / Field parameters¶
| File | Provides | Key parameters | Status |
|---|---|---|---|
| File | Provides | Key parameters + statistics | Status |
| --- | --- | --- | --- |
Area.inc |
Field area in hectares | area(i) — 639,459 fields; range 0.01–491.67 ha; mean 4.31 ha; total modeled area: 2,757,348 ha (≈2.76 million ha of Danish agricultural land). (computed 2026-04-06) |
✅ |
Potential_basemap03_2.inc |
Basemap potentials | Various potential fractions | ⚠️ |
SubSoil2.inc |
Subsoil / soil type | soil(i) (JB class 1–11; <5 = sandy, ≥5 = clay) |
⚠️ |
Oekologisk2.inc |
Organic farming status | oeko(i) (J = organic / N = conventional) |
⚠️ |
new_lav_2018.inc |
Low-lying land fraction | lav(i) — 639,459 fields; 167,749 fields (26.2%) have some lavbund; 471,710 fully non-lavbund; range 0–1.0; mean 0.077. Implied total lavbund area: ~212,000 ha. (computed 2026-04-06) |
✅ |
Totret_2025on2018.inc |
Total N retention | TotRet(i) — 639,459 fields; only 13 fields with TotRet=0; range 0–99.63%; mean 69.94%. Interpretation: the average Danish agricultural field retains ~70% of N before it reaches the coast — only ~30% of gross N reduction delivers to coastal targets. Updated 2025 using 2018 field boundaries. (computed 2026-04-06) |
✅ |
Surfret_2025on2018.inc |
Surface N retention | SurfRet(i) — 639,459 fields; range 0–98.60%; mean 15.58% (far lower than TotRet because surface flow bypasses deep groundwater). Used only for BZ10/BZ20. (computed 2026-04-06) |
✅ |
MarkAccess2.inc |
Crop codes by year | MarkAccess(i,cy) — 5 crop years; determines eligibility (Countcy) and gross margin lookups |
✅ |
leaching.inc |
N leaching per field | leaching(i) — 639,459 fields; 84,543 zeros (13.2%); 554,916 non-zero; range 0–873.22 kg N/ha/yr; mean 43.73 kg N/ha/yr (over all fields). Drives NEffM for BZ10/20, FO, SA, LRh. The max (873 kg) is an outlier — most fields fall well below 200 kg N/ha/yr. (computed 2026-04-06) |
✅ |
Nhan_i2.inc |
N application norm per field | Nhan(i) — 639,459 fields; 266,298 zeros (41.6%) (non-cropped land); 373,161 non-zero; range 0–1,099 kg N/ha/yr; mean 56.91 kg N/ha/yr. Used in N10/N20 effect calculation (0.18 × Nhan). (computed 2026-04-06) |
✅ |
Dyretryk2.inc |
Livestock density | livestock(i) (DE/ha) — threshold at ≥0.8 for surcharge and CCS/CCW N effect differentiation |
⚠️ |
Adj_Ann_Jordv_2pro.inc |
Afforestation land value annuity | Adj_Ann_Jordv_2pro(i) — annuitized income from skovrejsning grant scheme (Lundhede 2020). Reduces net cost of FO. |
⚠️ |
differentiation_effects.inc |
Catchment-differentiated N effects for SA and LRH | NEffM(i,"SA"), NEffM(i,"LRH") — 108 coastal catchments each (updated 2026-04-05 to national coverage). File is at project root (not raw/). See special note below. |
✅ |
erosion_field.inc |
Field P loss via surface erosion | erosion_field(i) — 639,459 fields; 375,657 zeros (58.7%); 263,802 fields with erosion loss; range 0–21.43 kg P/yr; mean 0.075 kg P/yr. Erosion is the most spatially concentrated P pathway — only ~41% of fields contribute. (computed 2026-04-06) |
✅ |
macropore_field.inc |
Field P loss via macropore flow | macropore_field(i) — 639,459 fields; 348,562 zeros (54.5%); 290,897 non-zero; range 0–28.91 kg P/yr; mean 0.215 kg P/yr. Macropore is the largest total P loss pathway nationally (~2.9× higher mean than erosion). Dominant on heavy clay soils. (computed 2026-04-06) |
✅ |
matrix_ha.inc |
Field P loss via matrix flow | matrix_ha(i) — 639,459 fields; 381,219 zeros (59.6%); 258,240 non-zero; range 0–0.602 kg P/ha/yr; mean 0.018 kg P/ha/yr. Background slow subsurface P movement. Smallest of the three pathways per-field. (computed 2026-04-06) |
✅ |
SurfRet_ID15.inc |
Surface retention at ID15 sub-catchment level | SurfRet_ID15(ret) — 3,302 sub-catchments; range 0.10–99.70%; mean 27.11% (higher than field-level SurfRet mean of 15.6% because ID15 catchments include more diverse topography). Used for MW and comb2 BZ measures. (computed 2026-04-06) |
✅ |
Potential / feasibility parameters¶
| File | Provides | Key parameters + statistics | Status |
|---|---|---|---|
PotentialBZ10.inc |
BZ10 potential fraction | BZ10pot(i) — 242,328 fields (37.9%) have BZ10 potential (watercourse-adjacent); 397,130 = 0; range 0–1.0. (computed 2026-04-06) |
✅ |
PotentialBZ20.inc |
BZ20 potential fraction | BZ20pot(i) — similar coverage to BZ10 |
✅ |
new_WL_2018.inc |
Wetland potential fraction | Vaadomrpot(i) — 165,431 fields (25.9%) have WL potential; 474,028 = 0; range 0–1.0. (computed 2026-04-06) |
✅ |
Randzonep2.inc |
Buffer zone potential per field | Randzonepot(i) — ha eligible for BZ10/BZ20 on each field. Most = 0; non-zero for watercourse-adjacent fields. 639,461 fields. |
✅ |
FO_NO.inc |
Fields where forestation is NOT allowed | Set for FO exclusion | ⚠️ |
FO_YES.inc |
Fields where forestation IS allowed | FO potential | ⚠️ |
IBZ_pot.inc |
IBZ potential fraction | IBZ_pot(i) — only 7,122 fields (1.1%) have IBZ potential; 632,337 = 0. IBZ is by far the most spatially concentrated measure in the model. (computed 2026-04-06) |
✅ |
IBZ_eff.inc |
IBZ P effect per field | IBZ_eff(i) — 6,816 fields with non-zero effect (slightly fewer than IBZ_pot); range 0–5.37 kg P/yr. (computed 2026-04-06) |
✅ |
P_wet.inc |
P wetland potential | p_wet(i) |
✅ |
MiniPot1_darkgreen_new_2018.inc |
MW dark-green potential (highest quality sites) | MiniPot1_darkgreen(i) |
✅ |
MiniPot2_lightgreen_new_2018.inc |
MW light-green potential | MiniPot2_lightgreen(i) |
✅ |
MiniPot3_darkyellow_new_2018.inc |
MW dark-yellow potential | MiniPot3_darkyellow(i) |
✅ |
Max_erosion.inc |
Maximum erosion parameter cap | Max_erosion(i) |
✅ |
Max_macropore.inc |
Maximum macropore parameter cap | Max_macropore(i) |
✅ |
VP2MW_per_ret.inc |
VP2 MW area per ret | VP2MW_per_ret(ret) — minimum floor for VP3 MW potential |
✅ |
extraMW_50.inc |
Extra MW-50 capacity | extraMW_50(ret) — 3,456 sub-catchments; additional MW capacity beyond MiniPot |
✅ |
Cost parameters¶
| File | Provides | Parameters | Status |
|---|---|---|---|
Cost_new_avg.inc |
Cost(o,l,h,c) — crop opportunity cost matrix by: o = organic status (J/N) × l = livestock density (hoej=high ≥0.8 DE/ha / lav=low <0.8 DE/ha) × h = soil type (ler=clay / sand=sandy) × c = crop category. ~200 records. Organic+clay = ~5,574 DKK/ha; conventional+sandy = ~357 DKK/ha. Source of prodcost(i) after field-level lookup. |
Cost(o,l,h,c) (DKK/ha/yr) |
✅ |
MBNCost.inc |
WWT MBN upgrade cost | MBNcost(p) |
✅ |
MBNDKCost.inc |
WWT MBNDK upgrade cost | MBNDKcost(p) |
✅ |
MBNDKFCost.inc |
WWT MBNDKF upgrade cost | MBNDKFcost(p) |
✅ |
MBNDKFeCost.inc |
WWT MBNDKFe upgrade cost | MBNDKFecost(p) |
✅ |
OFCost.inc |
Overflow treatment costs | ofcost(pp) |
✅ |
re_meandering_xcost.inc |
Extra re-meandering costs | re_meandering_xcost(w) |
✅ |
N effect parameters¶
| File | Provides | Parameters | Status |
|---|---|---|---|
MBNNeff.inc |
WWT MBN N effect | MBNNeff(p) |
✅ |
MBNDKNeff.inc |
WWT MBNDK N effect | MBNDKNeff(p) |
✅ |
MBNDKFNeff.inc |
WWT MBNDKF N effect | MBNDKFNeff(p) |
✅ |
MBNDKFeNeff.inc |
WWT MBNDKFe N effect | MBNDKFeNeff(p) |
✅ |
WWTRetention.inc |
WWT plant retention fraction | WWTRetention(p) |
✅ |
OFNeff.inc |
Overflow N effect | OFNeff(pp) |
✅ |
P effect parameters¶
| File | Provides | Parameters | Status |
|---|---|---|---|
MBNPeff.inc |
WWT MBN P effect | MBNPeff(p) |
✅ |
MBNDKPeff.inc |
WWT MBNDK P effect | MBNDKPeff(p) |
✅ |
MBNDKFPeff.inc |
WWT MBNDKF P effect | MBNDKFPeff(p) |
✅ |
OFPeff.inc |
Overflow P effect | OFpeff(pp) |
✅ |
P_loss_field.inc |
P_loss_field(i) — baseline P loss from field (kg P/yr). 639,461 fields. Most = 0; non-zero for fields with significant P loss. Used for reporting and as reference for P effect calculations. |
P_loss_field(i) (kg P/yr) |
✅ |
P_loss_stretch.inc |
Stream stretch P loss | P_loss_stretch |
⚠️ |
Total_P_loss.inc |
Total P loss by upstream lake catchment | Total_P_loss(up_lakecatch) |
✅ |
Tree_eff.inc |
Tree planting P effect | tree_eff(ero_stretch) |
✅ |
w_P_red_raising.inc |
Raising P effect per watercourse | w_P_red_raising(w) |
✅ |
w_P_red_re_meandering.inc |
Re-meandering P effect per watercourse | w_P_red_re_meandering(w) |
✅ |
Watercourse parameters¶
| File | Provides | Parameters | Status |
|---|---|---|---|
w_class.inc |
Watercourse class (1/2/3) | w_class(w) |
✅ |
w_length_km.inc |
Watercourse length | w_length_km(w) |
✅ |
w_meandering.inc |
Re-meandering potential | w_meandering(w) |
✅ |
w_raising.inc |
Raising potential | w_raising(w) |
✅ |
w_ochre.inc |
Ochre trap potential | w_okker(w) |
✅ |
w_sand.inc |
Sand trap potential | w_sand(w) |
✅ |
Land_simp.inc |
Land_simp(ero_stretch) — simplified land use classification for stream erosion stretches (1 = agricultural land adjacent). 439,143 stretches. Used to determine eligibility for tree planting. |
Land_simp(ero_stretch) |
✅ |
Vlb_class.inc |
Vlb_class(ero_stretch) — stream bank classification for erosion stretches (integer 1–3+). 439,143 stretches. Used to determine tree planting cost and effect category. |
Vlb_class(ero_stretch) |
✅ |
Count / constraint support files¶
| File | Provides | Status |
|---|---|---|
wwt_count.inc |
Number of WWT plants per unit | ⚠️ |
OF_count.inc |
Number of overflow points per unit | ⚠️ |
raising_count.inc, re_meandering_count.inc, etc. |
Stream measure counts per unit | ⚠️ |
raising_count_lake.inc, etc. |
Same for lake-level aggregation | ⚠️ |
P_waterways.inc |
wtype(i) — watercourse type classification for each field (integer code, most = 0). Determines PWET (P wetland) cost category. 639,461 fields. ✅ Resolves open question: wtype comes from this file. |
✅ |
Policy target files¶
| File | Provides | Status |
|---|---|---|
N_targets_DEC2024.inc |
N reduction targets by coastal catchment | N_targets(k) — 104 records; 81 catchments have positive N targets (23 = 0); range 0–2,008.74 tons N/yr (max: k=120, Mariager Fjord area); national total: 13,800 tons N/yr. Generated Sep 2023 from N_targets_DEC2024.xlsx. (computed 2026-04-06) |
P_targets_Dec2024.inc |
P reduction targets by lake catchment | P_targets(lakecatch) — 443 records; 189 lake catchments have positive P targets (254 = 0); range 0–9,155.79 kg P/yr (max: single large catchment); national total: ~117,089 kg P/yr (117 tons P/yr). Generated Sep 2023 from P_targets_Dec2024.xlsx. (computed 2026-04-06) |
Transport matrix files (CSV)¶
| File | Provides | Used in |
|---|---|---|
p_transp_matrix_NEW.csv |
Sparse square matrix of P transport coefficients between upstream lake catchments. Rows/cols = up_lakecatch IDs. Diagonal = 1 (self); off-diagonal = fraction of P passing downstream (e.g. 0.8, 0.64). Used in P_Red_aft_ret_eq. |
P_Red_aft_ret_eq |
p_transp_matrix_k.csv |
P transport coefficients from upstream lake catchments to coastal catchments (k). Used in P_Red_k_eq. |
P_Red_k_eq |
Measure catalogs (PDF — scientific source documents)¶
These are the primary scientific references for measure N and P effect values. Stored in raw/measures/.
| File | Content | Ingested |
|---|---|---|
VIRKEMIDLER TIL REDUKTION AF KVÆLSTOFBELASTNINGEN AF VANDMILJØET.pdf |
Danish N measure catalog. DCA Rapport nr. 174, Eriksen et al. 2020. 454 pages. Covers all N measures in the model including catch crops, energy crops, forestation, set-aside, buffer zones, IBZ, mini-wetlands, N norm reductions, intermediate crops, early sowing, wetland establishment. | ✅ 2026-04-05 |
SR379_Phosphorus measures.pdf |
Danish P measure catalog. DCE Scientific Report nr. 379, Andersen et al. 2020. 288 pages. Covers IBZ, P wetlands, mini-wetlands, buffer zones, trees, ochre traps, PPC, NPB, OT and other P measures. | ✅ 2026-04-05 |
DCA_Levering_Diff_effekt_kv_lstofvirkemidler_REVIDERET_300925.pdf |
DCA advisory note: "Differentieret effekt af kvælstofvirkemidler." Rolighed et al. 2025. 45 pages. Provides national averages and 108-catchment differentiation for SA (kortvarig brak), LRh (permanent udtagning), FO (skovrejsning), CCS (no change). Source of differentiation_effects.inc. Revised delivery Sept 30, 2025. |
✅ 2026-04-05 |
Key catalog → wiki page mapping:
| Catalog chapter (DCA 174) | Wiki measure page |
|---|---|
| Efterafgrøder (p. 33–58) | CCS, CCW |
| Mellemafgrøder (p. 74–86) | IC |
| Tidlig såning af vintersæd (p. 87–100) | EW |
| Permanent udtagning og kortvarig brak (p. 115–127) | SA, LRh |
| Flerårige energiafgrøder (p. 138–151) | EC |
| Skovrejsning (p. 152–164) | FO |
| Reduceret tilførsel mineralsk gødning (p. 221–241) | N10, N20 |
| Minivådområder med åben vandflade (p. 301–314) | MW |
| Etablering af vådområde (p. 344–359) | WL, LRl |
| Målrettede, brede og tørre randzoner (p. 387–393) | BZ10, BZ20 |
| Intelligente BufferZoner — DCA 174 (p. 394–402) | IBZ |
| Intelligente BufferZoner — SR379 (p. 120–133) | IBZ |
| Etablering af vådområde — SR379 (p. 148–157) | PWET |
| Træer langs vandløb — SR379 (p. 212–221) | Trees |
| Okkerfældningsbassiner — SR379 (p. 222–230) | Stream measures |
New in DCA 2025 advisory note (→ DCA_diff_effekt_2025.md): | Chapter | Wiki measure page | |---|---| | Kortvarig brak differentiation (108 catchments, 3 brak types) | SA | | Permanent udtagning differentiation (108 catchments) | LRh | | Skovrejsning differentiation (108 catchments) | FO | | Efterafgrøder — no change confirmed | CCS |
Measures NOT found in the catalogs (2020 edition) — corrected names: - LRh — no dedicated chapter; partially covered under "Permanent udtagning og kortvarig brak" (DCA 174 p.115–127); fully differentiated in DCA 2025 note - LRl — not in any catalog as standalone; developer-derived N effect for organogenic drained soils - NPB10/20 — correctly: Negativ fosforbalance (SR379 p.40–46) ✅ found - OT — correctly: Optimering af jordbearbejdning (SR379 p.77–89) ✅ found - PPC — correctly: Permanent plantedække (SR379 p.30–39) ✅ found - CCW — winter catch crop not distinguished from CCS in catalog; cost distinction is model-internal
Special note: differentiation_effects.inc¶
This file deserves its own section because it embodies a key modeling design decision.
Raw file location: WikiTargetEcon/differentiation_effects.inc (project root — directly readable). This is the ground truth; the summary below is derived from a direct read on 2026-04-05.
Source: Generated from differentiation_effects.xlsx (SharePoint, "YES Differentiation" project) using XLS2GMS. File header shows May 2025 date; content was updated by the model developer on 2026-04-05 to align with Rolighed et al. 2025 September revision. ⚠️ The header date does not reflect the content revision date — always verify against the file itself.
Scientific basis: Documented in DCA_diff_effekt_2025.md — Rolighed et al. (2025), "Differentieret effekt af kvælstofvirkemidler," DCA advisory note, revised September 30, 2025. ✅ File updated to match September 2025 delivery (VP4 calibration resolved).
Content (as of 2026-04-05 update):
- NEffM(i,"LRH") for 108 coastal catchments: corrections ranging from prodeff(i)−6 to prodeff(i)−18
- NEffM(i,"SA") for 108 coastal catchments: corrections ranging from prodeff(i)−6 to prodeff(i)−27
Change from prior version: - LRH: was 13 catchments (k = 217–238, corrections 7–15); now 108 catchments (corrections 6–18). The 13 original values are preserved unchanged. - SA: was ~97 catchments; now 108 catchments. Values (6–27 range, outliers at catchments 57 and 139) are unchanged.
Critical behavior: For catchments NOT listed in this file, NEffM(i,"SA") and NEffM(i,"LRH") remain at their GAMS default of 0. As of this update, all 108 catchments are covered for both measures. The original flat defaults (prodeff−27 for SA, prodeff−12 for LRh) remain commented out in the main .gms.
The correction term (−X): Represents background N loss that persists even after the measure is applied — atmospheric deposition, soil N mineralization, legacy soil N. The X value varies by catchment based on local hydrology and soils.
See SA and LRh for full details.
Key data statistics — model-wide summary¶
Computed 2026-04-06 from direct awk passes over raw .inc files. All field-level statistics cover 639,459 fields.
Field landscape — what the model works with¶
| Parameter | File | Non-zero fields | Range | Mean | Key insight |
|---|---|---|---|---|---|
Field area area(i) |
Area.inc |
639,459 (100%) | 0.01–491.7 ha | 4.31 ha | Total: 2.76 million ha of modeled agricultural land |
Total N retention TotRet(i) |
Totret_2025on2018.inc |
639,446 (100%) | 0–99.6% | 69.9% | Average field loses 70% of N reduction before reaching coast — the central challenge |
Surface N retention SurfRet(i) |
Surfret_2025on2018.inc |
639,423 (100%) | 0–98.6% | 15.6% | Far lower than TotRet — BZ10/20 (surface flow) get a much smaller retention penalty |
N leaching leaching(i) |
leaching.inc |
554,916 (87%) | 0–873 kg N/ha/yr | 43.7 kg N/ha/yr | Drives N effect of BZ, FO, SA, LRh. Zeros = non-cropped land |
N application norm Nhan(i) |
Nhan_i2.inc |
373,161 (58%) | 0–1,099 kg N/ha/yr | 56.9 kg N/ha/yr | Input to N10/N20. High = intensive cropping → large effect from norm reductions |
Lavbund fraction lav(i) |
new_lav_2018.inc |
167,749 (26%) | 0–1.0 | 0.077 | ~26% of fields have some lavbund; implied total lavbund area ~212,000 ha |
P loss — where the P is¶
| Pathway | File | Fields with loss | Range | Mean | National implication |
|---|---|---|---|---|---|
Erosion erosion_field(i) |
erosion_field.inc |
263,802 (41%) | 0–21.4 kg P/yr | 0.075 kg P/yr | Concentrated on sloping fields — most targeted P pathway |
Macropore macropore_field(i) |
macropore_field.inc |
290,897 (46%) | 0–28.9 kg P/yr | 0.215 kg P/yr | Largest P pathway nationally — 3× higher mean than erosion; clay soils |
Matrix matrix_ha(i) |
matrix_ha.inc |
258,240 (40%) | 0–0.60 kg P/ha/yr | 0.018 kg P/ha/yr | Background diffuse loss; smallest pathway but present on 40% of fields |
Measure eligibility — who can do what¶
| Measure | Eligibility file | Fields eligible | % of all fields |
|---|---|---|---|
| BZ10 | PotentialBZ10.inc |
242,328 | 37.9% |
| WL (wetland) | new_WL_2018.inc |
165,431 | 25.9% |
| LRl (lavbund) | new_lav_2018.inc |
167,749 | 26.2% |
| IBZ | IBZ_pot.inc |
7,122 | 1.1% |
| IBZ (with P effect) | IBZ_eff.inc |
6,816 | 1.1% |
Policy targets — what must be achieved¶
| Target | File | Active catchments | Max target | National total |
|---|---|---|---|---|
| N reduction | N_targets_DEC2024.inc |
81 of 104 (23 = 0) | 2,009 tons N/yr (k=120) | 13,800 tons N/yr |
| P reduction | P_targets_Dec2024.inc |
189 of 443 (254 = 0) | 9,156 kg P/yr | 117,089 kg P/yr (~117 tons P/yr) |
Notable model-scale observations¶
- The retention problem: Mean TotRet = 70% means the model must achieve ~3.4× the coastal target in gross field-level N reduction to meet the 13,800 tons/yr national target. This makes measure selection and spatial targeting critical.
- Surface vs total retention gap: Mean SurfRet (15.6%) << Mean TotRet (69.9%). Buffer zones using SurfRet suffer far less retention penalty than TR measures — important for BZ10/20 cost-effectiveness near coast.
- P loss is macropore-dominated nationally: Macropore mean (0.215 kg/ha) is ~3× erosion mean (0.075 kg/ha). NPB measures addressing all pathways compete well against erosion-only measures like PPC.
- IBZ is precision agriculture: Only 1.1% of fields can host an IBZ. The high unit cost (7,938 DKK/ha) is acceptable only where IBZ_eff is large.
- LRl potential vs tripartite floor: ~212,000 ha of lavbund potential exists; the 51,000 ha floor represents ~24% of this potential — likely achievable but not trivially so.
- P targets are small relative to N: 117 tons P/yr nationally vs 13,800 tons N/yr. P targets apply to lake catchments, not coastal catchments — the routing chain (field → lake → coast) adds complexity.