How Does FinOps Hub Work?
Understanding your Azure cost data journey from export to dashboard
Tracking 8 subscription(s)
The Complete Data Journey
Step 1: Azure Cost Management Export
Azure generates your cost data in FOCUS format
- Exports run on your configured schedule
- Data stored as .csv.gz files in Azure Blob Storage
- Container:
msexports
Step 2: Automatic Import (Daily Sync)
System checks for new exports and imports automatically
- Runs daily at 2:00 AM UTC
- Scans for new .csv.gz files
- Smart detection: Only imports new or updated exports
Step 3: Data Parsing & Validation
Raw CSV data transformed into structured records
- Parses 96 columns of FOCUS-formatted data
- Validates required fields
- Handles multiple currencies
Step 4: Database Storage & Indexing
Validated data stored with optimized indexes
- Each line item becomes a CostRecord
- Indexed by dates, subscriptions, services
- Prevents duplicate imports
Step 5: Aggregation & Caching
Pre-computed summaries for fast dashboard performance
- Daily, weekly, monthly aggregations
- Grouped by subscription, service, resource group
- Identifies top cost drivers
Step 6: Dashboard Visualization
Real-time insights with interactive charts
- Multiple time ranges (7, 30, 60, 90 days)
- Breakdown by subscription, service, resource
- Export to CSV for further analysis
Frequently Asked Questions
The daily sync runs at 2:00 AM UTC every day.
- Allows Azure exports to complete first
- Processes data during low-traffic hours
- Fresh data available when you start your day
Azure Cost Management Exports must be configured correctly:
- Export Type: Cost and usage (FOCUS format)
- Frequency: Daily (recommended)
- Container:
msexports - File Format: CSV (.csv.gz)
Go to Azure Portal → Cost Management → Exports to set up.
Azure Cost Management has an inherent 24-48 hour delay. This is a Microsoft limitation.
- Azure collects usage data globally
- Data must be validated and reconciled
- Billing calculations include discounts and credits
Yes! FinOps Hub auto-detects all subscriptions in your msexports container.
Currently tracking: 8 subscription(s)
finops-64c21818-0806-461a-919c-1c02b989a2d1Pay as you go - Tom Privatfinops-64c21818-0806-461a-919c-1c02b989a2d1Pay as you go - Tom Privatfinops-64c21818-0806-461a-919c-1c02b989a2d1Pay as you go - Tom Privatfinops-64c21818-0806-461a-919c-1c02b989a2d1Pay as you go - Tom Privat
Use Django management commands:
python manage.py import_cost_data
python manage.py sync_daily_costs
Or visit the Import Data page.