Methodology
Ruleset version 2026.10.1. Each exported report records the version and rates it used.
Privacy
Your file is parsed and audited entirely in your browser. Nothing is uploaded. If you click Generate AI action plan, only an anonymized summary (totals per service, totals per rule, rates) is sent to our server, which forwards it to OpenAI. Resource IDs, tags, file names and raw rows are never sent.
Labels
- measured Summed directly from cost values in your file. No rates applied.
- estimated Derived from measured values with a rule and the rates shown in the audit trail. Includes monthly run-rate, which scales the file's period to 30.4 days.
- AI Narrative text written by a language model. It may be wrong; it is never used in calculations.
Rules
Compute rules on the same instance are applied in order: idle, rightsize, previous generation, commitment. Each one is applied to the cost left after the previous one, so savings are never double counted. Rightsizing at 50% and then committing at 30% saves 1 − 0.5 × 0.7 = 65%, not 80%.
| Rule | Fires when | Savings math |
|---|---|---|
| Idle compute | Instance with average CPU at or below the idle threshold. | 100% of its monthly cost (stop it). No other compute rule is applied to it. |
| Oversized compute | Average CPU above idle but below the rightsizing threshold. | Monthly cost × savings per size step. |
| Previous generation | Instance type from an older family (e.g. AWS m4/c4/t2, GCP n1, Azure _v2). | Remaining cost × previous-gen savings rate. |
| Steady on-demand | On-demand instance present on at least the steady-state share of days (period ≥ 7 days). | Remaining cost × commitment discount. |
| gp2 → gp3 | Usage type contains gp2 (EBS). | Monthly cost × gp2→gp3 savings rate. |
| Unattached public IP | Usage type shows an idle / unattached address. | 100% of its monthly cost (release it). |
| Untagged spend | ≥ 10% of spend has an empty tag column. | Informational, no savings claimed. |
| Data transfer heavy | Egress / data-transfer-out is ≥ 15% of spend. | Informational, no savings claimed. |
| Cost anomaly | A service-day above the anomaly multiple of its median day (≥ 5 days of history, ≥ $10 excess). | Informational; shows the excess over the median. |
Default rates
These are conservative planning figures, not quoted prices. Real discounts depend on provider, region, term and payment option. Check them against your provider's current pricing, and switch the Rates panel to Custom to enter your own.
{
"idleCpuPercent": 5,
"rightsizeCpuPercent": 40,
"rightsizeSavingsRate": 0.5,
"commitmentDiscountRate": 0.3,
"steadyStateCoverage": 0.9,
"gp2ToGp3SavingsRate": 0.2,
"previousGenSavingsRate": 0.1,
"anomalyMultiplier": 2.5,
"daysPerMonth": 30.4
}Limitations
- Billing exports don't include CPU utilization. Idle and rightsizing checks only run when you map an average CPU column.
- Costs are read in whatever currency the file uses; the $ sign is cosmetic.
- Slash dates are read as MM/DD/YYYY unless the first number is above 12.
- Instance types are taken from an instance-type column, or derived from usage types like
BoxUsage:m5.large. GCP CSV exports often only include generic SKU names, so map a machine-type column if you have one. - Memory, network and licensing constraints are not checked. Treat findings as leads to verify.