json
Template
ufms-tag-schema.json
UFMS Tag Schema
Reference JSON schema for the institutional tag set, with version metadata and validation rules.
Download ↓The Problem
Tag policies exist on paper. Coverage hovers between sixty and eighty percent. A weekly report names the worst offenders, but the cleanup is forever after the fact. Resources are created without tags, run for days or weeks, and are reattributed only when somebody notices a bill spike. Every other capital domain depends on attribution, and attribution depends on tagging, so the absence of an at-provisioning gate is the foundational control gap.
The Detection
If any production-account resource can be created today without the institution’s required tag set, the institution is below Best on this capability. If the institutional answer to a tag violation is a Slack reminder, the institution is below Reactive.
Practice Spectrum
Resources are provisioned with no tags. Cost cannot be attributed to a team, product, or environment. Every monthly review devolves into archaeology.
Tag policies exist on paper. Coverage is below seventy percent. Manual sweeps re-tag noisy offenders after the fact, often weeks later.
Tags are required at provisioning time for the top three resource types. Coverage is above ninety percent. A weekly report names tag-violation owners.
Policy-as-code blocks any non-compliant provisioning at the gate. Coverage is above ninety-eight percent. Reconciliation runs hourly against the institutional ownership graph.
No untagged resource can exist. Tag schema is published in UFMS, signed daily, and the institutional ownership graph is the canonical source of truth for every other domain.
The Outcome
A policy-as-code gate that blocks any non-compliant provisioning across all production accounts. Coverage above ninety-eight percent, with continuous reconciliation. Tag schema published in UFMS, signed daily, and treated as the canonical input for Score V2, Maturity, and the ownership graph.
Cost delta
Enables every other cost playbook (foundational)
Efficiency
+15 efficiency points (Score V2)
Value lift
+8 value points (Score V2)
Risk reduction
-26 risk points (Score V2)
Ship It
Step 01
Document the required tag set: cost_center, product_id, environment, owner_id, data_classification, and any institution-specific additions. Publish under UFMS as a versioned schema. Treat the schema as a controlled object with a change log.
{
"schema_version": "1.0.0",
"required_tags": [
"cost_center",
"product_id",
"environment",
"owner_id",
"data_classification"
],
"valid_environments": ["prod", "stage", "dev", "sandbox"],
"valid_data_classifications": ["public", "internal", "confidential", "restricted"]
}Step 02
Implement the tag policy in the institution’s preferred policy engine (OPA, Sentinel, or the cloud-native equivalent). The gate runs at provisioning time and rejects any non-compliant request. Treat the gate itself as code under review.
package ifo4.tags
required := {"cost_center", "product_id", "environment", "owner_id", "data_classification"}
deny[msg] {
some r
resource := input.resource_changes[r]
tag_keys := { k | resource.change.after.tags[k] }
missing := required - tag_keys
count(missing) > 0
msg := sprintf("resource %v missing required tags: %v", [resource.address, missing])
}Step 03
Identify every path that can create a resource: Terraform pipelines, gcloud or aws-cli commands run from a controlled bastion, console clicks, and SDK calls. Each path must traverse the gate. Where a path cannot be gated (legacy console clicks), fence it off behind a break-glass procedure.
Step 04
For every resource, reconcile the owner_id tag against the institutional directory of record. Stale, missing, or invalid owner_id values trigger automatic reassignment to the resource creator and a paging event to the team lead.
Step 05
Each week, publish a one-page coverage report: tag coverage by account, top non-compliant teams, top non-compliant resource types, and the trend. The report is the input to the FinOps lead’s weekly review.
Step 06
At the close of each day, hash the active tag schema and the coverage roll-up, and sign with the institution’s Sigstore key. The aim is that any external verifier can independently confirm both the policy and the operating state of the policy on any given day.
Step 07
For genuine emergencies (incident response, regulatory audit access), document a break-glass procedure that allows an authorised actor to bypass the gate with a recorded justification, a recorded approver, and a forty-eight-hour cleanup deadline. Treat each invocation as a control event.
The Templates
json
Template
ufms-tag-schema.json
Reference JSON schema for the institutional tag set, with version metadata and validation rules.
Download ↓tf
Template
opa-tag-policy.tar.gz
Open Policy Agent rego bundle implementing the tag enforcement policy, suitable for Terraform validation pipelines.
Download ↓md
Template
break-glass-procedure.md
Markdown template documenting the break-glass procedure, with named approver roles and cleanup deadlines.
Download ↓The Evidence
Published UFMS tag schema
Schema document committed to a versioned repository with named schema owner.
Policy-as-code repository
Repository containing the active policy with a recent green CI run and change history.
Four consecutive weekly coverage reports
Coverage trend showing above-ninety-percent coverage across all production accounts.
Daily signature trail
Thirty consecutive days of signed schema and coverage snapshots.
The Impact
Adopters
The cohort sample is below the publish threshold (N<5). When we have at least five completions, this panel will surface the median score lift, median cost savings, and median time to complete from the IFO4 impact API.
Pair this with
AI Compute · Best
AI inference invoices arrive as a single consolidated charge per provider per month.
Open →SaaS · Best
SaaS subscriptions accumulate quietly through expense cards, individual purchase orders, and shadow IT.
Open →Technology · Elite
Reservations and savings plans are purchased once a year, on a calendar reminder, by whoever has the access at the time.
Open →Begin the playbook
Start the playbook, simulate the impact first, or take it to the community. Every move is logged.