Compute
Old-generation EC2 instances, Lambda functions with more memory than they use, idle EKS clusters.
SpendShrink is the whole path a saving takes: finding it, proving it, writing the change and confirming it landed. Every step below runs in the product today.
Each part names the code that runs it, so your engineers can check the claim before they trust it.
Connection
One CloudFormation stack sets up the FOCUS billing export in your account and a role with 53 read permissions.
kubernetes/cloudformation/spendshrink-connect.yaml
Opportunity engine
24 checks run against your billing lines, CloudWatch metrics and AWS's own recommendations, then rank what they find by what it is worth.
worker: app/detectors
Evidence
A low and high monthly range for every finding, with the billing lines, usage and assumptions behind it. Unknown when the evidence is thin.
worker: app/detectors/economics.py
Workflow
Owners, approvals, comments, ticket links and a validation ledger that records what actually moved on the bill.
backend: routers/savings.py
Terraform agent
Finds the module that owns the resource, writes the change, runs terraform fmt and validate in a sandbox, and opens the merge request.
worker: app/terraform/mr
Runbooks
The console path and AWS CLI command for 25 resource types, with any value that needs a human decision left blank to fill in.
backend: services/terraform_runbooks.py
Assistant
Conversations scoped to an AWS account, started from any insight. Missions take one question further and return an evidence package.
backend: routers/ai.py, routers/missions.py
Partner portal
Each client kept as its own business, with its own accounts, users, budgets, alerts and reports, under one partner login.
backend: routers/msp.py
Each finding names the resource, the billing lines and usage behind it, and a low and high monthly saving.
Compute
Old-generation EC2 instances, Lambda functions with more memory than they use, idle EKS clusters.
Storage
Unattached EBS volumes, orphaned snapshots, gp2 volumes that should be gp3, provisioned IOPS nobody uses, incomplete S3 multipart uploads, noncurrent S3 versions, untagged ECR images, CloudWatch log groups kept forever.
Databases
Idle RDS, Redshift, OpenSearch and ElastiCache, old-generation RDS and ElastiCache nodes, DynamoDB tables in the wrong capacity mode.
Network
NAT gateways moving almost no traffic, idle load balancers, data transfer that costs more than it should.
Commitments
Savings Plan and Reserved Instance coverage gaps, low utilization, and commitments about to expire.
For resources you manage in Terraform, SpendShrink does the part that usually stalls: working out the change and opening it.
GitHub or GitLab, with write authority you grant explicitly for each repository.
SpendShrink scans the repository and records which resources it manages.
Managed in a connected repo, probably managed in Terraform somewhere else, or not in Terraform at all.
A diff against the module that owns the resource, from a pinned generator version, then terraform fmt and validate in an isolated sandbox.
Your reviewers see the diff next to the evidence. SpendShrink never applies it.
Merge and close events come back, and the validation ledger records what changed on the bill.
The billing data that powers the detectors runs everything else, so the numbers agree wherever you look.
Signals
Daily spend compared with its own 28-day baseline. A jump becomes a signal with the observation window attached, an owner and a workflow.
Cost Explorer
Slice spend by account, service, region, tag and resource, in billed, effective, list or contracted cost. Partial data is labeled, never shown as zero.
Budgets and alerts
Budgets for any scope, with alerts by email before the month closes.
Reports
Scheduled cost reports by email or webhook to the people who own the spend.
Data health
Which accounts and exports are current, late or missing, before anyone trusts a number.
Missions
An investigation into one cost question that comes back with the figures and the tool result each one came from.
Connect one AWS account. The first findings arrive once AWS delivers your first billing export, usually within a day.