Bloomberg Integration
Meridian Dashboard integrates with Bloomberg Terminal for comprehensive financial data.
Data Pipeline
Bloomberg Terminal
│
▼
┌──────────────┐
│ BBG Export │ (Quarterly financials)
└──────────────┘
│
▼
┌──────────────┐
│ Supabase │ (bbg_estimates table)
│ Edge Func │
└──────────────┘
│
▼
┌──────────────┐
│ Dashboard │ (UI display)
└──────────────┘
BBG Estimates Schema
The bbg_estimates table stores quarterly financial data:
| Column | Type | Description |
|---|---|---|
id | uuid | Primary key |
company_id | uuid | Company reference |
group_name | text | Portfolio group |
report_date | date | Financial report date |
metric_name | text | Financial metric name |
metric_value | numeric | Metric value |
created_at | timestamptz | Record creation |
Financial Metrics
Valuation Ratios
| Metric | Description |
|---|---|
| P/E Ratio | Price to Earnings |
| P/B Ratio | Price to Book |
| EV/EBITDA | Enterprise Value to EBITDA |
| P/S Ratio | Price to Sales |
IRR Analysis
Internal Rate of Return calculations:
- Automatic calculation from cash flows
- Visual highlighting for quick assessment
- Threshold-based coloring
Implied Share Price
Calculated fair value based on:
- Comparable company analysis
- DCF assumptions
- Market multiples
Data Service
// bbg-quarterly-data-service.ts
export async function fetchBBGQuarterlyData() {
// Get most recent report date
const { data: latest } = await supabase
.from('bbg_estimates')
.select('report_date')
.order('report_date', { ascending: false })
.limit(1)
.single();
// Fetch all records for that date
const { data: estimates } = await supabase
.from('bbg_estimates')
.select('*')
.eq('report_date', latest.report_date);
return groupByCompany(estimates);
}
Processing Pipeline
Edge Function
The process-bbg-quarterly edge function:
- Receives BBG data export
- Parses and validates records
- Calculates derived metrics
- Stores in
bbg_estimates - Triggers dashboard refresh
Query Optimization
Optimized for complete data retrieval:
- No restrictive ordering clauses
- Two-step fetch (date first, then records)
- Null handling with fallbacks
Data Completeness
The system processes all configured company groups:
- 53+ company groups
- AIC portfolio holdings
- Investment pipeline candidates
- Historical comparisons