January 12, 2025 · 7 min read
How We Fixed Fan-Out Joins Before They Hit Production
Fan-out joins can hide in workbook calcs. Here is how we surface them before dbt docs break.
#lint#quality#metricflow
### Why fan-out joins spiked support tickets
When Tableau workbooks layer on multiple bridge tables, you can end up duplicating fact rows. We built a lint rule that inspects workbook relations, flags risky many-to-many joins, and suggests a semantic model rewrite.
### The guard we add in MetricLayer
- Parse workbook relationships - Detect measures on the many side - Surface an error with suggested dimension grain
Pair this with CI and the issue never reaches production dashboards.