# eval-named-metrics (Named Metrics Example) This example demonstrates custom metric naming and derivation in promptfoo. ## Setup ```bash npx promptfoo@latest init --example eval-named-metrics cd eval-named-metrics ``` ## Run ```bash promptfoo eval ``` ## Features Demonstrated 1. **Dynamic Metric Names**: Using template variables like `{{speechStyle}}Style` in `defaultTest.assert` to apply different metric names per test case. This enables: - A single assertion definition that applies to all tests - Filtered results by the metric name that was dynamically generated 2. **Static Metric Names**: Hardcoded metric names like `Tone`, `Consistency`, and `Length` 3. **Derived Metrics**: Creating custom metrics based on formulas (e.g., `DoubleConsistency = Consistency * 2`) ## Dynamic Metric Example ```yaml defaultTest: assert: - type: llm-rubric value: The response uses {{speechStyle}} speech patterns metric: '{{speechStyle}}Style' tests: - vars: body: Ahoy there! speechStyle: pirate # Results in metric name "pirateStyle" - vars: body: Set sail! speechStyle: nautical # Results in metric name "nauticalStyle" ``` This allows you to maintain hundreds of test cases with a compact `defaultTest` configuration while still having unique, filterable metric names per test.