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