Please sign in to receive proper access rights.
{{ q.jobTitle }}
SOC: {{ q.soc }}
ISCO: {{ q.isco }}
Domain: {{ q.domain }}
job title containing: '{{ q.jobTitleFts }}'
skills containing: '{{ q.detailSkillsFts }}'
description containing: '{{ q.detailDescriptionFts }}'
responsibilities containing: '{{ q.detailResponsibilitiesFts }}'
education containing: '{{ q.detailEducationFts }}'
e.view.setTimeout(() => e.target.select())" @input="e => {
if (e.target.value.length < 4) return
if (!e.target.reportValidity()) return
const newRefYear = +e.target.value
const maxYear = max(byCountryAndYear || [], v => v.year) || 2030
if (newRefYear >= +q.targetYear) {
q.targetYear = newRefYear === maxYear ? maxYear : newRefYear + 1
}
q.refYear = e.target.value
}" @mouseup="e => e.target.select()" class="form-control d-inline-block" data-tour-ref-year="" step="1" style="width: 5em; min-width: 0;" type="number" v-if="['snapshot', 'evolution'].includes(q.tab)">
e.view.setTimeout(() => e.target.select())" @input="e => {
if (e.target.value.length < 4) return
if (!e.target.reportValidity()) return
q.targetYear = e.target.value
}" @mouseup="e => e.target.select()" class="form-control d-inline-block" step="1" style="width: 5em; min-width: 0;" type="number" v-if="'evolution' === q.tab">
{{name_long}} FTE
{{ (firstProjectedYear - 1) }} FTE
{{ (firstProjectedYear - 1) }}-{{(+q.targetYear || 2030) % 100 }}
{{'totalFTE' === 'growthFTE' ? 'growth (FTE)' : 'growth ratio' }}
e.currentTarget.classList.toggle('hard-highlighted', e.detail.enabled)" class="card-body highlight-container" v-for="sums in [cumsum(data, v => v.value)]">
{{ q.refYear || firstProjectedYear - 1 }} Jobs by Phase
{ e.currentTarget.classList.toggle('hard-highlighted', e.detail.enabled); e.currentTarget.ownerDocument.getElementById(`${id}-path-${i}`)?.classList.toggle('hard-highlighted', e.detail.enabled) }" class="d-flex gap-1 text-body highlightable" v-for="{ phase, value }, i in data" v-tooltip-trigger="{ tooltip: `${id}-legend-tooltip-${i}`, target: `${id}-legend-${i}` }">
{{ phase }}
onTooltipToggle(e, i)" class="tooltip" role="tooltip" v-for="target in ['legend', 'wedge']" v-tooltip-content="{ ...activeTooltipParams, show: el => activeTooltipParams.tooltip === el }">
{{ phase }} FTE
{{ `${(firstProjectedYear - 1)}${('totalFTE') === 'totalFTE' ? '' : '-' + ((+q.targetYear || 2030) % 100)}` }}
{{ ('totalFTE') === 'totalFTE' ? ' Jobs' : ' Growth' }}
(FTE)
| Onshore | Offshore | ||
|---|---|---|---|
| {{ searchString }} jobs | |||
| Total |
{{ `${(+q.targetYear || 2030)}${('totalFTE') === 'totalFTE' ? '' : '-' + ((+q.targetYear || 2030) % 100)}` }}
{{ ('totalFTE') === 'totalFTE' ? ' Jobs' : ' Growth' }}
(FTE)
| Onshore | Offshore | ||
|---|---|---|---|
| {{ searchString }} jobs | |||
| Total |
Employment Evolution
Number of jobs (FTE)
{{ year }}
{{name_long}} FTE
{{ ((+q.refYear || (firstProjectedYear - 1)) === (+q.targetYear || 2030) ? (+q.targetYear || 2030) - 1 : (+q.refYear || (firstProjectedYear - 1))) }} FTE
{{ ((+q.refYear || (firstProjectedYear - 1)) === (+q.targetYear || 2030) ? (+q.targetYear || 2030) - 1 : (+q.refYear || (firstProjectedYear - 1))) }}-{{(+q.targetYear || 2030) % 100 }}
{{(q.metric || 'growthFTE') === 'growthFTE' ? 'growth (FTE)' : 'growth ratio' }}
{{ `${(+q.targetYear || 2030)}${('totalFTE') === 'totalFTE' ? '' : '-' + ((+q.targetYear || 2030) % 100)}` }}
{{ ('totalFTE') === 'totalFTE' ? ' Jobs' : ' Growth' }}
(FTE)
| Onshore | Offshore | ||
|---|---|---|---|
| {{ searchString }} jobs | |||
| Total |
Employment Evolution
Number of jobs (FTE)
{{ year }}
{{name_long}} FTE
{{ (+q.refYear || (firstProjectedYear - 1)) }} FTE
{{ (+q.refYear || (firstProjectedYear - 1)) }}-{{(+q.targetYear || 2030) % 100 }}
{{'totalFTE' === 'growthFTE' ? 'growth (FTE)' : 'growth ratio' }}
{{ `${(+q.refYear || (firstProjectedYear - 1))}${('totalFTE') === 'totalFTE' ? '' : '-' + ((+q.targetYear || 2030) % 100)}` }}
{{ ('totalFTE') === 'totalFTE' ? ' Jobs' : ' Growth' }}
(FTE)
| Onshore | Offshore | ||
|---|---|---|---|
| {{ searchString }} jobs | |||
| Total |
e.currentTarget.classList.toggle('hard-highlighted', e.detail.enabled)" class="card-body highlight-container" v-for="sums in [cumsum(data, v => v.value)]">
{{ q.refYear || firstProjectedYear - 1 }} Jobs by Phase
{ e.currentTarget.classList.toggle('hard-highlighted', e.detail.enabled); e.currentTarget.ownerDocument.getElementById(`${id}-path-${i}`)?.classList.toggle('hard-highlighted', e.detail.enabled) }" class="d-flex gap-1 text-body highlightable" v-for="{ phase, value }, i in data" v-tooltip-trigger="{ tooltip: `${id}-legend-tooltip-${i}`, target: `${id}-legend-${i}` }">
{{ phase }}
onTooltipToggle(e, i)" class="tooltip" role="tooltip" v-for="target in ['legend', 'wedge']" v-tooltip-content="{ ...activeTooltipParams, show: el => activeTooltipParams.tooltip === el }">
{{ phase }} FTE
{{ detail.description }}
Skills:
Responsibilities:
Education:
{{ detail.education }}
Qualifications:
{{ detail.qualifications }}
Salary:
{{ detail.salary }}
{{ job?.domain?.description }}
ISCO-{{ job?.isco }}
{{ job?.iscoDescription }}
SOC-{{ job?.soc }}
{{ job?.socDescription }}
FTE
{{ year }}:
The combination of filters you've selected doesn't return any data. Please try adjusting the filters or contact us at [email protected].
Quick tour
Welcome to the Workforce tool.
This tool is designed to help you explore and understand WindEurope's wind energy workforce data.
Quick tour
Charts and data visualisations are interactive.
Hover over Tap on any element to reveal additional detail, breakdowns, and context behind the numbers.
Unless specified otherwise values are expressed in full time job equivalents (FTE).
Overview: see the current workforce landscape at a glance.
Snapshot: compare figures across countries and job types for a given year.
Evolution: track how the workforce changes over time.
Industry Jobs: drill into workforce figures broken down by job category across the wind industry.
Quick tour
The tool consists of four tabs: Overview, Snapshot, Evolution, and Industry Jobs. You can switch between them using the menu at the top of the page.
Use this field to change which year is displayed.
Quick tour
The Snapshot tab shows a cross-sectional view of the workforce for a specific year.
Use the reference year and target year to define the comparison period.
Switch the metric between absolute FTE numbers and growth ratios; growth ratios colour the map by relative change, making it easier to compare countries of different sizes.
Quick tour
The Evolution tab lets you compare the workforce between two points in time and visualise the change on the map.
Click a phase to expand it and see the job titles within.
Click a job title to expand it and see the domains it is applied in, along with extra details.
Quick tour
The Industry Jobs tab breaks down the workforce by project phase and job title.
Quick tour
The mini graphs show FTE trends over time showing a yearly breakdown with forecast.
You can create a filter by using the dropdown to select a filter category.
You can also filter by clicking on a value in the page itself, for instance the phase here.
Or by clicking on a country…
Or by clicking on a job description.
You can also create a filter by searching some text here.
Click × to remove an active filter.
Quick tour
You can create subsets of the data by applying filters.
These filters apply to all tabs.
}
For details on the data and how to interpret the results, see Behind the numbers in the footer.
You can restart this tour at any time using the Quick tour button.
You don't have the necessary rights to access the tool. Please contact
the membership team
to upgrade.