Savings Report

Sample report — AI-heavy startup

Generated August 5, 2026

Estimated monthly savings

$6,373.56

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

Where the savings are

AI & ML $4,874.87 · 76%FinOps baseline $1,498.69 · 24%

By service

Monthly savings identified per AWS service.

SageMaker$3,854.70
EC2$1,317.83
Bedrock$1,020.17
RDS$124.83
S3$27.60
Load balancing$16.43
CloudWatch Logs$12.00

By work required

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

Config change$2,081.81
Migration$3,758.75
Rearchitecture$533.00

AI & MLSubtotal: $4,874.87/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,561.47Previous-generation GPU endpoint ep-vision-legacy (1x ml.p3.2xlarge -> ml.g5.2xlarge)ai_mlMigrationRedeploy the model on ml.g5.2xlarge (new endpoint or blue/green production-variant swap). Validate latency/throughput parity on the new instance type before cutting traffic over.
$1,027.84Idle endpoint ep-recsys-realtime (1x ml.g5.xlarge, 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.
$967.04Sparse-traffic endpoint ep-nightly-batch (1x ml.g5.2xlarge, 79% 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.
$642.17Bedrock on-demand spend above Provisioned Throughput breakeven (111111111111)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.
$534.30Uncovered EC2 on-demand spend (111111111111)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.
$378.00Frontier-model Bedrock spend to re-evaluate (222233334444)ai_mlRearchitectureEvaluate routing a share of frontier-model calls to a cheaper tier: benchmark quality on your real prompts, then route by task complexity (classification/extraction rarely needs a frontier model). Start with the highest-volume prompt families; a quality-evaluation harness makes this safe to do incrementally.
$298.35On-demand SageMaker training that fits managed Spot (111111111111/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.
$247.38NAT gateway data-processing spend (111111111111)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.
$155.00Inter-AZ data transfer spend (111111111111)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.
$146.00Idle EC2 instance i-idle-oldgen (m4.xlarge, avg CPU 0.5%)computeConfig changeStop the instance (or terminate it if the workload is retired). If it is needed on a schedule, use an instance scheduler so it only bills during working hours.
$140.16Idle EC2 instance i-idle-batch01 (m5.xlarge, avg CPU 1.5%)computeConfig changeStop the instance (or terminate it if the workload is retired). If it is needed on a schedule, use an instance scheduler so it only bills during working hours.
$124.83Idle RDS instance rds-analytics-idle (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.
$42.34Previous-generation EC2 instance i-oldgen-web01 (c4.2xlarge -> c5.2xlarge)computeMigrationMigrate to c5.2xlarge (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.
$27.60S3 bucket logs-archive-raw has no lifecycle policy (4,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.
$25.00Stale snapshot snap-old500 (500 GB, 400 days old)storageConfig changeDelete after confirming no AMI or restore dependency references this snapshot. Consider a snapshot lifecycle policy (Amazon Data Lifecycle Manager) so old snapshots are pruned automatically going forward.
$16.43Idle Application Load Balancer alb-idle-legacy (0 requests)networkConfig changeDelete the load balancer after confirming no DNS records point at it. If it fronts an autoscaling group kept for failover, document that as an intentional exception rather than leaving it running unexplained.
$12.00Log group /aws/lambda/etl-daily never expires (800 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.
$10.00gp2 volume vol-0a1 (500 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.00Unattached gp2 volume vol-0c3 (100 GB)storageConfig changeSnapshot for safety, then delete. If it must be retained, a snapshot costs a fraction of a provisioned volume.
$4.00gp2 volume vol-0b2 (200 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.
$3.65Unassociated Elastic IP 203.0.113.10 (eipalloc-idle1)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.