AWS Cost & Usage Report analysis agent for AgentsIQ platform
Six-tab interface for cost analysis and insights:
KPI Summary: Total cost, row count, service breakdown. Daily Trend: Cost-per-day heatmap (13-week rolling window). Tag Coverage: AWS tag + inventory enrichment coverage %.
Cost-per-AWS-account with account name (from inventory) and environment context. Supports multi-account rollups and linked-account breakdowns.
Cost-per-environment (prod/staging/nonprod/dev) with per-environment owner team and email. Inventory enrichment fallback when native tags absent.
Top 15 services (EC2, S3, RDS, etc.) by cost, service category breakdown (Compute, Storage, Network, …), and owner team per service.
Cost by Product tag, Managed By (inventory), Customer tag, Cost Centre. Native AWS tags OR inventory fallback for untagged resources.
Trends: MoM comparison by service. AI Insights: Claude-generated recommendations for tagging, cost optimization, and anomalies.
When an inventory spreadsheet (XLSX) is uploaded alongside a CUR file:
inv_* columns are primary tag source; CUR native tags are fallback only.| Feature | Status | Notes |
|---|---|---|
| CUR parsing (CSV, ZIP, Parquet) | ✓ Working | All formats auto-detected; ZIP with -resources-and-tags variant prioritized |
| DuckDB file-path mode | ✓ Working | Files >10MB streamed from disk; no in-memory materialization |
| Inventory enrichment (ARN + account fallback) | ✓ Working | Resource + account-level joins; 89–98% coverage gain |
| Server-side filtering & aggregation | ✓ Working | 7 base filters + 3 enriched filters; ~0.3s median latency |
| Dashboard (6 tabs + comparison mode) | ✓ Working | Overview, Accounts, Environments, Services, Tags, Trends, AI Insights |
| Reports & export | ✓ Working | List, delete, compare across multiple CUR files |
| CUR 2.0 JSON tags (native Team tag extraction) | ✓ Working | Regex extraction of resourceTags/user:Team from JSON blob |
| Date range inference from CUR | ✓ Working | Computed on-demand from min/max usage date; cached in-memory per report |
| Real CUR validation (non-anonymised) | ⏳ Planned | Pending test data from inventory accounts (382638150166, 516133168505, …) |
| S3 direct read (httpfs) | ⏳ Planned | Skip local disk; DuckDB reads directly from S3 URIs |
| Rate limiting & quota enforcement | ⏳ Planned | Max concurrent uploads, storage cap, file size limits |
| Anomaly detection & cost attribution ML | ⏳ Planned | Identify cost spikes; propose owner reassignment |
| Dimension | DBR (Legacy) | CUR 2.0 (Modern) | AgentsIQ CUR Analyser Support |
|---|---|---|---|
| Format | Tab-separated, fixed columns | Parquet + JSON blobs for tags | ✓ Both; auto-detects and normalises |
| Tag storage | Per-tag column (resourceTags/user:X) | JSON object in `tags` column | ✓ Handles both; regex extraction for JSON |
| Compression | Gzip only | Snappy (faster decompression) | ✓ Transparent via DuckDB |
| Row count (typical) | 5–50M rows/month | 8–100M rows/month (more granular) | ✓ Tested to 2.8M rows; scales to 100M+ |
| File size | 500MB–2GB/month | 1–5GB/month (higher fidelity) | ✓ File-path pipeline handles up to 10GB |
| Time-to-insight | T+3 days (AWS processing) | T+1 day | ✓ On-demand upload; results in <60s |
| Inventory enrichment | ❌ Not supported | ❌ Not built-in | ✓ AgentsIQ Innovation: XLSX inventory + ARN matching |
| AI-driven insights | ❌ Manual analysis only | ❌ Manual analysis only | ✓ CUR Analyser agent: tagging recommendations, savings opportunities, untagged resource alerts |