Overview
Measures are quantitative calculations and aggregations that provide business insights (like total revenue, average order value, or customer count). Measures enable you to analyze and aggregate your data in meaningful ways, providing the “what” to your dimensions’ “how.”Measure Types
| Type | Description | Example |
|---|---|---|
count | Count of records | Total number of orders |
sum | Sum of values | Total revenue |
average | Arithmetic mean | Average order value |
min | Minimum value | Smallest order amount |
max | Maximum value | Largest order amount |
count_distinct | Count of unique values | Number of unique customers |
median | Median (50th percentile) | Median order value |
custom | Custom SQL expression | Complex calculations |
Measure Properties
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Unique identifier within the view |
type | string | Yes | Measure type |
description | string | No | Human-readable description |
expr | string | Conditional | SQL expression (required for most types) |
filters | array | No | Filters to apply to the measure |
samples | array | No | Example values for documentation |
synonyms | array | No | Alternative names |
Basic Measures
Count
Count the number of records:Sum
Sum numeric values:Average
Calculate the arithmetic mean:Min/Max
Find minimum or maximum values:Count Distinct
Count unique values:Median
Calculate the median value:Filtered Measures
Apply filters to create conditional aggregations:Custom Measures
For complex calculations, use thecustom type:
Cross-Entity Measures
Reference dimensions or measures from related entities using{{entity.field}} syntax:
Best Practices
Naming
- Use descriptive names that indicate the metric (e.g.,
total_revenue,avg_order_value) - Prefix with aggregation type when helpful (e.g.,
avg_,total_,max_) - Avoid technical prefixes like
msr_ormeasure_
Documentation
- Always provide clear descriptions
- Add synonyms for metrics commonly referenced with different terms
- Document any business rules or calculations
- Include example values when helpful
Expression Design
- Always use
NULLIFto prevent division by zero - Handle NULL values appropriately in calculations
- Consider performance implications of complex expressions
- Test custom measures thoroughly
Filtered Measures
- Use filtered measures instead of creating separate views
- Name filtered measures descriptively (e.g.,
large_orders_count) - Document the filter conditions in the description
- Consider performance when applying multiple filters