01 · fan-before-aggregate
shape: wrong shape
trigger
a join on a non-unique lookup key, then a SUM downstream.
claude code
joins first, aggregates second. Every row is multiplied by its match count on the other side.
signalpilot rule
grain drift on any monetary or count aggregate must produce a red diff, not a green check.