Filters restrict which data rows are returned by a query. They’re the most fundamental building block — 98.5% of all HRM components have at least one filter. Without filters, you’d get the entire dataset; with them, you get exactly the slice you need.
📋 Filter Structure
filters:
- member: cube.fieldName
operator: equals
values:
- "value1"
- "value2"
⚖️ Filter Operators
| Operator | Description | Example |
|---|---|---|
equals |
Exact match (most common) | values: ["Q-193"] |
notEquals |
Exclusion | values: ["excluded_value"] |
gt |
Greater than | values: ["100"] |
gte |
Greater than or equal | values: ["0"] |
afterDate |
Date after | values: ["1999"] |
beforeDate |
Date before | values: ["2025"] |
set |
Value is not null | (no values needed) |
📌 Static Filters
Hardcoded values that don’t change with user interaction:
filters:
# Filter by question key — every chart has this
- member: hrmOptionDistributionAcademics.questionKey
operator: equals
values:
- Q-193
# Filter by survey period
- member: hrmOptionDistributionAcademics.periodFilter
operator: equals
values:
- Jan 25
# Filter by comparison period (for delta charts)
- member: hrmOptionDistributionAcademics.periodCompare
operator: equals
values:
- Jul 24
# Filter specific answer options (for score components)
- member: hrmOptionDistributionAcademics.optionText
operator: equals
values:
- ">>"
- stimme zu
🔄 Dynamic Filters (Parameters)
Filters bound to user selections in the UI. The parameter field references a runtime variable:
filters:
- member: hrmOptionDistributionAcademics.geschlechtFilter
operator: equals
parameter: "$param_geschlecht_zielgruppe"
- member: hrmOptionDistributionAcademics.berufsgruppeFilter
operator: equals
parameter: "$param_berufsgruppe_zielgruppe"
- member: hrmOptionDistributionAcademics.berufserfahrungFilter
operator: equals
parameter: "$param_berufserfahrung_zielgruppe"
- member: hrmOptionDistributionAcademics.migrationFilter
operator: equals
parameter: "$param_migration_zielgruppe"
- member: hrmOptionDistributionAcademics.regionFilter
operator: equals
parameter: "$param_region_zielgruppe"
Standard HRM Filter Parameters
Every HRM chart with demographic filtering uses these 5 parameter pairs:
| Parameter (Zielgruppe) | Parameter (Vergleichsgruppe) | UI Label |
|---|---|---|
$param_geschlecht_zielgruppe |
$param_geschlecht_vergleichsgruppe |
Geschlecht |
$param_berufsgruppe_zielgruppe |
$param_berufsgruppe_vergleichsgruppe |
Berufsgruppe |
$param_berufserfahrung_zielgruppe |
$param_berufserfahrung_vergleichsgruppe |
Berufserfahrung |
$param_migration_zielgruppe |
$param_migration_vergleichsgruppe |
Migrationshintergrund |
$param_region_zielgruppe |
$param_region_vergleichsgruppe |
Region |
When a parameter is empty/unset, the filter is effectively ignored (returns all values).
📅 Date Filters
Used for time-series data (e.g., Marktdaten in Schüler_innen):
filters:
- member: HrmScholarBundesland.stichtag
operator: afterDate
values:
- '1999'
- member: HrmScholarBundesland.stichtag
operator: beforeDate
values:
- '2024'
Filter + Parameter on same field
A filter can combine static values with a dynamic parameter. If the parameter is set, it overrides the static value:
- member: cube.periodFilter
operator: equals
values:
- Jan 25 # Default
parameter: "$param_period_filter_zielgruppe" # Override if user selects