Domain knowledge and policy rules for Denmark's Green Tripartite Agreement (Grøn Trepart). Use this skill whenever working on the groen-trepart-tracker project and you need to understand the environmental context — what the pillars are, where the targets come from, how metrics are computed, what the governance hierarchy looks like, or what the Danish terminology means. Trigger whenever someone mentions nitrogen reduction, wetland extraction, afforestation targets, nature protection, coastal water plans, VP3, MARS projects, municipalities, catchments, or the overall Grøn Trepart political agreement. Even general questions like "what does this dashboard track?" or "why is this number so low?" benefit from this domain context.
This skill provides the environmental policy context, governance structure, and domain knowledge needed to make sound decisions when working on the Grøn Trepart Tracker. Understanding the "why" behind the data is just as important as the technical implementation.
In December 2023, the Danish government signed the Green Tripartite Agreement — a landmark deal between the government, agricultural organizations, and environmental groups. It commits Denmark to significant environmental targets across 5 pillars, primarily to meet EU Water Framework Directive requirements and national climate goals.
The agreement was driven by the fact that Denmark's intensive agriculture contributes heavily to nitrogen pollution of waterways and coastal areas, leading to oxygen depletion and ecological damage.
Political context: This is a political agreement, not legislation. The targets can change with new governments or renegotiation. The dashboard should note this.
Target: ~13,780 tons N/year reduction by 2027 (the most urgent deadline) Why: Nitrogen runoff from agriculture causes eutrophication — algal blooms that deplete oxygen and kill marine life in Danish coastal waters. Denmark has been in violation of EU Water Framework Directive requirements for years.
How it's measured:
What the projects actually are:
The phase problem: Most of the reported nitrogen reduction is from projects still in the investigation phase. Only projects with status "Anlagt" (established/built) have any real-world effect. This is the most important insight the dashboard provides.
Target: 140,000 hectares by 2030 Why: Drained low-lying areas (former wetlands, bogs) are major carbon emitters and nitrogen sources. Rewetting them reduces both CO₂ emissions and nitrogen runoff.
How it's measured:
extractionEffortHa field on each projectTarget: 250,000 hectares of new forest by 2045 Why: Forests sequester carbon, reduce nitrogen leaching, and provide biodiversity habitat. Denmark is one of Europe's least forested countries.
How it's measured:
test.admin.gc2.io WFS endpoint. ETL: etl/fetch_klimaskovfonden.py.afforestationEffortHa (but only water-quality-related projects).Important nuance: The 250,000 ha target means 250,000 ha of new forest — on top of what already exists. The fredskov figure is the starting point, not progress toward the goal.
Target: 1,800,000 tons CO₂e/year reduction by 2030 Why: Agriculture accounts for ~21% of Denmark's greenhouse gas emissions. The agreement targets both direct emissions (livestock, fertilizer) and indirect ones (drained organic soils).
Data status: Currently no data source feeds this pillar. The dashboard shows a placeholder. Future data sources may include the Danish National Inventory Report or DST statistics.
Target: 20% of Denmark's land area protected by 2030 (EU Biodiversity Strategy) Why: Denmark has very little protected nature compared to its EU peers. The agreement aims to expand both strict protection and general nature areas.
How it's measured:
Formula:
protected_land_pct = (natura2000_terrestrial + section3_total - estimated_overlap) / denmark_land_area × 100
Understanding the geographic hierarchy is essential for interpreting the data:
Denmark (Nation)
├── 4 Vanddistrikt (Water Districts)
│ └── 23 Hovedvandoplande (Main Catchments)
│ └── 37 Kystvandoplande (Coastal Water Groups) — each has a VP3 plan with nitrogen targets
│ └── 108 Delopland (Sub-catchments)
└── 98 Kommuner (Municipalities) — cross-cutting, linked via spatial overlap
Vandplaner (Water Plans): Denmark's third-generation water plans (VP3, 2021-2027) set targets for each coastal water group. These are the basis for the nitrogen reduction targets in the dashboard.
Why 37 plans matter: The national target of ~13,780 tons is not a single goal — it's the sum of 37 local targets, each calibrated to the ecological needs of a specific coastal water body. Some coastal waters need much more reduction than others. The per-plan view shows whether effort is being allocated where it's most needed.
Municipalities don't map cleanly to catchments. A municipality may span multiple catchments, and a catchment may include parts of multiple municipalities. The dashboard handles this via spatial overlap (GeoJSON intersection).
These metrics are derived from the raw data and help users understand progress:
Pace indicator = completed_value / ((now - start) / (deadline - start))
Ratio > 1 means ahead of schedule. Most pillars are far behind.
Pipeline coverage = pipeline_value / target_value
How much of the target is at least planned (including preliminary projects).
Conversion rate = completed_value / pipeline_value
What fraction of planned projects actually get built. Historically very low.
Nitrogen gap = target - current_pipeline_nitrogen_effect
Tons of nitrogen reduction still unaccounted for in any plan.
Municipal participation = municipalities with ≥1 project / 98 Shows geographic spread of effort.
Combined protected area = Natura 2000 terrestrial + §3 areas − estimated overlap Compared against 20% land area target.
MARS tracks 18 possible project statuses. The dashboard groups these into 3 phases:
| Phase | MARS Status | Danish Name | Real-world meaning |
|---|---|---|---|
| Preliminary | 6 | Forundersøgelsestilsagn | Investigation money granted. Consultant is studying whether the project is feasible. No construction, no environmental effect. |
| Approved | 10 | Etableringstilsagn | Construction approved and funded. Work may or may not have started. No guaranteed environmental effect yet. |
| Established | 15 | Anlagt | Physically built and operational. This is the only phase with actual environmental impact. |
All other status codes (there are 15 more) are mapped to "preliminary" as a conservative default.
Why this matters for the dashboard: If you show "3,446 tons N reduced" without context, it sounds like significant progress (27% of target). But only ~26 tons comes from built projects. The rest is aspirational. The phase breakdown is the single most important feature of this dashboard.
Show the uncertainty. Environmental data is messy. Models have error margins. Estimates overlap. The dashboard should acknowledge this — not with academic precision, but with honest disclaimers that a concerned citizen can understand.
Don't overcount. When Natura 2000 and §3 areas overlap, subtract. When marine areas inflate the terrestrial percentage, exclude them. When a project is in preliminary study, don't count it as "achieved."
Source everything. Every number should link back to a public data source. This is an open-source project tracking public commitments with public data. Transparency is the point.
Update regularly. Data should be refreshed via the ETL pipeline at least daily. Stale data
undermines trust. The fetchedAt timestamp should be prominently displayed.
Danish context first. The dashboard is primarily for Danish citizens, journalists, NGOs, and policymakers. Use Danish terminology in the UI, Danish date formats, and references that a Danish audience would recognize.