alts-data-integrity / docs /ARCHITECTURE.md
Torres1980's picture
Add production architecture doc
b82082c verified
|
Raw History Blame Contribute Delete
3.37 kB

Production Architecture

How the demo engine would run against live Addepar and iCapital data.

Data flow

iCapital ──(positions, activity, NAV / contract values)──┐
                                                          β”œβ”€β–Ί Staging ─► Mapping ─► Reconcile ─► Rules
Addepar  ──(positions, transactions, valuations)β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                         β”‚
                                                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
                                                       β–Ό                                           β–Ό
                                            Addepar import file                          Exception queue
                                            (adds, reclasses, marks)                     (ops review + sign-off)
                                                       β”‚                                           β”‚
                                                       └──────────────► Audit log β—„β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. Ingest. Pull the iCapital extracts and Addepar exports for the same as-of date into a staging schema. Store raw files unchanged for audit.
  2. Map. Resolve iCapital fund, share class, and contract IDs to Addepar security IDs through a maintained security master. Unmapped items stop at this step and go to the queue; nothing downstream guesses.
  3. Reconcile. Run the three layers (reference, commitment and activity, valuation) per account and holding. Activity ties on the iCapital event ID, never on amount.
  4. Apply rules. Rule-based, reversible fixes are written to the Addepar import file. Everything else becomes an exception with evidence and a suggested fix.
  5. Review. Ops works the queue. Approved fixes join the next import; rejected ones carry a reason code that feeds rule tuning.
  6. Report. Cycle metrics: auto-resolution rate, exceptions by type, aging, and hours.

Cadence

Run Scope
Daily Activity: new calls, distributions, premiums. Capital calls surface before their due date.
Monthly Full reconciliation, including evergreen fund NAVs and insurance contract values
Quarterly Drawdown fund NAVs as GP statements post; stale-mark sweep

Controls

  • Four-eyes on destructive changes: deletes, commitment edits, and new securities.
  • Tolerances in config: rounding ($1.00) and staleness (120 days) live in config, not code, and changes are logged.
  • Idempotent imports: every row carries its source reference, so re-running a cycle never double-books.
  • Insurance values: tie out to the carrier statement; surrender value and death benefit can be added as further checks per product.
  • Answer-key testing: the generator injects known breaks, and the tests require 100% detection with zero false positives before a rule change ships.

Extending

  • Unfunded commitment and pacing checks against iCapital capital account statements
  • Recallable distribution tracking
  • K-1 and 1099 status per position for tax season
  • CRM task creation (for example in Salesforce) for exceptions that need client or GP outreach