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:

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.


๐ŸŽฏ 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:

The display section controls formatting:

display:
  value: "$hrmOptionDistributionSkilledworkers.weightedShareOfQuestion"
  unit: "%"
  header:
    title: "Zufriedenheit mit dem Arbeitgeber"
    icon: update
  format:
    minimumFractionDigits: 0
    maximumFractionDigits: 1

๐Ÿ’ก The optionText filter 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:


๐Ÿ“‹ 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 tableData instead of highchartsData. Columns use value + identifier for TIE, or field + header for 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.