Cost Allocation and Tagging Standard Template (FinOps, FOCUS 1.4)
Allocation hierarchy, tag dictionary, MUST/SHOULD policy, policy as code, untaggable and shared-cost rules, showback vs chargeback, FOCUS 1.4 map, KPIs
उपयोग कैसे करें: Use it to set the organisation-wide rules that make every cloud and SaaS charge attributable to an owner. Fill the allocation hierarchy with finance first, then the tag dictionary, enforcement rollout and shared-cost rules, and report compliance in the periodic cost review. The main pitfall is counting untaggable charges as non-compliance or enforcing deny policies without an audit period.
प्रीव्यू
Cost Allocation and Tagging Standard: [Organisation name]
Organisation standard for allocating cloud and technology cost to the teams, products and business units that cause it: the allocation hierarchy, mandatory tags and allowed values, tag governance and policy-as-code enforcement, treatment of untagged and untaggable cost, shared-cost split rules, showback and chargeback, the mapping to FOCUS 1.4 columns, compliance KPIs, exceptions and review. Based on the FinOps Open Cost and Usage Specification (FOCUS) 1.4 (ratified 2026-06-04) and aligned with the Allocation and Invoicing & Chargeback capabilities of the FinOps Framework (2026 update), both published under CC BY 4.0. Replace every
[bracketed]value and every row marked Example. Worked examples use the fictional SaaS company "Corvid Commerce".
Document control
| Field | Value |
|---|---|
| Document ID | [FIN-STD-001] |
| Version | [0.1] |
| Status | [Draft / In review / Approved / Superseded] |
| Owner | [@finops-lead] |
| Finance counterpart | [@finance-business-partner] |
| Approvers/reviewers | [@cfo-delegate], [@vp-engineering], [@head-of-platform], [@cloud-foundation-lead], [@ciso-delegate] |
| Effective date | [YYYY-MM-DD] |
| Last updated | YYYY-MM-DD |
| Classification | [Internal] |
| Cost sources in scope | [Example: Two public cloud providers, one observability SaaS, one CDN] |
| FOCUS version used | 1.4 |
| Next review | [YYYY-MM-DD] |
Approvals
| Role | Name | Decision | Date |
|---|---|---|---|
| FinOps lead | [@name] | [Approve / Approve with conditions / Reject] | YYYY-MM-DD |
| Finance (CFO delegate) | [@name] | [Decision] | YYYY-MM-DD |
| Engineering leadership | [@name] | [Decision] | YYYY-MM-DD |
| Platform and cloud foundation | [@name] | [Decision] | YYYY-MM-DD |
Revision history
| Version | Date | Author | Change summary |
|---|---|---|---|
| 0.1 | YYYY-MM-DD | [@name] | First draft |
| 1.0 | YYYY-MM-DD | [@name] | Example: Approved; enforcement in audit mode for 60 days |
| 1.1 | YYYY-MM-DD | [@name] | Example: Added data-classification; enforcement switched to deny in production accounts |
Contents
- Purpose and scope
- Roles and responsibilities
- Allocation hierarchy
- Mandatory tags and allowed values
- Policy statements
- Tag governance and enforcement
- Untagged and untaggable cost
- Shared cost allocation rules
- Showback and chargeback
- Mapping to FOCUS 1.4
- Compliance measurement
- Exceptions and risk acceptance
- Review cycle and related documents
- Glossary and references
1. Purpose and scope
Purpose: make every unit of technology cost attributable to an accountable owner, so that teams can see and manage what they spend, finance can budget and report by business dimension, and leadership can compare cost with the value each product delivers.
Objectives:
- every charge in the cost dataset is allocated to a cost centre, an owning team and a service, either directly by tag or by a documented rule;
- allocation is reproducible from the normalised billing data by anyone with access, without manual spreadsheets;
- the share of unallocated cost stays below the target in section 11.
Scope:
| In scope | Out of scope |
|---|---|
| Example: All public cloud accounts, subscriptions and projects | Employee laptops and end-user licences (IT asset management) |
| Example: SaaS platforms billed to engineering (observability, CDN, source control) | Personnel cost of the platform team (finance allocates it separately) |
| Example: Kubernetes clusters and other shared runtime platforms | On-premises data centre (until migrated) |
| Example: Marketplace purchases through a cloud provider | [Out of scope item] |
2. Roles and responsibilities
R = responsible, A = accountable, C = consulted, I = informed.
| Activity | FinOps team | Finance | Platform and cloud foundation | Product teams | Security |
|---|---|---|---|---|---|
| Define mandatory tags and allowed values | A, R | C | C | C | C |
| Maintain cost centre and team reference data | C | A, R | I | I | I |
| Apply tags to resources | I | I | R (shared and platform resources) | A, R (own resources) | I |
| Enforce tag policy in accounts and pipelines | C | I | A, R | I | C |
| Define shared-cost split rules | A, R | C | C | I | I |
| Publish monthly allocation and compliance report | A, R | I | I | I | I |
| Post chargeback journal entries | C | A, R | I | I | I |
| Approve exceptions | A | C | R | R (request) | C |
3. Allocation hierarchy
Cost rolls up through the hierarchy below. The upper levels come from the account structure; the lower levels come from tags.
| Level | Source | FOCUS column | Fallback when missing |
|---|---|---|---|
| Organisation | Billing account | BillingAccountId, BillingAccountName | Not applicable |
| Business unit | Account folder or management group, mapped in the account registry | SubAccountId mapped through the registry | Account registry owner |
| Cost centre | Tag cost-center | Tags | Cost centre of the account in the registry |
| Owning team | Tag owner-team | Tags | Owning team of the account in the registry |
| Service | Tag service | Tags | unassigned-[team] bucket owned by the team |
| Environment | Tag environment | Tags | Environment of the account in the registry |
Account registry: keep one record per account, subscription or
project with business unit, default cost centre, default owning team and
default environment. The account vending process in the Landing Zone
Design (architecture/landing-zone-design) MUST create the registry
record before the account is handed over.
Allocation precedence: when sources disagree, use the first that applies:
- for an allocated charge from a data generator-calculated split cost
allocation (the FOCUS term;
AllocatedResourceIdis not null): the mandatory keys inAllocatedTags, falling back toTagsfor keys not present there; - resource tag on the charge (FOCUS
Tags); - account registry defaults for the
SubAccountId; - a shared-cost rule from section 8;
- the unallocated bucket owned by the FinOps team.
Split rows come first because, on an allocated charge, Tags carries the tags of the origin
resource (for example the cluster node), and FOCUS does not repeat those tags in AllocatedTags.
Ranking Tags first would send every split row back to the node owner and undo the split.
4. Mandatory tags and allowed values
4.1 Tag dictionary
| Key | Required on | Allowed values or pattern | Source of truth | Purpose |
|---|---|---|---|---|
cost-center | All taggable resources | Example: cc- followed by 4 digits, from the finance list | Finance cost centre list | Finance roll-up and chargeback |
owner-team | All taggable resources | Team slug from the team directory | Team directory (Team API) | Accountability and showback |
service | All taggable resources | Service ID from the service catalogue | Service catalogue | Product and unit cost |
environment | All taggable resources | prod, staging, dev, sandbox, shared | This standard | Separating production from non-production cost |
data-classification | Data stores and compute that processes data | public, internal, confidential, restricted | Data classification policy | Security and residency controls |
expires-on | Resources in sandbox accounts | Date in YYYY-MM-DD format, at most [30] days ahead | Requester | Automatic clean-up |
managed-by | Optional | iac, console, platform | Pipeline or platform | Drift and clean-up analysis |
4.2 Format rules
- Keys and values MUST be lowercase, using letters, digits and hyphens only. Some providers accept only lowercase label keys; one format avoids per-provider mapping.
- Values SHOULD be at most [63] characters (Example, chosen to fit the strictest provider in use; check the current limits of each provider).
- Keys MUST NOT carry a provider-reserved prefix. FOCUS requires
provider-defined tags to carry a provider prefix, so user-defined keys
without one remain distinguishable in the
Tagscolumn. - Values MUST come from the source of truth named in 4.1. Free-text values are rejected by enforcement.
- Tags MUST NOT contain secrets or personal data: tag values are visible in billing exports to everyone who can read cost data.
4.3 Changing the dictionary
Request new keys or new allowed values through [FinOps intake]. The FinOps team decides within [10 business days] after consulting finance and the platform team. New mandatory keys take effect no earlier than [60 days] after approval, with audit-mode enforcement during that period.
5. Policy statements
| ID | Statement |
|---|---|
| CAT-POL-001 | Every account, subscription or project MUST have a record in the account registry with business unit, default cost centre, default owning team and default environment. |
| CAT-POL-002 | Every taggable resource MUST carry all mandatory tags in section 4.1 with allowed values. |
| CAT-POL-003 | Infrastructure as code modules MUST expose the mandatory tags as required inputs and apply them to every taggable resource they create (see Infrastructure as Code Module Specification, ops/iac-module-specification). |
| CAT-POL-004 | Production accounts MUST reject creation of taggable resources without mandatory tags; non-production accounts MUST at least report them daily. |
| CAT-POL-005 | Tags SHOULD be inherited from the account or resource group where the provider supports inheritance, and resource tags SHOULD override inherited values only when more specific. |
| CAT-POL-006 | Kubernetes workloads MUST carry owner-team and service as labels on namespaces, and the cluster cost tool MUST use them to allocate node cost (section 8.2). |
| CAT-POL-007 | Untaggable charges MUST be allocated by a rule in section 7 and MUST NOT be counted as tag non-compliance. |
| CAT-POL-008 | Every shared-cost rule MUST name its driver, data source, owner and review date, and MUST be reproducible from FOCUS data. |
| CAT-POL-009 | Allocated results MUST be published monthly to every owning team within [5 business days] after the provider's billing period closes. |
| CAT-POL-010 | Unallocated cost MUST stay below the target in section 11; the FinOps team MUST investigate any month above it. |
| CAT-POL-011 | Resources in sandbox accounts MUST carry expires-on and SHOULD be deleted automatically after that date unless renewed. |
| CAT-POL-012 | Tag values MUST NOT contain secrets, credentials or personal data. |
6. Tag governance and enforcement
| Control ID | Control | Type | Where | Scope | Response |
|---|---|---|---|---|---|
| TAG-CTL-01 (Example) | Pipeline policy check on infrastructure plans | Preventive | CI pipeline | All accounts | Pipeline fails with the list of missing tags |
| TAG-CTL-02 (Example) | Provider tag policy with deny on create | Preventive | Organisation policy | Production accounts | Request blocked |
| TAG-CTL-03 (Example) | Kubernetes admission policy for namespace labels | Preventive | Cluster admission | All clusters | Namespace creation rejected |
| TAG-CTL-04 (Example) | Daily compliance scan against the dictionary | Detective | Cost and inventory data | All accounts | Ticket to owning team, due in [5 business days] |
| TAG-CTL-05 (Example) | Auto-remediation from account registry defaults | Corrective | Scheduled job | Non-production | Defaults applied, owner notified |
| TAG-CTL-06 (Example) | Sandbox expiry clean-up | Corrective | Scheduled job | Sandbox accounts | Resources past expires-on stopped, then deleted after [7] days |
| [TAG-CTL-NN] | [Control] | [Type] | [Where] | [Scope] | [Response] |
6.1 Rollout of enforcement
- Audit mode for [60 days]: policies report but do not block. Publish the list of failing resources per team weekly.
- Deny in new production deployments once audit findings for production fall below [5%] of resources.
- Deny everywhere except sandbox after a further [30 days].
- Remediate the remaining backlog with registry defaults and team tickets; track in the monthly report.
6.2 Example policy as code
Example only: an Open Policy Agent rule (Rego v1 syntax) that checks a Terraform plan in JSON
form (terraform show -json) for the mandatory tags and the environment values. It evaluates
the effective tags, not only the tags written on the resource: with the AWS provider
default_tags block (the usual way to implement CAT-POL-005 inheritance), the merged set appears
in tags_all and tags may be null. Adapt attribute names per provider (some use labels).
package corvid.tagging
import rego.v1
required := {"cost-center", "owner-team", "service", "environment"}
allowed_environments := {"prod", "staging", "dev", "sandbox", "shared"}
# Provider default tags from the plan configuration (AWS provider
# default_tags block); empty when the provider sets none.
default_tags := dt if {
some block in input.configuration.provider_config.aws.expressions.default_tags
dt := block.tags.constant_value
} else := {}
changed contains rc if {
some rc in input.resource_changes
some action in rc.change.actions
action in {"create", "update"}
}
# A tag attribute can be null or absent (unknown until apply).
as_map(x) := x if {
is_object(x)
} else := {}
attr(rc, name) := as_map(object.get(rc.change.after, name, {}))
# Effective tags: provider defaults, then the merged tags_all attribute
# where the plan already knows it, then resource tags (right side wins).
effective_tags(rc) := object.union(
object.union(default_tags, attr(rc, "tags_all")),
attr(rc, "tags"),
)
deny contains msg if {
some rc in changed
missing := required - object.keys(effective_tags(rc))
count(missing) > 0
msg := sprintf("%s: missing mandatory tags %v", [rc.address, missing])
}
deny contains msg if {
some rc in changed
env := effective_tags(rc).environment
not env in allowed_environments
msg := sprintf("%s: environment value %q is not allowed", [rc.address, env])
}
Example limitations to test before switching to deny:
tags_allis often unknown at plan time and is then absent fromchange.after; the rule therefore adds the provider default tags read from the plan's configuration section. Default tags set through a variable or an aliased provider (aws.<alias>) appear as references, not constant values, so read them from your own pipeline input instead.- Run the policy against a plan that relies only on inherited tags and confirm that it passes; a policy that rejects compliant resources is the usual reason a deny rule gets removed.
- Keep the list of resource types that cannot carry tags in the policy repository and exclude them explicitly, so that exclusions are reviewed like any other code change.
7. Untagged and untaggable cost
| Category | Definition | Treatment | Owner |
|---|---|---|---|
| Untagged (taggable) | Charge for a resource that supports tags but lacks one or more mandatory tags | Allocate by account registry defaults; count as non-compliant in section 11; ticket to the owning team | Owning team |
| Untaggable | Charge that cannot carry a resource tag (support plans, taxes, promotional credits, some marketplace fees, some data transfer) | Allocate by a rule below; report as its own line | FinOps team |
| Unallocated | Charge that neither a tag, the registry nor a rule can assign | Held in the FinOps unallocated bucket; investigated monthly | FinOps team |
Untaggable cost rules:
| Rule ID | Charge type | FOCUS filter | Allocation driver |
|---|---|---|---|
| UNT-01 (Example) | Provider support plan | ChargeCategory = Purchase and ServiceName of the support offer | Proportional to each business unit's direct allocated EffectiveCost (section 8.1) |
| UNT-02 (Example) | Tax | ChargeCategory = Tax | Same allocation as the charges the tax applies to, else proportional to direct cost |
| UNT-03 (Example) | Promotional and programme credits | ChargeCategory = Credit (FOCUS: incentives or allowances unrelated to other charges) | To the team or business unit the credit programme was granted for, else proportional to direct cost |
| UNT-04 (Example) | Commitment purchases | ChargeCategory = Purchase with CommitmentDiscountId | Amortised through EffectiveCost to the resources that used the commitment; unused commitment to the FinOps central budget |
| UNT-05 (Example) | Refunds and corrections | Negative charges within Usage, Purchase or Tax (FOCUS keeps refunds in the category of the original charge); ChargeClass = Correction marks corrections to a closed billing period | Same allocation as the original charge, matched on ResourceId or SubAccountId; corrections to closed periods are booked in the current period, not restated |
| [UNT-NN] | [Charge type] | [Filter] | [Driver] |
8. Shared cost allocation rules
Choose the method per shared cost:
| Method | When to use | Risk |
|---|---|---|
| Proportional | A measured driver reflects consumption (CPU requests, bytes ingested, direct spend) | Needs reliable driver data every month |
| Even split | Consumers benefit roughly equally and the amount is small | Penalises small consumers |
| Fixed percentages | Driver data is not available yet; percentages agreed for a fixed period | Drifts from reality; review at least yearly |
| Rule ID | Shared cost | Method | Driver and data source | Recipients | Owner | Review |
|---|---|---|---|---|---|---|
| SHR-01 (Example) | Shared Kubernetes cluster nodes | Proportional, idle redistributed | Namespace CPU request hours from the cluster cost tool | Owning teams by namespace label | [@platform-runtime] | Quarterly |
| SHR-02 (Example) | Provider support plan (UNT-01) | Proportional | Direct allocated EffectiveCost per business unit | Business units | [@finops-lead] | Yearly |
| SHR-03 (Example) | Observability SaaS platform | Fixed percentages | Ingest volume measured at the start of the year | Business units | [@platform-runtime] | Yearly |
| [SHR-NN] | [Shared cost] | [Method] | [Driver] | [Recipients] | [@name] | [Cadence] |
8.1 Worked example: support plan (SHR-02)
Example (a different month from the section 11 example): support plan charge in the month: USD 18,000. Direct allocated EffectiveCost by business unit: Storefront USD 300,000, Payments USD 150,000, Data USD 150,000, total USD 600,000.
| Business unit | Direct cost (USD) | Share | Support allocated (USD) |
|---|---|---|---|
| Example: Storefront | 300,000 | 300,000 / 600,000 = 50% | 9,000 |
| Example: Payments | 150,000 | 25% | 4,500 |
| Example: Data | 150,000 | 25% | 4,500 |
| Total | 600,000 | 100% | 18,000 |
8.2 Worked example: shared cluster with idle capacity (SHR-01)
Example: cluster node cost in the month: USD 120,000. Share of requested CPU hours: checkout 45%, catalog 30%, payments-core 15%; the remaining 10% is idle capacity that no workload requested.
| Recipient | Requested share | Direct share (USD) | Idle redistributed (USD) | Total (USD) |
|---|---|---|---|---|
| Example: checkout | 45% | 54,000 | 12,000 × 45 / 90 = 6,000 | 60,000 |
| Example: catalog | 30% | 36,000 | 12,000 × 30 / 90 = 4,000 | 40,000 |
| Example: payments-core | 15% | 18,000 | 12,000 × 15 / 90 = 2,000 | 20,000 |
| Idle | 10% | 12,000 | redistributed | 0 |
| Total | 100% | 120,000 | 12,000 | 120,000 |
The alternative is to leave idle cost (USD 12,000) with the platform team as a visible efficiency target. Choose one approach, state it in the rule, and report idle cost as its own number either way, so that redistribution does not hide waste.
8.3 Worked example: observability platform (SHR-03)
Example: platform charge USD 30,000 with fixed shares agreed for the year: Storefront 40%, Payments 40%, Data 20%. Allocated: USD 12,000, USD 12,000 and USD 6,000. An even split would give USD 10,000 each, moving USD 4,000 of cost onto Data, the smallest consumer.
9. Showback and chargeback
| Aspect | Showback | Chargeback |
|---|---|---|
| What happens | Allocated cost is reported to owners | Allocated cost is booked against the owner's budget by finance |
| Prerequisites | Allocation hierarchy and monthly report | Allocation coverage (KPI-02) at its section 11 target for [3] consecutive months, agreed dispute process, finance journal process |
| Behaviour it drives | Awareness and voluntary optimisation | Budget accountability |
| Typical use | Example: Platform shared costs, early adoption phase | Example: Business units with their own P&L |
Decision for this organisation: [Example: Showback for all teams
from the effective date; chargeback to business units from [YYYY-MM-DD]
once allocation coverage (KPI-02) meets its target in section 11 for
three consecutive months.
Platform shared capabilities stay centrally funded during platform
adoption, as set in the Internal Developer Platform Charter
(architecture/internal-developer-platform-charter).]
Dispute process: owners raise disputes within [10 business days] of the report. The FinOps team corrects tags or rules in the next cycle; finance posts corrections only above [USD 1,000] per line (Example threshold).
10. Mapping to FOCUS 1.4
| Allocation element | FOCUS 1.4 column | Notes |
|---|---|---|
| Organisation | BillingAccountId, BillingAccountName | Top of the hierarchy |
| Account, subscription or project | SubAccountId, SubAccountName, SubAccountType | Key into the account registry |
| Resource tags | Tags | JSON object of finalised user-defined and provider-defined tags |
| Data generator-calculated split allocation | AllocatedResourceId, AllocatedResourceName, AllocatedTags, AllocatedMethodId, AllocatedMethodDetails | Present only when the provider calculates split cost allocation, for example for container workloads |
| Service grouping | ServiceName, ServiceCategory, ServiceSubcategory | ServiceCategory uses the specification's fixed list of allowed values |
| Charge type | ChargeCategory, ChargeClass | Drives the untaggable rules in section 7 |
| Cost measure for allocation | EffectiveCost | Amortised cost after discounts; use BilledCost only to reconcile with invoices |
| Commitments | CommitmentDiscountId, CommitmentDiscountStatus | Unused commitment handling in UNT-04 |
| Period | BillingPeriodStart, BillingPeriodEnd, ChargePeriodStart, ChargePeriodEnd | Monthly allocation uses the billing period |
| Invoice reconciliation | InvoiceId, and the Invoice Detail and Billing Period datasets added in FOCUS 1.4 | Reconcile chargeback totals (BilledCost) to provider invoices before finance posts journals |
10.1 Custom columns for enrichment
When the organisation adds its own allocation results to a FOCUS dataset,
name the added columns with the x_ prefix (required by the Custom
Column Handling attribute of FOCUS 1.4) and in Pascal case with Id or
Name suffixes (recommended by the same attribute), so that they cannot
collide with columns added in later FOCUS versions.
| Custom column | Content | Populated by |
|---|---|---|
x_CostCenterId (Example) | Final cost centre after precedence rules | Allocation job |
x_OwnerTeamName (Example) | Final owning team | Allocation job |
x_ServiceId (Example) | Final service ID | Allocation job |
x_AllocationRuleId (Example) | Rule applied (tag, registry, SHR-NN, UNT-NN or unallocated) | Allocation job |
x_TagCompliant (Example) | true when all mandatory tags are present and valid | Compliance scan |
The FOCUS specification also covers data generator-calculated split cost allocation: when a provider splits one charge into allocated charges, the sum of each cost and quantity column across the allocated charges must equal the origin charge. Apply the same rule to internal splits: the sum of allocated amounts per rule MUST equal the source charge, and the monthly report MUST show the reconciliation.
11. Compliance measurement
| KPI ID | KPI | Formula | Target | Cadence |
|---|---|---|---|---|
| KPI-01 | Tag compliance | EffectiveCost of taggable charges with all mandatory tags valid / EffectiveCost of all taggable charges | Example: at least 95% | Monthly, daily trend |
| KPI-02 | Allocation coverage | EffectiveCost allocated by tag, data generator split, registry or rule / total EffectiveCost | Example: at least 98% | Monthly |
| KPI-03 | Unallocated share | 1 minus KPI-02 | Example: at most 2% | Monthly |
| KPI-04 | Remediation time | Median days from detection of a non-compliant resource to fix | Example: at most 5 business days | Monthly |
| KPI-05 | Report timeliness | Business days from billing period close to published allocation | Example: at most 5 | Monthly |
Example month for Corvid Commerce:
| Item | Amount (USD) |
|---|---|
| Total EffectiveCost | 640,000 |
| Untaggable (support 18,000 plus tax 4,000) | 22,000 |
| Taggable | 640,000 minus 22,000 = 618,000 |
| Taggable with all mandatory tags valid | 571,650 |
| Taggable but non-compliant | 618,000 minus 571,650 = 46,350 |
| Of which allocated by account registry defaults | 30,000 |
| Unallocated | 46,350 minus 30,000 = 16,350 |
- KPI-01 tag compliance = 571,650 / 618,000 = 92.5% (below the 95% target: action required).
- KPI-02 allocation coverage = (571,650 + 22,000 + 30,000) / 640,000 = 623,650 / 640,000 = 97.4% (below the 98% target).
- KPI-03 unallocated share = 16,350 / 640,000 = 2.6% (above the 2% limit: CAT-POL-010 investigation required).
The Cloud Cost Review (ops/finops-cost-review) reports these KPIs per
account each period. This standard owns their definitions.
12. Exceptions and risk acceptance
Request exceptions through [FinOps intake] with the policy statement affected, the reason, the compensating allocation method and an end date. Exceptions are granted for at most [6 months] and may be renewed once; a second renewal needs the platform steering group or the CFO delegate.
| Exception ID | Policy | Scope | Reason | Compensating method | Approved by | Expires |
|---|---|---|---|---|---|---|
| CAT-EXC-001 (Example) | CAT-POL-004 | Legacy data warehouse account | Provider service does not support tag policies at create | Registry defaults; whole account is one service | [@finops-lead] | YYYY-MM-DD |
| CAT-EXC-002 (Example) | CAT-POL-002 | Acquired company accounts | Integration in progress | Fixed allocation to the acquired business unit | [@cfo-delegate] | YYYY-MM-DD |
| [CAT-EXC-NNN] | [Policy] | [Scope] | [Reason] | [Method] | [@name] | YYYY-MM-DD |
13. Review cycle and related documents
Review this standard at least yearly, and also after a reorganisation, a new cloud or SaaS provider, a new FOCUS version, or a quarter in which KPI-03 exceeded its limit twice. The FinOps lead owns the review; finance confirms the hierarchy.
| Document | Relationship |
|---|---|
Cloud Cost Review (ops/finops-cost-review) | Periodic review that reports compliance against this standard |
Landing Zone Design (architecture/landing-zone-design) | Account structure, registry creation and tag guardrails |
Infrastructure as Code Module Specification (ops/iac-module-specification) | Tagging contract of each module |
Kubernetes Cluster Design (ops/kubernetes-cluster-design) | Namespace labels and cluster cost tooling |
Internal Developer Platform Charter (architecture/internal-developer-platform-charter) | Funding model for platform shared costs |
TCO Analysis (architecture/tco-analysis) | Forward-looking cost estimates that use the same dimensions |
14. Glossary and references
14.1 Glossary
| Term | Meaning |
|---|---|
| Allocation | Assigning a charge to an accountable owner and business dimension |
| Showback | Reporting allocated cost to owners without booking it to their budgets |
| Chargeback | Booking allocated cost to the owner's budget through finance |
| Shared cost | Cost of a resource or service used by several owners |
| Untaggable charge | Charge that cannot carry a resource tag |
| Idle capacity | Paid capacity that no workload requested in the period |
| Account registry | Record of each account with its default allocation dimensions |
| EffectiveCost | FOCUS column for amortised cost after applicable discounts |
| Allocated charge | FOCUS row produced when a data generator splits one origin charge across several consumers; identified by a non-null AllocatedResourceId |
| Correction | FOCUS ChargeClass value for a charge that corrects a closed billing period |
| Effective tags | The tags a resource ends up with after provider default tags, inherited tags and resource tags are merged |
| Custom column | Column added to a FOCUS dataset outside the specification, prefixed x_ |
| Policy as code | Rules written as code and evaluated automatically in pipelines or platforms |
14.2 References
| Reference | Version or date checked | Use |
|---|---|---|
| FinOps Open Cost and Usage Specification (FOCUS), github.com/FinOps-Open-Cost-and-Usage-Spec/FOCUS_Spec (tag v1.4) and focus.finops.org | 1.4, ratified 2026-06-04, checked 2026-10-24 | Column names, ChargeCategory and ChargeClass semantics, Custom Column Handling, split cost allocation, Invoice Detail dataset |
| FinOps Framework, FinOps Foundation, finops.org/framework | 2026 update, checked 2026-10-24 | Allocation, Invoicing & Chargeback and Governance, Policy & Risk capabilities |
| Open Policy Agent, Rego policy language, openpolicyagent.org | Current documentation | Policy as code example syntax |
Cloud Cost Review (ops/finops-cost-review) | Companion | Periodic review |
Landing Zone Design (architecture/landing-zone-design) | Companion | Account structure and guardrails |
Standard and licence note
Based on the FinOps Open Cost and Usage Specification (FOCUS) 1.4, ratified on 2026-06-04, and aligned with the FinOps Framework (2026 update) of the FinOps Foundation, both published under the Creative Commons Attribution 4.0 International licence (CC BY 4.0, https://creativecommons.org/licenses/by/4.0/). FOCUS is © Joint Development Foundation Projects, LLC, FinOps Open Cost and Usage Specification (FOCUS) Series and its contributors. See https://focus.finops.org/ and https://www.finops.org/framework/. FOCUS column names and FinOps capability names are used with attribution; the specification text is not reproduced, and all policy statements, rules, examples and the policy-as-code sample are original to this collection. FinOps capability names change between framework updates: check the current list at finops.org/framework before use. Open Policy Agent and Terraform are trademarks of their owners; this template is not affiliated with or endorsed by them. Corvid Commerce is fictional. Check the current official versions before use. Template licence: MIT.
संबंधित टेम्पलेट
Cloud Cost Review Template (FinOps FOCUS 1.4)
Periodic cloud and technology cost review: FOCUS 1.4 metrics, allocation per tagging standard, unit economics, anomalies, commitments, FinOps 2026 capabilities
परिचालनAccess Review Template
Periodic access audit – keep/modify/revoke
परिचालनAlerting Policy Template (SLO Burn-Rate Alerts)
Symptom-based paging, page vs ticket vs log, multi-window burn-rate rules with worked numbers, alert metadata, naming, routing, noise budget, review, alerts as code