Here’s a comprehensive overview of our multi-source ETL integration for financial consolidation, covering the three key focus areas.
1. Multi-Source ETL with SSIS
We built a master SSIS package that orchestrates extraction from five subsidiary ERPs:
Architecture Overview:
- Source Systems: Oracle EBS (US subsidiary), SAP ECC (European subsidiary), Microsoft Dynamics (Asia subsidiary), NetSuite (Latin America), QuickBooks Enterprise (Small Canadian operation)
- ETL Frequency: Daily incremental loads for transaction data, monthly full refresh for master data
- Target: SQL Server 2017 financial data warehouse with star schema
SSIS Package Structure:
Master Package: FinancialConsolidation_Master
- Executes child packages sequentially for each subsidiary
- Manages error handling and logging
- Sends notifications on success/failure
- Generates ETL metrics report
Child Package Pattern (one per subsidiary):
Step 1: Pre-Extraction Validation
- Verify source system connectivity
- Check that source data is posted and closed for the period
- Validate that prior period loaded successfully
- Log extraction start time and row counts
Step 2: Data Extraction
- Pull general ledger transactions for the period
- Extract account master data
- Pull cost center and department hierarchies
- Extract intercompany transaction details
- Use incremental extraction based on last_modified_date
Step 3: Data Transformation
- Apply account code mapping using lookup tables
- Standardize transaction types across systems
- Convert local currency to USD using appropriate rates
- Calculate derived fields: fiscal period, quarter, year
- Flag intercompany transactions for elimination
- Apply data quality rules and flag exceptions
Step 4: Data Loading
- Load to staging tables with full lineage tracking
- Execute validation stored procedures
- Merge into dimension tables (SCD Type 2 for accounts)
- Load fact tables with surrogate keys
- Update control tables with load statistics
Error Handling:
- If any subsidiary extraction fails, others continue but consolidation doesn’t run
- All errors logged to ETL_ErrorLog table with source system, error message, and affected records
- Email alerts sent to ETL support team and subsidiary finance contacts
- Failed records quarantined in ErrorRecords table for investigation
2. Data Mapping and Transformation
The core of our solution is a sophisticated mapping framework:
Account Mapping Structure:
We maintain a central mapping table:
CREATE TABLE AccountMapping (
SubsidiaryCode VARCHAR(10),
LocalAccountCode VARCHAR(50),
CorporateAccountCode VARCHAR(20),
AccountDescription VARCHAR(200),
AccountType VARCHAR(50),
FinancialStatement VARCHAR(50),
IsActive BIT,
ValidFrom DATE,
ValidTo DATE,
CreatedBy VARCHAR(100),
ApprovedBy VARCHAR(100)
);
Mapping Categories:
- Direct Mappings: 60% of accounts map 1:1 to corporate accounts
- Aggregated Mappings: 25% of local accounts roll up to single corporate account (e.g., multiple expense accounts → Corporate Travel Expense)
- Split Mappings: 10% require splitting (e.g., one local account contains both COGS and Operating Expenses → split to two corporate accounts)
- Conditional Mappings: 5% depend on other attributes (e.g., same account code maps differently based on cost center)
Transformation Rules:
Currency Conversion:
-- Pseudocode for currency transformation:
1. Identify transaction currency and target currency (USD)
2. Determine rate type: Average (P&L) or Period-End (Balance Sheet)
3. Lookup rate from CurrencyRates table for transaction month
4. Calculate converted amount: LocalAmount * ExchangeRate
5. Store both original and converted amounts for audit
6. Flag transactions where rate is missing or stale
Intercompany Elimination:
-- Pseudocode for IC elimination:
1. Identify intercompany transactions using IC account flags
2. Match debits and credits between subsidiaries
3. Calculate elimination entries (equal and opposite)
4. Generate elimination journal entries
5. Flag unmatched IC transactions for investigation
6. Produce IC reconciliation report
Data Quality Rules:
- All transactions must have valid account mapping (no unmapped accounts)
- Debits must equal credits within each subsidiary
- Material transactions (>$100K) flagged for review
- Negative revenue or positive expense flagged as exceptions
- Accounts marked as inactive in source system trigger alerts
3. Automated Financial Consolidation
Once data is loaded and validated, automated consolidation runs:
Consolidation Process:
Step 1: Pre-Consolidation Validation
- Verify all five subsidiaries have loaded data for the period
- Confirm total debits = total credits for each subsidiary
- Check that intercompany transactions are balanced
- Validate that control totals match subsidiary reports
- Ensure currency rates are available for all currencies
Step 2: Trial Balance Generation
- Aggregate transactions by corporate account code
- Separate by subsidiary for segment reporting
- Calculate beginning balance + activity = ending balance
- Generate subsidiary-level trial balances
- Produce consolidated trial balance
Step 3: Intercompany Eliminations
- Execute IC elimination logic
- Post elimination entries to consolidation tables
- Verify IC balances net to zero
- Generate IC elimination report for audit
Step 4: Financial Statement Preparation
- Map accounts to financial statement line items
- Calculate subtotals and totals
- Apply presentation rules (rounding, grouping)
- Generate comparative periods (current vs prior year)
- Calculate key financial ratios
Step 5: SSRS Report Generation
Enterprise Reports Produced:
-
Consolidated Income Statement
- Current month, quarter, and year-to-date
- Comparison to prior year and budget
- Variance analysis with commentary fields
- Drill-down to subsidiary detail
-
Consolidated Balance Sheet
- Current period and prior period comparison
- By subsidiary with consolidation columns
- Drill-down to account-level detail
-
Cash Flow Statement
- Operating, investing, and financing activities
- Reconciliation to balance sheet changes
-
Segment Reporting
- Revenue and profit by geographic region
- By product line and customer segment
-
Intercompany Reconciliation
- IC payables vs receivables by subsidiary pair
- Unmatched IC transactions requiring investigation
-
Consolidation Audit Trail
- Every adjustment and elimination with full documentation
- Comparison of subsidiary reports to consolidated results
- Currency translation gain/loss analysis
Report Delivery:
- All reports generated automatically on day 3 of close process
- Delivered via SSRS subscription to CFO, Controller, and subsidiary finance directors
- Published to secure SharePoint site with role-based access
- Excel export available for further analysis
- Drill-through enabled to view source transactions
Controls and Audit Trail:
To address Patricia’s audit concerns:
-
Lineage Tracking: Every consolidated amount can be traced back to source ERP transaction using LineageID field that links through all transformation stages
-
Segregation of Duties:
- Only treasury team can update currency rates
- Account mapping changes require finance manager proposal + controller approval
- ETL execution is automated (no manual intervention possible)
- Adjustment entries require dual authorization
-
Change Management: All mapping changes logged in AuditLog table with user, timestamp, old value, new value, and approval status
-
Validation Reports: Daily reconciliation report compares ETL-loaded amounts to subsidiary-reported totals, highlighting any discrepancies
-
Version Control: Each month’s consolidation is versioned. If corrections needed, we create new version while preserving original for audit trail
Results After 12 Months:
- Financial close reduced from 8-10 days to 3 days consistently
- Zero restatements due to consolidation errors (previously 2-3 per year)
- Eliminated 320 hours/month of manual Excel consolidation work
- Real-time visibility: CFO can view preliminary results by day 1 of close
- Audit efficiency: External auditors reduced testing time by 40% due to automated controls
- Cost savings: $180K annually in reduced overtime and consulting fees
- Enabled monthly forecasting process that wasn’t possible before due to time constraints
Key Success Factors:
-
Executive Sponsorship: CFO championed the project and secured buy-in from subsidiary finance teams
-
Cross-Functional Team: Finance, IT, and subsidiary representatives collaborated throughout design and testing
-
Phased Rollout: Started with two subsidiaries, proved the concept, then added remaining three
-
Extensive Testing: Ran parallel processes for 3 months before going live to validate accuracy
-
Training: Invested in training for subsidiary teams on new processes and exception handling
-
Continuous Improvement: Monthly review meetings to identify issues and enhancement opportunities
The automated consolidation has transformed our financial close from a manual, error-prone marathon into a streamlined, reliable process that gives leadership confidence in our financial reporting.