Ensure you have two simple or count metrics — one representing the base event (e.g., signups) and one representing the conversion event (e.g., paid_signups) — already defined in your semantic models
Add a new metric entry with type: conversion and specify the required conversion_type_params keys: entity (the identifier tracking user paths), base_metric, conversion_metric, and calculation (e.g., conversion_rate)
Optionally set window to limit the time window within which the conversion must occur (e.g., window: 7 days)
Use constant_properties to match attribute values between the base and conversion events when you need to constrain the funnel by a shared property
Query the metric with dbt sl query --metrics paid_signup_conversion --group-by metric_time__week to validate results
Known gotchas
Conversion metrics require a time spine to be configured because they rely on time-windowed event matching; running without one will produce an error
The entity specified in conversion_type_params must exist in the semantic models that define both the base and conversion metrics, otherwise MetricFlow cannot trace the conversion path
conversion_rate returns a value between 0 and 1; if you need a percentage display, apply formatting at the BI layer rather than in the metric definition
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp