Skip to main content

r2-okonomi-data

Activates when querying financial/economic data from R2. Use this skill for: subsidies, farm financials, property values, CVR enrichment, ownership data, støtte per hektar, samlet støtte, grundværdi. Keywords: økonomi, finance, subsidies, støtte, tilskud, CVR, property, ejendom, grundværdi

설치로 이동

소스 정보

저장소
Klimabevaegelsen/landbruget.dk
최근 소스 활동
2026년 4월 6일 18:24
감지된 SKILL.md 언어
영어
스타
39
포크
15

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
r2-okonomi-data
description
Activates when querying financial/economic data from R2. Use this skill for: subsidies, farm financials, property values, CVR enrichment, ownership data, støtte per hektar, samlet støtte, grundværdi. Keywords: økonomi, finance, subsidies, støtte, tilskud, CVR, property, ejendom, grundværdi
# R2 Økonomi (Finance) Data Catalog Financial and economic data for Danish agricultural businesses. ## Frontend Metrics Supported | Metric Key | Danish Name | Description | |------------|-------------|-------------| | `subsidy_per_ha` | Støtte per hektar | Subsidy amount per hectare | | `total_subsidies` | Samlet støtte | Total subsidy amount | | `land_value` | Grundværdi | Property/land value | ## Available Datasets ### Silver Layer #### Subsidies (554K rows) **Path**: `r2://landbruget-data/silver/subsidies/*/data.parquet` | Column | Type | Description | Example | |--------|------|-------------|---------| | cvr_number | string | Company CVR (8 digits) | 31373077 | | markbloknummer | string | Field block number | 610341-27 | | marknummer | string | Field number | 1-0 | | afg_kode_navn | string | Crop code and name | 1 - Vårbyg | | imkareal | float | Declared area (ha) | 12.45 | | ansoegtha_grundbet | float | Applied area basic | 12.45 | | tilskudsberetha_grundbet | float | Eligible area basic | 12.45 | | grundbetaling_dkk | float | Basic payment DKK | 2500.00 | | oeko_tilskud_dkk | float | Organic subsidy DKK | 1500.00 | | pleje_af_graes_dkk | float | Grassland care DKK | 500.00 | **Schema (introspected)**: ``` cvr_number: string markbloknummer: string marknummer: string afg_kode_navn: string imkareal: double ansoegtha_grundbet: double tilskudsberetha_grundbet: double [28 columns total - multiple subsidy types] ``` #### Property Owners (8.2M rows) **Path**: `r2://landbruget-data/silver/property_owners/*/data.parquet` | Column | Type | Description | |--------|------|-------------| | bestemtFastEjendomBFENr | int64 | BFE number (cadastral ID) | | ejendePerson | struct | Person owner info (nested) | | ejendeVirksomhed | struct | Company owner info (nested) | | ejendeVirksomhed.CVRNummer | string | Owner's CVR number | **Nested Structure**: ``` bestemtFastEjendomBFENr: int64 ejendePerson: - Beskyttelser: list - Navn: struct - Standardadresse: struct ejendeVirksomhed: - CVRNummer: string - beliggenhedsadresse: struct ``` ### Gold Layer #### CVR Enrichment **Path**: `r2://landbruget-data/gold/cvr_enrichment/*/` Contains multiple enrichment files: - `address_geocoding.parquet` - Geocoded company addresses - `company_summary.parquet` - Aggregated company data | Column | Type | Description | |--------|------|-------------| | cvr_number | string | Company CVR | | latitude | float | Company location lat | | longitude | float | Company location lon | | total_area_ha | float | Total farmed area | | employee_count | int | Number of employees | ## Common Queries ### Get Total Subsidies by CVR ```python import duckdb from common.storage.filesystem import setup_duckdb_cloud_auth conn = duckdb.connect() setup_duckdb_cloud_auth(conn) # Read subsidies df = conn.execute(""" SELECT * FROM read_parquet('r2://landbruget-data/silver/subsidies/2025-01-10T00:00:26.377177/data.parquet') """).df() # Calculate total subsidies per CVR totals = df.groupby('cvr_number').agg({ 'grundbetaling_dkk': 'sum', 'oeko_tilskud_dkk': 'sum', 'imkareal': 'sum' }).reset_index() # Add subsidy per hectare totals['subsidy_per_ha'] = ( totals['grundbetaling_dkk'] + totals['oeko_tilskud_dkk'] ) / totals['imkareal'] ``` ### Find Property Owner by CVR ```python # Read property owners df = conn.execute(""" SELECT * FROM read_parquet('r2://landbruget-data/silver/property_owners/2025-01-10/data.parquet') """).df() # Filter by CVR (need to handle nested structure) import pandas as pd # Extract CVR from nested structure df['owner_cvr'] = df['ejendeVirksomhed'].apply( lambda x: x.get('CVRNummer') if x else None ) company_properties = df[df['owner_cvr'] == '31373077'] ``` ### Subsidies for Specific Field Block ```python # Get all subsidies for a markblok field_block_subsidies = df[df['markbloknummer'] == '610341-27'] print(f"Total area: {field_block_subsidies['imkareal'].sum():.2f} ha") print(f"Total basic payment: {field_block_subsidies['grundbetaling_dkk'].sum():.2f} DKK") ``` ### Calculate Municipal Subsidy Statistics ```python # Join with municipality data for geographic aggregation # Requires joining with field data that has municipality info from gcs_data_catalog.landbrugsareal import read_field_data fields = read_field_data(year=2024) subsidies_with_geo = df.merge( fields[['markbloknummer', 'municipality']], on='markbloknummer', how='left' ) municipal_stats = subsidies_with_geo.groupby('municipality').agg({ 'grundbetaling_dkk': 'sum', 'imkareal': 'sum' }).reset_index() ``` ## Join Keys | This Dataset | Join Column | Target Dataset | Target Column | |--------------|-------------|----------------|---------------| | subsidies | cvr_number | field_production | cvr_number | | subsidies | markbloknummer | fvm_marker | block_id | | property_owners | bestemtFastEjendomBFENr | cadastral | bfe_number | | property_owners | ejendeVirksomhed.CVRNummer | subsidies | cvr_number | ## Data Quality Notes ### Subsidies - **Update frequency**: Annual (after payment year closes) - **Coverage**: All EU agricultural subsidy recipients in Denmark - **Caveat**: Some CVR numbers may be inactive/closed companies ### Property Owners - **Update frequency**: Weekly - **Coverage**: All registered property owners in Denmark - **Caveat**: Nested JSON structure requires careful handling - **Privacy**: Personal owner data (ejendePerson) may have restrictions ## Related Skills - **landbrugsareal/** - Field boundaries for geographic context - **miljo/** - Environmental compliance affecting subsidies - **husdyr/** - Livestock data for animal-based subsidies - **medarbejdere/** - Employee data for labor cost analysis ## R2 Paths Reference ```bash # List available subsidy snapshots rclone lsd r2:landbruget-data/silver/subsidies/ # List CVR enrichment data rclone lsd r2:landbruget-data/gold/cvr_enrichment/ # List property owner snapshots rclone lsd r2:landbruget-data/silver/property_owners/ ```
GitHub에서 보기