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.

StageCheckResult
Designestimate with a pricing calculator or price APIcost model per option
Pull requestcost estimate of the IaC changemonthly difference in the review
Merge and deploymentmandatory tags, approval above a thresholdallocatable resources, a name on the change
Preview and testbudget per environmentwarning or stop before month end
After deploymentcomparison with the estimateassumption 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.

ComponentWhat the estimate needsWhat it does not know
Resources priced by timetype, size, region, assumed running timeactual running time, scaling
Usage-based itemsan assumed volume of requests, gigabytes, invocationsthe real volume
Data transferthe paths with source, destination and volumepaths nobody modelled
Discounts and commitmentscontract or discounted rates, where the calculator has themdiscounts the chosen price source does not know
Taxesnothing; the AWS calculator excludes themthe 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.