Every TREVL component has a type field that determines how itβs rendered. There are five types β two of them (chart and score) make up 98% of all production components.
| Type | Share | What it does |
|---|---|---|
π chart |
70.7% | Bar, line, pie, column β any Highcharts visualization |
π― score |
27.3% | Single KPI number with optional delta indicator |
π text |
1.7% | Static HTML content β icons, images, headings |
π table |
0.05% | Data table |
πΊοΈ map |
0.2% | Geographic visualization |
π chart
The workhorse. Renders any Highcharts visualization β bars, lines, pies, columns, scatter, gauges, and combinations.
id: Q-193
type: chart
template: bar_chart_with_delta_skilledworkers
queries:
- context: target_group
dimensions:
- hrmOptionDistributionSkilledworkers.optionText
measures:
- hrmOptionDistributionSkilledworkers.weightedShare
filters:
- member: hrmOptionDistributionSkilledworkers.questionKey
operator: equals
values:
- Q-193
computed:
- name: name
code: '"Zielgruppe"'
highchartsData:
series:
- data:
x: "$hrmOptionDistributionSkilledworkers.optionText"
y: "$hrmOptionDistributionSkilledworkers.weightedShare"
name: "$name"
A chart component has three main sections:
queriesβ What data to fetch (see Queries)highchartsDataβ How to render it (Highcharts series, axes, tooltips)templateβ Optional shared styling (see Templates)
The highchartsData section is a standard Highcharts configuration object, with one key difference: values can be $-references that get replaced with real data at render time.
Bar chart and pie chart β both rendered from declarative YAML, no JavaScript.
π― score
Displays a single headline number β like β78% Zufriedenheitβ β with an optional delta indicator showing the trend. This is the second most common component and powers all the KPI cards in HRM dashboards.
id: CS-177
type: score
template: score_comp_with_delta_skilledworkers
queries:
- context: target_group
measures:
- hrmOptionDistributionSkilledworkers.weightedShareOfQuestion
- hrmOptionDistributionSkilledworkers.weightedShareOfQuestionDelta
- hrmOptionDistributionSkilledworkers.weightedShareOfQuestionDeltaLabel
filters:
- member: hrmOptionDistributionSkilledworkers.questionKey
operator: equals
values:
- CS-177
- member: hrmOptionDistributionSkilledworkers.optionText
operator: equals
values:
- ">>"
- stimme zu
The score template renders:
- 78% β the main value from
weightedShareOfQuestion - β² 3,2 % β the trend from
weightedShareOfQuestionDeltaLabel
The display section controls formatting:
display:
value: "$hrmOptionDistributionSkilledworkers.weightedShareOfQuestion"
unit: "%"
header:
title: "Zufriedenheit mit dem Arbeitgeber"
icon: update
format:
minimumFractionDigits: 0
maximumFractionDigits: 1
π‘ The
optionTextfilter with">>"and"stimme zu"is a common HRM pattern β it aggregates the βagreeβ responses to calculate a top-box score.
π text
Static or semi-dynamic content blocks. Used for icons, images, headings, and explanatory text between charts. Text components usually donβt have queries.
id: EX-780_icon
type: text
queries: []
display:
text: "<center><img src='https://cdn.example.com/icons/chart-icon.png' width=100></center>"
Text components support:
- Raw HTML (
<img>,<center>,<b>,<a>) - Variable substitution with
$fieldreferences - No queries needed for purely static content
π table
Renders data as an HTML table. Used extensively with TIE API components for attribute lists (skills, tools, responsibilities) and vacancy data.
Cube table
id: data-table-1
type: table
queries:
- context: target_group
dimensions:
- CubeModel.category
measures:
- CubeModel.count
tableData:
columns:
- field: "$CubeModel.category"
header: "Kategorie"
- field: "$CubeModel.count"
header: "Anzahl"
TIE API table
TIE tables use api: tie with api-parameters instead of queries, and reference data with $endpoint.data.field:
id: hard-skills-table
type: table
api: tie
api-parameters:
limit: 16
threshold: 0.6
language: de
tableData:
index: false
columns:
- value: "$hard-skills.data.label"
identifier: skill
- value: "$hard-skills.data.similarity"
identifier: score
headers:
- name: "Kompetenz"
- name: "Relevanz"
Tables with TIE data support the same postprocess as charts β useful for reshaping nested API responses into flat table rows.
Note: Table components use
tableDatainstead ofhighchartsData. Columns usevalue+identifierfor TIE, orfield+headerfor Cube.
πΊοΈ map
Geographic visualizations. Used for Bundesland-level data in the SchΓΌler_innen target group. Typically paired with a filter parameter for region selection. Limited usage in the current production dataset.