Fill owner columns from a lookup file kept in git
Map namespaces, accounts or feature keys to teams with an enrichment file, then report on the new columns in Explorer, dashboards, alerts and reports.
Runs in
Claude
First optimization recommendation
The next day
ROI
Pays for itself with the first recommendation you act on
enrichments/namespace_to_org.yaml
name: namespace_to_org description: Namespaces whose pod label does not resolve, mapped to the responsible organization keyField: cos_namespace priority: 2 conditions: 'input.cos_cluster_name != null && input.cos_namespace != ""' targetColumns: - name: owner_team mode: merge - name: engineering_manager mode: merge entries: - key: payments then: owner_team: Commerce engineering_manager: Thomas - key: fluent-bit then: owner_team: Platform engineering_manager: Mary
You decide
An organization admin tests the file on a billed row and publishes it.
Playbook
What the agent does
From what Costory notices to what you decide. Costory suggests the next step in conversation, and you decide whether to go ahead.
Costory notices
Cost cannot be traced to an owner, or an allocation table has outgrown the rules on the Dimensions page.
Costory investigates
01
Find the gap
Group cost by the column you want to fill and list the keys with no owner, such as Kubernetes namespaces or shared accounts.
02
Draft the lookup file
Draft one file for your repo: the billing column to read, the columns to write, and either fixed values, weights you set, or a daily split from a BigQuery usage table. Use merge to keep an owner a row already has, or replace to overwrite it.
03
Test, then publish
An organization admin tests one billed row on the Dimensions page, which shows each file's hit or miss and the resulting values, then publishes. Costory applies the files on the next billing update, including history.
04
Report on the new columns
The output columns are available in Explorer, dashboards, alerts and reports.
Where you see it
enrichments/namespace_to_org.yaml
You decide
An organization admin tests the file on a billed row and publishes it.
Why it matters
Some allocation is a long table: namespaces, accounts or feature keys mapped to owners. Rules in the app suit tens of rules, and this table belongs in git with the rest of your configuration.
Who it’s for
Platform teams, FinOps leads
Where it runs
Claude
What you get
What lands in front of your team
Allocation in git
The lookup table lives in git with the rest of your configuration.
Tested before it is live
Check one billed row against the drafts before you publish.
Columns everywhere
The output columns are available in Explorer, dashboards, alerts and reports.
Example prompts
Or drive it yourself
Draft
Draft an enrichment file that maps our Kubernetes namespaces to owner teams and keeps any owner that is already set.
Explain
Write a short note for team leads explaining how the owner column is filled and where the lookup file lives.
FAQ
Questions about this playbook
When should I use an enrichment instead of a virtual dimension?
Use an enrichment when the allocation is a table you want in git: it is a lookup file that can hold thousands of keys and is changed by an organization admin. Use a virtual dimension when someone should read and change the rules in the app: it is a short list of rules, meant for tens of rules. Enrichments are in beta.
Who can publish an enrichment?
Writes require an organization admin and a bearer token from the Costory app. Files are uploaded through the API or with the Costory Terraform provider (0.3.1 or later). The Dimensions page reviews and publishes them but does not edit the files.
How do I check a file before it goes live?
On the Dimensions page, click Test enrichments, fill the columns for one billed row and click Test. Costory runs that row through the live files with your drafts applied. For a dynamic split, the test names the metric table but does not compute the shares, which appear after publish on the next billing update.
Does Costory change anything in our cloud accounts?
No. Costory reads billing exports and the metrics you connect, and has no write access to your cloud. Actions it takes create Costory objects only: alerts, reports, dashboards and events. Your team stays in control of every change.
Step-by-step guide in the Costory docs
Related playbooks
Run these alongside it
Costory notices
The unallocated bucket grows above your threshold.
Allocate cloud costs without perfect tagging
Map accounts, projects, resource names and partial tags to teams with rules, instead of waiting for a tagging project to finish.
See the playbook
Costory notices
A shared service's cost grows, or a new team starts using it.
Split shared infrastructure costs by actual usage
Allocate shared databases, networking and platform services to the teams that use them, based on real usage metrics.
See the playbook
Costory notices
Weekly, or when untagged spend jumps.
Tag coverage audit: the agent finds allocation gaps and drafts the rules
Find which label keys could become dimensions, how much spend each one covers, and where untagged cost is concentrated.
See the playbook

Put this playbook on call
Included in every plan, from €250/month. 30-day free trial: connect in under 30 minutes, get your first optimization recommendation the next day.
First optimization recommendation
The next day
ROI
Pays for itself with the first recommendation you act on
Setup
About 30 minutes
Data residency
EU
Access
Read-only on your cloud
