Every Kubernetes cost conversation eventually hits the same fork: run OpenCost for free, or pay for Kubecost, CloudZero, Vantage, or one of a dozen others. Most of the content comparing them is written by the vendors selling the paid option, so here's the version without a sales team behind it.
What OpenCost actually is.
OpenCost is a CNCF Incubating project — vendor-neutral, genuinely open source (Apache 2.0), with real production adoption and contributors from AWS, Google, and Microsoft among others. It's not a toy or an abandoned side project. It gives you cost allocation by namespace, deployment, pod, and label, pulling from actual cloud provider pricing APIs rather than static estimates. If you already run Prometheus, the operational overhead of standing it up is genuinely low. For a huge number of teams — especially single-cluster setups — this is the right default, not a compromise.
Where it stops, and it stops in three specific places.
It doesn't reconcile your actual discounts. OpenCost applies on-demand list prices to what your cluster uses — it doesn't know about your Spot usage, Reserved Instances, Savings Plans, or negotiated enterprise discounts. If your real bill looks nothing like on-demand pricing (and for most teams doing any commitment optimization, it doesn't), OpenCost's numbers will be directionally useful but not accurate to the dollar.
It has no retention or historical query layer built in. OpenCost gives you current and near-term data through its API — it's an allocation engine, not a data warehouse. If you want to query "what did namespace X cost six months ago" without having built your own storage pipeline for OpenCost's output, you don't have that out of the box.
It automates nothing. This is the big one, and it's true of Kubecost too, not just OpenCost — neither tool takes action on what it finds. No automated rightsizing, no automated Spot migration, no bin-packing. You get visibility; the optimization is still entirely on you.
When paying actually earns its cost — three real scenarios, not vendor marketing.
You're correlating cost data across three or more clusters by hand. At that point, the engineering time spent stitching together multiple OpenCost instances' output usually costs more than a managed multi-cluster tool would.
You need cost per customer or per feature, not just per namespace. This is a genuinely different problem than Kubernetes allocation — it's a SaaS unit-economics question, and it's the specific gap tools like CloudZero are built around. OpenCost was never trying to solve this.
You need automated action, not just a dashboard. If the actual goal is "rightsize this automatically" or "migrate this to Spot without a human in the loop," that's a category paid platforms (CAST AI, nOps, and others) address directly, and no amount of open-source visibility tooling gets you there on its own.
What paying doesn't automatically fix.
A paid tool doesn't fix a team that isn't looking at the dashboard. The most expensive mistake in this whole category isn't picking the wrong tool — it's picking any tool, free or paid, and never building the habit of actually reviewing what it shows.
The actual takeaway: OpenCost is the right first move for almost everyone reading this, not a "for now" compromise before you graduate to something paid. Pay when you hit one of the three specific gaps above — multi-cluster correlation overhead, unit-economics questions, or a real need for automated action — not because a vendor's content convinced you that "free" implies "immature."
Running OpenCost and hitting a wall it wasn't built for? Reply to this email and tell me which gap — I'll help you think through whether it's worth paying to close.
