Savings Report

Sample report — data platform, 2-account org

Generated August 5, 2026

Estimated monthly savings

$5,576.43

All figures are estimates based on on-demand us-east-1 pricing.

Where the savings are

AI & ML $3,525.77 · 63%FinOps baseline $2,050.66 · 37%

By service

Monthly savings identified per AWS service.

SageMaker$2,475.77
EC2$1,571.83
Bedrock$1,050.00
S3$345.00
RDS$124.83
CloudWatch Logs$9.00

By work required

How much of the total is a setting change versus a project.

Config change$1,913.50
Migration$3,042.93
Rearchitecture$620.00

AI & MLSubtotal: $3,525.77/mo

The differentiator: savings specific to AI/ML infrastructure (inference endpoints, model hosting, GPU allocation).

All findings

Every finding from this run, ranked by estimated monthly savings.

Est. $/moFindingCategoryEffortRecommendation
$1,050.00Bedrock on-demand spend above Provisioned Throughput breakeven (121212343434)ai_mlMigrationEvaluate Bedrock Provisioned Throughput (1-month or 6-month model units) for the steady baseline; keep on-demand for burst overflow. Verify per-model utilization in the Bedrock console before committing.
$921.70On-demand SageMaker training that fits managed Spot (888899990000/us-east-1)ai_mlMigrationEnable managed Spot training (EnableManagedSpotTraining) with S3 checkpointing for interruption tolerance. Typical savings run 60-70% vs on-demand; keep on-demand only for jobs that cannot checkpoint or must meet a hard deadline.
$881.01Sparse-traffic endpoint ep-scoring-batch (1x ml.g5.xlarge, 86% zero-traffic days)ai_mlMigrationConvert to an asynchronous inference endpoint (queues requests, scales instances to zero between bursts) or a scheduled batch transform if scoring is periodic. Keep real-time only if interactive latency is genuinely required.
$717.96Uncovered EC2 on-demand spend (888899990000)commitmentsConfig changePurchase a 1-year no-upfront Compute Savings Plan sized to the steady baseline (start at ~70% of the uncovered spend after actioning the idle/rightsizing findings above, then ratchet up). Compute SPs follow the workload across instance families, sizes, and regions, so they stay safe through migrations.
$673.06Idle endpoint ep-old-experiment (2x ml.m5.2xlarge, 0 invocations)ai_mlConfig changeDelete the endpoint (model artifacts remain in S3 and it can be recreated in minutes). If it is needed intermittently, move to a serverless or asynchronous inference endpoint that scales to zero.
$620.00Inter-AZ data transfer spend (888899990000)networkRearchitectureIdentify the chattiest cross-AZ flows (VPC Flow Logs / Cost Explorer usage-type drilldown), then co-locate tight client-server pairs in one AZ and enable topology/AZ-aware routing where the stack supports it. Keep multi-AZ for real failover paths -- this targets accidental cross-AZ chatter.
$345.00S3 bucket datalake-raw-events has no lifecycle policy (50,000 GB Standard)storageConfig changeAdd a lifecycle rule transitioning objects to S3 Intelligent-Tiering (safe default -- no retrieval fees, per-object monitoring only) or to Standard-IA after 30 days for known-cold data. Expire incomplete multipart uploads while you're in there.
$180.00NAT gateway data-processing spend (121212343434)networkMigrationAdd gateway VPC endpoints for S3 and DynamoDB (free) and interface endpoints for other high-volume AWS services so that traffic stops paying the NAT per-GB toll. Check VPC Flow Logs for the top talkers before choosing endpoints.
$124.83Idle RDS instance rds-metastore-dev (db.m5.large, 0 connections)databaseConfig changeStop the instance (RDS restarts stopped instances after 7 days -- schedule the stop weekly, or snapshot and delete if the database is retired). Savings shown are instance hours only; storage keeps billing while stopped.
$40.00gp2 volume vol-kafka1 (2000 GB) -> gp3storageConfig changeMigrate to gp3 via ModifyVolume (online, no downtime). gp3 baseline is 3000 IOPS / 125 MBps; provision extra only if the workload exceeded gp2 burst performance.
$10.22Previous-generation EC2 instance i-emr-old (r4.xlarge -> r5.xlarge)computeMigrationMigrate to r5.xlarge (same architecture, drop-in for most workloads). If the stack can run on ARM, the equivalent Graviton family is cheaper still -- worth testing after the x86 move.
$9.00Log group /data/emr-yarn never expires (600 GB stored)observabilityConfig changeSet a retention policy (30-90 days for application logs; export to S3 with a lifecycle rule first if compliance needs longer). Existing bytes past the new retention age out automatically.
$3.65Unassociated Elastic IP 203.0.113.60 (eipalloc-ml-idle)networkConfig changeRelease the address if it is no longer needed, or associate it with an instance/ENI if it is being held deliberately. Check for DNS references to this IP first -- a released Elastic IP cannot be recovered.