Every business generates financial data across multiple systems. A sale happens in your POS. A payment flows through Stripe. A deposit lands in your bank. A fee gets deducted by a delivery platform. These are all events describing the same underlying economic activity — but they live in different systems, in different formats, with different identifiers.
An enrichment graph is a data structure that connects these events into a single, traversable network.
From flat tables to connected events
Traditional financial systems store transactions in flat tables. Each source gets its own table, its own schema, its own primary keys. To understand a transaction end-to-end, you join across tables using brittle matching rules — amount ranges, date windows, location codes.
An enrichment graph inverts this. Instead of storing records and hoping to match them later, it treats every financial event as a node and every relationship as an edge. A sale node connects to a payment node connects to a settlement node connects to a deposit node. The graph is the reconciliation.
Why graphs beat joins
Relational joins work when the relationship is one-to-one and the matching key is obvious. Financial data is rarely either. A single bank deposit might correspond to hundreds of individual transactions. A partial refund splits an originally clean match into something no simple join can handle.
Graphs handle this naturally. A deposit node can have edges to hundreds of transaction nodes. A refund node can split an existing edge. The data model matches the messy reality of money movement instead of forcing it into rigid rows and columns.
What you can do with it
Once your financial data lives in a graph, questions that used to require hours of manual investigation become traversals:
- Trace a deposit: Start at any bank deposit and walk backward through every transaction that contributed to it — across POS systems, payment processors, and delivery platforms.
- Find unmatched transactions: Query for nodes with missing edges. If a sale has no corresponding payment, the graph knows.
- Calculate true unit economics: Walk from a sale through every fee, deduction, and settlement to compute the actual margin on any transaction, location, or time period.
This is the core data structure behind Genledger. Every integration we build adds nodes and edges to the graph. Every query, report, and reconciliation runs against it.