Account Network

What this sheet teaches. Who a chosen anchor account exchanges money with, on either side. The Account Network sheet visualizes the directed graph of money movements flowing in and out of that anchor, distinguishing inbound counterparties (those sending money INTO your anchor) from outbound counterparties (those your anchor sends money TO).

What you're looking at

Two Sankey diagrams dominate the top half of the sheet — Inbound — counterparties → anchor on the left and Outbound — anchor → counterparties on the right. Each ribbon's thickness represents the total dollar amount flowing along that edge. Below the Sankeys sits an Account Network — Touching Edges table listing every transfer leg connecting the anchor to a counterparty, ordered by amount descending. An Anchor account dropdown at the top left lets you pick which account to examine; a Min hop amount ($) slider filters noise edges below a dollar threshold.

The sheet uses the same underlying matview as the Money Trail sheet (inv_money_trail_edges) but presents it from the anchor account's point of view rather than from a chain's point of view. Every row on this sheet is one transfer leg; both Sankeys and the table all narrow when you pick an anchor and adjust the slider.

How to read the numbers

All three visuals (inbound Sankey, outbound Sankey, Account Network — Touching Edges table) read from the same inv_money_trail_edges matview, a recursive walk over the transfer_parent_id linkages in the base transactions table. Each row is one leg of a multi-leg transfer, capturing:

The matview filters WHERE status = 'Posted' and amount_money > 0 (targets only; negative amounts are sources by sign convention). The SQL joins each transfer's source leg (negative amount) to each target leg (positive amount) to emit one row per directed edge.

The two Sankeys are directionally filtered:

The Account Network — Touching Edges table reads the bidirectional dataset (no direction filter) and displays every leg touching the anchor, adding a counterparty_display column (target when source is the anchor; source when target is the anchor) so the table's walk-the-flow drill can move to the other side.

The Anchor account dropdown parameter (pInvANetworkAnchor) narrows all three datasets via (source_display = anchor OR target_display = anchor) (bidirectional) or directional-specific predicates (inbound/outbound). The Min hop amount ($) parameter filters hop_amount >= <<$pInvANetworkMinAmount>> at the database.

Common patterns

Unbalanced inbound vs. outbound volume

One Sankey is visually dense; the other is sparse or empty. This is normal — most accounts have asymmetric flow (a customer receives deposits but sends only refunds, or a liquidity buffer account sweeps money out but rarely receives). The Sankey diagram simply reflects the directionality of money at that anchor.

One dominant counterparty on each side

Most of the Inbound ribbon thickness comes from a single source; most of the Outbound thickness flows to a single target. In most institutions, this is expected — settlement accounts concentrate flow, operational accounts have a few key partners. Use the Min hop amount ($) slider to suppress small noise edges and see the bulk movement.

Walk-the-flow discovery

Left-click any node in either Sankey to pivot the anchor to that counterparty. The sheet re-renders in place, showing that counterparty's inbound and outbound network. This is your path-following tool — follow a suspicious money trail through the graph one hop at a time.

Empty Sankeys after anchor selection

You picked an anchor and the Sankeys render empty or nearly empty. This usually means:

Cycles or bidirectional edges

You notice the same counterparty appears as both a ribbon source and target (money flowing both ways with the anchor). This is expected — many banking relationships are mutual (you send ACH, they send ACH back; you wire out, they wire in). The two Sankeys keep this clean: inbound shows their sends to you; outbound shows your sends to them.

What "no rows" means

A clean empty sheet means one of the following:

If the matview row count shows zero on the App Info sheet, the SQL is dry — no transfers in the entire system. That's an ops alert, not an empty-state signal.

Cross-sheet drills


First time here? See the Vocabulary for matview, rail, chain and the other project-specific terms.