Search “chargeback vs showback” and you’ll get a dozen posts that define both terms, then quietly rank them: showback is where you start, chargeback is where you graduate. It’s a tidy story and it’s wrong. The FinOps Foundation — the body that actually stewards this practice — states it plainly: “Neither type of reporting should be considered more mature than the other.” The choice isn’t a rung on a ladder. It’s a function of your accounting model.
This post makes two arguments the definitional posts skip. First, the maturity framing is backwards, and picking by it leads orgs to build chargeback machinery they don’t need. Second — and this is what decides whether either one works — neither model means anything until your bill actually sums to teams. Chargeback on 60% tag coverage isn’t chargeback; it’s a monthly argument about the other 40%.
The definitions, briefly, so we can move on
Showback shows each team what it spent — a report, no ledger entry. Chargeback bills each team for what it spent — the cost moves in your accounting system and hits the team’s actual budget. Same allocation underneath; the difference is whether real money changes hands internally. That’s the whole distinction, and most of the internet’s word count on this topic is spent restating it.
Why “chargeback is more mature” is backwards
The maturity framing assumes every org should be climbing toward chargeback. But chargeback is an accounting choice, not an achievement. The FinOps Foundation’s own position, on their Invoicing & Chargeback guidance as of August 2026, inverts the usual advice: “Showback is always required in any FinOps practice, but chargeback is dependent on organizational accounting policies.” And: “Chargeback is not always required in every organization. When technology costs are allocated to a single, or easily allocated set of cost centers, the additional cost and burden of creating official chargeback reporting may be unwarranted.”
Read that last line again. For plenty of orgs — a single cost center, a few teams whose budgets roll up the same way — formal chargeback is pure overhead. You build reconciliation, dispute processes, and finance-system integration to move numbers between pockets of the same pair of trousers. Showback would have driven the same behavior at a fraction of the cost. Calling chargeback “more mature” pushes those orgs toward work that makes them worse off.
What actually decides it: your accounting reality
The real decision variables are structural, not aspirational:
- Do teams own real, separate budgets? If a team’s cloud spend has to land against a P&L its manager is accountable for, chargeback. If spend rolls up to one central budget, showback tells you everything chargeback would, without the accounting plumbing.
- Does behavior change under showback alone? For many engineering orgs, showing a team its number — visibly, next to its peers — changes behavior as much as billing it would. If visibility already moves the needle, chargeback buys you little.
- Is there a cross-charging requirement? Shared-services orgs, MSPs, and cost-recovery models (an internal platform billed to business units) often need chargeback because someone contractually or fiscally must recover the cost. That’s a requirement, not a maturity level.
- Can finance actually consume it? Chargeback that finance won’t post to the general ledger is showback with extra steps and more arguments. If the integration into your accounting system isn’t there, you’re doing showback whether you call it chargeback or not.
None of these is about how advanced your FinOps program is. A three-person startup with cost-recovery obligations needs chargeback; a 2,000-engineer company with one central infra budget is right to stop at showback. Maturity doesn’t enter into it.
The precondition both models share: the bill has to sum to teams
Here’s what every definitional post leaves out, and it’s what actually determines success: neither showback nor chargeback works until every dollar of the bill is allocated to a team. This is a data problem that sits underneath the accounting choice, and it’s usually the real blocker.
Showback on 70% coverage is a report three teams trust and the rest dismiss, because the missing 30% is obviously somebody else’s. Chargeback on 60% coverage is worse: now the unallocated 40% is a monthly fight, because real budget dollars ride on it. A team disputes its bill, points at the shared NAT gateway and the untagged account, and the finance close slips while everyone argues. The failure mode isn’t the model — it’s that the bill didn’t sum to teams before you tried to bill on it.
Which is why the order of operations matters more than the debate itself: get to 100% of the bill allocated first — tagged where you can, assigned by explicit rule where you can’t — and reconciled to the total. Only then does the model on top behave. We wrote the full method in the allocation hub post; the short version is that coverage plus rules, not perfect tags, is what makes the number defensible. Get that right and showback vs chargeback becomes a one-line accounting decision instead of a project.
A decision table
Skip the maturity ladder. Match your situation to the model:
| Your situation | Model | Why |
|---|---|---|
| One central cloud budget, few teams | Showback | Visibility drives the behavior; chargeback plumbing is unwarranted overhead (the Foundation’s own guidance). |
| Teams own separate P&Ls / budgets | Chargeback | Spend must land against the budget each team is accountable for. |
| Shared platform billed to business units | Chargeback | Cost-recovery is a requirement — someone has to actually recover the cost. |
| Engineering-led, visibility changes behavior | Showback | You already get the outcome; billing adds process, not results. |
| Regulated / audited cost recovery | Chargeback | The allocation has to be posted and defensible in the accounting system. |
| Coverage under ~90%, either way | Fix allocation first | Neither model works until the bill sums to teams — that’s the actual blocker. |
The last row is the one to internalize. If your bill doesn’t yet allocate cleanly to teams, the answer to “chargeback or showback” is “neither, yet” — the work is in coverage and rules, not in the accounting model on top.
Is chargeback more mature than showback?
No. The FinOps Foundation explicitly states neither should be considered more mature than the other. Showback is universally required; chargeback depends on whether your accounting policies need cost formally allocated to separate budgets. Many well-run, large FinOps programs run showback by choice because their cost rolls up to one budget and formal chargeback would add cost without changing behavior.
Can you do chargeback and showback at the same time?
Yes, and many orgs do — showback dashboards for day-to-day engineering visibility, and a formal chargeback close monthly for finance. They share the same allocation underneath, so the extra cost is the accounting integration, not a second allocation model. The prerequisite is identical: the bill has to sum to teams before either is trustworthy.
What tag coverage do I need before charging teams back?
High enough that the unallocated remainder is handled by explicit rule, not ignored — a common bar is 95% of spend allocated (tagged or rule-assigned) before you bill on it. Below that, chargeback turns every monthly close into a dispute over the uncovered slice. See the AWS cost allocation tags post for how to measure and close coverage.
CloudQuell scores your tag coverage, allocates the untagged rest by rule, and rolls it up a cost-center hierarchy — the foundation both showback and chargeback need. Free under $10K/month.
Try CloudQuell →