FOCUS Working Group / Release 1.5
What 1.5 does for AI cost, and what it does not
Every AI-related item in the FOCUS 1.5 release, sorted by how likely it is to ship. Buckets 1 and 2 are the release story. Bucket 3 is decided on August 13. Bucket 4 is the answer to "why isn't X in there."
What we expect to land
Already merged, or owned and scheduled with a named person against it.
- Cost data names the model. Which model ran, who built it, and which version, recorded the same way regardless of which vendor sent the bill. Merged
- Worked examples for AI billing. Published, downloadable examples showing how to turn a token or generation bill from any AI vendor into FOCUS, including capacity bought up front and drawn down over time.
- Cost rows name who spent it. The person, service, or automated agent behind a charge, so AI spend can be attributed to a team rather than landing in one pool.
- Prices become comparable before purchase. A published price catalog, so model rates can be compared across vendors ahead of a commitment rather than reconstructed after the invoice.
- Prepaid tokens and credits are handled consistently. Bundles and platform credits stop falling out of cost reporting or double counting against the cash that bought them.
- A FinOps Foundation paper on FOCUS for AI. The narrative case, written for people who will not read column definitions.
Within reach, decided 13 August
Two lower-effort items that attach to the same structure the merged model-identity work already uses, so they extend a shipped pattern rather than introducing new plumbing.
- Cache economics become visible. Tokens served from cache separate from tokens processed fresh, so a rising bill from a falling cache hit rate is distinguishable from one driven by more traffic.
- Global and region-pinned serving separate. The one AI cost dimension that is a rate question and a data residency question at the same time.
Detail in bucket 3: FR 2099 and FR 2414. The remaining eight items in bucket 3 are larger pieces of work and are likelier to move to 1.6.
Both columns assume the work clears the review stages below. The left column is the release story as it stands today. The right column is a decision, not a forecast, and it resolves on 13 August.
Terms used here
- Token
- The unit AI models bill on, roughly a fragment of a word. Input tokens are what you send the model, output tokens are what it sends back, and they are usually priced differently.
- SKU
- The specific thing being bought, at the granularity the vendor prices it. A given model at a given rate is a SKU.
- SKU price detail
- A set of attributes describing what a priced item actually is. Model name, family, and version live here, which is why they arrived in 1.5 without adding new columns.
- Meter
- What is being counted on a charge line, such as input tokens or output tokens. It is how a bill distinguishes two charges for the same model.
- Drawdown
- Capacity bought up front and consumed over time. The purchase and the usage land on different lines, which is why it needs explicit treatment.
- Working draft
- The live version of the specification between releases. Merged work sits there until 1.5 publishes in December.
Gate schedule
The August 13 gate is the one that matters for this list. Anything not drafted by that date does not make 1.5, regardless of merit.
No items match that filter.
Complete
Merged into the working draft. These ship in 1.5 unless something is pulled during the consistency review, which is rare.
Merged 20 Jul
FR 2018
Detail +Detail −
Cost data can now say which model was billed and who built it.
owner Matt Cowsert
group TF-2
What it adds
Four FOCUS-defined properties on SkuPriceDetails: ModelDeveloper, ModelFamily, ModelId, and ModelVersion. No new columns, and no change to the existing SkuPriceDetails requirements, so this is additive for every data generator.
It also lands a worked appendix example with two scenarios and backing CSV data: a model purchased directly from its developer, and the same model resold by a cloud provider as a first-party service. The second scenario is the one practitioners get wrong today, because the service provider and the model developer are different companies.
A deliberate omission
The input versus output token split is carried structurally, as separate SKUs distinguished by SkuMeter, rather than through a dedicated token-type property. That decision is revisitable and is tracked in bucket 4.
Why it matters
This is the piece that makes multi-vendor AI spend comparable. Without it, an organization can say it spent a given amount on models last quarter but cannot break that down by model without vendor-specific parsing.
Merged 23 Jul
Enabler
Action Item 2378
Detail +Detail −
Service category definitions no longer assume cloud, so AI, SaaS, and on-premises spend classify cleanly.
owner Shawn Alpay
What it changes
Rewrites the ServiceCategory descriptions that referred to "cloud" so they apply equally to hybrid, SaaS, and on-premises environments, and moves Multicloud into alphabetical position. Strictly backward compatible: no allowed values added, removed, or renamed.
Context for AI
An "AI and Machine Learning" service category already exists, with subcategories for AI Platforms, Bots, Generative AI, Machine Learning, Natural Language Processing, and Other. This work removes the cloud-only framing around it, which mattered because a large share of AI spend now arrives from vendors that are not cloud providers.
In flight
Owned, scheduled, and expected to merge before the development phase closes on 8 October. Each has a named owner and dated next step.
FR 1941
Detail +Detail −
Published examples showing how to map token and generation billing from any AI vendor into FOCUS.
owner Larry Advey
group TF-2
next step 5 Aug
The problem it answers
The gap is not the schema. FOCUS already has the columns needed to carry token consumption. The gap is that practitioners cannot tell how those columns apply to AI billing, so every vendor gets normalized differently.
every single one has a different data formatBecky Canterbury, Shutterstock, on working with 20-plus AI vendors
Requested by NatWest, SLB, UK Government Digital Service, Shutterstock, Syngenta, Anglepoint, AWS, and the FinOps Foundation.
What it delivers
Non-normative worked examples with backing datasets, scoped deliberately to already-defined FOCUS columns and properties. A scenario needing an undefined concept becomes a separate proposal rather than inventing something inside an example. Five scenarios carry through, with deliberate variety in SkuMeter so the set does not read as prescriptive.
Open work
- Draft the example set. Due 5 Aug, and the item everything else here waits on.
- Add a prepayment drawdown example. Due 13 Aug. The Task Force found the current set misses the most common real pattern: capacity bought up front, drawn down by usage, so billed cost is zero on usage rows and effective cost reflects amortized consumption.
- Add Kimi on Fireworks AI and further vendor examples. Due 29 Jul.
Enabler
FR 2358
Detail +Detail −
Cost rows can identify the person or agent that drove the spend.
owner Matt Cowsert
group TF-2
What it adds
A PrincipalId column on the Cost and Usage dataset, identifying the actor behind a charge.
Why it belongs in the AI story
This is the attribution primitive behind per-user and per-agent cost. As spend shifts from provisioned infrastructure to per-call model invocations, the question changes from "which account owns this instance" to "which developer, team, or autonomous agent burned these tokens." PrincipalId is what makes that answerable inside billing data rather than by joining to observability.
Live decision
A companion IdentityDetails column, carrying attributes such as name and email, is a separate open question for 1.5. It appears in bucket 3.
Enabler
FR 1057
Detail +Detail −
A published price catalog, which is where model identity actually lives.
owner Shawn Alpay
What it adds
A new SKU Price dataset, carrying prices independently of consumption. Column naming is being settled in parallel, replacing ContractCommitmentDurationType and ContractCommitmentPaymentModel with PurchaseDurationType and PurchasePaymentModel.
The connection to AI
The model-identity properties delivered in bucket 1 describe a SKU price, not a usage row. The SKU Price dataset is what lets an organization compare model rates across vendors before committing spend, rather than discovering the comparison after the invoice arrives. It is the difference between reporting on AI cost and negotiating it.
Due 7 Aug
Enabler
Action Item 2550
Detail +Detail −
How prepaid tokens and vendor credits get treated as currency.
group TF-1
What it covers
A review of how tokens, credits, and crypto are handled as virtual currency in the CurrencyFormat attribute.
Why it matters for AI
A large share of AI spend is transacted in something other than a national currency. Buyers purchase token bundles or platform credits up front and draw them down. If FOCUS treats those units inconsistently, prepaid AI spend either disappears from cost reporting or double counts against the cash that bought it. This work and the prepayment drawdown example in FR 1941 address two halves of the same problem.
Due 4 Aug
Enabler
Action Item 1857
Detail +Detail −
A FinOps Foundation paper on FOCUS for AI, sitting outside the specification itself.
group F2
state In progress
What it is
Supporting content rather than a specification change. It is the narrative piece that explains the position to an audience that will not read column definitions.
Worth flagging separately because it is the only item on this page a board audience would read end to end, and it is due before the August 13 gate.
Under consideration
Filed, understood, and technically achievable inside the remaining runway, but not yet drafted. Each needs drafted content by 13 August to stay in 1.5. Seven of these describe dimensions of the same object, the price of a model call, so the Task Force view is that a single extension to SkuPriceDetails could carry several at once, on the order of four to five use cases from one piece of work.
Slots into SKU price
FR 2099
Detail +Detail −
Separate tokens served from cache from tokens processed fresh.
owner Matt Cowsert
Cached and uncached tokens can differ in price by an order of magnitude at the same vendor. Without the distinction, a rise in token cost cannot be separated from a fall in cache hit rate, so the single most actionable AI optimization lever is invisible in cost data.
FR 2487
Detail +Detail −
Represent reasoning tokens, which are billed but never appear in the response.
owner Matt Cowsert
Reasoning models charge for intermediate tokens the customer never sees. Finance teams reconciling an invoice against application logs find output token counts that do not match the bill, with no standard field explaining the gap.
FR 2488
Detail +Detail −
Represent the standing charge for keeping a context cache warm.
owner Matt Cowsert
Context caching bills on two axes: the tokens processed, and the storage held over time. The second behaves like a storage charge rather than a usage charge, and it accrues whether or not the cache is read.
FR 2489
Detail +Detail −
Distinguish text, image, audio, and video inputs, which price very differently.
owner Matt Cowsert
Adds input modality classification along with recommended SkuMeter values. Multimodal traffic is billed per token, per image, per second of audio, and per frame, depending on vendor and input type. Without a modality dimension, those units collapse into an aggregate that cannot be compared or forecast.
This is a larger piece of work than the other price-detail items in this bucket. The modality classification and the recommended meter values are two jobs rather than one, which puts it outside the set that could realistically be picked up before 13 August.
FR 2521
Detail +Detail −
Distinguish model costs that vary by context window size.
owner unassigned
group unassigned
Several vendors price the same model differently above a context length threshold. The rate change is invisible in cost data today, so a cost increase driven by longer prompts is indistinguishable from one driven by more calls.
The only item in this bucket with neither an owner nor a task force assigned.
FR 2437
Detail +Detail −
Distinguish priority, standard, and batch inference, which carry different rates.
owner Matt Cowsert
Batch and off-peak processing tiers are commonly discounted by half or more against real-time inference. Making the tier visible turns "move this workload to batch" from an intuition into a measurable saving, and lets an organization verify it actually happened.
Slots into SKU price
FR 2414
Detail +Detail −
Distinguish globally served models from region-pinned ones.
owner Matt Cowsert
Global and regional serving carry different rates and different data residency characteristics. This is one of the few AI cost dimensions that is simultaneously a finance question and a compliance question, which makes it awkward to leave undeclared in billing data.
FR 2371
Detail +Detail −
Represent committed AI capacity the way other commitment discounts are represented.
owner Matt Cowsert
Provisioned throughput is a commitment purchase, structurally similar to a reserved instance or savings plan. FOCUS already has a mature commitment discount model. The question is whether provisioned AI capacity maps onto it cleanly or needs its own treatment.
Of everything in this bucket, this is the one most likely to matter at the level of a board conversation, because it is where committed AI dollars sit and where utilization against those commitments gets measured.
FR 1943
Detail +Detail −
Deeper AI service subcategories, so AI spend can be analyzed in layers.
Extends the existing AI and Machine Learning subcategories to support layered analysis, separating the infrastructure an AI workload runs on from the model serving it from the application consuming it. Today those three layers can all land in one bucket, which is the reason "what did AI cost us" is hard to answer consistently across organizations.
Live decision
Enabler
PR 2553
Detail +Detail −
Whether identity attributes ship alongside PrincipalId in 1.5, or wait.
owner Matt Cowsert
group TF-2
state decision open
The decision
Does an IdentityDetails column draft against the August 13 gate in 1.5, or does 1.5 ship PrincipalId alone with identity attributes carried into 1.6 as a straw man?
The case for waiting
PrincipalId alone is enough to join identity attributes in from elsewhere. Shipping it first lets community feedback tell us whether name and email are actually wanted in cost and usage data before personally identifiable fields are published into it. A privacy review on the question is outstanding.
Relevant, but not 1.5
Two different things live here, and the distinction is worth keeping. The first group was ruled out on the merits, with reasons on the record. The second group falls out on timing alone.
Ruled out on the merits
Out of scope
Detail +Detail −
Per-request maximum token limits alongside cost.
from FR 2018, third use case
Request-level configuration sits closer to observability than to billing, consistent with the feature request's own exclusion of telemetry. It was not routed to any of the parallel AI feature requests, so it is a deliberate stop rather than a deferral.
Out of scope
Detail +Detail −
Tool or harness identity, meaning which tool produced the tokens.
decided TF-2, 8 Jul 2026
Ruled out of the first example pass. This is the one most likely to come back, because agentic tooling is exactly where attribution questions are heading. It is a sequencing call, not a rejection of the concept.
Out of scope
Detail +Detail −
Session and event identifiers.
decided TF-2, 8 Jul 2026
These are observability-side join signals with no FOCUS-defined home. Billing data does not carry them, and inventing a place for them inside FOCUS would put the specification in the business of describing application telemetry.
Deferred
Detail +Detail −
Token type, input versus output, as a first-class column.
deferred TF-2, 15 Jul 2026
Open rather than closed. Today the split is carried structurally, through separate SKUs distinguished by SkuMeter, which is what shipped in bucket 1. Whether it should instead become a first-class column or defined property is explicitly deferred, not settled. Worth knowing if anyone asks why token type is not a column.
Falls to 1.6 on timing
1.6 candidate
Detail +Detail −
Any bucket 3 item not drafted by 13 August.
resolves 13 Aug 2026
The gate is mechanical, and it is what keeps a release predictable. Ten items sit in bucket 3 today. How many move here is known in 16 days, and the 1.6 scoping window opens 29 October.