---
title: "Stop Splitting the Agent Bill by Seat"
description: "Attach AI coding usage to a work item, keep rejected attempts in its bill and allocate shared factory costs across accepted outcomes."
author: "Gunner Technology"
published: "2026-11-06"
url: "https://www.gunnertech.com/blog/allocate-agent-costs-to-accepted-work"
---

# Stop Splitting the Agent Bill by Seat

Allocate AI coding costs to the work that caused them, then divide the full cost by outcomes that passed acceptance. Do not spread the bill evenly across seats or count generated code as value. A seat tells you who had access. It does not tell you what the factory produced.

## Why does cost per seat give you the wrong answer?

Cost per seat gives you the wrong answer because agent work does not consume capacity evenly. One person may send a small, well-specified fix through a short route. Another may start a broad migration that searches half the repository, retries three times, calls stronger models and needs a human rescue. Dividing the invoice by users makes those jobs look identical.

That mistake was tolerable when a license was most of the cost. It breaks once the factory pays for model calls, context, tools, build machines and verification as work moves. Tokens are pieces of text processed or produced by a model, but tokens alone are not the product. Accepted software is.

Start with a work identifier that survives every stage. Put it on planning, model calls, tool runs, checks, retries and release evidence. Our argument that [the price card is not the bill](https://www.gunnertech.com/blog/the-price-card-is-not-the-bill) explains why the whole route matters. Allocation is how you make that whole route visible on one job.

## What costs belong on one agent work item?

Charge every cost caused by the job to that job. That includes context assembly, model usage, repository tools, test and build infrastructure, review, retries, human intervention, deployment and recovery. Keep failed attempts attached. A rejected patch consumed real capacity even though it created no accepted inventory.

Record cost events when they happen instead of reconstructing them from a monthly invoice. Each event needs the work identifier, route, stage, resource, quantity and time. A route is the sequence of models, tools and checks assigned to a class of work. Keep vendor-specific units at the edge, then translate them into money and internal capacity without throwing the original measurement away.

Do not make the builder report its own final cost from memory. The harness should collect usage from the systems that authorize and run the work. As [repository search belongs in the agent budget](https://www.gunnertech.com/blog/repository-search-belongs-in-the-agent-budget), spending begins before the first edit. If the meter starts at the patch, exploration disappears from the decision.

## How should you allocate shared factory costs?

Allocate shared costs with a rule tied to actual use, and keep that rule visible. Build runners can follow execution time. A shared model gateway can follow measured requests and tokens. The baseline cost of monitoring, credential management and the harness can be spread across accepted work for the same period.

Precision has a stopping point. Do not spend more measuring a tiny cost than the cost can change. Use a stable rule for small overhead, label it as allocated and reserve direct metering for costs that can change a routing decision. The goal is a trustworthy comparison, not an elaborate fiction with six decimal places.

Separate capacity from consumption. A prepaid commitment is available capacity until work uses it; it is not free work. Show both the marginal cost of the next job and its share of committed capacity. Otherwise a team can declare work cheap while an expensive reservation sits unused elsewhere in the same account.

## When does a work item become an outcome?

A work item becomes an outcome only when it passes independent acceptance. Generated files, opened pull requests and completed agent sessions are attempts. Acceptance means the required behavior and evidence have cleared the authority defined for that job.

Keep three states distinct: rejected, accepted and accepted but later reversed. Rejected work stays in the cost of the work class. A rollback or production repair belongs to the outcome that caused it. That is how a route that looks cheap at merge time stops hiding the downstream labor it creates.

Then calculate cost per accepted outcome for comparable work. Do not average a password-label change with a payment migration and call the result a productivity metric. Group work by consequence, proof and operating route. [The token bill is a value gate](https://www.gunnertech.com/blog/the-token-bill-is-a-value-gate) only when the cost can meet the business decision it was meant to support.

## What should you measure first?

Choose one recurring class of work and follow it from intake through production. Give every attempt the same durable identifier. Capture direct usage automatically, apply one plain shared-cost rule and record the acceptance decision. Run the exercise long enough to include failures and repairs, not only the first clean success.

Use the result to change one route. A cheap route with strong acceptance can take more of that work. An expensive route may still be correct when the consequence demands it. A route that burns capacity on retries without improving proof should lose work or stop for a person sooner.

Gunner Technology's position is blunt: AI cost management is factory control, not invoice cleanup. Finance can report what was charged. The factory has to show which work caused it, whether that work survived and what should run differently next time.

## Quick answers

### Should rejected agent work count against a team?

It should count in the economics of the work and route. Use it to improve the system, not to punish the person who exposed the failure.

### Can we allocate costs without exact token prices?

Yes. Preserve usage units and apply the best current rate, then update the conversion when pricing changes without rewriting the underlying events.

### What if one work item serves several products?

Choose a documented allocation rule based on use or ownership. Keep the original work item intact so the split does not hide its full cost.
