Shift left in FinOps means checking a change's cost before it is rolled out: at design, in the pull request and at deployment, not in the monthly report. Presenting its 2026 Framework, the FinOps Foundation uses the term for FinOps work that starts at design, architecture and procurement decisions. In the development lifecycle that means five checks: an estimate from a pricing calculator or price API, a cost estimate of the infrastructure-as-code change in the pipeline, mandatory tags at creation, budgets for preview and test environments, and a comparison after deployment. None of them replaces the invoice; each asks a question while the answer is still cheap.
How it works
The Framework describes shift left in several capabilities as a path through the maturity levels. Under Planning & Estimating, the figure from the first gate stays the reference at every later one, and at the Run level it is checked against the actual outcome, which then informs the next estimate. Under Governance, Policy & Risk, the Walk level moves the policy check from manual review into the pipeline: code that breaks a policy fails before merge or rollout.
| Stage | Check | Result |
|---|---|---|
| Design | estimate with a pricing calculator or price API | cost model per option |
| Pull request | cost estimate of the IaC change | monthly difference in the review |
| Merge and deployment | mandatory tags, approval above a threshold | allocatable resources, a name on the change |
| Preview and test | budget per environment | warning or stop before month end |
| After deployment | comparison with the estimate | assumption confirmed or corrected |
Pricing calculators and price APIs
AWS offers the public Pricing Calculator and a calculator in the Billing console with its own APIs. The console calculator estimates workloads at the rate types "Before discounts", "After discounts" and "After discounts and purchase commitments", and produces bill estimates for the whole organisation including last month's usage and existing commitments; workload estimates are free, bill estimates free five times a month and charged after that. For your own tooling, AWS publishes its prices as the AWS Price List, available through a Query API and a Bulk API. In the Azure pricing calculator, Microsoft shows the negotiated prices of a Microsoft Customer Agreement or Enterprise Agreement once you log in; the Azure Retail Prices API returns retail prices without authentication. Google lets you link the pricing calculator to a Cloud Billing account to include contract prices, and its Pricing API, in Preview, returns public prices and those of a billing account.
Estimating infrastructure-as-code changes
Infrastructure-as-code cost estimation tools start from the planned change set. The providers supply the change set but no prices: CloudFormation change sets show how a change affects running resources before it is executed; the Azure Resource Manager what-if operation predicts which resources a Bicep deployment changes; Google's Infrastructure Manager runs the Terraform plan command for a preview. An estimation step prices new, changed and deleted resources from the sources above and posts the monthly difference to the pull request.
Mandatory tags and approvals
Mandatory tags are enforced at creation, not hunted down later; see tagging enforcement and policy as code. In its Cost Optimization pillar, Microsoft recommends release gates in the pipeline with thresholds taken from the cost model, and for production deployments a cost approval in which a person or an automated check judges whether resource types and configuration fit what the workload needs. Who approves above which difference is set by the approval thresholds.
Budgets for preview and test environments
An environment needs a boundary its budget can attach to. AWS Budgets filters by account or tag, but by tag only once the tag is activated as a cost allocation tag. Azure budgets can be set on a resource group. Google budgets apply to projects or to a label, but label filters exist only for budgets at Cloud Billing account level, with one label per budget. For one project and one service, currently Cloud Run, Cloud Run functions, Gemini API or Gemini Enterprise Agent Platform, a spend cap budget can pause new usage; what it stops and what keeps running is covered in cloud budgets. Expiry dates and operating hours for such environments are covered in non-production cloud costs.
Comparison after deployment
In COST01-BP04, AWS suggests adding a check before a change (what will it cost?) and one after it (did cost and usage move as expected?) to existing processes. The comparison runs within the scope of the change once billing data covers the first full days; for the delay see freshness, restatements and finalisation. The process from request to follow-up is covered in change management for cloud cost.
What it means for your cost
An estimate is a statement about the configuration, not about the invoice. What it cannot know decides how far it misses.
| Component | What the estimate needs | What it does not know |
|---|---|---|
| Resources priced by time | type, size, region, assumed running time | actual running time, scaling |
| Usage-based items | an assumed volume of requests, gigabytes, invocations | the real volume |
| Data transfer | the paths with source, destination and volume | paths nobody modelled |
| Discounts and commitments | contract or discounted rates, where the calculator has them | discounts the chosen price source does not know |
| Taxes | nothing; the AWS calculator excludes them | the VAT on the invoice |
The price sources have gaps too: the AWS Price List contains no EC2 Spot prices and no time-limited Free Tier offers, and its Query API returns no Savings Plans prices. The Azure Retail Prices API returns savings plan prices only in API version 2023-01-01-preview; Microsoft prices all Azure services in USD and calls the API's non-USD prices a reference for estimating budgets. Google states in its pricing calculator that estimates rest on your own assumptions and may differ from the monthly bill. According to the FinOps Foundation, a calculator suits swapping one service for another better than pricing a whole application the organisation has never run.
The value in the pipeline is therefore the difference and its owner, not the exact amount: a change that lifts a scope's monthly cost above the threshold gets a name before it reaches the invoice.
Where it goes wrong
- List price in the pipeline. Symptom: the estimate sits above actual cost and the team ignores it. Cause: the pipeline prices at list, the invoice carries discounts and commitments.
- Zero usage. Symptom: serverless, storage or transfer items show as zero. Cause: usage-based prices need an assumed volume, and none was set.
- A new number at every stage. Symptom: design, pull request and budget give different amounts for the same change. Cause: each team estimates again from its own assumptions instead of starting from the earlier figure.
- A tag budget with no data. Symptom: an AWS budget for a preview environment shows nothing. Cause: the tag is not activated as a cost allocation tag.
- A label budget looked for in the project. Symptom: Google Cloud will not create a budget for an environment's label. Cause: label filters exist only on budgets at billing account level.
Sources
Read on 2026-10-16. FinOps Foundation FinOps Framework 2026, Planning & Estimating and Governance, Policy & Risk (CC BY 4.0); AWS what is AWS Pricing Calculator?, Pricing Calculator in the console, AWS Price List, CloudFormation change sets, budget filters and COST01-BP04 cost awareness in organisational processes; Microsoft estimate costs with the Azure pricing calculator, Azure Retail Prices API, Bicep what-if, set spending guardrails and create and manage budgets; Google Cloud estimate your monthly costs, pricing calculator, get pricing information with the API, preview a deployment in Infrastructure Manager, budgets and budget alerts and manage spend cap budgets.