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.