Prompt
How do I set up an investment data aggregation platform for daily account normalization and reconciliation?
Latest observation
Here’s a practical blueprint for setting up an investment data aggregation platform focused on daily account normalization and reconciliation.
1) Define the target operating model
Start by being clear on what “normalized” means for your business.
Core goals
- Aggregate data from custodians, brokers, administrators, banks, OMS/EMS, and fund admins
- Normalize all holdings, transactions, prices, cash, and corporate actions into a common model
- Reconcile daily across:
- positions
- cash
- trades
- market values
- performance inputs
- fees/expenses
- Produce exception-based workflows for breaks
Typical users
- Operations
- Finance / controllers
- Portfolio accounting
- Middle office
- Client reporting
- Data engineering / vendor ops
2) Design the canonical data model
This is the foundation. Without a strong canonical model, reconciliation becomes brittle.
Core entities
At minimum, create standardized tables/entities for:
- Legal entity / fund / account
- Security master
- Instrument reference
- Counterparty / broker / custodian
- Transaction
- Position
- Cash balance
- Price
- FX rate
- Corporate action
- Fee / accrual
- GL mapping
- Reconciliation exception
Standardize identifiers
Use stable internal keys and keep source identifiers as aliases:
- Account ID
- Security ID
- Instrument ID
- Legal entity ID
- Custodian account ID
- Broker account ID
Normalize dimensions
Consistently standardize:
- currency
- time zone
- trade date vs settle date
- quantity signs
- long/short conventions
- lot identifiers
- tax lots
- asset class / instrument type
- valuation basis
3) Build ingestion pipelines
You’ll need robust ingestion from heterogeneous sources.
Common source types
- File transfers: SFTP, FTPS, shared buckets
- APIs: custodian, market data, pricing, accounting platforms
- SWIFT / ISO 20022 messages
- Direct database pulls
- Webhooks / event streams
- Manual uploads for exceptions
Ingestion design principles
- Land raw data unchanged in a raw zone
- Timestamp every file/message with:
- received time
- source timestamp
- effective date
- batch/run ID
- Keep full lineage:
- source system
- file name
- record hash
- load status
- validation status
Recommended layers
- Landing/raw
- Staging/parsed
- Standardized/normalized
- Reconciliation/output
- Audit/archive
4) Create validation and normalization rules
Before reconciliation, data must be standardized.
Validation checks
- schema and format checks
- required fields present
- valid dates/currencies
- duplicate detection
- negative/positive quantity rules
- stale price checks
- unsupported instrument types
- cross-field consistency checks
Normalization rules
Examples:
- Convert all quantities to a standard sign convention
- Map instrument types to a controlled taxonomy
- Convert prices to common decimal precision
- Convert local currency values to base currency
- Standardize trade date / settle date fields
- Normalize corporate action adjustments
- Normalize cash balances by currency and account
Master data enrichment
Enhance transactions/positions with:
- security master identifiers
- issuer and parent entity
- country / sector / asset class
- listing exchange
- accrual conventions
- coupon / maturity for fixed income
5) Build reconciliation logic
Daily reconciliation should be exception-driven, not manual spreadsheet comparison.
Reconcile at multiple levels
1. Position reconciliation
Compare holdings by:
- account
- security
- lot if needed
- currency
- strategy / sleeve if required
Typical fields:
- quantity
- market value
- cost basis
- unrealized P&L
2. Cash reconciliation
Compare:
- beginning cash
- cash movements
- fees / expenses
- settlement activity
- ending cash
3. Trade reconciliation
Compare executed/allocated/settled trades across OMS, PB, custodian, and accounting.
4. Price reconciliation
Compare your price feed against approved source(s), with tolerance bands.
5. Corporate action reconciliation
Check dividends, splits, mergers, spin-offs, redemptions.
Break types
Classify exceptions by root cause:
- missing record
- unmatched record
- quantity mismatch
- price mismatch
- FX mismatch
- timing difference
- corporate action not applied
- static data issue
- processing error
Tolerances
Use configurable tolerances:
- currency-based thresholds
- percentage thresholds
- security-specific thresholds
- account-specific thresholds
6) Implement a reconciliation engine
A good engine should support both deterministic matching and configurable rules.
Matching strategy
- Exact match on primary keys where possible
- Fuzzy or hierarchical matching when needed:
- account + security + trade date
- account + security + settle date
- account + instrument + price date
Matching workflow
- Load source A and source B
- Normalize both datasets
- Apply matching rules
- Generate matched pairs
- Compute deltas
- Classify exceptions
- Route breaks to workflows
- Persist audit trail
Exception workflow capabilities
- assign owner
- status tracking
- comments / notes
- evidence attachments
- aging / SLA
- escalation rules
- root cause coding
- resolution logging
7) Make data quality and controls first-class
You need operational controls from day one.
Control framework
- ingestion completeness checks
- record counts by source/day
- hash totals / control totals
- balance checks
- cross-source consistency checks
- cut-off time checks
- replay/reprocessing capability
Auditability
Maintain:
- input snapshots
- transformation logs
- rule versions
- reconciliation run IDs
- user actions
- approvals / overrides
8) Choose an architecture
A typical modern architecture:
Data flow
- Sources → Ingestion
- → Raw storage (object storage/data lake)
- → Processing layer (ETL/ELT)
- → Normalized warehouse
- → Reconciliation service
- → Exception workflow/UI
- → Reporting/API layer
Common tech stack options
Storage
- Data lake: S3, ADLS, GCS
- Warehouse: Snowflake, BigQuery, Redshift, Databricks SQL
Processing
- Spark / Databricks
- dbt for transformations
- Airflow / Prefect / Dagster for orchestration
APIs / services
- Python or Java microservices
- REST/GraphQL for internal access
- message queue/event bus if near-real-time needed
Workflow/UI
- Custom web app
- Workflow tools like ServiceNow, Jira, or internal exception platform
9) Set up daily batch operations
Most investment reconciliations are batch-based, typically overnight.
Suggested daily schedule
- Receive source files/APIs
- Validate completeness
- Parse and normalize
- Load reference data
- Run reconciliations in sequence:
- security master
- prices
- transactions
- positions
- cash
- corporate actions
- Publish exceptions
- Generate sign-off reports
- Archive and close day
Operational design
- idempotent runs
- rerun by source/date
- late data handling
- backfill capability
- versioned outputs
10) Build reporting and dashboards
Operations will need visibility into exceptions and trends.
Key dashboards
- open breaks by severity
- aging by source/account
- breaks by root cause
- breaks by security type
- source delivery timeliness
- match rates over time
- daily control totals
- SLA compliance
Typical reports
- daily sign-off report
- exception summary
- unresolved breaks aging report
- source completeness report
- reconciliation certification pack
11) Address security, governance, and compliance
Investment data is sensitive.
Security controls
- SSO / MFA
- role-based access control
- encryption at rest and in transit
- secrets management
- network segmentation
- audit logging
Governance
- data ownership and stewardship
- rule approval process
- source certification process
- change management
- lineage documentation
- retention policies
12) Plan for scale and edge cases
Investment datasets get messy fast.
Edge cases to handle
- partial fills
- unsettled trades
- failed trades
- stock splits and mergers
- ADRs / cross-listings
- derivatives with complex valuations
- multi-currency accounts
- fee accruals and rebates
- stale or missing prices
- transfer activity
- corporate action elections
- tax lot adjustments
Scalability concerns
- millions of rows per day
- thousands of accounts
- intraday updates
- multiple time zones
- source outages and reruns
13) Start with an MVP
Don’t try to normalize everything at once.
MVP scope recommendation
Start with:
- 2–3 source systems
- one asset class
- one reconciliation type, usually positions + cash
- a small number of standardized entities
- exception workflow for breaks
- daily batch processing
- audit trail and re-run support
Then expand
- add transaction reconciliation
- add price and FX checks
- add more source systems
- add derivatives / fixed income / alternatives
- add performance and fee data
14) Example daily reconciliation flow
A simple example:
- Custodian sends end-of-day holdings file
- OMS exports trade blotter
- Pricing vendor delivers approved prices
- FX provider delivers rates
- Platform ingests all files
- Normalize security and account IDs
- Convert all values to standard currency basis
- Reconcile positions:
- quantity match
- market value match with tolerance
- Reconcile cash:
- beginning cash + activity = ending cash
- Generate breaks
- Operations triages unresolved items
- Approved adjustments are posted or queued for next day
- Reports and audit logs are produced
15) Practical implementation checklist
Data
- canonical schema
- security master
- account master
- source mapping tables
- tolerance tables
- root-cause taxonomy
Pipelines
- raw ingestion
- schema validation
- normalization transformations
- rerun/replay capability
- archival retention
Reconciliation
- position matching
- cash matching
- trade matching
- price matching
- corporate action handling
- break classification
Workflow
- exception queue
- ownership assignment
- comments/evidence
- SLA tracking
- sign-off
Controls
- control totals
- audit trail
- alerting
- access control
- change management
16) Suggested operating principles
- Treat raw source data as immutable
- Separate normalization from reconciliation
- Prefer configurable rules over hard-coded logic
- Make all breaks explainable and traceable
- Keep manual overrides controlled and audited
- Design for reruns, late files, and source corrections
If you want, I can also provide one of these next:
- a reference architecture diagram
- a database schema for the normalized model
- a daily reconciliation algorithm/pseudocode
- a technology stack recommendation for a startup vs. enterprise
Observation history
Unlock observation history
Create a free Obsurfable account to unlock historical responses, model comparisons, and deeper brand intelligence.
How did Obsurfable measure this prompt?
Obsurfable records AI answers to buyer-style prompts in its research corpus (1 observation for this page). Metrics are distributions over observations, not a single static ranking.
Which AI systems does Obsurfable collect answers from?
OpenAI, ChatGPT, Google, Gemini, Google AI Mode, Anthropic, Claude, Perplexity, Grok, DeepSeek, Mistral, Copilot, and Meta AI.