Skip to content
gcs-medarbejdere-data logo

GCS Medarbejdere (Employees) Data Catalog

gcs-medarbejdere-data

Activates when querying employee and workplace safety data from GCS. Use this skill for: Arbejdstilsynet inspections, work permits, safety violations, workplace accidents, compliance rates, foreign workers, incident tracking. Keywords: medarbejdere, employees, worker, arbejdstilsynet, inspection,...

SKILL.md

Full skill instructions

GCS Medarbejdere (Employees) Data Catalog

Employee and workplace safety data from regulatory inspections and incident reports.

Frontend Metrics Supported

Metric KeyDanish NameDescription
worker_safety_violationsArbejdsmiljøovertrædelserWorkplace safety violations
foreign_workersUdenlandske arbejdereForeign worker registrations
work_accidentsArbejdsulykkerWorkplace accident count
inspection_frequencyTilsynsfrekvensInspection frequency rate
compliance_rateOverholdelsesrateOverall compliance rate

Available Datasets

Gold Layer

Arbejdstilsynet Inspections (536 rows)

Path: gs://$GCS_BUCKET/​gold/​arbejdstilsynet_inspections/​*/​data.parquet

ColumnTypeDescriptionExample
datedateInspection date2024-05-15
case_countintNumber of cases3
decisionstringInspection decisionPåbud
work_env_issuestringWork environment issueErgonomi
cvr_numberstringCompany CVR31373077
company_namestringCompany nameLandbrugsbedrift A/​S
industrystringIndustry classificationLandbrug
severity_scorefloatSeverity (0-10)7.5
company_compliance_ratefloatHistorical compliance (0-1)0.85
is_repeat_offenderboolPrevious violationsfalse
inspector_idstringInspector identifierAT-123
follow_up_datedateFollow-up scheduled2024-08-15
fine_amount_dkkfloatFine if applicable25000.0
corrective_deadlinedateDeadline for correction2024-06-30

Schema (introspected):

date: date32
case_count: int64
decision: string
work_env_issue: string
cvr_number: string
company_name: string
industry: string
severity_score: double
company_compliance_rate: double
is_repeat_offender: bool
inspector_id: string
follow_up_date: date32
fine_amount_dkk: double
corrective_deadline: date32
[29 columns total]

Silver Layer

Work Permits

Path: gs://$GCS_BUCKET/​silver/​work permits/​*/​data.parquet

ColumnTypeDescription
cvr_numberstringCompany CVR
permit_typestringType of permit
nationalitystringWorker nationality
issue_datedatePermit issue date
expiry_datedatePermit expiry date
worker_countintNumber of workers
Worker Safety Reports

Path: gs://$GCS_BUCKET/​silver/​worker safety/​*/​data.parquet

ColumnTypeDescription
cvr_numberstringCompany CVR
report_datedateReport date
incident_typestringType of incident
injury_severitystringSeverity level
days_lostintWorkdays lost
body_part_affectedstringInjured body part
activity_duringstringActivity at time
Stable Fires (Incidents)

Path: gs://$GCS_BUCKET/​silver/​stable fires/​*/​data.parquet

ColumnTypeDescription
incident_datedateDate of fire
locationbinaryLocation (WKB)
farm_typestringType of farm
animals_affectedintAnimals impacted
causestringFire cause
damage_estimate_dkkfloatEstimated damage
Transport Accidents

Path: gs://$GCS_BUCKET/​silver/​transportation accidents/​*/​data.parquet

ColumnTypeDescription
incident_datedateAccident date
locationbinaryLocation (WKB)
vehicle_typestringType of vehicle
cargo_typestringCargo description
injuriesintNumber injured
fatalitiesintNumber of fatalities

Bronze Layer

DMA Permits

Path: gs://$GCS_BUCKET/​bronze/​dma/​*/​data.parquet

ColumnTypeDescription
cvr_numberstringCompany CVR
permit_numberstringPermit ID
permit_typestringPermit category
valid_fromdateStart date
valid_untildateEnd date
conditionsstringPermit conditions

Common Queries

Get Inspection History for CVR

import pyarrow.parquet as pq
from google.cloud import storage
import io

client = storage.Client()
bucket = client.bucket('$GCS_BUCKET')

# Read arbejdstilsynet inspections
blob = bucket.blob('gold/​arbejdstilsynet_inspections/​2025-01-10/​data.parquet')
buffer = io.BytesIO()
blob.download_to_file(buffer)
buffer.seek(0)
df = pq.read_table(buffer).to_pandas()

# Filter by CVR
cvr = '31373077'
company_inspections = df[df['cvr_number'] == cvr]

print(f"Total inspections: {len(company_inspections)}")
print(f"Total cases: {company_inspections['case_count'].sum()}")
print(f"Average severity: {company_inspections['severity_score'].mean():.2f}")
print(f"Compliance rate: {company_inspections['company_compliance_rate'].iloc[-1]:.2%}")

Calculate Industry Compliance Rates

# Aggregate by industry
industry_stats = df.groupby('industry').agg({
    'cvr_number': 'nunique',
    'case_count': 'sum',
    'severity_score': 'mean',
    'company_compliance_rate': 'mean',
    'is_repeat_offender': 'sum'
}).reset_index()

industry_stats.columns = ['industry', 'companies', 'total_cases',
                          'avg_severity', 'avg_compliance', 'repeat_offenders']
industry_stats = industry_stats.sort_values('avg_compliance', ascending=True)

Find Repeat Offenders

# Companies with multiple violations
repeat_offenders = df[df['is_repeat_offender'] == True]

# Group by company
offender_summary = repeat_offenders.groupby(['cvr_number', 'company_name']).agg({
    'case_count': 'sum',
    'severity_score': 'mean',
    'fine_amount_dkk': 'sum'
}).reset_index()
offender_summary = offender_summary.sort_values('case_count', ascending=False)

Severity Analysis by Issue Type

# Analyze by work environment issue category
issue_analysis = df.groupby('work_env_issue').agg({
    'case_count': 'sum',
    'severity_score': 'mean',
    'fine_amount_dkk': 'sum'
}).reset_index()
issue_analysis = issue_analysis.sort_values('severity_score', ascending=False)

Monthly Inspection Trends

import pandas as pd

# Convert to datetime
df['inspection_month'] = pd.to_datetime(df['date']).dt.to_period('M')

monthly_stats = df.groupby('inspection_month').agg({
    'cvr_number': 'nunique',
    'case_count': 'sum',
    'severity_score': 'mean'
}).reset_index()
monthly_stats.columns = ['month', 'companies_inspected', 'total_cases', 'avg_severity']

Calculate Fines by Municipality

# Join with CVR address data for geographic analysis
# (requires joining with okonomi/​cvr_enrichment data)
from gcs_data_catalog.okonomi import read_cvr_data

cvr_geo = read_cvr_data()
inspections_with_geo = df.merge(
    cvr_geo[['cvr_number', 'municipality']],
    on='cvr_number',
    how='left'
)

municipal_fines = inspections_with_geo.groupby('municipality').agg({
    'fine_amount_dkk': 'sum',
    'case_count': 'sum'
}).reset_index()

Foreign Worker Analysis

# Read work permits
blob = bucket.blob('silver/​work permits/​2025-01-10/​data.parquet')
buffer = io.BytesIO()
blob.download_to_file(buffer)
buffer.seek(0)
permits = pq.read_table(buffer).to_pandas()

# Count by nationality
nationality_counts = permits.groupby('nationality').agg({
    'worker_count': 'sum'
}).reset_index()
nationality_counts = nationality_counts.sort_values('worker_count', ascending=False)

# Companies with most foreign workers
company_workers = permits.groupby('cvr_number').agg({
    'worker_count': 'sum'
}).reset_index()
company_workers = company_workers.sort_values('worker_count', ascending=False)

Decision Types

Decision (Danish)EnglishSeverity
PåbudOrder/​RequirementMedium
ForbudProhibitionHigh
VejledningGuidanceLow
AfgørelseDecisionVaries
StrakspåbudImmediate OrderHigh
RådgivningspåbudAdvisory OrderMedium

Work Environment Issues

Common categories in work_env_issue:

  • Ergonomi - Ergonomic issues (lifting, posture)
  • Kemisk arbejdsmiljø - Chemical hazards
  • Psykisk arbejdsmiljø - Psychological work environment
  • Ulykker - Accident prevention
  • Støj - Noise exposure
  • Maskinsikkerhed - Machine safety
  • Bygge og anlæg - Construction safety

Join Keys

This DatasetJoin ColumnTarget DatasetTarget Column
arbejdstilsynetcvr_numbersubsidiescvr_number
arbejdstilsynetcvr_numberfield_productioncvr_number
arbejdstilsynetcvr_numberpesticide_disaggregationcvr_number
work_permitscvr_numberarbejdstilsynetcvr_number
worker_safetycvr_numberarbejdstilsynetcvr_number

Data Quality Notes

Arbejdstilsynet Inspections

  • Update frequency: After inspection completion
  • Coverage: All inspected agricultural businesses
  • Source: Danish Working Environment Authority
  • Caveat: Not all farms inspected - risk-based selection

Work Permits

  • Update frequency: Monthly
  • Coverage: All registered foreign worker permits
  • Source: SIRI (Danish Immigration Service)

Incidents (Fires, Accidents)

  • Update frequency: After incident reporting
  • Coverage: Reported incidents only
  • Caveat: Underreporting possible

Compliance Score Interpretation

The company_compliance_rate field (0-1 scale):

  • 0.90-1.00: Excellent compliance history
  • 0.75-0.89: Good compliance, minor issues
  • 0.50-0.74: Moderate compliance, attention needed
  • 0.00-0.49: Poor compliance, likely repeat offender

Related Skills

  • okonomi/​ - Company financial data for CVR context
  • landbrugsareal/​ - Land area and farm size context
  • miljo/​ - Environmental compliance (related violations)
  • husdyr/​ - Livestock operations (animal handling safety)

GCS Paths Reference

# List arbejdstilsynet inspection data
gsutil ls gs://$GCS_BUCKET/​gold/​arbejdstilsynet_inspections/

# List work permit data
gsutil ls gs://$GCS_BUCKET/​silver/​work\ permits/

# List worker safety data
gsutil ls gs://$GCS_BUCKET/​silver/​worker\ safety/

# List incident data
gsutil ls gs://$GCS_BUCKET/​silver/​stable\ fires/
gsutil ls gs://$GCS_BUCKET/​silver/​transportation\ accidents/

# List DMA permit data
gsutil ls gs://$GCS_BUCKET/​bronze/​dma/

Agricultural-Specific Safety Concerns

Common issues in agricultural workplace inspections:

  1. Machine safety - Tractors, harvesters, feed machinery
  2. Chemical exposure - Pesticides, fertilizers, cleaning agents
  3. Animal handling - Large animal injuries, zoonotic diseases
  4. Ergonomics - Repetitive lifting, awkward postures
  5. Confined spaces - Silos, manure pits, grain bins
  6. Environmental - Heat stress, cold exposure, UV radiation

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View