Kubernetes showback almost always comes before chargeback. That is not a compromise.
What showback actually is
Showback is a visibility model. Teams can see what they are spending. The number is attributed and accurate. But there is no financial consequence: the shared infrastructure bill is paid centrally and the dashboard numbers are informational.
Chargeback is an accountability model. Teams are invoiced for their consumption. The shared infrastructure cost is allocated to internal cost centres. The numbers on the dashboard become line items in a budget that someone is responsible for.
The difference is not technical. Both require the same allocation tooling: OpenCost, Kubecost, or equivalent. The difference is organisational. Chargeback requires that team budgets exist at the granularity the allocation produces, that financial systems can accept allocation as input, and that engineers understand and accept the methodology as fair. None of these preconditions are technical.
Why chargeback fails when you skip showback
The teams we see fail at chargeback share a common pattern. They deployed allocation tooling, generated namespace-level cost reports, and immediately sent them to finance for internal billing. Within two months, the allocation model was contested. Within four months, the project was abandoned.
The allocation was contested because engineers did not trust the numbers. They had never seen them before. The first number they saw was an invoice, which surfaced decisions made months ago on infrastructure they did not realise they owned, according to a methodology they had not reviewed. They disputed the methodology. They were right to.
Showback forces the organisation to validate the allocation model before it matters financially. Teams review the numbers when the stakes are low. They catch the miscategorised workloads, the shared services that should not be allocated to individual teams, and the namespace boundaries that do not match the ownership model. By the time chargeback goes live, the numbers are trusted because teams helped build them.
The two conditions that make chargeback work
Condition one: the allocation methodology is agreed in writing before any numbers are produced. This means: how are shared namespaces allocated — proportional to usage, split equally, or attributed to the platform team? How is cluster overhead allocated (control plane, monitoring, logging infrastructure)? How are multi-tenant services costed? The agreement should be a one-page document signed off by engineering leads and finance before OpenCost is deployed.
Condition two: teams have been in showback for at least 90 days before chargeback goes live. 90 days is the minimum to catch seasonal patterns, resolve contested allocations, and build enough familiarity with the numbers that the first invoice is not a surprise. Teams that go live on chargeback after 60 days of showback report fewer disputes. Teams that skip showback entirely report the most.
"The first chargeback invoice should not be a surprise. If it is, the showback period was too short."
Danny Zak / FinOps Lead
What the transition looks like in practice
Month one: deploy allocation tooling, connect it to Grafana, add a namespace-cost panel to each team's dashboard. Send a weekly cost summary to each engineering lead. Do not frame it as billing. Frame it as a new engineering metric alongside CPU utilisation and error rates.
Months two and three: run monthly allocation reviews. Each team looks at their numbers with the FinOps team. Contested items are investigated and resolved. The methodology document is updated to reflect outcomes. By month three, most teams have accepted the model and can roughly forecast their own costs.
Month four: introduce chargeback formally. Finance receives the allocation as input. Team budgets are adjusted. The model is now live. Disputes, if any, are minor because the numbers have been reviewed for three months and the methodology is agreed. The first invoice is not a surprise.
The total transition is 4 months. Teams that try to compress it to 6 weeks typically spend the following 6 months in dispute resolution. The 4-month sequence is not slow. It is faster than the alternative.