Where dollars actually flow between LP channels and underlying strategies. Each ribbon's width = magnitude. Symmetric — both endpoints anchor the same dollar amount. Best for fixed taxonomies where you want to see structural pairings (custodian × admin, channel × strategy, etc.).
D3 v7's d3.chord layout. Edit the MATRIX (N×N) and NAMES arrays — both arcs and ribbons re-flow automatically.
const NAMES = ["RIA", "Family Office", "BD", "Institutional", "PE", "PC", "RE", "Infra"]; const MATRIX = [// rows = sources, cols = targets, value = $M [0, 0, 0, 0, 42, 28, 18, 14], // ... 8×8 symmetric matrix ];
Fixed taxonomy on both axes and you want to see the matrix as relationships, not cells. Skip when one side dominates or when you have more than ~12 nodes total — switch to sankey or heatmap.
Arc length = total volume for that node (sum across all pairings). Hover a ribbon for the pair magnitude. Channels sit on the left half of the ring; strategies on the right.