Plan tells you what changes. Not what it costs.
`terraform plan` is precise about infrastructure state — what gets created, changed, or destroyed. It says nothing about cost. A plan that adds a database with a larger instance class than intended, or a machine type in a pricier region, looks identical in the plan output to one that's exactly what you meant. The distinction only shows up once, weeks later, on a bill someone in finance is trying to reconcile against a budget that was set before anyone knew this resource would exist.
That gap — between what applies cleanly and what was actually intended to cost — is where most infrastructure cost surprises come from. Not from anyone trying to overspend. From cost being a downstream fact instead of a decision made at request time.
What moving cost earlier actually requires
Catching a cost problem before apply, rather than after the bill, needs three things a `terraform plan` on its own doesn't provide: a budget to compare against, a way to flag deviation from a normal spending pattern rather than just an absolute number, and someone outside engineering able to see the same picture without asking for a screen-share.
NebulaStack's FinOps module is built around those three specifically, not around a generic cost estimate. Per-environment budgets carry predictive alerts, so a budget isn't just a static ceiling — it's a check against where spend is trending relative to where it's expected to land. Week-over-week cost anomaly detection catches the resource that got bigger than intended without anyone deciding it should. And multi-tenant showback — exportable as PDF for finance — means the person reconciling the bill doesn't need Terraform state access to understand what changed and why.
What this doesn't replace
Budgets and anomaly detection catch drift from an expected pattern — they don't replace a genuine cost review of the architecture itself. A database that's the wrong instance class from day one, chosen deliberately, will stay inside budget and never trigger an anomaly; it was simply never right to begin with. Cost visibility tells you when something changed unexpectedly. It doesn't tell you whether the original design decision was the right one — that's still a human call, made with better information than a monthly bill provides after the fact.