Skip to main content
§ Product

Multi-Entity Consolidation Platform

A consolidation platform that ETLs from each entity's source-of-record system, normalizes to a unified chart of accounts, handles FX and intercompany eliminations, surfaces per-family-member and per-asset-type views, and enforces privacy partitions where the structure requires them.

Engagement
12–20 week build · ongoing data ops
Built for
CFOs · Controllers · Operations directors
§ Problem

Wealth lives across dozens of entities — trusts, partnerships, holding companies, personal accounts, charitable foundations — each with its own ledger. The CFO sees the picture by manually consolidating from a stack of monthly reports. The principals see the picture even more rarely.

What this is

The data infrastructure that makes the family office legible across entities. Three layers:

  • ETL. Per-entity connectors — accounting systems (AtlasFive, QuickBooks, NetSuite, Sage), custodian feeds, partnership statements (from the Statement & Capital-Call Ingestion Engine), trust accounting. Idempotent, retried, point-in-time.
  • Normalization. Unified chart of accounts with per-entity mappings. FX normalization at month-end. Intercompany elimination logic.
  • Surface. Per-family-member, per-entity-type, per-asset-class views. Privacy partitions enforced at the query layer. Drill-down to source entity and source transaction.

How it's built

Postgres or Snowflake as canonical storage, dbt for the transformation layer (with privacy partitioning expressed in dbt models), Prefect or Airflow for orchestration. Dashboard surfaces in Metabase, Hex, or a custom UI — the FO's preference. Privacy enforcement via row-level security at the database layer.

What you get

  • The unified schema and chart-of-accounts mapping.
  • Per-entity ETL connectors maintained as ongoing data ops.
  • Dashboards configured to the FO's reporting standards.
  • Privacy-partition rules documented and enforced.
  • Runbook for the data ops team handing off the platform.
§ How we engage

Engagement is shape, not list.

Length and price are functions of the data and the destination. The shape below is the typical engagement.

Length
12–20 week build · ongoing data ops

Scoped during the discovery call against the actual data and the operation it integrates with.

Lead
Bogdan

Principal engineer. Architecture and most code ships through one keyboard.

Cadence
Async, weekly

Written updates between, calls when the decision needs the room.

Bar
Production

Async correctness, capacity under burst, observability at every boundary.

§ Questions

What buyers ask about this one.

  • Doesn't Addepar already do this?

    Addepar does it well for the investment-portfolio half — performance, allocation, exposure across investment entities. This platform handles a broader scope: trust-level cash flows, operating-company holdings, partnership-level distributions, family-member expense allocation. Some FOs run both — Addepar for investment view, this for the operational consolidation. Others use this as the unified layer.

  • How does the privacy partitioning work?

    Per-family-member access controls expressed as row-level security in the data layer. The CFO sees everything; one principal sees their own entities and the consolidated family view; another principal might see only their direct holdings. The partition rules are documented per FO and enforced at the query layer, not the application layer.

  • What's the unified chart of accounts approach?

    A canonical CoA with per-entity mappings. Each entity's source ledger maps to the canonical structure; reports run against the canonical. When an entity changes its accounting (new categorization, restructured CoA), the mapping updates without breaking the reports.

  • How are intercompany eliminations handled?

    Inter-entity transfers tracked as a paired transaction set — a transfer from Trust A to Holding Co B shows up in both ledgers, eliminated at the consolidation layer. Where the FO's existing books have unrecorded intercompany legs, the platform surfaces them for the controller to resolve.

  • Pricing?

    Scoped to entity count and the source-system complexity. Discovery call covers both.

§ The next step

If the deliverable matches the gap, the next step is one call.

We'll scope length and price against your data and the operation it integrates with. No retainer, no fishing.

Bogdan and team · async-first · OP—2026