Reports
What CloudOpt reports contain and how to share them.
After cloudopt analyze:
cloudopt report --format html
cloudopt report --format json --output my-report.json
Default output goes to reports/ in your workspace. Use --output for a custom path.
Report sections
Executive summary
Finding counts by severity and category.
Scope
Providers, accounts, regions, and time windows. Multi-cloud reports keep each provider’s currency and billing period separate.
Cost breakdown
Spend by service, region, and owner tag, grouped by currency. CloudOpt won’t convert currencies unless you pass a dated exchange-rate source.
Findings
Each finding lists severity, affected resources, evidence, recommendation, and confidence. Recommendations are guidance only; CloudOpt does not change resources.
Potential savings
Totals skip investigation-only findings and incompatible cost bases. Reserved instances and committed use discounts appear in a separate commitment section, not mixed with on-demand savings.
CloudOpt deduplicates overlapping findings before summing. Each line is tagged one-time, monthly recurring, or commitment-based.
Portfolio summary
Multi-provider snapshots get spend and resource counts grouped by provider, service category, owner tag, and project tag. Evidence keeps native product names.
Capability matrix
Inventory, billing, metrics, pricing, and check support per provider. States distinguish unsupported, permission denied, collection failed, and data absent.
Run outside a report:
cloudopt capabilities matrix
cloudopt capabilities matrix --providers aws,gcp
Coverage scores
Inventory attribution, cost attribution, metrics coverage, pricing freshness, and evaluable spend. Skipped checks and reduced-confidence findings reference these scores.
Appendix
- Suppressed rules (from your suppressions file)
- Checks that did not run (e.g. rightsizing without metrics)
- Utilization signal detail when metrics were collected
Sharing externally
--redact swaps account IDs and resource identifiers for stable aliases (Account-1, Resource-001):
cloudopt report --format html --redact
Set customer and project names in config/report.yaml before generating the report.
Regenerating without re-collection
Reports read from stored analysis runs. Re-run report anytime:
cloudopt report --analysis-run-id <id> --format html
Each report records analyzer version, snapshot ID, analysis run ID, and generation time.
Savings numbers
Report savings come from collected data and pricing catalogs. Your workload, discounts, and changes after the review will shift actual results. Test outside production before acting.
Compare providers using coverage scores, not finding counts. Less telemetry means fewer checks ran, not necessarily better optimization.